0001558370-24-001843.txt : 20240227 0001558370-24-001843.hdr.sgml : 20240227 20240227161754 ACCESSION NUMBER: 0001558370-24-001843 CONFORMED SUBMISSION TYPE: 10-K PUBLIC DOCUMENT COUNT: 100 CONFORMED PERIOD OF REPORT: 20231231 FILED AS OF DATE: 20240227 DATE AS OF CHANGE: 20240227 FILER: COMPANY DATA: COMPANY CONFORMED NAME: PDF SOLUTIONS INC CENTRAL INDEX KEY: 0001120914 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] ORGANIZATION NAME: 06 Technology IRS NUMBER: 251701361 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-31311 FILM NUMBER: 24687007 BUSINESS ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 BUSINESS PHONE: 4082807900 MAIL ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 10-K 1 pdfs-20231231x10k.htm 10-K
0001120914false--12-31FY2023PDF SOLUTIONS INC0P1Y00000P1YP10YP5YP6YP4YP3YP3Y155000000P6MP10Y00P4Y0010001120914us-gaap:AllowanceForCreditLossMember2021-01-012021-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2023-01-012023-12-310001120914us-gaap:AllowanceForCreditLossMember2023-01-012023-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2022-01-012022-12-310001120914us-gaap:AllowanceForCreditLossMember2022-01-012022-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2021-01-012021-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2023-12-310001120914us-gaap:AllowanceForCreditLossMember2023-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2022-12-310001120914us-gaap:AllowanceForCreditLossMember2022-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2021-12-310001120914us-gaap:AllowanceForCreditLossMember2021-12-310001120914us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember2020-12-310001120914us-gaap:AllowanceForCreditLossMember2020-12-310001120914us-gaap:AccountsReceivableMember2023-12-310001120914us-gaap:AccountsReceivableMember2022-12-310001120914us-gaap:StateAndLocalJurisdictionMember2023-12-310001120914us-gaap:DomesticCountryMember2023-12-310001120914pdfs:StockRepurchaseProgram2022Member2022-04-110001120914pdfs:The2020StockRepurchaseProgramMember2020-06-040001120914us-gaap:CommonStockMember2023-01-012023-12-310001120914us-gaap:CommonStockMember2022-01-012022-12-310001120914us-gaap:CommonStockMember2021-01-012021-12-310001120914us-gaap:RetainedEarningsMember2023-12-310001120914us-gaap:AdditionalPaidInCapitalMember2023-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-310001120914us-gaap:RetainedEarningsMember2022-12-310001120914us-gaap:AdditionalPaidInCapitalMember2022-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-310001120914us-gaap:RetainedEarningsMember2021-12-310001120914us-gaap:AdditionalPaidInCapitalMember2021-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-12-310001120914us-gaap:RetainedEarningsMember2020-12-310001120914us-gaap:AdditionalPaidInCapitalMember2020-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-12-310001120914us-gaap:TreasuryStockCommonMember2023-12-310001120914us-gaap:CommonStockMember2023-12-310001120914us-gaap:TreasuryStockCommonMember2022-12-310001120914us-gaap:CommonStockMember2022-12-310001120914us-gaap:TreasuryStockCommonMember2021-12-310001120914us-gaap:CommonStockMember2021-12-310001120914us-gaap:TreasuryStockCommonMember2020-12-310001120914us-gaap:CommonStockMember2020-12-310001120914pdfs:IncentivePlanYear2011Member2023-12-310001120914pdfs:EmployeeStockPurchasePlanMember2022-12-310001120914us-gaap:EmployeeStockOptionMemberpdfs:IncentivePlanYear2011Member2022-01-012022-12-310001120914us-gaap:EmployeeStockOptionMemberpdfs:IncentivePlanYear2011Member2021-01-012021-12-310001120914us-gaap:GrantMemberpdfs:ExpiredStockPlansMember2023-01-012023-12-310001120914pdfs:EmployeeStockPurchasePlanMember2023-12-310001120914pdfs:PurchasePlanYear2010And2021Member2023-12-310001120914pdfs:PurchasePlanYear2021Member2021-01-012021-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2022-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2022-01-012022-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-12-310001120914us-gaap:EmployeeStockOptionMemberpdfs:IncentivePlanYear2011Member2023-01-012023-12-310001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMembersrt:MinimumMember2024-01-012023-12-310001120914pdfs:IntegratedYieldRampMember2023-01-012023-12-310001120914pdfs:AnalyticsMember2023-01-012023-12-310001120914pdfs:IntegratedYieldRampMember2022-01-012022-12-310001120914pdfs:AnalyticsMember2022-01-012022-12-310001120914pdfs:IntegratedYieldRampMember2021-01-012021-12-310001120914pdfs:AnalyticsMember2021-01-012021-12-310001120914srt:MinimumMemberus-gaap:OtherCapitalizedPropertyPlantAndEquipmentMember2023-12-310001120914srt:MinimumMemberus-gaap:FurnitureAndFixturesMember2023-12-310001120914srt:MaximumMemberus-gaap:OtherCapitalizedPropertyPlantAndEquipmentMember2023-12-310001120914srt:MaximumMemberus-gaap:FurnitureAndFixturesMember2023-12-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2023-12-310001120914us-gaap:LeaseholdImprovementsMember2023-12-310001120914us-gaap:FurnitureAndFixturesMember2023-12-310001120914us-gaap:ComputerEquipmentMember2023-12-310001120914pdfs:TestEquipmentMember2023-12-310001120914pdfs:OtherAssetsCvSystemsMember2023-12-310001120914pdfs:LaboratoryAndTestEquipmentMember2023-12-310001120914pdfs:DFITestEquipmentMember2023-12-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2022-12-310001120914us-gaap:LeaseholdImprovementsMember2022-12-310001120914us-gaap:FurnitureAndFixturesMember2022-12-310001120914us-gaap:ComputerEquipmentMember2022-12-310001120914pdfs:TestEquipmentMember2022-12-310001120914pdfs:OtherAssetsCvSystemsMember2022-12-310001120914pdfs:LaboratoryAndTestEquipmentMember2022-12-310001120914pdfs:DFITestEquipmentMember2022-12-310001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember2023-07-052023-07-050001120914srt:AffiliatedEntityMember2023-12-310001120914srt:AffiliatedEntityMember2022-12-310001120914us-gaap:FairValueInputsLevel1Member2023-12-310001120914us-gaap:FairValueInputsLevel1Member2022-12-310001120914us-gaap:DomesticCountryMemberus-gaap:InternalRevenueServiceIRSMember2023-12-310001120914us-gaap:DomesticCountryMemberus-gaap:CaliforniaFranchiseTaxBoardMember2023-12-310001120914pdfs:RestOfTheWorldMember2023-12-310001120914country:US2023-12-310001120914pdfs:RestOfTheWorldMember2022-12-310001120914country:US2022-12-310001120914srt:AffiliatedEntityMemberus-gaap:CollaborativeArrangementMember2020-07-012020-07-310001120914srt:MinimumMember2023-12-310001120914srt:MaximumMember2023-12-310001120914us-gaap:TrademarksAndTradeNamesMember2023-12-310001120914us-gaap:PatentsMember2023-12-310001120914us-gaap:NoncompeteAgreementsMember2023-12-310001120914us-gaap:DevelopedTechnologyRightsMember2023-12-310001120914us-gaap:CustomerRelationshipsMember2023-12-310001120914us-gaap:TrademarksAndTradeNamesMember2022-12-310001120914us-gaap:PatentsMember2022-12-310001120914us-gaap:NoncompeteAgreementsMember2022-12-310001120914us-gaap:DevelopedTechnologyRightsMember2022-12-310001120914us-gaap:CustomerRelationshipsMember2022-12-310001120914pdfs:PurchasePlanYear2021Member2022-01-012022-12-310001120914pdfs:PurchasePlanYear2010Member2022-01-012022-12-310001120914pdfs:PurchasePlanYear2010Member2021-01-012021-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2023-01-012023-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2023-12-310001120914us-gaap:SoftwareDevelopmentMember2023-01-012023-12-310001120914us-gaap:SoftwareDevelopmentMember2022-01-012022-12-310001120914us-gaap:SoftwareDevelopmentMember2021-01-012021-12-3100011209142021-01-012023-12-310001120914pdfs:DFITestEquipmentMember2023-01-012023-12-310001120914pdfs:DFITestEquipmentMember2022-01-012022-12-310001120914pdfs:DFITestEquipmentMember2021-01-012021-12-310001120914srt:MinimumMemberus-gaap:PensionPlansDefinedBenefitMember2023-01-012023-12-310001120914srt:MaximumMemberus-gaap:PensionPlansDefinedBenefitMember2023-01-012023-12-310001120914us-gaap:PensionPlansDefinedBenefitMember2023-01-012023-12-310001120914us-gaap:PensionPlansDefinedBenefitMember2022-01-012022-12-310001120914pdfs:CaliforniaRDTaxCreditsMember2023-12-310001120914pdfs:CaliforniaRDTaxCreditsMember2022-12-310001120914us-gaap:DomesticCountryMember2023-01-012023-12-310001120914us-gaap:DomesticCountryMember2022-01-012022-12-310001120914us-gaap:DomesticCountryMember2021-01-012021-12-310001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2023-01-012023-12-310001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2022-01-012022-12-310001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2021-01-012021-12-310001120914us-gaap:OtherNoncurrentLiabilitiesMember2023-12-310001120914us-gaap:OtherNoncurrentLiabilitiesMember2022-12-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2023-12-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2022-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-12-310001120914pdfs:TwoCustomersMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-12-310001120914pdfs:OneCustomerMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914pdfs:CustomerGMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-12-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-12-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-12-310001120914pdfs:TwoCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:ThreeCustomersMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerCMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerBMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerBMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-12-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-12-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914pdfs:TwoCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914pdfs:CustomerDMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:RetainedEarningsMember2023-01-012023-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-12-310001120914us-gaap:RetainedEarningsMember2022-01-012022-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-01-012022-12-310001120914us-gaap:RetainedEarningsMember2021-01-012021-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-01-012021-12-3100011209142021-12-3100011209142020-12-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2023-12-310001120914us-gaap:MoneyMarketFundsMember2023-12-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2022-12-310001120914us-gaap:MoneyMarketFundsMember2022-12-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2023-12-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2022-12-3100011209142022-01-012023-12-310001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMemberus-gaap:DevelopedTechnologyRightsMember2023-07-050001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMemberus-gaap:CustomerRelationshipsMember2023-07-050001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember2023-07-050001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2023-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2023-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2022-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2022-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2023-01-012023-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2022-01-012022-12-310001120914us-gaap:EmployeeStockOptionMember2022-01-012022-12-310001120914pdfs:EmployeeStockPlansMember2022-01-012022-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-12-310001120914us-gaap:EmployeeStockOptionMember2021-01-012021-12-310001120914pdfs:EmployeeStockPlansMember2021-01-012021-12-310001120914us-gaap:OtherExpenseMember2023-01-012023-12-310001120914us-gaap:CostOfSalesMember2023-01-012023-12-310001120914us-gaap:OtherExpenseMember2022-01-012022-12-310001120914us-gaap:CostOfSalesMember2022-01-012022-12-310001120914us-gaap:OtherExpenseMember2021-01-012021-12-310001120914us-gaap:CostOfSalesMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:ResearchAndDevelopmentExpenseMember2023-01-012023-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:CostOfSalesMember2023-01-012023-12-310001120914pdfs:EmployeeStockPurchasePlanMember2023-01-012023-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:ResearchAndDevelopmentExpenseMember2022-01-012022-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:CostOfSalesMember2022-01-012022-12-310001120914pdfs:EmployeeStockPurchasePlanMember2022-01-012022-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:ResearchAndDevelopmentExpenseMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMemberus-gaap:CostOfSalesMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMember2021-01-012021-12-310001120914us-gaap:AdditionalPaidInCapitalMember2023-01-012023-12-310001120914us-gaap:AdditionalPaidInCapitalMember2022-01-012022-12-310001120914us-gaap:AdditionalPaidInCapitalMember2021-01-012021-12-310001120914us-gaap:TreasuryStockCommonMember2023-01-012023-12-310001120914us-gaap:TreasuryStockCommonMember2022-01-012022-12-310001120914us-gaap:TreasuryStockCommonMember2021-01-012021-12-310001120914srt:MinimumMemberus-gaap:TrademarksAndTradeNamesMember2023-01-012023-12-310001120914srt:MinimumMemberus-gaap:PatentsMember2023-01-012023-12-310001120914srt:MinimumMemberus-gaap:DevelopedTechnologyRightsMember2023-01-012023-12-310001120914srt:MinimumMemberus-gaap:CustomerRelationshipsMember2023-01-012023-12-310001120914srt:MaximumMemberus-gaap:TrademarksAndTradeNamesMember2023-01-012023-12-310001120914srt:MaximumMemberus-gaap:PatentsMember2023-01-012023-12-310001120914srt:MaximumMemberus-gaap:DevelopedTechnologyRightsMember2023-01-012023-12-310001120914srt:MaximumMemberus-gaap:CustomerRelationshipsMember2023-01-012023-12-310001120914us-gaap:NoncompeteAgreementsMember2023-01-012023-12-310001120914us-gaap:GrantMemberpdfs:IncentivePlanYear2011Member2023-12-310001120914us-gaap:GrantMemberpdfs:ExpiredStockPlansMember2023-12-310001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMembersrt:MaximumMember2027-01-012023-12-310001120914pdfs:StockRepurchaseProgram2022Member2023-01-012023-12-310001120914pdfs:StockRepurchaseProgram2022Member2022-04-112023-12-310001120914pdfs:The2020StockRepurchaseProgramMember2022-01-012022-12-310001120914pdfs:StockRepurchaseProgram2022Member2022-01-012022-12-310001120914pdfs:The2020StockRepurchaseProgramMember2021-01-012021-12-310001120914pdfs:The2020StockRepurchaseProgramMember2020-06-042022-12-310001120914us-gaap:TransferredOverTimeMember2023-01-012023-12-310001120914us-gaap:TransferredAtPointInTimeMember2023-01-012023-12-310001120914us-gaap:TransferredOverTimeMember2022-01-012022-12-310001120914us-gaap:TransferredAtPointInTimeMember2022-01-012022-12-310001120914us-gaap:TransferredOverTimeMember2021-01-012021-12-310001120914us-gaap:TransferredAtPointInTimeMember2021-01-012021-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:ForeignCountryMember2023-01-012023-12-310001120914us-gaap:ForeignCountryMember2022-01-012022-12-310001120914us-gaap:ForeignCountryMember2021-01-012021-12-310001120914pdfs:PurchasePlanYear2010And2021Member2001-07-012023-12-310001120914pdfs:PurchasePlanYear2021Member2023-01-012023-12-310001120914pdfs:PurchasePlanYear2021Member2023-12-3100011209142023-12-3100011209142022-12-310001120914us-gaap:OtherNoncurrentAssetsMember2023-12-310001120914us-gaap:OtherNoncurrentAssetsMember2022-12-310001120914srt:MinimumMember2023-01-012023-12-310001120914srt:MaximumMember2023-01-012023-12-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2023-01-012023-12-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2022-01-012022-12-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2021-01-012021-12-3100011209142022-01-012022-12-3100011209142021-01-012021-12-310001120914us-gaap:GrantMemberpdfs:IncentivePlanYear2011Member2023-01-012023-12-3100011209142023-06-3000011209142024-02-2300011209142023-01-012023-12-31xbrli:sharesiso4217:USDxbrli:purepdfs:itemiso4217:USDxbrli:shares

UNITED STATES SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

Form 10-K

(Mark One)

ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

For the fiscal year ended December 31, 2023

or

TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

For the transition period from               to               

000-31311

(Commission file number)

PDF SOLUTIONS, INC.

(Exact name of registrant as specified in its charter)

Delaware

25-1701361

(State or other jurisdiction of

(I.R.S. Employer

Incorporation or organization)

Identification No.)

  

  

2858 De La Cruz Blvd.

95050

Santa Clara, California

(Zip Code)

(Address of Registrant’s principal executive offices)

  

(408280-7900

(Registrant’s telephone number, including area code)

Securities registered pursuant to Section 12(b) of the Act:

Title of each class

    

Trading Symbol(s)

    

Name of each exchange on which registered

Common Stock, $0.00015 par value

PDFS

The Nasdaq Stock Market LLC

Securities registered pursuant to Section 12(g) of the Act:

None

Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.

Yes      No

Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.

Yes      No

Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the Registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.

Yes      No 

Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§ 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).

Yes      No

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer,” “accelerated filer,” “smaller reporting company,” and “emerging growth company” in Rule 12b-2 of the Exchange Act.

 Large accelerated filer

 Accelerated filer

 Non-accelerated  filer

 Smaller reporting company

 

 Emerging growth company

If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. 

Indicate by check mark whether the registrant has filed a report on and attestation to its management’s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report. 

If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements.

Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant’s executive officers during the relevant recovery period pursuant to §240.10D-1 (b).

Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act).  Yes      No

The aggregate market value of the voting stock held by non-affiliates of the Registrant was approximately $1.3 billion as of the last business day of the Registrant’s most recently completed second fiscal quarter, based upon the closing sale price on the Nasdaq Global Market reported for such date. Shares of Common Stock held by each officer and director and by each person who owns 10% or more of the outstanding Common Stock have been excluded in that such persons may be deemed to be affiliates. This determination of affiliate status is not necessarily a conclusive determination for other purposes.

There were 38,581,819 shares of the Registrant’s Common Stock outstanding as of February 23, 2024.

DOCUMENTS INCORPORATED BY REFERENCE

Part III incorporates certain information by reference from the definitive Proxy Statement to be filed within 120 days from December 31, 2023.

TABLE OF CONTENTS

 

 

Page

PART I

Item 1.

Business

4

Item 1A.

Risk Factors

16

Item 1B.

Unresolved Staff Comments

34

Item 1C.

Cybersecurity

34

Item 2.

Properties

37

Item 3.

Legal Proceedings

37

Item 4.

Mine Safety Disclosures

37

 

 

PART II

Item 5.

Market For Registrant’s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities

38

Item 6.

Reserved

39

Item 7.

Management’s Discussion and Analysis of Financial Condition and Results of Operations

39

Item 7A.

Quantitative and Qualitative Disclosures About Market Risk

52

Item 8.

Financial Statements and Supplementary Data

53

Item 9.

Changes in and Disagreements with Accountants on Accounting and Financial Disclosure

88

Item 9A.

Controls and Procedures

88

Item 9B.

Other Information

89

Item 9C.

Disclosure Regarding Foreign Jurisdictions that Prevent Inspections

89

 

 

PART III

Item 10.

Directors, Executive Officers and Corporate Governance

90

Item 11.

Executive Compensation

90

Item 12.

Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters

90

Item 13.

Certain Relationships and Related Transactions, and Director Independence

90

Item 14.

Principal Accountant Fees and Services

90

 

 

PART IV

Item 15.

Exhibits and Financial Statement Schedules

91

Item 16.

Form 10-K Summary

95

Signatures

96

2

SPECIAL NOTE REGARDING FORWARD LOOKING STATEMENTS

This Annual Report on Form 10-K, particularly in Item 1 “Business” and Item 7 “Management’s Discussion and Analysis of Financial Condition and Results of Operations,” includes forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended (the “Securities Act”) and Section 21E of the Securities Exchange Act of 1934, as amended (the “Exchange Act”). These statements include, but are not limited to, statements concerning: expectations about the effectiveness of our business and technology strategies; expectations regarding global economic trends; the impact of rising global inflation and increased interest rates; expectations regarding recent and future acquisitions; current semiconductor industry trends; expectations of the success and market acceptance of our intellectual property and our solutions; the continuing impact of macroeconomic conditions on the semiconductor industry and our business; supply chain disruptions; possible impacts from the evolving trade regulatory environment and geopolitical tensions; and our ability to obtain additional financing if needed. Our actual results could differ materially from those projected in the forward-looking statements as a result of a number of factors, risks and uncertainties discussed in this Form 10-K, especially those contained in Item 1A of this Form 10-K. The words “may,” “anticipate,” “plan,” “continue,” “could,” “projected,” “expect,” “believe,” “intend,” and “assume,” the negative of these terms and similar expressions are used to identify forward-looking statements. All forward-looking statements and information included herein is given as of the filing date of this Form 10-K with the Securities and Exchange Commission (“SEC”) and based on information available to us at the time of this report and future events or circumstances could differ significantly from these forward-looking statements. Unless required by law, we undertake no obligation to update publicly any such forward-looking statements.

The following information should be read in conjunction with the Consolidated Financial Statements and notes thereto included in this Annual Report on Form 10-K. All references to fiscal year apply to our fiscal year that ends on December 31. All references to “we,” “us,” “our,” “PDF,” “PDF Solutions” or “the Company” refer to PDF Solutions, Inc.

3

PART I

Item 1. Business

We provide comprehensive data solutions designed to empower organizations across the semiconductor and electronics ecosystems to improve the yield and quality of their products and operational efficiency for increased profitability. We derive revenues from two sources, Analytics and Integrated Yield Ramp. Our offerings contribute to Analytics revenue through contract fees for on-premise software and hardware system licenses, software-as-a-service (“SaaS”), and other professional services. Certain of our Characterization services engagements contribute to Integrated Yield Ramp revenue through contract fees and a value-based, variable fee or royalty, which we call Gainshare. We are headquartered in Santa Clara, California and also operate worldwide with offices in Canada, China, France, Germany, Italy, Japan, South Korea, and Taiwan.

Business Overview

Our customers include Fortune 500 companies across the semiconductor and electronics ecosystem. These companies use our products and services to achieve various goals depending on whether they are integrated device manufacturers (“IDMs”), fabless semiconductor companies, foundries, equipment manufacturers, electronics manufacturing suppliers (“EMS”), original device manufacturers (“ODMs”), outsourced semiconductor assembly and test (“OSATs”), or system houses. For example, our foundry customers generate and analyze key manufacturing data using our solutions to shorten the time necessary for technology development and to provide their fabless customers with a higher yielding process with improved electrical performance, which are both critical metrics for market success. Higher yields in less time can also mean less total raw materials and process runs, which help lower customers’ total cost and minimize environmental impact. Also, equipment manufacturers and factories use our connectivity products to implement evolving industry standards for their equipment or operations, respectively, with required quality and stability. By way of further example, our IDM and fabless customers use our solutions to generate unique, differentiated data that can be analyzed with our machine learning (“ML”) and artificial intelligence (“AI”) algorithms to predict downstream manufacturing issues, resulting in shorter time for designs to meet performance requirements with fewer iterations and faster time-to-market. For final example, our foundry and OSAT customers use the AI and ML applications of our software to optimize for process control, assembly, and/or test.

Our mission is to provide innovative solutions to create, access, and organize data to enable analysis and control for semiconductor and electronics companies to achieve better time-to-market, yields, quality, and operational efficiencies. Our strategy to achieve this is as follows:

Offer a Common, Flexible Platform for a Broad Group of Customers Across the Supply Chain. As semiconductor and electronics products are made with the efforts of equipment manufacturers, front-end foundries, chip and system designers, design automation, intellectual property (“IP”) providers, and OSATs, there is a need to analyze data across this whole chain to optimize yields, operational efficiencies, time to market, quality, and reliability. Our comprehensive platform is designed based on industry standards and integrated with leading solutions providers to enable these different participants to analyze the relevant end-to-end data in near real-time, with cloud or on-premise data stores from 10s to 100s of terabytes (“TBs”) and flexible configurations for IDM, foundry, fabless, and OSAT specific needs. Our ML solutions combine professional services with our Exensio software to further enable our customers to push their analytics “to the edge” of their global supply chains and shift the analysis and decision-making processes closer to where their data is being generated. We believe enabling edge analytics will further increase our customers’ ability to improve product yield, quality, performance, and profitability, and therefore, should drive the market for our products and services.
Drive Tool-Level Software Installations to Create an Infrastructure of Connected Equipment and Enable Smart Factories. We believe that driving installation of our Exensio and Cimetrix software products at the tool level will help provide an infrastructure of connected equipment and help to enable smart factories. Our Cimetrix products are based on open standards for equipment control and connectivity to equipment manufacturers and factories, which we believe will be more in demand in the smart manufacturing era. Further, we believe that the

4

benefits from integration between analytics on equipment, the factory, and in the cloud will provide synergies with our existing end-to-end analytics offerings.
Create Differentiated Data Sources for Better Analytics. Historically, companies have only used data that was generated from their manufacturing and test process to drive improvements. We offer unique IP (such as Characterization Vehicle® test chips, also branded CV® test chips) that is not part of an integrated circuit’s (“IC”) functionality, but significantly improves the manufacturing process by improving yield learning and reducing time to market. Also, our Design-for-Inspection™ system (also branded DFI™ system) identifies blockers that impact product yield and quality up to months earlier than any other hardware- or software-based methodology from proprietary e-beam measurement of product layout or provided on-chip instrumentation. We believe that in the More-than-Moore (“MtM”) era, the differentiated data we provide can play an important role in enabling our customers to bring new products to market faster and with higher quality and performance, and, ultimately, more profitability.
Collaborate with Other Industry Leaders to Bring Additional Unique Data to Our Platform and Enable New and Differentiated Applications. We believe that the value we bring to semiconductor manufacturing can be leveraged with additional data and through differentiated applications. For example, in 2023, we started offering an enterprise application integration module called Sapience™ Manufacturing Hub, which is designed to collect and unify data from enterprise applications, such as manufacturing execution systems (“MES”), enterprise resource planning systems (“ERP”) like SAP S/4HANA®, and our Exensio software, and make such data available through a central interface. Also in 2023, working with Siemens Digital Industries Software, we started offering two new Exensio modules, Exensio AIM Scan Analytics and Exensio AIM Scan Systematics Diagnostics, which are designed to enable diagnostic accuracy and efficiency of fail mode to help our customers that also use Siemens’s Tessent software determine the electrical and physical failing locations for product and process improvements. Building relationships with other industry leaders is intended to provide more ways for mutual customers to leverage their process and product data as part of their Industry 4.0 initiatives. Differentiated applications that make use of this shared data are designed to provide unique insights to help customers achieve sustained profitability in their manufacturing.

Brief History

PDF Solutions was incorporated in Pennsylvania in November 1992, and we reincorporated in California in November 1995. In July 2000, we reincorporated in Delaware, and in July 2001, we completed an initial public offering. Our shares of common stock are currently traded on the Nasdaq Global Market under the symbol “PDFS”.

From 2000 through 2009, we expanded our technology footprint and our operations in various countries through acquisitions. From 2009 to 2019, we primarily focused on the pervasive application of our technology to leading edge logic manufacturing and achieving yield targets with our clients that maximized Gainshare royalties. In 2013, we leveraged our extensive experience in yield simulation software and CV® test chip development and started research and development on an e-beam solution for non-contact, inline electrical inspection and process control for wafer inspection.

In a parallel effort, starting in 2014, we re-architected our point-solution software tools into a new generation, highly-integrated data analytics Exensio software, which resulted in accelerated growth in revenues from software through 2019.  Starting in 2020, after our acquisition of Cimetrix Incorporated (“Cimetrix”), we began providing software products based on open standards for equipment control and connectivity to equipment manufacturers and factories.

We released our first eProbe tool in 2015, the second generation in 2019, and the third generation in late 2022. The improvements in the third generation included:

higher resolution and improved beam vector targeting, enabling use for leading-edge, middle-of-line applications;
higher throughput; and
better manufacturability and repeatable column performance.

5

Industry Background

Rapid technological innovation with increasingly shorter product life cycles has fueled the economic growth of the semiconductor industry since the days of the PC revolution. IC companies have historically ramped production slowly, produced at high volume once a product gained market acceptance, and slowly reduced production volume when price and demand started to decrease near the end of the product’s life cycle. Today there are many different business models across the semiconductor industry: products that follow the traditional life cycle just described, products targeted towards fast-moving market segments like Internet of Things – which utilize mature process nodes and require a fast ramp to volume with a relatively short life cycle, and products focused on long term market segments like automotive and industrial where product life cycles can last a decade or longer. There is a lot of variation across these business models depending on the level of design complexity and the maturity of the process node used for product implementation. Processors, memory and field-programmable gate arrays (“FPGA”) continue to leverage the most advanced process nodes and experience significant challenges to achieve competitive initial yields and optimized performance. Some products and market segments, however, are content to utilize older process nodes. Regardless of the process node used for implementation or how long the product will be sold in the market, success for every semiconductor company is predicated, among other things, on fast product yield ramp and the ability to optimize manufacturing and test metrics, such as yield reclamation, product quality, and test efficiency, throughout a product’s life cycle. Thus, technologies or capabilities that can accelerate yield ramp, improve product quality, and optimize production efficiencies are highly sought after because they typically lead to cost reduction and revenue generation concurrently, causing a leveraged effect on profitability.

Technology and Intellectual Property Protection

Our success is largely dependent upon our proprietary software. We believe the creative skills and technological ability of our personnel, product enhancements, and new product development are necessary to maintaining our position as a leading provider. We rely primarily on trade secret rights, copyright laws, and nondisclosure and other contractual agreements to protect our software.

In addition, our success is dependent on various inventions we have made and we seek to protect certain of our IP under patent laws. As of December 31, 2023, we held 115 U.S. patents, with expiration dates on issued patents ranging from 2024 through 2042. We intend to prepare additional patent applications when we feel it is beneficial. Some of the technology we protect by patent includes elements of our CV and DFI systems and inventions related to AI/ML.

We protect our trademarks with registration of marks, including Characterization Vehicle, Cimetrix, CV, eProbe, Exensio, pdFasTest, PDF Solutions, and the PDF Solutions and Cimetrix logos. We have common law rights to additional trademarks, including ALPS, DFI, DirectProbe, DirectScan, Fire, and Sapience.

We enter into confidentiality and inventions assignment agreements with our employees and confidentiality and license agreements with our customers and the various parties we partner with to resell, distribute, and, in some cases, integrate our products. Further, we limit access to and distribution of our software, documentation and other proprietary information.

Third parties could in any case develop competing technologies that include similar functionality or features, or otherwise are substantially equivalent or superior to our technologies. In addition, effective patent, copyright, trademark and trade secret protection may be unavailable or limited in certain foreign countries where we operate. Our business could suffer significantly if we fail to protect our proprietary technology.

In addition, through yield, performance, and reliability improvement services over more than 20 years, we have accumulated a vast library of physical IP in the form of test structures. As part of our DFI and CV systems, our engineers create designs of experiments (“DOEs”) and layouts for targeted fail modes. We have also developed electrical measurement hardware tools and proprietary extraction, design, and analysis software. In addition, our technology embodies many production-proven and patented algorithms. Further, our IP includes proven methodologies that our implementation teams use as guidelines to drive our customers’ use of our technology. We strive to continually enhance our core technologies through the codification of knowledge that we gain in the use of our products and delivery of services.

6

Products and Services

Products

The primary software products and software and hardware systems of our platform include the following:

Exensio Software. Our Exensio software products address the big data manufacturing challenge of today’s advanced process nodes and highly integrated products, by providing a common environment throughout the supply chain for different data types, including inline and end-of-line metrology, yield, parametric, performance, manufacturing consumables, tool-level sensor data, test floor data, logistical data, as well as custom data types. Exensio products are designed to enable real-time rapid diagnosis and understanding of key manufacturing and test metrics during both inline and end-of-line wafer processing, helping customers reduce product variability and cost simultaneously. By integrating silos of data and applying AI and ML, Exensio products resolve the limitation of local optimization and provide better visibility across the entire production process, reducing the time it takes to make critical decisions that can drive higher product yield, quality and reliability. Our collaboration with strategic partners is intended to also integrate data from those partners’ products to make it available in Exensio and also to develop new applications to inter-operate with those products and enhance the value to mutual customers. For example, in 2023, we started offering Sapience™ Manufacturing Hub, which provides a single, common connectivity platform between enterprise applications, such as MES, ERP, and our Exensio software. Sapience Manufacturing Hub enables advanced applications – including those for top management – that benefit from more real-time and detailed insight into manufacturing. Our Exensio Foundry Product Costing module, which leverages Sapience Manufacturing Hub, provides more accurate insight into the gap between plan costs and actual costs, enabling actions to improve profitability. Exensio Foundry Product Costing module integrates with SAP S4/HANA due to our collaboration with SAP SE to enable this capability.

Exensio software is available as either an on-premise license or SaaS and is offered in four main, separately-offered Exensio products targeting the needs of the customer’s business model: Exensio IDM, Exensio Fabless, Exensio Foundry, and Exensio OSAT. Each of these products are comprised of two or more modules to provide specific capabilities to address a particular type of company’s needs and requirements; however, there are common features, functionality, and purpose across some of the key modules as follows:

Manufacturing Analytics – This module uses our proprietary database schema to store collected data in a common, unified environment with a consistent view. For example, product engineers use it to identify and analyze production yield, performance, reliability and other issues. Elements of this module are designed to handle very large and complex data sets that are commonplace in the semiconductor industry. To support the multi-dimensional product requirements of our customers, the powerful, interactive visualization and analysis capabilities in this product are highly flexible and user-configurable.
Process Control – This module provides failure detection and classification (“FDC”) capabilities for monitoring, alarming, and control of manufacturing tool sets. These capabilities include proprietary data collection and analysis of tool sensor trace data and summary indicators designed to rapidly identify sources of process variations and manufacturing excursions. When used together with Manufacturing Analytics and related modules, the accretive data mining and correlation capabilities are designed to enable identification of tool level sources of yield loss and process variation and enable predictive and proactive optimization decisions for process control, process adjustments, preventive maintenance scheduling, tool corrective actions, wafer dispatching, and wafer level and final test to impact end of line product yield, performance, and reliability.
Test Operations – This module provides comprehensive data collection and analysis capabilities for data generated during manufacturing test operations designed to optimize test operations management overall, including improving test productivity, performing part average test, supporting test floor operations, and implementing adaptive test. Test Operations is also designed to provide predictive insights based on proprietary analytics during test, assembly and packaging to maximize the efficiency of test operations, productivity improvements and yield reclamation.

7

Assembly Operations – This module provides the capability to link assembly and packaging data with other product lifecycle data, including fabrication and characterization data, across the product life cycle. Data sources could include manufacturing, wafer acceptance test, wafer sort, test and assembly, final test, and field use. The proprietary data linkage enabled by Assembly Operations is also designed to enable device manufacturers to maintain full traceability of their finished products back to the source wafer without the need for Electronic Chip IDs (“ECIDs”). This capability is becoming an essential requirement for safety-critical market segments such as automotive and military-aerospace.

Design-for-Inspection System. Our DFI™ system, which we have provided under a lease arrangement to some customers, leverages our production-proven design and analysis infrastructure and is designed to enable customers to achieve non-contact, inline electrical inspection of either our proprietary on-chip instruments or their product chip layout structures. The electrical measurements augment and enhance existing inline defect inspection and metrology methods for more effective process control and inline, direct inspection of product wafers. The DirectScan application of the DFI system includes our proprietary Exensio Characterization and Fire™ layout analysis software and the eProbe® non-contact e-beam tool. The original application of the DFI system also included our on-chip instruments. These elements are described as follows:

Proprietary Software – Our Fire module is designed to analyze IC product layout features to help determine which parts of the product layout to inspect. Our Exensio Characterization module is designed to analyze the billions of measurements collected using the eProbe tool. As part of the system offering, we generally use the Characterization module to provide our customers analysis services, a summary of our findings, and recommendations.
DFI On-Chip Instruments – Our on-chip measurement instruments are tuned to capture key features of our customers’ product layouts, including those identified using the Fire module. As part of the system offering, we generally provide design services to create these instruments. These DFI instruments are designed to be placed in test chips, scribe lines, or in product die without any area penalty, and to exhibit specific electrical responses.
eProbe® Non-Contact E-Beam Tool – Our eProbe e-beam tools are designed for contactless measurement of the electrical response of the DFI instruments and suitable product layout structures. As part of the system offering, we generally provide tool support services to customers to operate this tool. The third generation tool includes advances in accuracy and sensitivity and, in addition to enabling DFI on-chip instruments to be used for inline control for leading-edge semiconductor process nodes, is designed to enable customers to see defects in product wafers inline within acceptable queue time and much higher throughput.

Characterization Vehicle System (also branded as our CV™ System). Our CV system is a combination of CV test chips, hardware to test such products, software to analyze the test results, and related services. This system is designed to accelerate the efficiency of yield learning by shortening the learning cycle, learning more per cycle, and reducing the number of silicon wafers required in manufacturing processes. This system includes physical IP in the form of test structures and DOEs that are tuned to our customers’ product and/or process specifics, tester hardware, data analysis, and training. The primary software and hardware products included in the CV system are as follows:

CV™ Test Chips – Our proprietary test chips are designed by our professional engineers using our proprietary Fire software. These test chips are run through a customer’s manufacturing process, with intentional process modifications, to provide unique, differentiated data to explore the effects of potential process improvements given natural manufacturing variations. Our custom-designed CV test chips are optimized for our test hardware and analysis software and include DOEs tuned to each customer’s process. Types of CV test chips include:
Our full-reticle and shared-reticle CV test chips are designed to provide a fast-learning cycle and are fully integrated with third-party failure analysis and inspection tools for a complete diagnosis to

8

understand root causes. Our full-reticle CV test chips use a shortened process flow to provide a faster learning cycle for specific process modules.
Our Scribe CV test chips are inserted directly on customers’ product wafers to collect data about critical layers.
Our DirectProbe™ CV test chips are designed to enable ultra-fast yield learning for new product designs by allowing our customers to measure components of actual product layout and identify yield issues.
pdFasTest® Electrical Tester – Our proprietary electrical test hardware is optimized to quickly test our CV test chips, enabling fast defect and parametric characterization of manufacturing processes. As part of the system offering, we provide test programs for each CV test chip that are tuned to the customer’s process. This automated system provides parallel functional testing, thus minimizing the time required to perform millions of electrical measurements to test our CV test chips. We provide services to analyze the unique, differentiated data output of this tester using the Exensio Characterization software to provide actionable insights to our customers.
Exensio Characterization software – This module, which is designed to integrate seamlessly with the rest of the Exensio software, collects the data generated from our CV test products, generating models of the performance effects of process variations on these design building blocks. As part of the system offering, we also offer analysis services, if the customer elects not to do such analysis itself.

Cimetrix® Software Products. Our Cimetrix software products enable equipment manufacturers in the semiconductor and electronics industries to provide standard interfaces on their products for efficient equipment communication, control, and data collection. Numerous industry standards have been established for equipment connectivity and control, including the SEMI (Semiconductor Equipment and Materials International) defined SECS (SEMI Equipment Communication Standard), GEM (Generic Equipment Model), GEM300, and EDA (equipment data acquisition) standards. Our Cimetrix products are designed to fully support these industry standards to enable equipment manufacturers to implement robust, turnkey support for these connectivity and control standards without needing to invest engineering resources to develop their own interfaces to these standards. Factories that purchase manufacturing equipment enabled with Cimetrix-supported interfaces, benefit from consistent and robust implementations of industry standards, enabling faster and more efficient implementation of smart manufacturing initiatives that depend on the collection and analysis of manufacturing and product data. Cimetrix products are sold via perpetual licenses and typically sold as part of a software development kit (“SDK”) that helps equipment manufacturers implement them quickly. We charge a one-time fee per equipment product type for the SDK license and a one-time fee for each piece of equipment shipped that includes the Cimetrix runtime license.

Equipment Factory Connectivity – Our products for equipment factory connectivity primarily include the following:
Cimetrix CIMConnect™ is a SEMI SECS/GEM interface to the factory host for automated control and data collection. The Cimetrix CIMConnect module supports multiple-host interfaces simultaneously, which allows customers to support legacy, custom, and GEM interfaces. Cimetrix CIMConnect is used in semiconductor wafer fabrication, semiconductor back-end (test, assembly, and packaging), PV, HB-LED, disk drive, flat panel displays, printed circuit boards and other electronics manufacturing. In addition to enabling the implementation of the SEMI SECS/GEM standards E4, E5, E30, E37, E172, and E173, Cimetrix CIMConnect also supports SEMI PV2 (PVECI), A3 (PCBECI), and HB4 (HB-LED ECI) standards.
Cimetrix CIM300™ is a GEM interface for 300mm equipment using SEMI standards, including E39, E40, E87, E90, E94, E116, E148, and E157. These SEMI standards allow for the full automation required in manufacturing 300mm wafers. Cimetrix CIM300 manages the interdependencies between the standards and simplifies complex scenarios for easy implementation of the standards. These GEM300 standards are required for full automation in manufacturing of 300mm wafers. Cimetrix

9

CIM300 works with Cimetrix CIMConnect to implement the GEM300 and the original GEM suite of standards.
Cimetrix CIMPortalPlus is an interface for EDA, also known as Interface A. The EDA standards are E120, E125, E132, E134, E138, E147, and E164. Cimetrix CIMPortal Plus implements the EDA standards in a flexible architecture that collects data from multiple sources and routes the data to multiple clients simultaneously. Factories can use the data gathered through EDA interfaces for FDC, run-to-run advanced process control, equipment health monitoring, chamber/tool matching, predictive maintenance, virtual metrology, diagnostics, and many other equipment-related analytical applications.
Equipment Factory Connectivity Testing – We provide the following products for testing the interfaces developed using our equipment factory connectivity products: Cimetrix EquipmentTest™, for testing and validating compliance with the GEM and GEM300 standards, Cimetrix EDATester™, for testing and validating compliance with the EDA/Interface A standards, and performance testing of the interface, and Cimetrix ECCE Plus™ for quick testing of the EDA/Interface A interface.
Equipment Control – Our equipment control product is the Cimetrix CIMControlFramework™ (“Cimetrix CCF”) software, which includes components for supervisory control, material handling, operator interface, platform control, and factory automation requirements, to allow equipment manufacturers to meet the requirements of fabrication facilities. Developers can leverage framework components through configuration and extension or customize the framework when unique requirements exist. Cimetrix CCF is designed to allow data generated at any point on the equipment to be quickly and easily accessed by other modules or external applications. Cimetrix CIMConnect, Cimetrix CIM300, and Cimetrix CIMPortal Plus are integrated with Cimetrix CCF to support the SEMI GEM, GEM300, and EDA/Interface A standards.

Services

Our services are almost always sold together with, or to support, our products and include the following:

Software-as-a-Service – We provide services to make our Exensio software available to our customers via the Internet, generally hosted by third-party providers. SaaS is considered part of cloud computing since the software is hosted on the Internet, or the “cloud.” Since our SaaS applications are accessed from a remote server rather than installed on individual machines, it is easier to maintain. For example, when the remote software is updated, the customer’s interface is also updated for all users. Cloud computing is designed to eliminate incompatibilities between different software versions and allow us to make incremental updates without requiring software downloads. Additionally, our customers can save data to a central online location, which is designed to allow increased project collaboration. As part of these services, we also typically provide hosted management services for the software and the customer’s data stored in our cloud. These services include environment set-up and configuration, system health monitoring, data integration maintenance, integration monitoring, system updates, security, and data upload/download, and license administration.

Software Related Services – We provide software maintenance and support (“M&S”), data management services, various value-added services (“VAS”) to install, configure, or create analysis templates, and other professional services to achieve customers’ specific outcomes using our software. We call this last type of services our solutions offering and, in these cases, we tailor the use of one or more Exensio products to achieve a desired result. For example, our AIM YieldAware™ FDC solution offering is designed to identify the process control variables that have the greatest impact on product yield through professional services that analyze the data from both Exensio Process Control and elements of Exensio Manufacturing Analytics and make recommendations for the customer to implement. VAS are provided by our professional service personnel with expertise that enhances and complements the engineering teams at our customers. For example, VAS includes our data cleaning and monitoring services. One requirement of big data analytics is to have clean, harmonized data to analyze. This service offering outsources the data wrangling and management effort to free the customer to focus their efforts on analysis, which has a greater ROI to the company than data management.

Characterization Services – These services are designed to characterize key product and/or process elements, primarily into CV test structures or DFI on-chip measurement instruments, and typically do not include performance

10

incentives based on the customers’ yield achievement. We provide these services, typically together with all elements of our CV system, to foundry customers in connection with new process technology development and/or yield ramp. In Characterization engagements, we generally provide the analysis of our CV test chips and provide summary findings and recommendations to the customer. Characterization engagements can include DFI systems.

Customers

Our existing customers include foundries, IDMs, fabless semiconductor design companies, OSATs, equipment manufacturers, EMS, and ODMs, including those that embed and distribute our Assembly Operations modules in their equipment. Our semiconductor customers’ targeted product segments vary significantly, including microprocessors, memory, graphics, image sensor solutions, and communications. We believe that the adoption of our solutions by such companies for usage in a wide range of products validates the application of our solutions to the broader semiconductor market. We often have multiple contracts with a single customer or customer group, with no interdependent performance obligations. In general, our customer contracts are non-cancellable.

One customer accounted for 35% of our revenues for 2023, two customers accounted for 41% of our revenues for 2022 and two customers accounted for 27% of our revenues for 2021. No other customers accounted for 10% or more of our revenues in 2023, 2022 and 2021. Also, two customers accounted for 50% of our gross accounts receivable as of December 31, 2023, and three customers accounted for 53% of our gross accounts receivable as of December 31, 2022. We generally do not require collateral or other security to support accounts receivable. See the discussion in “Risk Factors” under Item 1A for more information about risks associated with customer concentration and contractual provisions.

International revenues accounted for approximately 44%, 50% and 55% of our total revenues for 2023, 2022 and 2021, respectively. We base these calculations on the geographic location of where the work is performed or where the customer is located. Revenues from customers by geographic area based on the location of the customers’ work sites for the last three fiscal years can be found in Note 11, “Customer and Geographic Information” to the consolidated financial statements. Additional discussion regarding the risks associated with international operations can be found under Item 1A, “Risk Factors”.

See our “Notes to Consolidated Financial Statements”, included under Part II, Item 8. “Financial Statements and Supplementary Data” for additional geographic information.

Sales and Marketing

Our sales strategy is primarily to pursue targeted accounts through a combination of our direct sales force, our service teams, and strategic alliances. After we are engaged by a customer and early in the services process, our engineers seek to establish relationships in the organization and gain an understanding of our customers’ business issues. Our direct sales and service teams combine their efforts to deepen our customer relationships by expanding our penetration across customers’ products, processes, and technologies. This close working relationship with each customer has the added benefit of helping us to identify new product areas and technologies in which we should next focus our research and development efforts. From time-to-time, we use sales representatives/agents in various locations to augment direct sales in certain territories.

We expect to continue to establish strategic alliances with process licensors, vendors in the electronic design automation software, capital equipment for IC production, and test silicon IP and mask-making software segments to create and take advantage of sales channel and co-marketing opportunities. Additionally, we expect to form relationships with key value chain participants, including foundries and OSATs, to provide services and value across the manufacturing supply chain.

Research and Development

Our research and development focuses on developing and introducing new proprietary technologies for our comprehensive platform, including our Exensio software, Cimetrix connectivity and control products, and DFI and CV systems, as well as other software products and enhancements to our existing solutions, such as field applications for DFI

11

and CV and new applications targeted to inter-operate with strategic partner products. We use a rapid-prototyping paradigm in the context of the customer engagement to achieve these goals. We have made, and expect to continue to make, substantial investments in research and development. The complexity of our technologies requires expertise in standards, physical IC design and layout, transistor design and semiconductor physics, semiconductor process integration, numerical algorithms, e-beam technology, hardware, statistics and software development. We believe that our team of engineers will continue to advance our market and technological leadership. We conduct in-house training for our engineers in certain technical areas. Our training also extends to focusing on ways to enhance customer service skills. Although it fluctuates, we can have up to one quarter of our research and development engineers assigned to one or more projects, partnered with solution services engineers, in a deliberate strategy to provide direct feedback between technology development and customer needs. We also utilize a variety of skilled independent contractors for specialized development.

Competition

The semiconductor industry is highly competitive and driven by rapidly changing design and process technologies, evolving standards, short product life cycles, and decreasing prices. We expect market competition to continue to develop and increase as the market for data and analytics continues to evolve. We believe IC companies benefit from a combination of big data management infrastructure, AI/ML-based analytics engines, and products that generate and collect differentiated data that enrich the analytics process. Currently, we are a leading provider of comprehensive commercial hardware, software and IP solutions for optimizing and improving design, manufacturing and test operations processes through the application of differentiated data and advanced analytics. As a result, we face competition from three primary groups: internal customer development or design programs, equipment solutions providers, and providers of analytical and design software. We face indirect competition from internal groups at IC companies that offer tools with varying degrees of optimization to accelerate process-design integration or test operations. Some providers of semiconductor manufacturing software, inspection equipment, electronic design automation, or design IP may seek to broaden their product offerings and compete with us. In addition, companies providing general ML and analytics software may focus on semiconductor companies and compete with us. In each of the market segments we compete in, we face competition from established and potential competitors, some of whom may have greater financial, research, engineering, manufacturing and marketing resources than we have.

We currently face indirect competition from the internal groups at IC companies and direct competition from providers of (i) yield management and/or prediction systems, such as KLA Corporation (“KLA”), Siemens AG (“Siemens”), Onto Innovation, Inc. (“Onto”), and Synopsys, Inc. (“Synopsys”); (ii) semiconductor manufacturing software, such as Applied Materials, Inc (“Applied Materials”), Synopsys, Invantest, Inc., Emerson Electric Co., Onto, and Siemens; (iii) inline inspection, metrology and electrical test equipment providers, such as ASML Holding N.V. (“ASML”), Applied Materials, KLA, and Keysight Technologies, Inc.; and, (iv) connectivity software or integration products/services supporting factory equipment connectivity or control needs of customers, such as PEER Group, Inc., Kontron AIS, GmbH, Yokogawa Electric Corp., Advantest, and Kornic Automation Co. Ltd. There may be other providers of competitive commercial solutions of which we are not aware, and we may compete with the products or offerings of these named companies or additional companies if we expand our offerings through acquisitions or development. For example, since our acquisition of Cimetrix in late 2020, we now face competition in the products/services supporting the connectivity, control and integration of factory equipment. The demand for solutions that address the need for better integration between the silicon design and manufacturing processes may encourage direct competitors to enter our market. For example, in 2020, two of our competitors were acquired by larger entities, Synopsys acquired Qualtera and NI, Inc. acquired Optimal+, and each has increased marketing or pricing competition with us. For example, in 2023, Emerson Electric Co. acquired NI, Inc. This competition in our market may intensify in the future, which could lead to increased pricing pressure, negatively impacting our revenues, and slow our ability to grow or execute our strategy. Also, our current and potential customers may choose to develop their own solutions internally, particularly if we are slow in deploying our solutions or improving them to meet market needs. These and other competitors may be able to operate with a lower cost structure than our engineering organization, which would give any such competitor’s products a competitive advantage over our solutions.

We believe that our solutions compare favorably with respect to competition because we have demonstrated results and reputation, strong core technology, ability to create innovative technology, and ability to implement solutions for new technology and product generations. See the discussions in “Risk Factors” under Item 1A for more information about risks associated with our competition.

12

Human Capital Management

We believe that our future success will depend, in part, on our continued ability to hire and retain qualified management, sales, and technical employees. Consequently, we seek to engage in sound ethical and organizational governance, promote business ethics and integrity, and embrace equality, diversity, and inclusion throughout our organization.

As of December 31, 2023, we had 493 employees worldwide, including 171 field application engineers and consultants, 155 in research and development, 106 in sales and marketing, and 61 in general and administrative functions. Of these employees, 285 are located in the United States, 172 in Asia, and 36 in Europe.

None of our employees are represented by a labor union. Our employees in France and Italy are subject to collective bargaining agreements in those countries.

Our commitment to human capital management is embedded in our governance structure

At the Board level, our Compensation and Human Capital Management Committee is tasked with oversight of the development, implementation and effectiveness of our policies and strategies relating to human capital management, including strategies regarding recruiting, selection, career development and progression, and diversity and employment practices. Further, our Nominating and Corporate Governance Committee is tasked with primary oversight for governance and ESG issues.

Talent Development

We are committed to the development and growth of our employees because we believe this is crucial for our long-term success. This includes offering training, mentorship, and other development opportunities to further enhance the talent we have today, but also entails having the right skill sets for our future.

To this end, we are working to implement a planned set of actions around increasing formal programs to achieve these goals. We believe that our team of engineers will continue to advance our market and technological leadership. We conduct in-house training for our engineers in certain technical areas.

We also fund attendance at continuing education courses, symposia, and participation in professional organizations.

Employee Engagement

Employee engagement is crucial for the overall health of the organization. In 2023, we conducted a survey of all our employees to assess overall employee engagement.

In addition to our efforts to address employee engagement, we are committed to supporting our employees and creating an engaged workforce by prioritizing the items below:

personal growth through training and development;

recognizing and rewarding our people for their commitment to our values and our organization;

flexible work locations and schedules; and

providing a sense of organizational community by hosting online as well as in-person events where our people can gather and connect.

Health and Safety

13

We are committed to ensuring that proper working conditions exist for the safety of our employees, such as developing, implementing, and improving health and safety systems and conditions, and providing appropriate preparation, education, reporting, and controls.

Diversity, Equity, and Inclusion

We work to ensure that our business practices support diversity and inclusion to build an innovative workforce and to strive toward having our organization reflect the complexion of our customers and suppliers. In February 2024, after considering the recommendation of the Nominating and Corporate Governance Committee, the Compensation and Human Capital Management Committee approved, and then our Board adopted, a Human Rights policy and a Diversity, Equity, and Inclusion (“DEI”) Policy to better implement our core values and relevant standards into our governance structure.

We are strengthening our diversity and inclusion programs with actions around organizational training, on-going education and focus on our company values, and a revitalized recruitment strategy.

We value a range of diverse perspectives with reference to our business model and specific needs, including, but not limited to, gender, age, race, language, cultural background, educational background, industry experience, professional experience, and veteran and active armed service status or other similar characteristics.

Information about our Executive Officers

The following table and notes set forth information about our current executive officers as of the date of this Form 10-K.

Name

    

Age

    

Position

 

John K. Kibarian, Ph.D.

59

President, Chief Executive Officer, and Director

Adnan Raza

51

Executive Vice President, Finance and Chief Financial Officer

Kimon W. Michaels, Ph.D.

57

Executive Vice President, Products and Solutions and Director

Andrzej Strojwas, Ph.D.

71

Chief Technology Officer

John K. Kibarian, Ph.D., one of our founders, has served as President since November 1991 and has served as our Chief Executive Officer since July 2000. Dr. Kibarian has served as a director on our Board of Directors since December 1992. Dr. Kibarian received a B.S. in Electrical Engineering, an M.S. E.C.E. and a Ph.D. E.C.E. from Carnegie Mellon University.

Adnan Raza, joined in January 2020 as Executive Vice President, Finance, and was appointed Chief Financial Officer effective in March 2020. Prior to joining the Company, Mr. Raza served as an independent strategy consultant for private and public companies from July 2019 to January 2020. Prior to that, Mr. Raza served in various roles at Synaptics Inc., a developer of human interface technologies, including as Senior Vice President of Corporate Development from August 2017 to June 2019 and Vice President of Corporate Development from February 2015 to August 2017. Prior roles include technology investment banking at Goldman, Sachs & Co. and UBS Investment Bank, strategic advising at Blackreef Capital, engineering and marketing at Azanda Network Devices, and engineering at Lucent Technologies. Mr. Raza also served as a Board Member at FIDO Alliance, an alliance of leading technology companies to enhance user security and authentication. Mr. Raza holds an M.B.A. from The Wharton School at the University of Pennsylvania, a M. Eng. in Electrical Engineering from Cornell University, and a B.S. in Electrical Engineering from Valparaiso University.

Kimon W. Michaels, Ph.D., one of our founders, has served as Vice President, Products and Solutions since July 2010 and was designated as an Executive VP in February 2019. Dr. Michaels served as Vice President, Design for Manufacturability from June 2007 through June 2010. Prior to that, Dr. Michaels served as Vice President, Field Operations for Manufacturing Process Solutions from January 2006 through May 2007, and has served as a director on our Board of Directors since November 1995. From March 1993 through December 2005, he served in various vice presidential capacities. He also served as Chief Financial Officer of the Company from November 1995 to July 1998. Dr. Michaels received a B.S. in Electrical Engineering, and M.S. E.C.E. and a Ph.D. E.C.E. from Carnegie Mellon University.

14

Andrzej Strojwas, Ph.D., served as a technical advisor to the Company from our founding until 2021 and as chief technologist from 1997 to 2021. He joined the Company as an employee in July 2021 as Vice President and Technical General Manager, and was appointed Chief Technology Officer effective December 2021. From October 1982 to July 2021, Dr. Strojwas was the Keithley Professor of Electrical and Computer Engineering at Carnegie Mellon University. In addition, Dr. Strojwas has held senior technical positions at Harris Semiconductor Co., AT&T Bell Labs, Texas Instruments, NEC, Hitachi, SEMATECH, and KLA. He holds an M.S. in Electronic Engineering from Warsaw Technical University and a Ph.D. in Electrical Engineering from Carnegie Mellon University.

Available Information

We file or furnish various reports, such as registration statements, periodic and current reports, proxy statements and other materials with the SEC. Our Internet website address is www.pdf.com. You may obtain, free of charge on our website, copies of our annual reports on Form 10-K, quarterly reports on Form 10-Q, current reports on Form 8-K, and amendments to those reports filed or furnished pursuant to Section 13(a) or 15(d) of the Exchange Act, as soon as reasonably practicable after we electronically file such material with, or furnish it to, the SEC. The Company’s website address provided is not intended to function as a hyperlink, and the information on the Company’s website is not, and should not be considered, part of this Annual Report on Form 10-K and is not incorporated by reference herein.

The SEC maintains a Web site (http://www.sec.gov) that contains reports, proxy and information statements and other information regarding issuers, such as us, that file electronically with the SEC.

15


Item 1A. Risk Factors

A description of the risk factors associated with our business is set forth below. Some of these risks are highlighted in the following discussion, and in Management’s Discussion and Analysis of Financial Condition and Results of Operations, Legal Proceedings, and Quantitative and Qualitative Disclosures About Market Risk. The occurrence of any of these risks or additional risks and uncertainties not presently known to us or that we currently believe to be immaterial could materially and adversely affect our business, operating results, financial condition, and stock price. These risks and uncertainties could cause our actual results to differ materially from the results contemplated by the forward-looking statements contained in this report. Investors should carefully consider all relevant risks and uncertainties before investing in our common stock.

Risk Factors Summary

Risks Associated with Our Business

We have invested significant resources into research and development of our DFI system and Exensio software and if we fail to successfully carry out these initiatives on the expected timeline or at all, our business, financial condition, or results of operations could be adversely impacted.
Our sales cycle is lengthy and customers may delay entering into contracts or decide not to adopt our products or solutions after we have performed services or supported their evaluation of our technology, which could result in delays in recognizing revenue and could negatively impact our results of operations in a quarter or result in lower revenue than we expected if a contract is not consummated.
We rely on sole-source providers for certain software as well as for specialized parts for our eProbe hardware and supply-chain delays or disruptions could increase our costs or impact our ability to provide complete software solutions or to build additional hardware tools or meet customer expectations or deadlines, which could result in lost sales and lower earnings.
Our fixed-fee services for product or system installations/configurations may take longer than budgeted, which could slow our revenue recognition and may result in a lost contract or a claim of breach by our customers, which would negatively affect our financial and operating results.
Our ability to sell our products, systems, and solutions depends in part on the quality of our support and services offerings, and the failure to offer high-quality support and services could negatively affect our sales and results of operations.
Defects in our proprietary technologies, hardware and software tools, and failure to effectively remedy any such defects could decrease our revenue and our competitive market share.
Objectionable disclosure of our customers’ confidential information or our failure to comply with our customers’ security rules, including for those related to SaaS access, AI use, or our on-site access, could result in costly litigation, cause us to lose existing and potential customers, or negatively impact on-going business with existing customers.
We generate a significant portion of our revenues from a limited number of customers, and a large percentage of our revenues from one customer, so defaults or decreased business with, or the loss of, any one of these customers, or pricing pressure, or customer consolidation could significantly reduce our revenues or margins and negatively impact results of operations.
If we do not continuously meet our development milestones of key research and development projects or successfully commercialize our DFI system, our future market opportunity and revenues will suffer, and our costs may not be recouped.

16

We are required to comply with governmental export and import requirements that could subject us to liability and restrict our ability to sell our products and services, which could impair our ability to compete in international markets.
Decreases in wafer volumes at our customers’ manufacturing sites or the volume of ICs that some of our customers are able to sell to their customers would cause our Integrated Yield Ramp revenue to suffer.
We acquired an early-stage battery-solutions provider and have been investing in research and development for new products and services beyond our traditional semiconductor focus, and it could take a long time to reach market acceptance and recoup our costs, if at all.
Our success depends upon our ability to effectively plan and manage our resources and restructure our business through rapidly fluctuating economic and market conditions, which actions may have an adverse effect on our financial and operating results.
Our business may be negatively impacted by social, political, geopolitical, economic instability, unrest, war, terrorism, or other circumstances that could interrupt our business operations, which could cause us to lose sales or delay or be unable to fulfill contractual commitments, which may have an adverse effect on our financial and operating results.
Global economic conditions or semiconductor market conditions could materially adversely impact demand for our products and services, decrease our sales, or delay our sales cycle.
We face challenges in providing a comprehensive solution outside of the semiconductor industry due to limitations on the business areas in which we can use current third-party licensed technology, which may make it prohibitively expensive to sell our solution for applications outside of our traditional industry.

Risks Related to Our Technology

If we fail to protect our IP rights, customers or potential competitors may be able to use our technologies to develop their own solutions, which could weaken our competitive position, reduce our revenues, or increase our costs.
We are exposed to risks related to information technology infrastructure, information management and protection, cybersecurity threats, and cyber incidents.
We and our customers are subject to laws and regulations concerning data privacy, data security, consumer protection, and advertising and these laws and regulations are continually evolving, which exposes us to potential material risks.
Our technologies could infringe the IP rights of others, causing costly litigation and the loss of significant rights.
Competition in the market for data analytics and related systems and services may intensify in the future, which could impede our ability to grow or execute our strategy.
Generative AI and the user other advanced AI technologies for software development may subject us to claims of misappropriation of others’ IP, bugs/errors, and ambiguous ownership of created content.

Risks Related to Our Operations

Measurement of our variable consideration sometimes require data collection and customers’ use of estimates and are contingent upon customers’ consent and may be later offset if actual data differ from customers’ estimates, which can result in uncertainty and cause quarterly results to fluctuate.

17

We have customers with past due balances and our failure to collect a significant portion of such balances could adversely affect our cash, require us to write-off receivables, or increase our expense or allowance for credit losses.
We face operational and financial risks associated with international operations that could negatively impact our revenues.
Our business is subject to evolving corporate governance and public disclosure regulations and expectations, including with respect to ESG matters that could expose us to numerous risks.
Provision of certain of our data services relies on installing, configuring, and operating proprietary configuration of hardware and software systems located in third-party facilities and errors affecting such facilities’ operations could lead to liability for us, and any objection from such third-party facility or delay in providing us physical or logical access to our systems may adversely impact our ability to timely perform our contract obligations or lead to confidentiality, integrity, availability, security, or privacy controls exceptions.

Tax Risks

U.S. federal tax reform and changes in foreign tax laws could change our tax burden and adversely affect our business and financial condition.
Future events may impact our deferred tax asset position, including the utilization of net operating loss and tax credit carryforwards.

Risks Related to Our Strategic Transactions

We may devote significant time and resources to developing strategic relationships but we may not realize the benefits of such efforts, which could have an adverse effect on our business and results of operations.
Our acquisitions create special risks and challenges that could adversely affect our financial results.

General Risk Factors

If we are not able to retain, attract, motivate, and strategically locate talented employees, including some key executives, our business may suffer.
Our earnings per share and other operating results may vary quarter to quarter, which could result in not meeting investors’ expectations and stock price volatility.
Our business could be negatively affected as a result of actions of activist shareholders, and such activism could impact the trading value of our securities.

Risks Associated with Our Business

We have invested significant resources into research and development of our DFI system and Exensio software and if we fail to successfully carry out these initiatives on the expected timeline or at all, our business, financial condition, or results of operations could be adversely impacted.

As part of the evolution of our business, we have made substantial investments in research and development efforts to develop our DFI system and Exensio software. New competitors, technological advances in the semiconductor industry or other competitive factors may require us to further invest significantly greater resources than we anticipate. If we invest significantly greater resources than anticipated without a corresponding increase in revenue, our operating results could decline. The technologies and products that we invest in may not result in products that create additional revenue, and we

18

may not recoup our investments, which could cause our results to suffer. If our DFI system and Exensio software do not anticipate technological changes in our industry or fail to meet market demand, we may not capture the market share we anticipate, we may lose our competitive position, our products may become obsolete, and our business, financial condition or results of operations could be adversely affected. Additionally, our periodic research and development expenses may be independent of our level of revenue, which could negatively impact our financial results.

Our sales cycle is lengthy and customers may delay entering into contracts or decide not to adopt our products or solutions after we have performed services or supported their evaluation of our technology, which could result in delays in recognizing revenue and could negatively impact our results of operations in a quarter or result in lower revenue than we expected if a contract is not consummated.

On-going negotiations and evaluation projects for new products, with new customers or in new markets may not result in significant revenues for us if we are unable to close new engagements on terms favorable to us, in a timely manner, or at all. Unexpected delays in our sales cycle could cause our revenues to fall short of expectations. Further, the timing and length of negotiations required to enter into agreements with our customers and the enforcement of our complex contractual provisions is difficult to predict. If we do not successfully negotiate certain key complex contractual provisions, if there are disputes regarding such provisions, or if they are not enforceable as we intended, our revenues and results of operations would suffer. Further, our customers sometimes delay starting negotiations until they begin developing a new process, have a need for a new product, or experience specific yield issues. This means that, on occasion we have, and may continue to provide technology and services under preliminary documentation before executing the final contract. In these cases, we would not recognize revenue and may defer associated costs until execution of a final contract, which, if significant, could negatively impact our results of operations in the periods before we execute a final contract. Further, if we were to incur significant costs and then fail to enter into a final contract, we would have to write-off such deferred costs in the period in which the negotiations ended, which would increase our costs and expenses and could result in significant operating losses.

We rely on sole-source providers for certain software as well as for specialized parts for our eProbe hardware and supply-chain delays or disruptions could increase our costs or impact our ability to provide complete software solutions or to build additional hardware tools or meet customer expectations or deadlines, which could result in lost sales and lower earnings.

We provide some enabling technology under license and support from sole-source providers and some of our vendors provide highly specialized, differentiated products and services related to our eProbe system. In the event these licensors or vendors delay or discontinue providing such products and services to us, it may be difficult and costly or impossible for us to replace such suppliers or parts. In the case of licensed software, this could impact our ability to grow our sales or to meet the support expectations of our customers and we may need to resort to legal action, which could limit our future sales, harm our reputation, increase our costs, and harm our earnings. For example, in November 2023, a provider of enabling technology abruptly stopped providing maintenance and support of their software product to us. As a result, we resorted to legal action, which caused us to incur increased legal expenses beginning in the fourth quarter of 2023. The matter is ongoing, and the long-term impact of this provider’s actions on our business and our customers is unknown at this time. In the case of vendors related to our eProbe tool, such disruptions or delays could delay or stop our ability to complete and deliver our DFI systems as currently designed to our customers, which would negatively impact our bookings and revenue related to such systems. In addition, such delays or disruptions to our supply chain could significantly increase our component costs, or personnel-related costs if we need to build a replacement solution in the case of certain software elements, and could impact our ability to build future generations or models of our eProbe tools, any of which would decrease or delay our sales, earnings, and liquidity and could otherwise adversely affect our business and result in increased costs. Such a delay or disruption could occur as a result of any number of events, including, but not limited to: failure to comply with existing contracts, higher priority alternative buyers, inflation and global interest rates increasing component costs, a closure or slowdown at our suppliers’ plants or shipping delays including, for example, those made to combat the spread of COVID-19, market shortages for critical components, increases in prices, the imposition of regulations, quotas, embargoes or tariffs on components or our products, labor stoppages or shortages, our suppliers’ supply chain disruptions, third-party interference, cyberattacks, severe weather conditions including the adverse effects of climate change-related events, geopolitical developments, war or terrorism, and disruptions in utilities and other services. In addition, the

19

development, licensing, or acquisition of new products in the future may increase the complexity of supply chain management. Failure to effectively manage our supply of components and products could adversely affect our business.

Our fixed-fee services for product or system installations/configurations may take longer than budgeted, which could slow our revenue recognition and may result in a lost contract or a claim of breach by our customers, which would negatively affect our financial and operating results.

Our fixed-fee services, including for Characterization, require a team of engineers to collaborate with our customers to address complex issues by using our software and other technologies, and the installation and configuration of our software into our customers’ fabrication and test/assembly facilities requires experienced engineers working with our customers on active foundry and test/assembly equipment. We must accurately estimate the amount of time and resources needed to complete these types of services to determine when the engineers will be able to commence their next engagement. In addition, our accounting for contracts with such services, which generate fixed fees, sometimes requires adjustments to profit and loss based on revised estimates during the performance of the contract. These adjustments may have a material effect on our results of operations in the period in which they are made. The estimates giving rise to these risks, which are inherent in fixed-price contracts, include the forecasting of costs and schedules, and contract revenues related to contract performance. If we fail to meet a customer’s expectations, the customer could terminate their contract with us or claim that we breached our obligations, which could negatively affect our financial and operating results.

Our ability to sell our products, systems, and solutions depends in part on the quality of our support and services offerings, and the failure to offer high-quality support and services could negatively affect our sales and results of operations.

Once our products are integrated within our customers’ hardware and software systems, our customers may depend on our support organization to resolve any issues relating to our products. Further, in connection with delivering our SaaS Services, which requires us to maintain adequate server hardware and internet infrastructure, including system redundancies, we are required to meet contractual uptime obligations. A high level of system and support is critical for the successful marketing and sale of our products. If we do not effectively provide subscription access to our SaaS customers, assist our customers in deploying our products, succeed in helping our customers quickly resolve post-deployment issues, and provide effective on-going support and the privacy and data security capabilities required by our customers, we may face contractual penalties or customers may not renew subscriptions or services in the future, which would negatively impact our results of operations. In addition, due to our international operations, our system and support organization faces challenges associated with delivering support, hours that support is available, training, and documentation where the user’s native language may not be English. If we fail to maintain high-quality support and services or fail to adequately address our customers’ support needs, our customers may choose our competitors’ products instead of ours in the future, which would negatively affect our revenues and results of operations.

Defects in our proprietary technologies, hardware and software tools, and failure to effectively remedy any such defects could decrease our revenue and our competitive market share.

If the software, hardware, or proprietary technologies we provide to customers contain defects that negatively impact customers’ ability to use our systems or software, increase our customers’ cost of goods sold or time-to-market, or damage our customers’ property, such defects could significantly decrease the market acceptance of our products and services or could result in warranty or other claims. We must adequately train our new personnel, especially our customer service and technical support personnel, to effectively and accurately, respond to and support our customers. If we fail to do this, it could lead to dissatisfaction among our customers, which could slow our growth. Further, the cost of support resources required to remedy any defects in our technologies, hardware, or software tools could exceed our expectations. We have and may further incorporate AI solutions and related technologies for use in product development, or into our platform, offerings, services and features, and these applications may become important in our operations over time. If the content, analyses, recommendations, or other output that AI applications assist in producing are or are alleged to be deficient, inaccurate, or imprecise, our business, financial condition, and results of operations may be adversely affected. Any actual or perceived defects with our software, hardware, or proprietary technologies may also hinder our ability to attract or retain industry partners or customers, leading to a decrease in our revenue. These defects are frequently found during the period following introduction of new software, hardware, or proprietary technologies or enhancements to existing software,

20

hardware, or proprietary technologies, which means that we may not discover the errors or defects until after customer implementation. If our software, hardware, or proprietary technologies contain errors or defects, it could require us to expend significant resources to remedy these problems or defend/indemnify claims, which could reduce margins and result in the diversion of technical and other resources from our other customer implementations and development efforts.

Objectionable disclosure of our customers’ confidential information or our failure to comply with our customers’ security rules, including for those related to SaaS access, AI use, or our on-site access, could result in costly litigation, cause us to lose existing and potential customers, or negatively impact on-going business with existing customers.

In the ordinary course of providing SaaS or other services engagements, we may collect customers’ product, process, and test information, personally-identifiable data about their employees needed to administer licenses, and other confidential information. Our customers consider most of this information to be competitively sensitive and, in some cases, require us to comply with strict protection frameworks, including security rules for on-site or remote access to, hosting of, or transfer of their confidential information. As a result of increased regulatory and customer scrutiny of all data processing activities, as well as increasing and evolving regulation of such practices, we have security obligations on how we collect, transfer and use data (including personal data), which could require us to expend money and resources to comply with those requirements, and if compromised again, could have a material adverse effect on our business, financial condition, and results of operations, including the potential for regulatory investigations, enforcement actions, lawsuits, and a loss of business and a degradation of our reputation. If we fail to implement industry standard protections and processing procedures, the growing awareness of our customers and potential customers regarding privacy and data security requirements and/or adverse media coverage or regulatory scrutiny could limit the use and adoption of our services. In addition, to avoid potential disclosure of confidential information to competitors, some of our customers may, in the future, ask us not to work with key products or processes, which could limit our revenue opportunities. We recently started using third party AI/ML systems for research and development purposes. If these third-party AI/ML systems misuse or fail to properly protect the data we input, our use of such AI systems may result in the unauthorized disclosure of sensitive, proprietary, or confidential information belonging to us or our customers. For example, if the information we input into a third-party AI/ML system is used to train the underlying AI/ML models, such inputs could be revealed to others. The third-party AI/ML system may also provide outputs that appear to be correct but are incomplete, inaccurate, or otherwise flawed and may lead us to make erroneous decisions or recommendations to customers, which could result in harm to our reputation and competitive position, customer loss, and legal liability.

We generate a significant portion of our revenues from a limited number of customers, and a large percentage of our revenues from one customer, so defaults or decreased business with, or the loss of, any one of these customers, or pricing pressure, or customer consolidation could significantly reduce our revenues or margins and negatively impact results of operations.

Historically, we have had a small number of large customers that contribute significant revenues. In the year ended December 31, 2023, one customer accounted for 35% of our total revenues. We have in the past and could in the future lose a customer due to its decision not to develop or produce its own future process node or not to engage us on future process nodes. We could also lose customers as a result of industry factors, including but not limited to reduced manufacturing volume or consolidation. Consolidation among our customers could also lead to increased customer bargaining power, or reduced customer spending on software and services. Further, new business may be delayed or prevented if a key customer uses its leverage to push for terms that are worse for us and we delay entering into the contract to negotiate for better terms or decide not to enter into the contract at all, in which case revenue in any particular quarter or year may fail to meet expectations and our reliance on our remaining customers could increase.

Further, if any of our key customers default, declare bankruptcy or otherwise delay or fail to pay amounts owed, or we otherwise have a dispute with any of these customers, our results of operations would be negatively affected in the short term and possibly the long term. For example, in 2023, 2022 and 2021, we incurred expenses in the amount of $2.6 million, $1.9 million and $2.0 million, respectively, related to the arbitration with SMIC New Technology Research & Development (Shanghai) Corporation due to SMIC’s failure to pay fees due to us under a series of contracts. In 2024, we may continue to incur substantial additional expenses related to an arbitration hearing to resolve this matter. The loss of revenue from any of our key customers would cause significant fluctuations in results of operations because our expenses are fixed in the short term and it takes us a long time to replace customers or reassign resources.

21

If we do not continuously meet our development milestones of key research and development projects or successfully commercialize our DFI system, our future market opportunity and revenues will suffer, and our costs may not be recouped.

We have invested significantly in the design and development of our eProbe tool and related IP. Key customers failing to purchase, renew, or expand the number or use of such systems on our expected timeline or at all will cause our results to miss expectations. Also, if the results of our DFI system, including new applications, are not as we expect, we may not be able to successfully commercialize this system or such applications on schedule, or at all, and we may miss the market opportunity and not recoup our investment. Further, our eProbe tool could cause unexpected damage to wafers or delay processing wafers, which we could be liable for, or which could make customers unwilling to use the tool. If we are not able to create significant interest and show reliable and useful results without significant damage to wafers, our investment may not be recouped and our future results may suffer.

We are required to comply with governmental export and import requirements that could subject us to liability and restrict our ability to sell our products and services, which could impair our ability to compete in international markets.

We are required to comply with export controls and economic sanctions laws and regulations that restrict selling, shipping, or transmitting our products and services and transferring our technology outside the United States. These requirements also restrict domestic release of software and technology to foreign nationals. In addition, we are subject to customs and other import requirements that regulate imports that are important for our business. If we fail to comply with the U.S. Export Administration Regulations (“EAR”) or other U.S. or non-U.S. export or economic sanctions laws and regulations (collectively, “Export Regulations”), we could be subject to substantial civil and criminal penalties, including fines for the Company and the possible loss of the ability to engage in exporting and other international transactions. Due to the nature of our business and technology, Export Regulations may also subject us to governmental inquiries regarding transactions between us and certain foreign entities.

Export Regulations are fluid, complex, and uncertain, and there are ongoing efforts throughout the industry in coordination with regulators to revise, clarify, and interpret Export Regulations. The U.S. Congress and regulators continue to consider significant changes in laws and regulations. For example, the U.S. government is reportedly considering whether and/or how to impose restrictions directly on cloud-hosted services and further restrictions directly on U.S. person activity. We cannot predict the impact that additional legal changes may have on our business in the future. For example, in October 2022 the U.S. Bureau of Industry and Security (“BIS”) promulgated broad, novel Export Regulations relating to China that temporarily caused us to pause some deliveries while we interpreted the application of the new regulations on our business, given current and evolving operations. Also, BIS has placed certain entities on its entity list (the “Entity List”), which restricts supply of items to or in connection with the named entities. Further, in some circumstances Export Regulations require a license to export an item if the recipient will use the item to design or produce an item for a Huawei-affiliated company or certain other organizations on the Entity List. These regulations can also require licenses for exports that involve Chinese military or intelligence-related end users or end uses.

Future changes in Export Regulations, including changes in the enforcement and scope of such regulations, may create delays in the introduction of our products or services in international markets or could prevent our customers with international operations from deploying our products or services globally. In some cases, such changes could prevent the export of our products or services to certain countries, governments, entities or individuals altogether. Any such delays or restrictions could adversely affect our business, financial condition and results of operations. For further discussion, see Item 7. “Management’s Discussion and Analysis of Financial Condition and Results of Operations.”  

Decreases in wafer volumes at our customers’ manufacturing sites or the volume of ICs that some of our customers are able to sell to their customers would cause our Integrated Yield Ramp revenue to suffer.

Our Integrated Yield Ramp revenue includes amounts largely determined by variable wafer volumes at manufacturing sites covered by our contracts and, in some cases, determined by the volume of an IC product that our customer is able to sell to its customers. Both of these factors are outside of our control. We have seen a significant reduction in our Integrated Yield Ramp revenue in recent years and expect this trend to continue. Further, some of our manufacturing customers’ business is largely dependent on customers that use our manufacturing customer as a second or third source. If those

22

customers consolidate and/or otherwise move the orders to manufacturing facilities not covered by our contracts, or suspend their manufacturing at covered facilities for any reason, including consolidation, our Integrated Yield Ramp revenue will continue to decrease, which could negatively affect our financial results. Further, reduced demand for semiconductor products or protectionist policies like those stemming from the complex relationships among China, Hong Kong, Taiwan, and the United States has from time to time decreased and may continue to decrease the volume of wafers and, in some cases, products our customers are able to make or sell, which would also decrease our Integrated Yield Ramp revenue. Also, our customers may unilaterally decide to implement changes to their manufacturing processes during the period that volume is covered by royalty contracts, which could negatively affect yield results and, thus, our Integrated Yield Ramp revenue.

Since we currently work on a small number of large projects at specified manufacturing sites and, in some cases, on specific IC products, our results of operations have been and may continue to be adversely affected by negative changes at those sites or in those products, including slowdowns in manufacturing due to external factors, such as U.S. trade restrictions, rising inflation and global interest rates, or continued or worsening supply chain disruptions. Also, if wafer orders from sites covered by our contracts are not secured by our customers, if an end product does not achieve commercial viability, if a process line or, in some cases, a specific product, does not achieve significant increases in yield or sustain significant volume manufacturing during the time we receive royalties, revenues associated with such volumes or products would be negatively impacted. This could significantly reduce our Integrated Yield Ramp revenue and our results of operations could fail to meet expectations. In addition, if we work with two directly competitive manufacturing facilities or products, volume in one may offset volume, and thus any of our related revenue, in the other facility or product.

We acquired an early-stage battery-solutions provider and have been investing in research and development for new products and services beyond our traditional semiconductor focus, and it could take a long time to reach market acceptance and recoup our costs, if at all.

In July 2023, we acquired Lantern Machinery Analytics, Inc., an early-stage company providing products and services for battery manufacturers, which is beyond our traditional semiconductor focus. We have also invested in research and development to expand the application of our existing products and services to battery manufacturers. If we do not create products and services battery manufacturers desire, we may not be able to successfully commercialize our solutions for battery manufacturing on schedule, or at all. In this case, we may miss the market opportunity, which would mean lower sales than we expect, the loss of our investments in battery manufacturing solutions, which would mean lower earnings.

Our success depends upon our ability to effectively plan and manage our resources and restructure our business through rapidly fluctuating economic and market conditions, which actions may have an adverse effect on our financial and operating results.

Our ability to successfully offer our products and services in a rapidly evolving market requires an effective planning, forecasting, and management process to enable us to appropriately scale and adjust our business and business models in response to fluctuating market opportunities and conditions, which has in the past and could in the future continue to require us to increase headcount, acquire new companies or engage in restructurings from time to time. For example, while we have increased investment in our business by increasing headcount, acquiring companies, and increasing our investment in research and development, sales and marketing, and other parts of our business from time to time, at other times we have undertaken restructuring initiatives to reduce expenses and align our operations with our evolving business needs. Some of our expenses related to such efforts are fixed costs that cannot be rapidly or easily adjusted in response to fluctuations in our business or headcount. Rapid changes in the size, alignment or organization of our workforce, including sales account coverage, could adversely affect our ability to develop and deliver products and services as planned or impair our ability to realize our current or future business and financial objectives. Our ability to capitalize on the market opportunity and achieve cost savings and other benefits from restructuring initiatives within the expected time frame requires significant management input and leadership and is subject to many estimates and assumptions, which are subject to significant economic, competitive and other uncertainties, some of which are beyond our control. If these estimates and assumptions are incorrect, and we are unsuccessful at implementing changes, or if other unforeseen events occur, our business and results of operations could be adversely affected.

23

Our business may be negatively impacted by social, political, geopolitical, economic instability, unrest, war, terrorism, or other circumstances that could interrupt our business operations, which could cause us to lose sales or delay or be unable to fulfill contractual commitments, which may have an adverse effect on our financial and operating results.

Our business operations may be negatively impacted by social, political, economic instability, unrest, war, terrorism, or other circumstances in a region in which we operate. Such events may result in restrictions, curfews, or other actions and give rise to significant changes in regional and global economic conditions and cycles, which may adversely affect our financial and operating results. Further geopolitical uncertainties, including relations between the United States and each of China and Russia, between Israel and Palestine, social activism, economic instability, war, terrorism, or other circumstances that interrupt our ability to conduct business could cause damage to, disrupt, or cancel sales of our products and services on a global or regional basis, which could have a material adverse effect on our business or vendors with which we do business. Due to the significance of our China market for our profit and growth, we are exposed to risks in China, including the risks mentioned elsewhere and the following: the effects of current U.S.-China relations, including rounds of tariff increases and retaliations and increasing restrictive regulations, potential boycotts and increasing anti-Americanism; escalating U.S.-China tension and increasing political sensitivities in China; the effects of China government funding in the development of domestic solutions and customer preference for domestic suppliers creating additional competition in China; and unexpected governmental regulations and restrictions in China as a result of renewed efforts to contain the COVID-19 pandemic, which could negatively impact our local operations. Such events could also make it difficult or impossible for us to deliver products and services to our customers. In addition, territorial invasions can lead to cybersecurity attacks on technology companies, such as ours, located far outside of the conflict zone. We do not have a business continuity plan developed to account for all continuity risks (please see Item 1C. Cybersecurity for more information about our cybersecurity risk management program). In the event of prolonged business interruptions or negative broad economic and security conditions due to political, geopolitical events, we could incur significant losses, require substantial recovery time, and experience significant expenditures in order to resume our business operations. In addition, our insurance policies typically contain a war exclusion of some description and we do not know how our insurers are likely to respond in the event of a loss alleged to have been caused by geopolitical uncertainties.

Global economic conditions or semiconductor market conditions could materially adversely impact demand for our products and services, decrease our sales, or delay our sales cycle.

Our customers are global semiconductor companies, which means that our operations and performance depend significantly on worldwide economic conditions as well as semiconductor market specific changes. Uncertainty about global economic conditions including war, terrorism, geopolitical uncertainties and other business interruptions could result in damage to, disruption, postponement or cancellation of sales of our products or services on a global or regional basis. Furthermore, tighter credit, higher interest rates, inflationary concerns, large-scale unemployment, negative financial news and/or declines in income or asset values and other macroeconomic factors could have a material adverse effect on demand for our products and services and, accordingly, on our business, results of operations or financial condition and/or vendors with which we do business. For example, the timing of the build-out of the semiconductor market in China depends significantly on governmental funding on both local and national levels and a delay in this funding could negatively affect our revenues. Further, any economic and political uncertainty caused by the United States tariffs imposed on goods from China or enhanced U.S. export regulations relating to China, among other potential countries, and any corresponding tariffs from China or such other countries in response, may negatively impact demand and/or increase the cost for our products. Further, the semiconductor industry historically has been volatile with up cycles and down cycles, due to sudden changes in customers’ manufacturing capacity requirements and spending, which depend in part on capacity utilization, demand for customers’ IC products by consumers, inventory levels relative to demand, and access to affordable capital. As a result of the various factors that affect this volatility, the timing and length of any cycles can be difficult to predict and could be longer than anticipated. Any of these events could negatively affect our revenues and make it challenging or impossible for us to deliver products and services to our customers forecast our operating results, make business decisions, and identify the risks that may affect our business, financial condition and results of operations. Customers with liquidity issues may also lead to additional credit losses.

24

We face challenges in providing a comprehensive solution outside of the semiconductor industry due to limitations on the business areas in which we can use current third-party licensed technology, which may make it prohibitively expensive to sell our solution for applications outside of our traditional industry.

Since our software requires certain third-party programs to run as intended and some of our contracts with licensors limit the industry in which we can resell such third-party programs, we face challenges to provide a comprehensive solution to battery manufacturers. If we or our customers are unable to procure required third-party programs that can be used in connection with our products for battery manufacturing, or the cost to do so is higher than expected, we may miss the market opportunity, which would mean lower sales than expected, or our costs may be higher, which would mean lower earnings than expected.  

Risks Related to Our Technology

If we fail to protect our IP rights, customers or potential competitors may be able to use our technologies to develop their own solutions, which could weaken our competitive position, reduce our revenues, or increase our costs.

Our success depends largely on the protection of our proprietary technology. Our contractual, patent, copyright, trademark, and trade secret protection may not be effective against any particular threat or in any particular location. Our pending patent applications may not result in issued patents, and even if issued, they may not be sufficiently broad to protect our proprietary technologies. Some foreign countries do not currently provide effective legal protection for IP and our ability to prevent the unauthorized use of our products in those countries is therefore limited. Our trade secrets may also be stolen, otherwise become known, or be independently developed by competitors. Litigation may be necessary from time to time to enforce our IP rights. As a result of any such litigation, we could lose our proprietary rights and incur substantial unexpected operating costs. Litigation could also divert our resources, including our managerial and engineering resources. If we are unable to exclude others from using our proprietary technologies and methods without compensation to us, through litigation or otherwise, it could impede our ability to grow our business and our revenues may suffer.

We are exposed to risks related to information technology infrastructure, information management and protection, cybersecurity threats, and cyber incidents.

We are heavily reliant on our technology and infrastructure, as well as the public cloud to an increasing degree, to provide our products and services to our customers. Additionally, we must frequently expand our internal information system to meet increasing demand in storage, computing and communication, which may result in increased costs. Our internal information system is expensive to expand and must be highly secure due to the sensitive nature of our customers’ information that we transmit. Building and managing the support necessary for our growth places significant demands on our management and resources. These demands may divert these resources from the continued growth of our business and implementation of our business strategy. Bad actors may make increased use of widely available access to generative AI technology, such as ChatGPT, for more sophisticated and frequent cyber-attacks or fraudulent impersonations against us. These attacks could come from either Advanced Persistent Threat actors or other individual organized or unorganized malicious actors.  The expense to purchase, update, and configure security information systems to detect and/or neutralize increasingly complex and sophisticated attacks may increase our costs and, failure to acquire the right expertise or systems may leave us vulnerable to attacks, which could expose our confidential or competitive information or that of our customers, which could expose us to liability and have a negative impact on our reputation and business opportunity.

We rely on third-party service providers to enable key services to our customers, including for cloud services, enterprise software, customer support portal software, and co-location computing facilities. We have experienced in the past, and may experience in the future, interruptions in our information systems on which our global operations depend or unplanned downtime of the infrastructure that delivers our SaaS. Such an unplanned interruption, even if temporary, could stop SaaS customers from accessing their hosted data or on-premise customers from downloading licensed software or critical security patches, or from accessing our support portal, which could mean that we may not meet our contractual commitments for such services to customers, which could reduce our revenue, incur liability, or result in damage to our reputation and negatively impact future sales. Further, the information technology and infrastructure that stores and processes our and our customers’ data is susceptible to continually evolving cybersecurity threats that become more

25

complex over time, especially with the rapid evolution of AI technologies, and may not be recognized until launched against a target, all of which could result in unauthorized access to, or acquisition of, our data, and interruption or disruption of our business. We and our third-party service providers, with whom we may share data, may be unable to anticipate these techniques or may not implement adequate preventative measures to prevent either unauthorized access to our systems or services that could compromise customer data or other confidential information or result in a disruption of our services. In particular, like our peers, we are often the target of cyber-attacks by third parties seeking unauthorized access to confidential or sensitive data, including customer confidential information, or to disrupt our ability to provide services from a broad range of threat actors, including foreign governments, criminals, competitors, computer hackers, cyber terrorists and politically motivated groups or individuals. To date, we have not incurred any material costs from these attacks.  The security measures we have integrated into our internal systems, SaaS, and software products, which are designed to detect unauthorized intrusions or activity and prevent or minimize security breaches, vary in maturity across our business and may not function as expected or may not be sufficient to protect against certain attacks. Additionally, we may not have sufficient audit logs to fully understand the nature of a cyber-attack.  In some cases, we do not have contracts to provide legal protection or recourse for breaches of our security protections, which may increase our exposure to expenses related to such attacks and negatively impact our results.

Ransomware attacks are becoming increasingly prevalent and severe, and can lead to significant interruptions in our operations, loss of data and income, reputational loss, diversion of funds, and may result in fines, litigation and unwanted media attention. Extortion payments may alleviate the negative impact of a ransomware attack, but we may be unwilling or unable to make such payments due to, for example, applicable laws or regulations prohibiting payments. Territorial invasions like Russia’s invasion of Ukraine or other geopolitical events can lead to cybersecurity attacks on technology companies, such as ours, located far outside of the conflict zone. In the event of prolonged business interruptions due to a security breach or disruption, we could incur significant losses, require substantial recovery time and experience significant expenditures in order to resume our business operations.

Our information systems are susceptible to computer viruses, cyber-related security breaches, and similar disruptions from unauthorized intrusions, tampering, misuse, criminal acts including phishing, or other events or developments that we may be unable to anticipate or fail to mitigate. Our security measures may also be circumvented or bypassed due to employee errors or malfeasance. Third parties may attempt to fraudulently induce employees or customers to disclose information in order to gain access to our data or our customers’ data, including account credentials, customer personnel information, or other information. If we fail to have adequate controls or safeguards, the security of our internal networks, electronic systems, or physical facilities could be compromised, which could result in significant legal and financial exposure, a loss of confidence in the security of our SaaS and other software products, interruptions, or malfunctions in our operations, account lock outs, and, ultimately, harm to our business, financial condition and results of operations.

We face information technology security and fraud risks due to continued support of our employee’s remote or hybrid work environment, which may create additional information security vulnerabilities and/or magnify the impact of any disruption in our information technology systems. Our increased reliance on work-from-anywhere technologies and even our employees’ expanded reliance on company-approved bring-your-own-mobile-devices may increase the risk of cybersecurity or data breaches from possible circumvention of security and monitoring systems, denial-of-service attacks or other cyber-attacks, hacking, “phishing” attacks, computer viruses, ransomware, malware, employee or insider error, malfeasance, social engineering, deep-fake impersonations, physical breaches, or other actions.

Our insurance policies may not cover losses incurred in the event our systems or data are comprised, and they are subject to retention amounts that could be substantial. Moreover, we cannot be certain that such insurance policies will continue to be available to us on economically reasonable terms, or at all, or that any insurer will not deny coverage as to any future claim.

Many of our customers and our technical partners require us to complete annual vendor security assessments which may include a requirement to complete information security self-assessments, third-party assessments, or obtain independent certifications from standards organizations. Any exception of controls found during such assessments or certification, especially if published in a report such as for SOC 2 Type 2, may need to be disclosed to a large number of customers and potential customers. Such publication of controls weaknesses could cause customers to re-evaluate their purchasing or renewal decisions, which could cause us to lose sales and, as a result, have lower earnings than expected.

26

Part of our business includes the acquisition of other companies which involves the integration of various business processes, technologies, and data systems. While such acquisitions offer strategic opportunities for growth and diversification, they also expose us to cybersecurity risks that may arise during the integration process and thereafter. Challenges in integrating information technology systems and networks may create vulnerabilities and expose the organization to unauthorized access and data breaches. The transfer and consolidation of sensitive information during acquisitions heighten data security and privacy concerns, potentially leading to regulatory compliance issues and reputational damage. Third-party relationships established by the acquired company introduce additional cybersecurity risks if not properly assessed and mitigated. Moreover, cultural differences, compliance obligations, and resource constraints further complicate the effective management of cybersecurity risks associated with acquisitions, potentially impacting the organization's financial performance and reputation.

If we experience a security event, we may have to conduct an investigation and notify individuals, customers, partners, service providers and state, federal and local governmental authorities and regulators in the U.S. and elsewhere around the globe.  Accordingly, security events could lead to significant costs and fees for legal advice, investigation support, remediation, and result in legal risk exposure, damage and harm to our reputation, and impact on our ability to keep and attract customers.

We and our customers are subject to laws and regulations concerning data privacy, data security, consumer protection, and advertising and these laws and regulations are continually evolving, which exposes us to potential material risks.

We collect, use, store or disclose (collectively, “process”) personal information, including from employees and customers, in connection with the operation of our business. The personal information we process is subject to an increasing number of federal, state, local and foreign laws regarding privacy and data security, as well as contractual commitments. Any failure or perceived failure by us to comply with such obligations may result in governmental enforcement actions, fines, litigation, or public statements against us by consumer advocacy groups or others and could cause our customers to lose trust in us, which could have an adverse effect on our reputation and business.

In the United States, we are subject to numerous federal, state and local data privacy and security laws and regulations governing the processing of information about individuals, including federal laws (e.g., FTC Act) and state privacy laws (e.g., the California Privacy rights Act and the Virginia Consumer Data Protection Act), marketing and communications laws, laws regarding credit reports, data breach notification laws, and consumer protection laws, many of which carry significant potential for active enforcement and penalties.

Abroad, our customers may be subject to the EU GDPR and UK GDPR or similar local or regional frameworks that impose a strict data protection compliance regime. Our customers may impose these obligations on us by contract, which could require us to expend resources to comply with those requirements.

More generally, given the rapidly changing data privacy and data security laws, regulations, policies and legal obligations discussed above, and because any current compliance is subject to change based on this shifting and inconsistent landscape, we could incur costs of complying with these laws and regulations, which in some cases can be enforced by our customers, other private parties in addition to government entities, are high and likely to increase in the future, particularly as the degree of regulation increases, our business grows and our geographic scope and member base expands. The impact of these laws and regulations may disproportionately affect our business in comparison to our peers in the technology sector that have greater resources.

Our technologies could infringe the IP rights of others, causing costly litigation and the loss of significant rights.

Significant litigation regarding IP rights exists in the semiconductor industry. It is possible that a third party may claim that our technologies infringe their IP rights or misappropriate their trade secrets, which has happened in the past. Any claim, even if without merit, could be time consuming to defend, result in costly litigation, require us to enter into royalty or licensing agreements, which may not be available to us on acceptable terms, or at all, subject us to damages or injunctions restricting our sale of products, invalidate a patent or family of patents, require us to refund license fees to our customers or to forgo future payments or require us to redesign certain of our products, any one of which could adversely affect our sales opportunities, expenses, and revenues.

27

Competition in the market for data analytics and related systems and services may intensify in the future, which could impede our ability to grow or execute our strategy.

Our industry is marked by rapid technological developments and innovations (such as the use of AI and ML) and evolving industry standards. If we are unable to innovate quickly enough to keep pace with our competitors in incorporating such technological developments in our product offerings, our business could be harmed. See the discussion in “Competition” in Part 1, Item 1. “Business” section for more information about our current competitors. There may be other competitors of which we are not aware, and we may compete with the products or offerings of our existing competitor companies or additional companies if we expand our offerings through acquisitions or development. The demand for solutions that address the need for better integration between the silicon design and manufacturing processes may encourage new direct competitors to enter our market. Increased competition could lead to increased pricing pressure, negatively impacting our revenues, or a decreased ability to grow or execute our strategy. Also, our current and potential customers may choose to develop their own solutions internally, particularly if we are slow in deploying our solutions or improving them to meet market needs. These and other competitors may be able to operate with a lower cost structure than our engineering organization, which would give any such competitor’s products a competitive advantage over our solutions.

Generative AI and the user other advanced AI technologies for software development may subject us to claims of misappropriation of others’ IP, bugs/errors, and ambiguous ownership of created content.

Uncertainty around new and emerging AI applications such as generative AI content creation may require additional investment to protect our proprietary datasets, ML models, and systems to test for accuracy, bias and other variables, which may be costly and could impact our profit margin if we decide to expand generative AI into our product offerings. Developing, testing, and deploying secure and reliable AI systems and tested software made using such AI systems may also increase the cost profile of our offerings. We would be liable for any inaccuracies or errors in software that we release that causes downtime or other damage to our customers’ facilities or production lines, which could greatly increase our expenses and decrease our earnings.

Risks Related to Our Operations

Measurement of our variable consideration sometimes require data collection and customers’ use of estimates and are contingent upon customers’ consent and may be later offset if actual data differ from customers’ estimates, which can result in uncertainty and cause quarterly results to fluctuate.

We can only recognize volume- or average selling price- (“ASP”) based royalties once we have reached agreement with our customers on their level of yield performance improvements or ASP and quarterly agreements are sometimes based on estimates of volume results or ASP for each quarter. Measuring the amount of yield improvement is inherently complicated and dependent on our customers’ internal processes and on certain non-public information that may not be directly available to us. Thus, there may be uncertainty as to some components of measurement or calculation. Also, some variable consideration can be highly susceptible to delays in our customers’ measurement of key factors such as reporting volumes results and level of yield or ASP. Therefore, we may have to estimate revenue related to contingent variable fees or usage- or sales-based royalties prior to the receipt of performance reports, such as royalty acknowledgements, or other related information from customers. These estimates are subject to judgment to evaluate whether it is probable that a significant revenue reversal will not occur in future periods, which could result in our recognition of less Integrated Yield Ramp revenue than expected that may later be offset when actual results become available if such results differ from estimates.

We have customers with past due balances and our failure to collect a significant portion of such balances could adversely affect our cash, require us to write-off receivables, or increase our expense or allowance for credit losses.

If our customers fail to pay receivable balances when due, our cash will decrease and we may have to incur additional expenses in an attempt to collect such receivables, to write-off a portion or all of such receivables, or to increase our expense or allowance for credit losses. Our accounts receivable balance, net of allowance for credit losses, was $44.9 million and $42.2 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable, included in

28

accounts receivable, totaled $16.4 million and $13.5 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding twelve-month period are recorded in other non-current assets and totaled $1.1 million and $0.8 million as of December 31, 2023 and 2022, respectively. Two customers accounted for 50% of our gross accounts receivable as of December 31, 2023, and three customers accounted for 53% of our gross accounts receivable as of December 31, 2022. The total allowance for credit losses was $0.9 million as of December 31, 2023 and 2022. We generally do not require collateral or other security to support accounts receivable. Despite the financial ability of these customers to pay for on-going services by PDF under valid contracts, customers may delay payments. Our allowances for potential credit losses, if any, could be insufficient, and we may need to adjust our allowance for credit losses from current estimates or write-off receivables depending on such claims in the future. If we are forced to pursue legal remedies to collect receivables, our expenses could rise significantly and our business relationship and future business with these customers could suffer.

We face operational and financial risks associated with international operations that could negatively impact our revenues.

In recent years, we have derived nearly half of our revenues from sales outside of the United States, and we expect our international business to continue to grow. We have in the past expanded and reorganized, at different times, our operations, including international operations, and may in the future continue such expansions or reorganizations by establishing or restructuring international subsidiaries, offices, or contractor relationships in locations, if and when, deemed appropriate by our management. Thus, the success of our business is subject to risks inherent in doing business internationally, including in particular:

our potential growth in China is dependent upon continued investments in the semiconductor industry by both private and public entities within China. Should circumstances change such that the level of investments is substantially reduced, our future growth potential may be limited;
some of our key engineers and other personnel are foreign nationals and they may not be permitted access to certain technical information under U.S. export laws or by certain of our customers and may have difficulty gaining access to the United States and other countries in which our customers or our offices may be located, and it may be difficult for us to recruit and retain qualified technical and managerial employees in foreign offices;
ineffective or inadequate protection or enforcement of our IP in foreign jurisdictions;
greater difficulty in collecting account receivables resulting in longer collection periods, credit losses, and increased costs to collect;
language and other cultural differences may inhibit our sales and marketing efforts and create internal communication problems between our U.S. and foreign teams, increasing the difficulty of managing multiple, remote locations and negatively impacting sales and revenue;
compliance with, inconsistencies among, and unexpected changes in, a wide variety of foreign laws and regulatory environments with which we are not familiar including, among others, issues related to human resources, personal data, tax, protection of our IP, and a wide variety of operational regulations and trade and export controls under domestic, foreign, and international law;
currency risk due to certain of our payables and our international offices’ payables are denominated in foreign currencies, including the Euro, Yen, and RMB, while predominantly all of our revenues is denominated in U.S. dollars, or in the event a larger portion of our revenues becomes denominated in foreign currencies, we would be subject to a potentially significant exchange rate risk;
inadequate local infrastructure that could result in business disruptions;

29

additional taxes, interest, and potential penalties, and uncertainty around changes in tax laws of various countries;
geopolitical instability or changes in government, including in the United States of America, could disrupt our operations or our customers’ purchases or operations or those of related supply chain participants;
quarantine, travel restrictions, or business disruptions in regions affecting our operations, stemming from actual, imminent or perceived outbreaks of contagious diseases, including COVID-19; or
economic or political instability, including but not limited to armed conflict, terrorism, interference with information or communication of networks or systems, including strained or worsening relations between the United States and China, occupation or war involving Russia and Ukraine and most recently between Israel and Hamas, and the resulting disruption to economic activity and business operations.

Further, our employees and contractors include professionals located in various international locations, including Shanghai, China and Ramallah, Palestine, and Israel, and Taiwan who provide software-related development, quality assurance, maintenance, and other technical support services for certain of our software products. Conflicts in these regions or impacting these regions, or policy changes, including policies covering export controls, that affect these or other international operations could disrupt or limit the work our employees and contractors perform and may negatively affect the range of services we are able to provide or our cost for such services.

In addition, our global operations are subject to numerous U.S. and foreign laws and regulations, including those related to anti-corruption, tax, corporate governance, imports and exports, financial and other disclosures, privacy, and labor relations. These laws and regulations are complex and may have differing or conflicting legal standards, making compliance difficult and costly. In addition, there is uncertainty regarding how proposed, contemplated, or future changes to these complex laws and regulations could affect our business. We may incur substantial expense in complying with new obligations to be imposed by these laws and regulations, and we may be required to make significant changes in our business operations, all of which may adversely affect our revenues and our business overall. Given the high level of complexity of these laws, there is a risk that some provisions may be inadvertently or intentionally breached, for example through fraudulent or negligent behavior of individual employees, our failure to comply with certain formal documentation requirements or otherwise. If we violate these laws and regulations, we could be subject to fines, penalties, or criminal sanctions, and may be prohibited from conducting business in one or more countries. Additionally, we may be held liable for actions taken by our local dealers and partners. A significant violation could significantly negatively impact our sales opportunities, operations, and financial results. Some companies in China have indicated to us that they have decided to use only local vendors as a precaution. If more companies respond to changing regulations by using local vendors, then our operations and ability to deliver products and services to customers in China and elsewhere could be significantly negatively impacted. In such case, our expected international business may be slower than expected or not materialize at all, in which case, our sales opportunities, operations, and financial results would suffer.

Further, the U.S. government has imposed broad sanctions on Russia, Belarus and certain companies and high-wealth individuals relating to the invasion of Ukraine, and has additionally maintained a bipartisan consensus favoring increased confrontation of China on trade practices and economic matters, national security, and human rights. The current U.S. Administration views technology as a domain of strategic competition in which the U.S. and its allies must stay ahead of China and has identified semiconductor, AI, 5G technologies, and the protection of U.S. supply chains as priority efforts. As a result of these government actions and policies, unless and until related restrictions are lifted, we are generally not able to supply many products, services and technologies to affected entities and countries. Our standard operations include development, distribution processes, software download sites, and professional service centers and processes located in various geographies around the world. Some customers have expressed concerns that continued action by the U.S. government could potentially interrupt their ability to make use of our products or services. The continuing tension between the U.S. government and each of the Chinese and Russian governments in trade and security matters or the perception of that tension could lead to further disruptions or reductions in international trade, deter or prevent customer purchasing activity, and may negatively impact our financial results.

30

Our business is subject to evolving corporate governance and public disclosure regulations and expectations, including with respect to ESG matters that could expose us to numerous risks.

We are subject to changing rules and regulations promulgated by a number of governmental and self-regulatory organizations, including the SEC, the Nasdaq Stock Market, and the Financial Accounting Standards Board (“FASB”). These rules and regulations continue to evolve in scope and complexity and many new requirements have been created in response to laws enacted by U.S. Congress, making compliance difficult and uncertain, including a new rule effective in late 2023 that requires us to report to the SEC all material cyber security incidents through the filing of a Form 8-K. In addition, increasingly regulators, customers, investors, employees, and other stakeholders are focusing on ESG matters and related disclosures. These changing rules, regulations and stakeholder expectations have resulted in, and are likely to continue to result in, increased general and administrative expenses and increased management time and attention spent complying with or meeting such regulations and expectations. For example, developing and acting on ESG initiatives, and collecting, measuring, and reporting ESG information and metrics can be costly, difficult and time consuming and is subject to evolving reporting standards, including the SEC’s proposed climate-related reporting requirements. We may also communicate certain initiatives and goals regarding environmental matters, diversity, responsible sourcing, social investments, and other ESG matters in our SEC filings or in other public disclosures. These initiatives and goals could be difficult and expensive to implement, the technologies needed to implement them may not be cost effective and may not advance at a sufficient pace, and we could be criticized for the accuracy, adequacy, or completeness of the disclosure of our ESG initiatives. Further, statements about our ESG initiatives and goals, and progress against those goals, may be based on standards for measuring progress that are still developing, internal controls and processes that continue to evolve, and assumptions that are subject to change. In addition, we could be criticized for the scope or nature of such initiatives or goals, or for any revisions to these goals. If our ESG-related data, processes and reporting are incomplete or inaccurate, or if we fail to achieve progress with respect to our ESG goals on a timely basis, or at all, our reputation, business, financial performance and growth could be adversely affected.

Provision of certain of our data services relies on installing, configuring, and operating proprietary configuration of hardware and software systems located in third-party facilities and errors affecting such facilities’ operations could lead to liability for us, and any objection from such third-party facility or delay in providing us physical or logical access to our systems may adversely impact our ability to timely perform our contract obligations or lead to confidentiality, integrity, availability, security, or privacy controls exceptions.

In connection with our data services offerings, we rely on installing, configuring, and operating proprietary configurations of hardware and software systems in facilities owned and operated by third parties around the world. If the third-party facility owner/operator does not allow us to install, access and maintain, or otherwise operate as intended these systems, we may not timely fulfill our contractual obligations to, or expectations of, our customers. Also, any intentional or unintentional disruption of the operation of these proprietary systems may lead to customer dissatisfaction, which could cause us to lose future bookings and reduce revenue and negatively impact our earnings. Additionally, any potential or actual malicious cybersecurity incident or accidental misconfiguration resulting in a data security incident involving these proprietary systems may require complex diagnosis and mitigation because they are located at third-party facilities and this may lead to delays, errors, lack of system availability, loss or our customers’ data integrity, or further unauthorized disclosure of customer confidential or privacy data. Further, if our system causes downtime or other disruption or loss to such third-party facility, we could be liable for damages associated with such event, which could increase our expenses and distract management, and cause other third-party facilities to not want to work with us.

Installing and maintaining such proprietary systems around the world requires that we manage the complexity of global operations of individual installations at a large number of different third parties in various countries. The cost and complexity of obtaining support, installing updated security patches, and addressing any other critical vulnerabilities in each individual physical system may lead to exceptions in controls of confidentiality, availability, integrity, security, and privacy, which could negatively impact the availability of our data services to customers, damage our reputation, or lead to lower bookings or sales.

31

Tax Risks

U.S. federal tax reform and changes in foreign tax laws could change our tax burden and adversely affect our business and financial condition.

We conduct our business globally and, as a result, are subject to taxation in the United States and foreign countries. Our future tax rates could be affected by numerous factors, including changes in tax laws or the interpretation of such tax laws, insufficient taxable income to realize deferred tax assets, and changes in accounting policies. Our filings are subject to reviews or audit by the Internal Revenue Service and state, local and foreign taxing authorities. We cannot be sure that any final determination in an audit would not be materially different than the treatment reflected in our historical income tax provisions and accruals. If additional taxes are assessed as a result of an audit, there could be a significant negative effect on our income tax provision and our operating results in the period or periods for which that determination is made. Any changes in our geographical earnings mix in various tax jurisdictions, including those resulting from transfer pricing adjustments, could materially increase our effective tax rate.

On August 9, 2022, the CHIPS and Science Act of 2022 (the “CHIPS Act”) was enacted in the United States to provide certain financial incentives to the semiconductor industry, primarily for manufacturing activities within the United States. On January 19, 2024 the House Ways and Means Committee passed with bipartisan support a proposed “tax bill” which would retroactively restore the three expired business tax provisions from the Tax Cuts and Jobs Act through the end of 2025, including the requirement to capitalize and amortize Section 174 research and experimentation (“R&E”) expenditures. The provision would delay the date when taxpayers must begin capitalizing and amortizing their “domestic” R&E expenditures until taxable years beginning after December 31, 2025, while leaving the requirement to capitalize foreign research unchanged. This change would be retroactive for taxpayers who have already filed tax returns for taxable year 2022. The tax bill is pending vote in the House and Senate. We are continuing to monitor the CHIPS Act and the proposed tax bill and related regulatory developments to evaluate their potential impact on our business and operating results. For further discussion of the CHIPS Act, see Item 7. “Management’s Discussion and Analysis of Financial Condition and Results of Operations”.

Future events may impact our deferred tax asset position, including the utilization of net operating loss and tax credit carryforwards.

Realization of our deferred tax assets is dependent primarily upon future taxable income in the applicable jurisdiction. We previously recorded a full valuation allowance against all of our U.S. federal and state deferred tax assets due to the uncertainty surrounding the future realization of these deferred tax assets. Therefore, no benefit has been recognized for the net operating loss carryforwards, tax credit carryforwards, and other deferred tax assets. The net operating loss and tax credits could expire unused and be unavailable to reduce future income tax liabilities. We intend to continue maintaining a full valuation allowance on these deferred tax assets until there is sufficient evidence to support the reversal of all or some portion of these allowances. We evaluate our deferred tax assets for realizability each reporting period. The impact of releasing some or all of such valuation allowance in a future period could be a material benefit in the period in which such release occurs.

Risks Related to Our Strategic Transactions

We may devote significant time and resources to developing strategic relationships but we may not realize the benefits of such efforts, which could have an adverse effect on our business and results of operations.

We have in the past devoted, and plan in the future to devote, time and resources to identifying, developing, and promoting strategic relationships with other suppliers to provide combined, integrated, or interoperable solutions to the semiconductor, electronics, and automotive industries. For example, from July 2020 through August 2023, we announced strategic relationships or collaborations with Advantest Corporation, Siemens, Kulicke & Soffa Industries, Inc., SAP SE, proteanTecs Ltd, and Voltaiq, Inc. The full extent of the future impact of these strategic relationships on our financial condition and results of operations is currently unknown and the failure to reap the anticipated benefits of these companies’ financial resources, technology, customer relationships, and global footprint and/or to successfully develop combined,

32

integrated, or interoperable solutions with such companies could have an adverse effect on our business and results of operations.

Our acquisitions create special risks and challenges that could adversely affect our financial results.

Our success depends on our ability to continually enhance and broaden our product offerings in response to changing technologies, customer demands, and competitive pressures. To this end, we have, from time to time, engaged in the process of identifying, analyzing, and negotiating possible acquisition transactions, and, from time to time, acquiring one or more businesses, and we expect to continue to do so in the future. We may choose to acquire new and complementary businesses, products, technologies and/or services instead of developing them ourselves. For example, we acquired Cimetrix in December 2020 for a gross purchase price of approximately $37.5 million ($31.6 million net of cash acquired) for all of its outstanding equity. We may, however, face competition for acquisition targets from larger and more established companies with greater financial resources, making it more difficult for us to complete acquisitions. We may not be successful in consummating future acquisitions on favorable terms and we may not realize the benefits that we anticipate from one or more acquisitions that we consummate. Integrating any business, product, technology, or service into our current operations could be expensive and time-consuming and/or disrupt our ongoing business. Further, there are numerous risks associated with acquisitions and potential acquisitions, including, but not limited to, problems combining the purchased operations, technologies or products, unanticipated costs, liabilities, litigation, and diversion of management’s attention from our core businesses, adverse effects on existing business relationships with suppliers and customers, risks associated with entering markets in which we have no or limited prior experience, and where competitors in such markets have stronger market positions, initial dependence on unfamiliar supply chains or relatively small supply partners, failure of our due diligence processes to identify significant problems, liabilities or other challenges of an acquired company or technology, and the potential loss of key employees, customers, distributors, vendors, and other business partners of the companies we acquire.

We may not be able to successfully integrate businesses, products, technologies, or personnel that we might acquire and the transaction may not advance our business strategy. The integration of businesses that we may acquire is likely to be a complex, time-consuming, and expensive process and we may not realize the anticipated revenues or other benefits associated with our acquisitions. If we fail to successfully manage, operate, or integrate any acquired business or if we are unable to efficiently operate as a combined organization, including through the use of common information and communication systems, operating procedures, financial controls, and human resources practices, we could be required to write-down investments and our business, financial condition, and results of operations may be adversely affected. We may also be unable to protect or enforce the IP rights of any target business that we acquire, or such target businesses may become subject to claims of IP infringement. Further, if we become subject to liabilities as a result of an acquisition, the liabilities we incur may be substantial and the amounts of such liabilities may not be covered by and/or may exceed any liability protections.

In connection with certain acquisitions, we have in the past and may in the future issue common stock, or assume equity awards, that dilute the ownership of our current stockholders, use a substantial portion of our cash resources, assume liabilities (both known and unknown), record goodwill and amortizable intangible assets that will be subject to impairment testing on a regular basis and potential periodic impairment charges, incur amortization expenses related to certain intangible assets, and incur large and immediate write-offs and restructuring and other related expenses, all of which could harm our financial condition and results of operations.

General Risk Factors

If we are not able to retain, attract, motivate, and strategically locate talented employees, including some key executives, our business may suffer.

Our success and competitiveness depend on our ability to retain, attract, motivate, and strategically locate in our offices around the globe, talented employees, including some of our key executives. Achieving this objective may be difficult due to many factors, including fluctuations in global economic and industry conditions, changes in our management or leadership, the hiring practices at our competitors or customers, cost reduction activities, and the effectiveness of our recruiting and compensation programs, including equity-based programs. Further, we have had, and

33

expect to continue to have, difficulty in obtaining visas permitting entry for some of our employees that are foreign nationals into the United States, and delays in obtaining visas permitting entry into other key countries, for several of our key personnel, which disrupts our ability to strategically locate our personnel. In the past the United States has and, in the future, the United States may again increase the level of scrutiny in granting H-1(b), L-1, and other business visas. Compliance with United States immigration and labor laws could require us to incur additional unexpected labor costs and expenses or could restrain our ability to retain skilled professionals. If we lose the services of certain of our key executives or a significant number of our engineers, it could disrupt our ability to implement our business strategy. If we do not successfully attract, retain, and motivate key employees, including key executives, we may be unable to realize our business objectives and our operating results may suffer.

Our earnings per share and other operating results may vary quarter to quarter, which could result in not meeting investors’ expectations and stock price volatility.

Our stock price has fluctuated widely during the last few years. A factor in the volatility may be that our historical quarterly operating results have fluctuated. Our future quarterly operating results will likely fluctuate from time to time and may not meet the expectations of securities analysts and investors in some future period, which could cause our stock price to decrease. A significant reduction in our stock price negatively impacts our ability to raise equity capital in the public markets and increases the cost to us, as measured by dilution to our existing shareholders, of equity financing. In addition, the reduced stock price also increases the cost to us, in terms of dilution, of using our equity for employee compensation or for acquisitions of other businesses. A greatly reduced stock price could also have other negative results, including the potential loss of confidence by employees, the loss of institutional investor interest, a hostile take-over bid, and fewer business development opportunities. Also, significant volatility in our stock price could be followed by a securities class action lawsuit, which could result in substantial costs and a diversion of our management’s attention and resources.

Our business could be negatively affected as a result of actions of activist shareholders, and such activism could impact the trading value of our securities.

In recent years, shareholder activists have become involved in numerous public companies, including our company. Shareholder activists frequently propose to involve themselves in the governance, strategic direction, and operations of a company. Such proposals may disrupt our business, increase our expenses, and divert the attention of our Board of Directors and our management and employees, and any perceived uncertainties as to our future direction resulting from such a situation could result in the loss of potential business opportunities, interfere with our ability to execute our strategic plan be exploited by our competitors, cause concern to our current or potential customers, and make it more difficult to attract and retain qualified personnel and business partners, all of which could adversely affect our business. A proxy contest for the election of directors at our annual meeting could also require us to incur significant legal fees and proxy solicitation expenses. In addition, actions of activist shareholders may cause significant fluctuations in our stock price based on temporary or speculative market perceptions or other factors that do not necessarily reflect the underlying fundamentals and prospects of our business.

Item 1B. Unresolved Staff Comments

None.

Item 1C. Cybersecurity

Cybersecurity Risk Management and Strategy

We recognize the importance of assessing, identifying, and managing material risks associated with cybersecurity threats, as such term is defined in Item 106(a) of Regulation S-K. These risks include, among other things, operational risks, intellectual property theft, fraud, extortion, harm to employees or customers, violation of privacy or security laws and other litigation and legal risk, and reputational risks. We have implemented several cybersecurity processes, technologies, and controls to aid in our efforts to assess, identify, and manage such material risks.

34

Our process for identifying and assessing material risks from cybersecurity threats operates alongside our broader overall risk assessment process, covering all company risks. As part of this process appropriate disclosure personnel will collaborate with subject matter specialists, at least annually and more frequently as necessary due to business changes or external changes, to gather insights for identifying and assessing material cybersecurity threat risks, their severity, and potential mitigations.

We also have a cybersecurity specific risk assessment process, which helps identify our cybersecurity threat risks. As part of this process, and our processes to provide for the availability of critical data and systems, maintain regulatory compliance, identify and manage our risks from cybersecurity threats, and to protect against, detect, and respond to cybersecurity incidents, as such term is defined in Item 106(a) of Regulation S-K, we undertake the below listed activities, among others:

maintain a risk register and risk assessment process based on The National Institute of Standards and Technology (“NIST”) Cybersecurity Framework;
use various third-party software testing products and services designed to test and assess the security of our software;
closely monitor emerging data protection laws and implement changes to our processes designed to comply with such laws;
undertake an annual review of our policies and statements related to cybersecurity;
proactively inform our customers of substantive changes related to customer data handling through disclosures in our SOC 2 Type 2 report or other contractually mandated disclosures;
conduct annual cybersecurity training for employees and contractors with access to PDF systems and sensitive data;
conduct incident management training and practice for individuals with responsibilities responding to a cyber incident;
conduct regular phishing email simulations for employees and contractors with access to corporate email systems to enhance awareness and responsiveness to such possible threats;
use findings and root cause analysis of cybersecurity incidents to improve our cybersecurity processes and technologies;
maintain technologies designed to provide network and endpoint monitoring, regular vulnerability assessments, and annual penetration testing to improve our information systems, as such term is defined in Item 106(a) of Regulation S-K;
carry information security risk insurance that provides protection against the potential losses arising from a cybersecurity incident;
maintain an employee handbook, Code of Conduct, and Acceptable Use policy that makes clear the importance of cybersecurity and protection of PDF and customer intellectual property; and
our incident response policy and plan specify the activities we take to prepare for, detect, respond to and recover from cybersecurity incidents, which include processes to triage, assess severity for, escalate, contain, investigate, and remediate the incident, as well as to comply with potentially applicable legal and reporting obligations and mitigate brand and reputational damage. We regularly exercise and update the plan after actual incident responses or simulated incident response scenarios.

35

We subscribe to several external independent monitoring services to score and assess our externally facing network and information services and we engage a third-party security firm at least annually to conduct external and web penetration testing exercises on our corporate network and our commercial SaaS service platform.

Our processes also address cybersecurity threat risks associated with our use of third-party service providers, including those in our supply chain or who have access to our customer and employee data or to our systems. Third-party risks are included within our broader overall risk assessment and management process, as well as our cybersecurity-specific risk identification program, both of which are discussed above. In addition, cybersecurity considerations affect the selection and oversight of our third-party service providers during vendor onboarding and during periodic reviews. We perform diligence on third parties that have access to our systems, data or facilities that house such systems or data, and regularly monitor cybersecurity threat risks identified through such diligence. Additionally, we generally require those third parties that could introduce significant cybersecurity risk to us to agree by contract to manage their cybersecurity risks in specified ways, and to agree to be subject to cybersecurity audits or independent information security assessments or certifications. Additionally, we have processes designed to monitor public and federal government database and other sources for evidence of known and/or exploited vulnerabilities in third-party services including those provided as SaaS and we take action to remediate or establish compensating controls if those systems are determined to be critical to our cybersecurity. We also maintain disaster recovery plans in place for all mission critical parts of the business, although we do not have a business continuity plan developed to account for all continuity risks.

We describe whether and how risks from identified cybersecurity threats, including as a result of any previous cybersecurity incidents, have materially affected or are reasonably likely to materially affect us, including our business strategy, results of operations, or financial condition, under the headings “We are exposed to risks related to information technology infrastructure, information management and protection, cybersecurity threats, and cyber incidents.” and “Our business is subject to evolving corporate governance and public disclosure regulations and expectations, including with respect to environmental, social and governance matters that could expose us to numerous risks.” included as part of our risk factor disclosures at Item 1A of this Annual Report on Form 10-K.

For more than 5 years, we have not experienced any material cybersecurity incidents and the expenses we have incurred from cybersecurity incidents were immaterial. This includes penalties and settlements, of which there were none.

Cybersecurity Governance

Information technology and data security, particularly cybersecurity, is a top area of focus for our Board of Directors, who views our focus in these areas as essential for the success of our company and the broader technology industry in which we operate.

As described in the Audit Committee Charter of the Board of Directors, the Audit Committee is tasked with oversight of certain risk issues, including cybersecurity. The Audit Committee is comprised entirely of independent directors, two of whom have significant work experience related to information security issues or oversight. Management reports high severity security incidents to the Audit Committee after they are discovered. Additionally, management provides a summary four times per year of all security incidents to the Audit Committee. The full Board of Directors is also provided an annual assessment of our security program, our internal response preparedness, and assessments led by outside assessors and auditors.

Our Audit Committee is regularly involved in reviewing cybersecurity risk management. At least quarterly, the Vice President of Operations presents and reviews key security metrics with the Audit Committee including a review of cyber-security events, cybersecurity initiatives and new or developing cybersecurity risks relevant to the business. The Audit Committee, which comprises at least two individuals with experience in cybersecurity and related matters, meets with these members of senior management to review our information technology and data security policies and practices, and to assess current and projected threats, cybersecurity incidents, and related risks. Our Vice President of Operations reports directly to our executive management team and advises the company on cybersecurity risks and assesses the effectiveness of information technology and data security processes and business policies impacting our overall cybersecurity risk.

36

Our cybersecurity risk management and strategy processes, which are discussed in greater detail above, are led by our Vice President of Operations and a cross section of subject matter experts from Information Technology, Exensio Cloud Operations and Corporate Legal and team. Such individuals have collectively over 30 years of prior work experience in various roles involving managing information security, data privacy risks and regulatory frameworks, developing cybersecurity strategy, implementing effective information and cybersecurity programs and experience in security controls testing and the planning and executing of independent cybersecurity assessments.

Our Incident Response Policy is reviewed annually and documents the controls and procedures for timely and accurate reporting of material cybersecurity incidents to the relevant parties, including the Audit Committee when applicable. Our Incident Response Team leads the response to any reported cybersecurity event and comprises experts from Engineering, Information Technology, Legal, Cloud Operations, and Data Security.

The Vice President of Operations and Executive Vice President of Products and Solutions are informed about and monitor the prevention, mitigation, detection, and remediation of cybersecurity incidents through their management of, and participation in, the cybersecurity risk management and strategy processes described above including the incident response.

Item 2. Properties

Our principal executive offices are located in Santa Clara, California, where we lease approximately 20,800 square feet of office space under a lease agreement that expires in August 2028. We also lease additional facilities and offices in Milpitas, California; Pittsburgh, Pennsylvania; Richardson, Texas; Salt Lake City, Utah; Deer Park, Illinois; Shanghai, China; Canada; France; Germany; Italy; Japan; South Korea; and Taiwan for local sales, product development and technical support.

We believe our existing and planned facilities and offices are adequate to meet our current needs and are being utilized consistently with our past practice. We consistently look for opportunities to minimize costs related to office space through improved efficiencies and intend to make changes to leased facilities in the future as appropriate to reflect changes in worldwide operations and headcount.

Item 3. Legal Proceedings

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2023, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued.

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023. A decision is currently expected in 2024.

Item 4. Mine Safety Disclosures

Not applicable.

37

PART II

Item 5. Market For Registrant’s Common Equity, and Related Stockholder Matters and Issuer Purchases of Equity Securities

Our common stock trades on the Nasdaq Global Market under the symbol “PDFS.” As of February 23, 2024, we had approximately 24 stockholders of record. The number of stockholders of record does not include individuals whose stock is in nominee or “street name” accounts through brokers.

Dividend Policy

No cash dividends were declared or paid in 2023, 2022 and 2021. We currently intend to retain all available funds to finance future growth, product development, and stock repurchases and, therefore, do not anticipate paying any cash dividends on our common stock for the foreseeable future.

Stock Performance Graph

The performance graph shall not be deemed “filed” for purposes of Section 18 of the Exchange Act, or otherwise subject to the liabilities under that Section and shall not be deemed to be incorporated by reference into any filing of PDF Solutions under the Securities Act, or the Exchange Act.

The following graph and tables compare the cumulative total stockholder return data for our stock since December 31, 2018, to the cumulative return over such period of (i) The Nasdaq Composite Index and (ii) The S&P 600 Information Technology (Sector) (TR) Index. The graph assumes that $100 was invested on December 31, 2018. The graph and tables further assume that such amount was initially invested in the Common Stock of the Company at a per share price of $8.43 (closing price on December 31, 2018) and that any dividends were reinvested. This performance graph and the corresponding tables are not “soliciting material,” are not deemed filed with the SEC and are not to be incorporated by reference in any filing by us under the Securities Act or the Exchange Act whether made before or after the date hereof and irrespective of any general incorporation language in any such filing. The stock price performance on the following graph and tables is not necessarily indicative of future stock price performance.

Graphic

38

Unregistered Sales of Equity Securities

None.

Purchases of Equity Securities by the Issuer and Affiliated Purchasers

On April 11, 2022, the Board of Directors adopted a new stock repurchase program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, from time to time, over the next two years. During the year ended December 31, 2023, the Company repurchased 21,340 shares under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. During the year ended December 31, 2022, the Company repurchased 714,600 shares under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.

There were no purchases made by or on behalf of the Company or any “affiliated purchaser” (as the term is defined in Rule 10b-18(a)(3) under the Exchange Act) of the Company’s common stock during the fourth quarter ended December 31, 2023.

Item 6. Reserved

Item 7.  Management’s Discussion and Analysis of Financial Condition and Results of Operations

Overview

We offer products and services designed to empower organizations across the semiconductor and electronics ecosystems to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products. We derive revenues from two sources: Analytics and Integrated Yield Ramp. Our offerings combine proprietary software, professional services using proven methodologies and third-party cloud-hosting platforms for SaaS, electrical measurement hardware tools, and physical IP for IC designs. We primarily monetize our offerings through license fees and contract fees for professional services and SaaS. In some cases, especially on our historical Integrated Yield Ramp engagements, we also receive a value-based variable fee or royalty, which we call Gainshare. Our products, services, and solutions have been sold to IDMs, fabless semiconductor companies, foundries, OSATs, capital equipment manufacturers and system houses.

Industry Trends

Certain trends may affect our Analytics revenue specifically. In particular, the confluence of Industry 4.0 (i.e. the fourth industrial revolution, or the automation and data exchange in manufacturing technologies and processes) and cloud computing (i.e. the on-demand availability of computing resources and data storage without direct active management by the user) is driving increased innovation in semiconductor and electronics manufacturing and analytics, as well as in the organization of information technology (“IT”) networks and computing at semiconductor and electronics companies across the ecosystem. First, the ubiquity of wireless connectivity and sensor technology enables any manufacturing company to augment its factories and visualize its entire production line. In parallel, the cost per terabyte of data storage has generally decreases over time. The combination of these two trends means that more data is collected and stored than ever before. Further, semiconductor companies are striving to analyze these very large data sets in real-time to make rapid decisions that measurably improve manufacturing efficiency and quality. In parallel, the traditional practice of on-site data storage, even for highly sensitive data, is changing. The ability to cost-effectively and securely store, analyze, and retrieve massive quantities of data from the cloud versus on-premise enables data to be utilized across a much broader population of users, frequently resulting in greater demands on analytics programs. The combination of these latter two trends means that cloud-based, analytic programs that effectively manage identity management, physical security, and data protection are increasingly in demand for insights and efficiencies across the organizations of these companies. We believe that all these trends will continue for the next few years, and the challenges involved in adopting Industry 4.0 and secure cloud computing will create opportunities for our combination of advanced analytics capabilities, proven and established supporting infrastructure, and professional services to configure our products to meet customers’ specialized needs.

39

Other trends may continue to affect our Characterization services business and Integrated Yield Ramp revenue specifically. For example, semiconductor manufacturers have recently been experiencing lower wafer shipments, which has negatively impacted our Integrated Yield Ramp gainshare revenue. The logic foundry market at the leading-edge nodes, such as 7nm, 5nm, and smaller, underwent significant change over the past few years. The leading foundry continues to dominate market share. This trend will likely continue to impact our Characterization services business on these nodes. We expect most logic foundries to invest in derivatives of older process nodes, such as 28nm and 14nm, to extract additional value as many of their customers will not move to advanced nodes due to either technological barriers or restrictive economics. Foundries that participate at leading edge nodes are expected to continue to invest in new technologies such as memory, packaging, and multi-patterned and extreme ultraviolet lithography, as well as new innovations in process control and variability management. We expect China’s investment in semiconductors to continue. Compliance with changing U.S. export restrictions limit our possible business with Chinese semiconductor manufacturers on advanced nodes. As a result of these market developments, we have chosen to focus our resources and investments in products, services, and solutions for analytics.

There are other global or business trends that may affect our business opportunities generally as follows:

Macroeconomy, inventories, and demand. The worldwide economy did not recover as strongly or quickly as expected after the COVID-19 pandemic, and recession fears persist. As a result of the slow recovery, inventories of semiconductor devices remain elevated in many instances. The strength of demand for semiconductor products has varied by region and product segment. For example, demand for graphical processing unit products is strong, while demand for smart phones is weak. With high inventories and soft demand, semiconductor fab utilization rates are also low and semiconductor capital equipment orders have been impacted for some vendors and market segments. As a result of these trends, customers are being cautious with their spend and some purchase cycles are lengthening and other purchase decisions are being delayed, particularly with respect to larger deals.  
Changing export controls and sanctions. The U.S. government continues to expand and intensify export controls and sanctions, with a major focus on the destinations of the People’s Republic of China (“P.R.C.”), Russian Federation, and Belarus. After an internal evaluation, we determined that a large percentage of our software products are not of U.S. origin and are, thus, not subject to the EAR. Our standard operations include development, distribution processes, software download sites, and professional service centers and processes located in various geographies around the world to better serve our customers. Some customers in the P.R.C., in particular, have nonetheless expressed concerns to us that continued action by the U.S. government could potentially interrupt their ability to make use of our products or services, which has in some cases, and could in the future, negatively impact the demand for our products and services by these customers. In October 2022 and October 2023, the U.S. government issued interim final rules adding novel and complex export control restrictions, some exclusions, and requests for public comment. In light of questions about some restrictions and guidance, the U.S. government announced on November 6, 2023 that it was developing revisions to such rules to make corrections and clarifications. We believe the government will issue these revisions in 2024, along with additional restrictions. U.S. government policy and regulation remain fluid and uncertain. Other countries and jurisdictions with important roles in our industry are updating some of their export control regulations to further align with those of the U.S. government and, in some cases, to counter U.S. regulations. For example, the P.R.C. has imposed restrictions on imports of certain memory ICs offered by U.S. companies and has been developing its legal authorities to counter foreign sanctions. The U.S. government is renewing and amplifying its caution that visitors to the P.R.C. are subject to arbitrary enforcement of local laws and wrongful detention, a risk that could deter or hinder certain business activities. Based on our current assessments, we expect the near-term impact of these expanded trade restrictions on our business to be limited, but revisions, clarifications, and proposals that are still in government development and open questions of interpretation leave much unknown. We will continue to monitor for any further trade restrictions, other regulatory or policy changes by the U.S. or foreign governments and any actions in response.  The uncertainty caused by these recent regulations and the potential for additional future restrictions could negatively affect our future sales in the P.R.C. market.
Investments in semiconductor manufacturing. In 2022, the U.S. Congress passed into law funding programs from the bipartisan CHIPS Act, authorizing the Department of Commerce, Department of Defense, and Department of State to develop onshore domestic manufacturing of semiconductors considered critical to U.S. competitiveness

40

and national security. It is expected that U.S. semiconductor companies, especially manufacturers, will increase spending as a result of receiving funds under these programs. Recipients of funding under such programs may be required to agree to separate restrictions on certain commercial activity in the P.R.C., where we currently commercially operate. If our customers engage us for projects funded by these programs, we will evaluate all restrictions, and their impact on our existing business, before entering into any contracts associated with these programs.  
Geopolitical tensions/conflicts. Geopolitical tensions and conflicts in various locations around the world continue to increase, including on the issue of Taiwan in Asia, Ukraine and Russia, and most recently between Israel and Hamas. These current situations have created volatility in the global financial markets and may have further global economic consequences, including potential disruptions of the global supply chain and heightened volatility of commodity and raw material prices. This has increased fears of a global recession. We have contractors located in the West Bank and in Israel, who are providing software development and customer technical support services, and have developed contingency plans to use alternative resources to continue serving customers, if needed. Any escalations could lead to disruptions or reductions in international trade, deter or prevent purchasing activity of customers, and negatively impact our development timelines and customer support (with respect to the Israel-Hamas conflict) or China sales (with respect to U.S.-P.R.C. tensions) and financial results in general (with respect to global tensions).

Financial Highlights

The following are our financial highlights for the year ended December 31, 2023:

Total revenues were $165.8 million, an increase of $17.3 million, or 12%, compared to the year ended December 31, 2022. Analytics revenue was $152.1 million, an increase of $21.6 million, or 17%, compared to the year ended December 31, 2022. The increase in Analytics revenue was driven by increases in revenue from DFI and CV systems, including sales-type leases of DFI assets, and an increase in revenue from Exensio software licenses, partially offset by a decrease in revenues from Cimetrix software licenses due to a decrease in orders for runtime licenses. Integrated Yield Ramp revenue decreased $4.3 million, or 24%, compared to the year ended December 31, 2022, primarily due to a decrease in hours worked on fixed fee engagements and a decrease in Gainshare from decreased customer wafer shipments at non-leading-edge nodes.
Costs of revenues increased $3.8 million for the year ended December 31, 2023, compared to the year ended December 31, 2022, primarily due to increases in hardware costs, travel expenses, subcontractor fees and software licenses and maintenance costs. These increases were partially offset by decreases in personnel-related costs.
Net income was $3.1 million for the year ended December 31, 2023, compared to a net loss of $3.4 million for the year ended December 31, 2022. The increase in net income was primarily attributable to (i) an increase in total revenues, (ii) an increase in interest income, (iii) a decrease in research and development expenses and (iv) a decrease in income tax expenses, partially offset by increases in (a) costs of revenues, (b) selling, general, and administrative expenses, which were primarily related to increases in personnel-related costs, travel expenses, legal fees related to the arbitration proceeding over a disputed customer contract, third-party cloud-services related costs, property tax expenses, general legal expenses, trade conference-related expenses, and business acquisition costs, and (c) foreign currency transaction exchange losses.
Cash, cash equivalents and short-term investments decreased $3.7 million to $135.5 million as of December 31, 2023, from $139.2 million as of December 31, 2022, primarily due to payments to vendors, payments of accrued bonuses and income taxes, purchases of and prepayments for property and equipment, payments of taxes related to net share settlement of equity awards, payments for a business acquisition, and repurchases of common stock, partially offset by cash collection from customers, interest income from cash, cash equivalents and short-term investments, and proceeds from purchases under our employee stock purchase plan and exercise of stock options.

41

Critical Accounting Estimates

The preparation of financial statements and related disclosures in conformity with accounting principles generally accepted in the United States requires us to make judgments, assumptions, and estimates that affect the amounts reported in the Consolidated Financial Statements and accompanying notes. Notes 1 and 2 of Notes to the Consolidated Financial Statements describe the significant accounting policies and methods used in the preparation of the Consolidated Financial Statements. We consider the accounting policies described below to be our critical accounting policies. These critical accounting policies are impacted significantly by judgments, assumptions, and estimates used in the preparation of the Consolidated Financial Statements and actual results could differ materially from the amounts reported based on these policies.

Revenue Recognition

We derive revenue from two sources: Analytics and Integrated Yield Ramp.

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone Software (which consists primarily of Exensio and Cimetrix products), SaaS (which consists primarily of Exensio products), and DFI and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is distinct from the services offered by us. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”) attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without taking possession of software, is accounted for as subscriptions and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, we allocate revenue to all deliverables based on their SSPs. For these contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment.

The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under Topic 842, Leases; otherwise, it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are

42

recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics Revenue in the Consolidated Statements of Comprehensive Income (Loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in Property and equipment, net and continue to be depreciated. Assets subject to sales-type leases are derecognized from Property and equipment at lease commencement and a net investment in the lease asset is recognized in Prepaid expenses and other current assets and Other non-current assets in the Consolidated Balance Sheets.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from our yield ramp engagements that include Gainshare or other performance incentives based on customers’ yield achievement.

Revenue under these project–based contracts, which are delivered over a specific period of time typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, we allocate revenue to all deliverables based on their SSPs and allocate the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment.

The Gainshare royalty contained in yield ramp contracts is a variable fee related to continued usage of our IP after the fixed-fee service period ends, based on the customers’ yield achievement. Revenue derived from Gainshare is contingent upon our customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. We record Gainshare as a usage-based royalty derived from customers’ usage of IP and record it in the same period in which the usage occurs.

Income Taxes

We are required to assess whether it is “more likely than not” that we will realize our deferred tax assets. If we believe that they are not likely to be fully realizable before the expiration dates applicable to such assets, then to the extent we believe that recovery is not likely, we must establish a valuation allowance. Based on all available evidence, both positive and negative, we determined a full valuation allowance was still appropriate for our U.S. federal and state net deferred tax assets (“DTAs”), primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2023, and the likelihood that we may not utilize tax attributes before they expire. The valuation allowance was approximately $64.2 million and $59.2 million as of December 31, 2023 and 2022, respectively. We will continue to evaluate the need for a valuation allowance and may change our conclusion in a future period based on changes in facts (e.g., 12-quarter cumulative profit, significant new revenue, etc.). If we conclude that we are more likely than not to utilize some or all of our U.S. DTAs, we will release some or all of our valuation allowance and our tax provision will decrease in the period in which we make such determination.

We evaluate our DTAs for realizability considering both positive and negative evidence, including our historical financial performance, projections of future taxable income, future reversals of existing taxable temporary differences, tax planning strategies and any carryback availability. In evaluating the need for a valuation allowance, we estimate future taxable income based on management approved business plans. This process involves significant management judgment about assumptions that are subject to change from period to period based on changes in tax laws or variances between future projected operating performance and actual results. Changes in the net DTAs, less offsetting valuation allowance, in a period are recorded through the income tax provision and could have a material impact on the Consolidated Statements of Comprehensive Income (Loss).

43

Our income tax calculations are based on the application of applicable U.S. federal, state, and/or foreign tax law. Our tax filings, however, are subject to audit by the respective tax authorities. Accordingly, we recognize tax liabilities based upon our estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different than the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Income (Loss). As of December 31, 2023, no deferred taxes have been provided on undistributed earnings from our international subsidiaries. We intend to reinvest the earnings of our non-U.S. subsidiaries in those operations indefinitely. As such, we have not provided for any foreign withholding taxes on the earnings of foreign subsidiaries as of December 31, 2023. The earnings of our foreign subsidiaries are taxable in the U.S. in the year earned under the Global Intangible Low-Taxed Income rules implemented under 2017 Tax Cuts and Jobs Act.

The CHIPS Act was signed into U.S. law on August 9, 2022. The CHIPS Act is intended to increase domestic competitiveness in semiconductor manufacturing capacity, increase research and development in computing, AI, clean energy, and nanotechnology through federal government programs and incentives over the next ten years. The CHIPS Act includes an advanced manufacturing tax credit equal to 25% of qualified investments in property purchased for an advanced manufacturing facility. We have begun to see some benefit from the CHIPS Act to our business, but the extent of future benefit is still unknown.

Stock-Based Compensation

We account for stock-based compensation using the fair value method, which requires us to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of our restricted stock units is equal to the market value of our common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of our stock options and purchase rights granted under employee stock purchase plans is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of our common stock over the most recent period commensurate with the estimated expected life of our stock options and purchase rights granted under employee stock purchase plans. The expected life is based on historical experience and on the terms and conditions of the options granted and purchase rights granted under employee stock purchase plans. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of our stock options and purchase rights granted under employee stock purchase plans.

Business Combinations

We allocate the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require us to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. The estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects our amortization expense, as acquired finite-lived intangible assets are amortized over their useful life, whereas any indefinite lived intangible assets, including in-process research and development and goodwill, are not amortized. During the measurement period, which is not to exceed one year from the acquisition date, we record adjustments to the assets acquired and liabilities assumed,

44

with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings in the Consolidated Statements of Comprehensive Income (Loss).

Valuation of Long-lived Assets including Goodwill and Intangible Assets

We record goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. We have one operating segment and one operating unit. We perform an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill. There was no impairment of goodwill for the years ended December 31, 2023, 2022 and 2021.

Our long-lived assets, excluding goodwill, consist of property, equipment, and intangible assets. We periodically review our long-lived assets for impairment. For assets to be held and used, we initiate our review whenever events or changes in circumstances indicate that the carrying amount of a long-lived asset group may not be recoverable. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value. There was no impairment of intangible assets for the years ended December 31, 2023, 2022 and 2021. In fiscal 2021, we wrote down the value of property and equipment aggregating $3.2 million pertaining to our first-generation of e-beam tools for DFI™ systems where carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.

Leases

We have operating leases for our administrative and sales offices, research and development laboratory and clean room. We recognize our long-term operating lease rights and commitments as operating lease right-of-use assets, operating lease liabilities and operating lease liabilities, non-current, respectively, on our Consolidated Balance Sheets.

We determine if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on our Consolidated Balance Sheets. In addition, our leases do not provide an implicit rate. In determining the present value of our expected lease payments, the discount rate is calculated using our incremental borrowing rate determined based on the information available, which requires additional judgment.

Recent Accounting Pronouncements and Accounting Changes

See our Note 1, “Description of Business and Summary of Significant Accounting Policies” of “Notes to Consolidated Financial Statements” included under Part II, Item 8 of this Form 10-K for a description of recent accounting pronouncements and accounting changes, including the dates of adoption and estimated effects, if any, on our consolidated financial statements.

45

Results of Operations

Discussion of Financial Data for the years ended December 31, 2023 and 2022

Revenues, Costs of Revenues, and Gross Margin

Year Ended December 31, 

%  

$ Change

%  

% Change

%  

$ Change

%  

% Change

(Dollars in thousands)

2023

    

2022

    

2021

    

2022 to 2023

 

2021 to 2022

 

Revenues:

  

 

  

 

  

 

  

 

  

  

 

  

Analytics

$

152,085

$

130,480

$

93,415

$

21,605

 

17

%

$

37,065

40

%

Integrated Yield Ramp

 

13,750

 

18,069

 

17,645

 

(4,319)

 

(24)

%

 

424

2

%

Total revenues

165,835

148,549

111,060

17,286

 

12

%

37,489

34

%

Costs of revenues

 

51,749

 

47,907

 

44,193

 

3,842

 

8

%

 

3,714

8

%

Gross profit

$

114,086

$

100,642

$

66,867

$

13,444

 

13

%

$

33,775

51

%

Gross margin

 

69

%  

 

68

%  

 

60

%  

 

  

 

  

Analytics revenue as a percentage of total revenues

 

92

%  

 

88

%  

 

84

%  

 

  

 

  

Integrated Yield Ramp revenue as a percentage of total revenues

 

8

%  

 

12

%  

 

16

%  

Analytics Revenue

Analytics revenue was $152.1 million for the year ended December 31, 2023, an increase of $21.6 million, or 17%, compared to the year ended December 31, 2022. The increase in Analytics revenue was driven by increases in revenue from DFI and CV systems, including sales-type leases of DFI assets, and an increase in revenue from Exensio software licenses, partially offset by a decrease in revenues from Cimetrix software licenses due to a decrease in orders for runtime licenses.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue was $13.8 million for the year ended December 31, 2023, a decrease of $4.3 million, or 24%, compared to the year ended December 31, 2022, primarily due to a decrease in hours worked on fixed fee engagements and a decrease in Gainshare from decreased customer wafer shipments at non-leading-edge nodes.

Our Integrated Yield Ramp revenue may continue to fluctuate from period to period primarily due to the contribution of Gainshare royalty, which is dependent on many factors that are outside our control, including among others, continued production of ICs by our customers at facilities at which we generate Gainshare, sustained yield improvements by our customers, and whether we enter into new contracts containing Gainshare.

Our revenues may also fluctuate in the future due to other factors, including the semiconductor industry’s continued acceptance of our products, services and solutions, the timing of purchases by existing and new customers, cancellations by existing customers, our ability to attract new customers and penetrate new markets, supply chain challenges and further penetration of our current customer base. Fluctuations in future results may also occur if any of our significant customers renegotiate pre-existing contractual commitments, including due to adverse changes in their own business.

Costs of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type leases), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs,

46

overhead costs, travel expenses, and allocated facilities-related costs. Software license costs consist of costs associated with third-party cloud-delivery related expenses and licensing third-party software used by us in providing services to our customers in solution engagements or sold in conjunction with our software products.

The increase in costs of revenues of $3.8 million for the year ended December 31, 2023, compared to the year ended December 31, 2022, was primarily due to (i) a $3.5 million increase in hardware costs, (ii) a $0.4 million increase in travel expenses, (iii) a $0.2 million increase in subcontractor fees, and (iv) a $0.2 million increase in software licenses and maintenance costs. These increases were partially offset by a $0.4 million decrease in personnel-related costs due to lower compensation expenses, partially offset by an increase in stock-based compensation expense.

Gross Margin

Gross margin for the year ended December 31, 2023, was 69% compared to 68% for the year ended December 31, 2022, or an increase of 1 percentage point. The higher gross margin during the year ended December 31, 2023, was primarily due to higher total revenue when compared to the year ended December 31, 2022.

Operating Expenses:

Research and Development

Year Ended December 31, 

%  

$ Change

%  

% Change

%  

$ Change

%  

% Change

(Dollars in thousands)

    

2023

    

2022

    

2021

    

2022 to 2023

    

2021 to 2022

 

Research and development

$

50,736

$

56,126

$

43,780

$

(5,390)

 

(10)

%

$

12,346

 

28

%

As a percentage of total revenues

 

31

%  

 

38

%  

 

39

%  

 

  

 

  

 

  

 

  

Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel expenses, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities.

Research and development expenses decreased $5.4 million for the year ended December 31, 2023, compared to the year ended December 31, 2022, primarily due to (i) a $5.8 million decrease in personnel-related costs mostly resulting from a lower stock-based and other compensation expenses, partially offset by worldwide salary increases and increases in headcount, and (ii) a $0.5 million decrease in facilities and IT-related costs including depreciation expense. These were partially offset by (a) a $0.3 million increase in third-party cloud-services related costs, (b) a $0.3 million increase in travel expenses, and (c) a $0.2 million increase in subcontractor expenses primarily related to Cimetrix and Exensio software.

We anticipate our expenses in research and development will fluctuate in absolute dollars from period to period as a result of the size and the timing of product development projects.

Selling, General, and Administrative

Year Ended December 31, 

%  

$ Change

%  

% Change

%  

$ Change

%  

% Change

(Dollars in thousands)

    

2023

    

2022

    

2021

    

2022 to 2023

    

2021 to 2022

 

Selling, general, and administrative

$

62,216

$

45,338

$

37,649

$

16,878

37

%  

$

7,689

20

%

As a percentage of total revenues

 

38

%  

 

31

%  

 

34

%  

 

  

  

 

  

  

Selling, general, and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing, and general and

47

administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, IT, and facilities cost allocations.

Selling, general, and administrative expenses increased $16.9 million for the year ended December 31, 2023, compared to the year ended December 31, 2022, primarily due to (i) a $14.5 million increase in personnel-related costs mainly resulting from increases in stock-based and other compensation expense, commission, employee benefit costs, headcount and worldwide salary increases, (ii) a $0.8 million increase in travel expenses, (iii) a $0.7 million increase in legal fees related to the arbitration proceeding over a disputed customer contract, (iv) a $0.4 million increase in third-party cloud-services related costs, (v) a $0.3 million increase in property tax expense, (vi) a $0.3 million increase in general legal expenses, (vii) a $0.3 million increase in trade conference-related expenses, and (viii) a $0.2 million increase in business acquisition costs. These increases were partially offset by a $0.4 million decrease in subcontractor expenses.

We anticipate our selling, general and administrative expenses will fluctuate in absolute dollars from period to period as a result of cost control initiatives and to support increased selling efforts in the future.

Amortization of acquired intangible assets

Year Ended December 31, 

%  

$ Change

%  

% Change

%  

$ Change

%  

% Change

(Dollars in thousands)

    

2023

    

2022

    

2021

2022 to 2023

    

2021 to 2022

 

Amortization of acquired intangible assets

$

1,285

$

1,270

$

1,255

 

$

15

 

1

%  

$

15

 

1

%

Amortization of acquired intangible assets primarily consists of amortization of intangibles acquired as a result of certain business combinations and was consistent for the year ended December 31, 2023 compared to the year ended December 31, 2022.

Write-down in value of property and equipment

Year Ended December 31, 

%  

$ Change

%  

% Change

%  

$ Change

%  

% Change

(Dollars in thousands)

    

2023

    

2022

    

2021

2022 to 2023

    

2021 to 2022

 

Write-down in value of property and equipment

$

$

$

3,183

 

$

 

%  

$

(3,183)

 

(100)

%

In fiscal 2021, we wrote down the value of property and equipment aggregating $3.2 million pertaining to our first-generation of e-beam tools for DFI™ systems where carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.

Interest and Other Expense (Income), Net

%  

%  

%  

%  

 

Year Ended December 31, 

$ Change

%  

% Change

    

$ Change

%  

% Change

(Dollars in thousands)

    

2023

    

2022

    

2021

    

2022 to 2023

 

2021 to 2022

 

Interest and other expense (income), net

$

(5,020)

$

(2,562)

$

(683)

$

2,458

96

%

$

1,879

275

%

Interest and other expense (income), net primarily consists of interest income and foreign currency transaction exchange gains and losses.

Interest and other expense (income), net increased $2.5 million for the year ended December 31, 2023, compared to the year ended December 31, 2022, primarily due to an increase in interest income of $4.0 million from cash, cash equivalents and short-term investments resulting from higher interest rates, partially offset by net unfavorable fluctuations in foreign currency exchange rates.

48

Income Tax Expense

%  

 

Year Ended December 31, 

%  

$ Change

%  

% Change

%  

$ Change

%  

% Change

(Dollars in thousands)

    

2023

    

2022

    

2021

    

2022 to 2023

 

2021 to 2022

 

Income tax expense

$

(1,764)

$

(3,899)

$

(3,171)

$

(2,135)

 

(55)

%

$

728

23

%

Income tax expense decreased $2.1 million for the year ended December 31, 2023, compared to the year ended December 31, 2022, primarily due to decreases in state tax expense, foreign withholding taxes and changes in the geographic mix of worldwide income, which is subject to taxation at different statutory tax rates.

Any significant change in our future effective tax rates could adversely impact our consolidated financial position, results of operations, and cash flows. Our future tax rates may be adversely affected by a number of factors including increase in expenses not deductible for tax purposes, new or changing tax legislation in the United States and in foreign countries where we are subject to tax jurisdictions, the geographic composition of our pre-tax income, the amount of our pre-tax income as business activities fluctuate, our ability to use tax attributes such as research and development tax credits and net operation losses, the tax effects of employee stock activity, audit examinations with adverse outcomes, changes in general accepted accounting principles and the effectiveness of our tax planning strategies.

Discussion of Financial Data for the years ended December 31, 2022 and 2021

For a discussion of our results of operations for the years ended December 31, 2022 and 2021, please see our Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.

Liquidity and Capital Resources

As of December 31, 2023, our working capital, defined as total current assets less total current liabilities, was $147.0 million, compared to $135.2 million as of December 31, 2022. Cash, cash equivalents and short-term investments, on a consolidated basis, were $135.5 million as of December 31, 2023, compared to $139.2 million as of December 31, 2022. As of December 31, 2023, and 2022, cash and cash equivalents held by our foreign subsidiaries were $10.0 million and $8.8 million, respectively. We believe that our existing cash resources and anticipated funds from operations will satisfy our cash requirements to fund our operating activities, capital expenditures, and other obligations, for at least the next twelve months.

Repurchase of Company’s Common Stock

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. During the year ended December 31, 2021, 251,212 shares were repurchased by the Company under the 2020 Program at an average price of $18.01 per share for an aggregate total price of $4.5 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.

On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years. During the year ended December 31, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. During the year ended December 31, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.

49

Consolidated Statements of Cash Flows Data

Year Ended December 31, 

%  

$ Change

(In thousands)

    

2023

    

2022

    

2021

%  

2022 to 2023

%  

2021 to 2022

Net cash flows provided by (used in):

 

  

 

  

 

  

 

  

  

Operating activities

$

14,600

$

32,298

$

4,243

$

(17,698)

$

28,055

Investing activities

 

(28,991)

 

84,599

 

(4,667)

 

(113,590)

 

89,266

Financing activities

 

(5,890)

 

(24,307)

 

(5,525)

 

18,417

 

(18,782)

Effect of exchange rate changes on cash and cash equivalents

 

(365)

 

(650)

 

(182)

 

285

 

(468)

Net change in cash and cash equivalents

$

(20,646)

$

91,940

$

(6,131)

$

(112,586)

$

98,071

Net Cash Provided by Operating Activities

Cash flows provided by operating activities during the year ended December 31, 2023, consisted of net income, adjusted for certain non-cash items which primarily consisted of depreciation and amortization, stock-based compensation expense, amortization of acquired intangible expense, amortization of costs capitalized to obtain revenue contracts, net accretion of discounts on short-term investments and net change in operating assets and liabilities.

Net cash flows provided by operating activities was $14.6 million for the year ended December 31, 2023, compared to net cash flows provided by operating activities of $32.3 million for the year ended December 31, 2022. The $17.7 million decrease in cash flows provided by operating activities between the years was driven primarily by payments made to vendors and employees, including under the Company’s bonus plan, partially offset by an increase in net income compared to the year ended December 31, 2022. Net income was $3.1 million for the year ended December 31, 2023, compared to a net loss of $3.4 million for the year ended December 31, 2022.

The major contributors to the net change in operating assets and liabilities for the year ended December 31, 2023, were as follows:

Accounts receivable increased by $2.7 million, primarily due to an increase in sales, an increase in unbilled accounts receivables due to timing of billing, and revenue recognition and higher contractual invoicing activity, partially offset by collections from customers;
Prepaid expense and other current assets increased by $7.3 million, primarily due to the timing of billing of contract assets related to fixed-price service contracts, an increase in lease receivable from sales-type leases, and an increase in income tax receivable, partially offset by a decrease in prepaid expenses related to third party software licenses and cloud-subscription costs;
Other non-current assets increased by $4.2 million primarily due to non-current assets from sales-type leases, increases in non-current contract assets and costs capitalized to obtain revenue contracts, partially offset by the amortization of non-current prepaid expenses;
Accounts payable decreased by $2.1 million primarily due to the timing of payments of vendor invoices; and
Accrued compensation and related benefits decreased by $2.2 million primarily due to the payments of accrued bonuses net of new bonus accruals, a decrease in accrued commissions, partially offset by additional contributions to the employee stock purchase plan.

Net Cash Provided by (Used in) Investing Activities

Net cash used in investing activities was $29.0 million for the year ended December 31, 2023, compared to net cash provided by investing activities of $84.6 million for the year ended December 31, 2022.

50

For the year ended December 31, 2023, cash used in investing activities primarily related to purchases of short-term investments of $59.6 million, purchases of and prepayments for property and equipment of $11.3 million primarily related to our DFI and CV systems, payment for a business acquisition, net of cash acquired, of $1.8 million, partially offset by proceeds from maturities and sales of short-term investments of $43.8 million.

For the year ended December 31, 2022, cash provided by investing activities primarily related to proceeds from maturities and sales of short-term investments of $151.5 million, partially offset by purchases of short-term investments of $58.3 million, and purchases of and prepayments for property and equipment of $8.4 million primarily related to our DFI systems and CV systems.

Net Cash Used in Financing Activities

Net cash used in financing activities was $5.9 million for the year ended December 31, 2023, compared to net cash used in financing activities of $24.3 million for the year ended December 31, 2022.

For the year ended December 31, 2023, net cash used in financing activities primarily consisted of $9.5 million in cash payments for taxes related to net share settlement of equity awards and $0.7 million for the repurchase of shares of our common stock and, partially offset by $4.3 million of proceeds from our employee stock purchase plan and exercise of stock options.

For the year ended December 31, 2022, net cash used in financing activities primarily consisted of $22.5 million for the repurchase of shares of our common stock and $6.5 million in cash payments for taxes related to net share settlement of equity awards, partially offset by $4.7 million of proceeds from our employee stock purchase plans and exercise of stock options.

Related Party Transactions

Refer to Note 13, “Strategic Partnership Agreement with Advantest and Related Party Transactions” of the Notes to Consolidated Financial Statements (Item 8 of Part II of this Annual Report) for a discussion on related party transactions between the Company and Advantest.

Off-Balance Sheet Arrangements

We do not have any off-balance sheet arrangements, investments in special purpose entities or undisclosed borrowings or debt.

Contractual Obligations

The following table summarizes our known contractual obligations as of December 31, 2023 (in thousands):

Payments Due by Period

Contractual Obligations

    

2024

    

2025

    

2026

    

2027

    

2028

    

Total

Operating lease obligations (1)

$

1,706

$

1,611

$

1,039

$

916

$

551

$

5,823

Purchase obligations (2)

 

17,557

7,290

1,097

244

61

 

26,249

Total (3)

$

19,263

$

8,901

$

2,136

$

1,160

$

612

$

32,072

(1)Refer to Note 5 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report) for further discussion.
(2)Purchase obligations consist of agreements to purchase goods and services entered in the ordinary course of business.

51

(3)The contractual obligation table above excludes liabilities for uncertain tax positions of $2.6 million, which are not practicable to assign to any particular years due to the inherent uncertainty of the tax positions. See Note 9 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report) for further discussion.

Item 7A.  Quantitative and Qualitative Disclosures About Market Risk

The following discusses our exposure to market risk related to changes in interest rates and foreign currency exchange rates. We do not currently own any equity investments, nor do we expect to own any in the foreseeable future. This discussion contains forward-looking statements that are subject to risks and uncertainties. Actual results could vary materially as a result of a number of factors.

Interest Rate Risk.  As of December 31, 2023, we had cash and cash equivalents and short-term investments of $135.5 million. Cash and cash equivalents consisted of cash and highly liquid money market instruments. Short-term investments consisted of U.S. Government securities. We would not expect our operating results or cash flows to be affected to any significant degree by the effect of a sudden change in market interest on our portfolio. A hypothetical increase in market interest rates of 100 basis points from the market rates in effect at December 31, 2023, would cause the fair value of short-term investments to decrease by an immaterial amount which would not have significantly impacted our financial position or results of operations.

As of December 31, 2023, and periodically throughout the year, we have maintained cash balances in various operating accounts in excess of federally insured limits. We limit the amount of credit exposure to any financial institution by evaluating the creditworthiness of the financial institutions with which we invest and investing through more than one financial institution.

Foreign Currency and Exchange Risk. Certain of our receivables and payables for our international offices are denominated in the local currency, including the Euro, Yen and RMB. Therefore, a portion of our revenues and operating expenditures are subject to foreign currency risks. From time to time, we enter into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. We do not use foreign currency forward contracts for speculative or trading purposes. We record these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that we believe is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. The change in fair value of these contracts is recorded in earnings as a component of other income (expense), net and offsets the change in fair value of foreign currency denominated monetary assets and liabilities, which is also recorded in other income (expense), net. As of December 31, 2023, we had no outstanding forward contracts.

52

Item 8.  Financial Statements and Supplementary Data

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

To the Board of Directors and Stockholders of

PDF Solutions, Inc.

Opinion on the Consolidated Financial Statements

We have audited the accompanying consolidated balance sheets of PDF Solutions, Inc. (a Delaware corporation) and its subsidiaries (the “Company”) as of December 31, 2023 and 2022, and the related consolidated statements of comprehensive income (loss), stockholders’ equity, and cash flows for each of the three years in the period ended December 31, 2023, and the related notes (collectively referred to as the “consolidated financial statements”). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of December 31, 2023 and 2022, and the results of its operations and its cash flows for each of the three years in the period ended December 31, 2023, in conformity with accounting principles generally accepted in the United States of America.

We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (“PCAOB”), the Company’s internal control over financial reporting as of December 31, 2023, based on criteria established in Internal Control—Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission, and our report dated February 27, 2024, expressed an unqualified opinion.

Basis for Opinion

These consolidated financial statements are the responsibility of the Company’s management. Our responsibility is to express an opinion on the Company’s consolidated financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.

We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.

Critical Audit Matter

The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing separate opinions on the critical audit matter or on the accounts or disclosures to which they relate.

Revenue Recognition

As described in Note 2 to the consolidated financial statements, the Company derives revenue from Analytics and Integrated Yield Ramp. Contracts with customers can include various combinations of licenses, subscriptions, products and services, some of which are distinct and are accounted for as separate performance obligations. Significant judgment

53

is exercised by the Company in determining revenue recognition for customer agreements, including determining whether licenses, subscriptions, and services are distinct performance obligations, determining the standalone selling price (“SSP”) attributed to each performance obligation, establishing the pattern of delivery for each distinct performance obligation, and estimating variable consideration when determining the amount of revenue to recognize. In addition, for revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion (“POC”) method based on costs or labor-hours input method.

Estimated costs to complete each contract are based on i) future labor and product costs and ii) expected productivity efficiencies. Changes in these estimates can have a material effect on revenue recognized and/or related costs. Finally, the Company recognizes Gainshare royalty revenue in the same period in which the usage occurs. The Company accrues the related revenue based on estimates of customers’ underlying sales achievements. These estimates are based on historical data, trends, seasonality, changes in contract rate, knowledge of changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel.

The principal audit considerations for our determination that performing procedures related to the Company’s revenue recognition for customer agreements is a critical audit matter are the significant amount of judgment required by management in this process. Significant judgment is required in determining SSP as the Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation, which in turn leads to significant auditor judgment, subjectivity and effort in performing audit procedures in assessing the allocation of SSPs to performance obligations. In addition, significant judgment is required in determining the total estimated contract costs for fixed-price contracts, which in turn leads to significant auditor judgment, subjectivity, and effort in performing audit procedures and in evaluating audit evidence relating to the total estimated contract costs. Significant judgment is also required in recording Gainshare royalty revenue in the same period in which the usage occurs. The Company generally does not receive acknowledgment reports from customers during a given quarter, so the Company is required to accrue the related revenue based on estimates of customers underlying sales achievement, which in turn leads to significant auditor judgment, subjectivity, and effort in evaluating the reasonableness of these estimates based on historical data, trends, seasonality and other factors.

Addressing the matter involved performing procedures and evaluating audit evidence in connection with forming our overall opinion on the consolidated financial statements. These procedures included testing the effectiveness of internal controls relating to the revenue recognition process, including internal controls related to (1) the identification of distinct performance obligations and data used to establish SSP for licenses, subscriptions, products and services, (2) project estimates to completion for fixed fee arrangements accounted for under POC and (3) estimates of Gainshare royalty revenue accrual and subsequent true-ups. These procedures also included, among others, evaluating management’s significant accounting policies related to these customer agreements for reasonableness. In addition, for a sample of customer agreements, we obtained and read contract source documents, including master agreements and other documents that were part of the agreement, tested management’s identification of significant terms for completeness, including the identification of distinct performance obligations and variable consideration, assessed the terms in the customer agreements and evaluated the appropriateness of management’s application of their accounting policies, along with their use of estimates, in the determination of revenue recognition conclusions, and tested the mathematical accuracy of management’s calculations of revenue and the associated timing of revenue recognized in the consolidated financial statements. In addition, we evaluated the reasonableness of management’s estimates of SSP for projects and services that are not sold separately, where applicable, costs to complete for project-based contracts for fixed-price services and customers’ underlying achievements for royalty revenue.

/s/ BPM LLP

We have served as the Company’s auditor since 2018.

San Jose, California

February 27, 2024

54

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

To the Board of Directors and Stockholders of

PDF Solutions, Inc.

Opinion on Internal Control over Financial Reporting

We have audited the internal control over financial reporting of PDF Solutions, Inc. (a Delaware corporation) and its subsidiaries (the “Company) as of December 31, 2023, based on criteria established in Internal Control—Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (“COSO”). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December 31, 2023, based on criteria established in Internal Control—Integrated Framework (2013) issued by COSO.

We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (“PCAOB”), the consolidated balance sheets as of December 31, 2023 and 2022 and the related consolidated statements of comprehensive income (loss), stockholders’ equity, and cash flows for each of the three years in the period ended December 31, 2023 and the related notes (collectively referred to as the “consolidated financial statements”) of the Company, and our report dated February 27, 2024 expressed an unqualified opinion on those consolidated financial statements.

Basis for Opinion

The Company’s management is responsible for maintaining effective internal control over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying Management’s Report on Internal Control Over Financial Reporting. Our responsibility is to express an opinion on the entity’s internal control over financial reporting based on our audit. We are a public accounting firm registered with PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.

We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial reporting was maintained in all material respects. Our audit of internal control over financial reporting included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, and testing and evaluating the design and operating effectiveness of internal control based on the assessed risk. Our audit also included performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.

Definition and Limitations of Internal Control over Financial Reporting

An entity’s internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of consolidated financial statements for external purposes in accordance with accounting principles generally accepted in the United States of America. An entity’s internal control over financial reporting includes those policies and procedures that (1) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the entity; (2) provide reasonable assurance that transactions are recorded as necessary to permit preparation of consolidated financial statements in accordance with accounting principles generally accepted in the United States of America, and that receipts and expenditures of the entity are being made only in accordance with authorizations of management and directors of the entity; and (3) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the entity’s assets that could have a material effect on the consolidated financial statements.

55

Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.

/s/ BPM LLP

San Jose, California

February 27, 2024

56

PDF SOLUTIONS, INC.

CONSOLIDATED BALANCE SHEETS

(in thousands, except par values)

December 31, 

    

2023

    

2022

ASSETS

 

  

 

  

Current assets:

 

  

 

  

Cash and cash equivalents

$

98,978

$

119,624

Short-term investments

 

36,544

 

19,557

Accounts receivable, net of allowance for credit losses

 

44,904

 

42,164

Prepaid expenses and other current assets

 

17,422

 

12,063

Total current assets

 

197,848

 

193,408

Property and equipment, net

 

37,338

 

40,174

Operating lease right-of-use assets, net

 

4,926

 

6,002

Goodwill

 

15,029

 

14,123

Intangible assets, net

 

15,620

 

18,055

Deferred tax assets, net

 

157

 

64

Other non-current assets

 

19,218

 

6,845

Total assets

$

290,136

$

278,671

LIABILITIES AND STOCKHOLDERS’ EQUITY

 

  

 

  

Current liabilities:

 

  

 

  

Accounts payable

$

2,561

$

6,388

Accrued compensation and related benefits

 

14,800

 

16,948

Accrued and other current liabilities

 

4,633

 

5,581

Operating lease liabilities – current portion

 

1,529

 

1,412

Deferred revenues – current portion

 

25,750

 

26,019

Billings in excess of recognized revenues

 

1,570

 

1,852

Total current liabilities

 

50,843

 

58,200

Long-term income taxes

 

2,972

 

2,622

Non-current portion of operating lease liabilities

 

4,657

 

5,932

Other non-current liabilities

 

2,718

 

1,905

Total liabilities

 

61,190

 

68,659

Commitments and contingencies (Note 6)

 

  

 

  

Stockholders’ equity:

 

  

 

  

Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding

Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 49,749 and 48,613, respectively; shares outstanding 38,289 and 37,431, respectively

 

6

 

6

Additional paid-in capital

 

473,295

 

447,415

Treasury stock at cost, 11,460 and 11,182 shares, respectively

 

(143,923)

 

(133,709)

Accumulated deficit

 

(98,045)

 

(101,150)

Accumulated other comprehensive loss

 

(2,387)

 

(2,550)

Total stockholders’ equity

 

228,946

 

210,012

Total liabilities and stockholders’ equity

$

290,136

$

278,671

See Accompanying Notes to Consolidated Financial Statements.

57

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)

(in thousands, except per share amounts)

Year Ended December 31, 

    

2023

  

2022

  

2021

Revenues:

 

  

 

  

 

  

Analytics

$

152,085

$

130,480

$

93,415

Integrated Yield Ramp

 

13,750

 

18,069

 

17,645

Total revenues

 

165,835

 

148,549

 

111,060

Costs and Expenses:

 

  

 

  

 

  

Costs of revenues

 

51,749

 

47,907

 

44,193

Research and development

 

50,736

 

56,126

 

43,780

Selling, general, and administrative

 

62,216

 

45,338

 

37,649

Amortization of acquired intangible assets

 

1,285

 

1,270

 

1,255

Write-down in value of property and equipment

3,183

Interest and other expense (income), net

 

(5,020)

 

(2,562)

 

(683)

Income (loss) before income tax expense

 

4,869

 

470

 

(18,317)

Income tax expense

 

(1,764)

 

(3,899)

 

(3,171)

Net income (loss)

$

3,105

$

(3,429)

$

(21,488)

Other comprehensive income (loss):

 

Foreign currency translation adjustments, net of tax

148

(1,493)

(825)

Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax

 

15

 

7

 

(14)

Total other comprehensive income (loss)

163

(1,486)

(839)

Comprehensive income (loss)

$

3,268

$

(4,915)

$

(22,327)

Net income (loss) per share:

Basic

$

0.08

$

(0.09)

$

(0.58)

Diluted

$

0.08

$

(0.09)

$

(0.58)

Weighted average common shares used to calculate net income (loss) per share:

Basic

 

38,015

 

37,309

 

37,138

Diluted

 

38,937

 

37,309

 

37,138

See Accompanying Notes to Consolidated Financial Statements.

58

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(in thousands)

Accumulated

Additional

Other

Total

Common Stock

Paid-In

Treasury Stock

Accumulated

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Shares

    

Amount

    

Deficit

    

Loss

    

Equity

Balances, January 1, 2021

36,850

$

6

407,173

9,550

$

(96,215)

$

(76,233)

$

(225)

$

234,506

Repurchase of common stock

(251)

251

(4,523)

(4,523)

Issuance of common stock in connection with employee stock purchase plan

109

1,035

1,035

Issuance of common stock in connection with exercise of options

216

1,930

1,930

Vesting of restricted stock units

487

Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock

202

(3,967)

(3,967)

Stock-based compensation expense

12,931

12,931

Comprehensive loss

(21,488)

(839)

(22,327)

Balances, December 31, 2021

37,411

6

423,069

10,003

(104,705)

(97,721)

(1,064)

219,585

Repurchase of common stock

 

(933)

 

933

(22,471)

 

(22,471)

Issuance of common stock in connection with employee stock purchase plan

187

3,011

3,011

Issuance of common stock in connection with exercise of options

 

150

 

1,686

 

1,686

Vesting of restricted stock units

 

616

 

 

Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock

 

 

246

(6,533)

 

(6,533)

Stock-based compensation expense

 

 

19,649

 

19,649

Comprehensive loss

 

 

 

 

 

 

(3,429)

 

(1,486)

 

(4,915)

Balances, December 31, 2022

 

37,431

 

6

 

447,415

 

11,182

 

(133,709)

 

(101,150)

 

(2,550)

 

210,012

Repurchase of common stock

(21)

21

(743)

 

(743)

Issuance of common stock in connection with employee stock purchase plan

 

224

3,832

 

3,832

Issuance of common stock in connection with exercise of options

 

30

492

 

492

Vesting of restricted stock units

 

625

 

Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock

 

257

(9,471)

 

(9,471)

Stock-based compensation expense

 

21,556

 

21,556

Comprehensive income

 

3,105

163

 

3,268

Balances, December 31, 2023

 

38,289

$

6

$

473,295

 

11,460

$

(143,923)

$

(98,045)

$

(2,387)

$

228,946

See Accompanying Notes to Consolidated Financial Statements.

59

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF CASH FLOWS

(in thousands)

Year Ended December 31, 

    

2023

    

2022

    

2021

Cash flows from operating activities:

Net income (loss)

$

3,105

$

(3,429)

$

(21,488)

Adjustments to reconcile net income (loss) to net cash provided by operating activities:

 

 

 

  

Depreciation and amortization

 

4,986

 

5,526

 

6,218

Stock-based compensation expense

 

21,484

 

19,649

 

12,931

Amortization of acquired intangible assets

 

3,551

 

3,484

 

3,334

Amortization of costs capitalized to obtain revenue contracts

 

2,142

 

1,550

 

674

Net accretion of discounts on short-term investments

(1,174)

(187)

(14)

Write-down in value of property and equipment

3,183

Deferred taxes

 

(108)

 

(4)

 

1,373

Other

 

(198)

 

 

161

Changes in operating assets and liabilities:

 

 

 

Accounts receivable

 

(2,748)

 

(2,143)

 

(5,980)

Prepaid expenses and other current assets

 

(7,329)

 

(5,787)

 

1,136

Operating lease right-of-use assets

 

1,205

 

1,821

 

1,414

Other non-current assets

 

(4,166)

 

2,258

 

(1,336)

Accounts payable

 

(2,145)

 

(1,423)

 

(86)

Accrued compensation and related benefits

 

(2,188)

 

7,720

 

1,264

Accrued and other liabilities

 

110

 

1,671

 

(648)

Deferred revenues

 

(358)

 

1,822

 

5,028

Billings in excess of recognized revenues

 

(282)

 

1,852

 

(1,337)

Operating lease liabilities

 

(1,287)

 

(2,082)

 

(1,584)

Net cash provided by operating activities

 

14,600

 

32,298

 

4,243

Cash flows from investing activities:

Proceeds from maturities and sales of short-term investments

 

43,800

 

151,500

 

171,000

Purchases of short-term investments

(59,598)

(58,321)

(168,560)

Proceeds from sale of property and equipment

105

Purchases of property and equipment

(11,236)

(8,409)

(3,672)

Prepayment for the purchase of property and equipment

(89)

(21)

(381)

Purchases of intangible assets

(150)

(150)

Payment for business acquisition, net of cash acquired

(1,823)

(3,054)

Net cash provided by (used in) investing activities

 

(28,991)

 

84,599

 

(4,667)

Cash flows from financing activities:

 

 

  

 

  

Proceeds from exercise of stock options

 

492

 

1,686

 

1,930

Proceeds from employee stock purchase plans

 

3,832

 

3,011

 

1,035

Payments for taxes related to net share settlement of equity awards

 

(9,471)

 

(6,533)

 

(3,967)

Repurchases of common stock

 

(743)

 

(22,471)

 

(4,523)

Net cash used in financing activities

 

(5,890)

 

(24,307)

 

(5,525)

Effect of exchange rate changes on cash and cash equivalents

 

(365)

 

(650)

 

(182)

Net change in cash and cash equivalents

 

(20,646)

 

91,940

 

(6,131)

Cash and cash equivalents at beginning of year

 

119,624

 

27,684

 

33,815

Cash and cash equivalents at end of year

$

98,978

$

119,624

$

27,684

Continued on next page.

60

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF CASH FLOWS – CONTINUED

(in thousands)

Year Ended December 31, 

2023

    

2022

    

2021

Supplemental disclosure of cash flow information:

Cash paid during the year for taxes

$

3,783

$

2,850

$

1,873

Cash paid for amounts included in the measurement of operating lease liabilities

$

1,648

$

1,744

$

1,947

Supplemental disclosure of noncash information:

Property and equipment received and accrued in accounts payable and accrued and other liabilities

$

1,599

$

3,201

$

1,359

Advances for purchase of fixed assets transferred from prepaid assets to property and equipment

$

66

$

336

$

963

Operating lease liabilities arising from obtaining right-of-use assets

$

131

$

2,502

$

161

Property and equipment transferred to sales-type leases

$

8,076

$

$

See Accompanying Notes to Consolidated Financial Statements.

61

PDF SOLUTIONS, INC.

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

1. DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Description of Business

PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower organizations across the semiconductor and electronics ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (“IP”) for integrated circuit (“IC”) designs, electrical measurement hardware tools, proven methodologies, and professional services.

Basis of Presentation

The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Concentration of Credit Risk

Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short-term investments, and accounts receivable. As of December 31, 2023, and periodically throughout the year, the Company had cash balances in various operating accounts in excess of federally insured limits. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.

The Company primarily sells its products and services to companies in Asia, Europe, and North America within the semiconductor industry. As of December 31, 2023, two customers accounted for 50% of the Company’s gross accounts receivable and one customer accounted for 35% of the Company’s total revenues for 2023. As of December 31, 2022, three customers accounted for 53% of the Company’s gross accounts receivable and two customers accounted for 41% of the Company’s revenues for 2022. Two customers accounted for 27% of the Company’s revenues for 2021. See Note 11 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.

The allowance for credit losses, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.

62

Supplier Concentration

Some of the Company’s vendors provide highly specialized, differentiated products and services related to the Company’s eProbe system and some licensors provide key enabling software for the Company’s products and services. In the event any of these suppliers delay or discontinue providing such products and services to the Company, it may be difficult for the Company to replace such suppliers, software, or parts in a timely manner or at all, which could delay or make impossible the Company’s ability to deliver or adequately support its software systems or to complete and deliver its eProbe systems to its customers, and could negatively impact the Company’s future financial results of operations.

Cash and Cash Equivalents, and Short-term Investments

The Company considers all highly liquid investments with effective maturities of 90 days or less on the date of purchase to be cash equivalents and investments with effective maturities greater than 90 days but less than one year to be short-term investments. The Company classifies its securities with readily determinable market values as “available-for-sale”. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and unrealized non-credit-related losses, net of tax, reported as a component of accumulated other comprehensive income (loss) in stockholders’ equity. Unrealized credit-related losses are recorded to interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss) with a corresponding allowance for credit-related losses in the Consolidated Balance Sheets. Realized gains and losses are based on the specific identification method and are included as a component of interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss).

The Company periodically reviews short-term investments for impairment. For investments in unrealized loss positions, the Company assesses whether any portion of the decline in fair value below the amortized cost basis is due to credit-related factors if the Company neither intends to sell nor anticipates that it is more likely than not that it will be required to sell prior to recovery of the amortized cost basis. The Company considers factors such as the extent to which the market value has been less than the amortized cost basis, any noted failure of the issuer to make scheduled interest or principal payments, changes to the rating of the security by a rating agency and other relevant credit-related factors in determining whether or not a credit loss exists. There was no allowance for credit-related losses on any of the Company’s investments recognized in the years ended December 31, 2023, 2022 and 2021.

As of December 31, 2023, and 2022, short-term investments consisted solely of U.S. Government securities. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2023 and 2022. Refer to Note 12, “Fair Value Measurements” for further discussion on the Company’s investments.

The Company recorded interest income from its cash, cash equivalents, and short-term investments of $5.5 million, $1.5 million and $0.1 million in the years ended December 31 2023, 2022 and 2021, respectively.

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable are determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $16.4 million and $13.5 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.1 million and $0.8 million as of December 31, 2023 and 2022, respectively.

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.

63

The changes in allowance for credit losses are summarized below (in thousands):

Deductions/

Balance at

Write-offs

Balance at

Beginning

Charged to

of Accounts

End of

    

of Period

    

Expense (1)

    

Receivable

    

Period

2023

$

890

$

20

$

(20)

$

890

2022

$

890

$

11

$

(11)

$

890

2021

$

963

$

$

(73)

$

890

(1)Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.

Property and Equipment

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

5-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated useful life or term of lease

Intangible Assets

Intangible assets consist of acquired technology, certain contract rights, customer relationships, patents, trademarks and trade names. These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from one to ten years. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.

Goodwill

The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.

Leases

The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use

64

(“ROU”) assets, operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company elected to not separate lease and non-lease components for all of its leases.

The Company determines if an arrangement is, or contains, a lease at inception. Operating lease ROU assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of the Company’s overall future business plans and other relevant business economic factors that may affect its business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from the Company’s initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.

Software Development Costs

Internally developed software is software developed to meet the Company’s internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally five to six years.

The costs to develop software that is marketed externally consisting of external direct costs and internal compensation related costs are capitalized once technological feasibility of the software product has been established. Costs incurred prior to establishing technological feasibility are expensed as incurred. Technological feasibility is established when the Company has completed all planning, designing, coding, and testing activities that are necessary to establish that the software product can be produced to meet its design specifications. Capitalization of such costs ceases when the software product is generally available to customers. These software development costs are amortized using the greater of the straight-line method or the usage method over its estimated useful life.

Cost of Revenues

Costs of revenues consist primarily of costs incurred to provide and support the Company’s services, costs recognized in connection with licensing its software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type leases), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by the Company in providing services to its customers in solution engagements or sold in conjunction with the Company’s software products.

Research and Development Expenses

Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities. Research and development expenses are charged to operations as incurred.

Selling, General and Administrative Expenses

Selling, general and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing and general and administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, IT and facilities cost allocations.

65

Stock-Based Compensation

The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Income Taxes

The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more likely than not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Income (Loss).

Net Income (Loss) Per Share

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.

Foreign Currency Translation

The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive income (loss) are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive income (loss). Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Income (Loss).

66

Derivative Financial Instruments

The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months.

Business Combinations

The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over their useful life, whereas any indefinite lived intangible assets, including in-process research and development, and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (“FASB”) requirements. See Note 6, “Commitments and Contingencies”.

Accounting Standards Adopted

In June 2016, the FASB issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

67

The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to accumulated deficit as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s consolidated financial statements.

Recently Issued Accounting Pronouncements

In November 2023, the FASB issued ASU No. 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which requires disclosure of incremental segment information on an annual and interim basis. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, and requires retrospective application to all prior periods presented in the financial statements. Early adoption is permitted. The Company is currently evaluating the impact of the new standard on the consolidated financial statements.

In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” Adoption is either prospectively or retrospectively, the Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.

2. REVENUE

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB Accounting Standard Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.

68

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), SaaS (which is primarily Exensio products), and DFI™ systems and CV® systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under Topic 842, Leases; otherwise it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics Revenue in the Consolidated Statements of Comprehensive Income (Loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease

69

performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in Property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from Property and equipment, net at lease commencement and a net investment in the lease asset is recognized in Prepaid expenses and other current assets and Other non-current assets in the Consolidated Balance Sheets.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project–based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

The Gainshare royalty contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s IP after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of IP and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue by timing of revenue:

Year Ended December 31, 

 

    

2023

    

2022

2021

Over time

71

%  

69

%

65

%

Point-in-time

 

29

%  

31

%

35

%

Total

 

100

%  

100

%

100

%

International revenues accounted for approximately 44%, 50% and 55% of total revenues for the years ended December 31, 2023, 2022 and 2021, respectively. See Note 11, “Customer and Geographic Information”.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

70

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, licenses software and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare royalty revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e. contract liabilities) at the contract level. As of December 31, 2023 and 2022, contract assets of $6.8 million and $3.3 million, respectively, are included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets. As of December 31, 2023 and 2022, contract assets of $0.9 million and nil, respectively, are included in other non-current assets in the accompanying Consolidated Balance Sheets. The Company did not record any asset impairment charges related to contract assets during fiscal years 2023, 2022 and 2021.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying Consolidated Balance Sheets. As of December 31, 2023 and 2022, the non-current portion of deferred revenues included in non-current liabilities was $1.8 million and $1.9 million, respectively. Revenue recognized for the years ended December 31, 2023, 2022 and 2021, that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $24.8 million, $24.9 million and $16.9 million, respectively.

71

As of December 31, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $229.8 million. Given the applicable contract terms with customers, the majority of this amount is expected to be recognized as revenue over the next three years, with the remainder in the following three years. This amount does not include significant contracts to which the customer is not committed, future sales-based or usage-based royalty payments in exchange for a license of IP, and future payments for performance obligations from on-demand arrangements. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized in the years ended December 31, 2023, 2022 and 2021 from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $3.7 million, an increase of $0.4 million and a decrease $0.4 million, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare royalty.

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets as of December 31, 2023 and 2022 was $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying Consolidated Balance Sheets as of December 31, 2023 and 2022 was $2.6 million and $2.1 million, respectively. Amortization of these assets for each of the years ended December 31, 2023, 2022 and 2021 was $2.1 million, $1.5 million and $0.7 million, respectively. There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedients

The Company does not adjust transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component for the years ended December 31, 2023, 2022 and 2021.

72

3. PROPERTY AND EQUIPMENT

Property and equipment consist of (in thousands):

December 31, 

    

2023

2022

Computer equipment

$

12,515

$

11,853

Software

 

5,596

 

5,395

Furniture, fixtures, and equipment

 

2,501

 

2,484

Leasehold improvements

 

6,475

 

6,467

Laboratory and other equipment

 

4,891

 

4,431

Test equipment

 

25,044

 

28,403

Property and equipment in progress:

 

 

DFI™ system assets

22,864

22,231

CV® system and other assets

 

6,977

 

5,105

 

86,863

 

86,369

Less: Accumulated depreciation and amortization

 

(49,525)

 

(46,195)

Total

$

37,338

$

40,174

Test equipment mainly includes DFI™ systems and CV® systems assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated.

Depreciation and amortization expense for the years ended December 31, 2023, 2022 and 2021 was $5.0 million, $5.5 million and $6.2 million, respectively.

In 2021, the Company wrote down the value of its property and equipment by $3.2 million related to its first-generation of e-beam tools for DFI systems wherein carrying values may not be fully recoverable due to lack of market demand and future needs of its customers for these tools.

4. GOODWILL AND INTANGIBLE ASSETS

The Company completed the acquisition of Lantern Machinery Analytics, Inc. in the year ended December 31, 2023. Refer to Note 14 for additional information related to the goodwill and intangible assets added from this acquisition.

As of December 31, 2023 and 2022, the carrying amount of goodwill was $15.0 million and $14.1 million, respectively. The following table summarizes goodwill transaction for the years ended December 31, 2023, 2022 and 2021 (in thousands):

Year Ended December 31, 

2023

    

2022

2021

Balance at beginning of year

$

14,123

$

14,123

$

15,774

Addition

895

Measurement period acquisition adjustment

 

 

 

(1,651)

Foreign currency translation adjustment

11

Balance at end of year

$

15,029

$

14,123

$

14,123

73

Intangible assets balance was $15.6 million and $18.1 million as of December 31, 2023 and 2022, respectively.

Intangible assets as of December 31, 2023 and 2022, consist of the following (in thousands):

December 31, 2023

December 31, 2022

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,508

$

(7,335)

$

2,173

$

9,407

$

(6,684)

$

2,723

Developed technology

 

4-9

 

34,650

 

(22,094)

 

12,556

 

33,635

 

(19,647)

 

13,988

Tradename and trademarks

 

2-10

 

1,598

 

(1,025)

 

573

 

1,598

 

(918)

 

680

Patent

 

6-10

 

2,100

 

(1,782)

 

318

 

2,100

 

(1,696)

 

404

Noncompetition agreements

 

3

 

848

 

(848)

 

 

848

 

(588)

 

260

Total

$

48,704

$

(33,084)

$

15,620

$

47,588

$

(29,533)

$

18,055

The weighted average amortization period for acquired identifiable intangible assets was 5.3 years as of December 31, 2023. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Income (Loss) (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Amortization of acquired technology included under costs of revenues

$

2,266

$

2,214

$

2,079

Amortization of acquired intangible assets presented separately under costs and expenses

 

1,285

 

1,270

 

1,255

Total amortization of acquired intangible assets

$

3,551

$

3,484

$

3,334

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2024

$

3,237

2025

 

3,072

2026

 

2,903

2027

 

2,750

2028

2,445

2029 and thereafter

 

1,213

Total future amortization expense

$

15,620

There were no impairment charges for goodwill and intangible assets for the years ended December 31, 2023, 2022 and 2021.

5. LEASES

In 2022, the Company early terminated an office lease contract. The termination of this lease reduced the Company’s operating lease ROU assets and lease liabilities by approximately $0.5 million and $0.6 million, respectively. The gain from the lease termination of approximately $0.1 million was recorded under selling, general and administrative expense in the accompanying Consolidated Statement of Comprehensive Loss for the year ended December 31, 2022.

74

Lease expense was comprised of the following (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Operating lease expense (1)

$

1,534

$

1,457

$

1,860

Short-term lease and variable lease expense (2)

 

923

 

1,032

 

822

Total lease expense

$

2,457

$

2,489

$

2,682

(1)Net of gain recognized upon lease termination of $0.1 million in the year ended December 31, 2022.
(2)Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental consolidated balance sheets information related to leases was as follows:

December 31, 

 

    

2023

    

2022

 

Weighted average remaining lease term under operating leases (in years)

4.4

5.3

Weighted average discount rate for operating lease liabilities

 

4.96

%  

4.87

%

Maturity of operating lease liabilities as of December 31, 2023, are as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2024

$

1,663

2025

 

1,611

2026

 

1,355

2027

 

1,294

2028

 

929

2029

 

63

Total future minimum lease payments

6,915

Less: Interest (2)

 

(729)

Present value of future minimum lease payments under operating lease liabilities (3)

$

6,186

(1)As of December 31, 2023, the total operating lease liability includes $1.0 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.5 million as of December 31, 2023.

6. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest

See Note 13 for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases

Refer to Note 5, “Leases”, for the discussion about the Company’s lease commitments.

75

Indemnifications

The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following delivery of its products. The Company also indemnifies certain customers from third-party claims of IP infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

Purchase Obligations

The Company has purchase obligations with certain suppliers for the purchase of goods and services entered in the ordinary course of business. As of December 31, 2023, total outstanding purchase obligations were $26.2 million, the majority of which are due within the next 2 years.

Indemnification of Officers and Directors

As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2023, except as disclosed below, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023. A decision is currently expected in 2024.

76

7. STOCKHOLDERS’ EQUITY

Stock Repurchase Program

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. During the year ended December 31, 2021, 251,212 shares were repurchased by the Company under the 2020 Program at an average price of $18.01 per share for an aggregate total price of $4.5 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.

On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years. During the year ended December 31, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. During the year ended December 31, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.

8. EMPLOYEE BENEFIT PLANS

On December 31, 2023, the Company had the following stock-based compensation plans:

Employee Stock Purchase Plans

In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four six-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan” and, together with the 2010 Purchase Plan, the “Employee Purchase Plans”). The terms of 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.

The Company estimated the fair value of purchase rights granted under the Employee Purchase Plans during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

2021 Purchase Plan

Year Ended December 31, 

2023

    

2022

2021

    

Expected life (in years)

1.25

 

1.25

1.25

 

Volatility

43.66

%  

48.73

%  

48.00

%  

Risk-free interest rate

5.15

%  

2.75

%  

0.11

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

$

6.71

77

During the years ended December 31, 2023 and 2022, a total of 223,608 and 182,083 shares, respectively, were issued under the 2021 Purchase Plan, at a weighted-average purchase price of $17.14 per share and $16.15 per share, respectively. During the years ended December 31, 2022 and 2021 a total of 5,203 and 108,623 shares, respectively, were issued under the 2010 Purchase Plan, at a weighted-average purchase price of $13.40 per share and $9.53 per share, respectively. As of December 31, 2023, unrecognized compensation cost related to the 2021 Purchase Plan was $3.0 million. This estimated unrecognized cost is expected to be recognized over a weighted average period of 1.5 years.

As of December 31, 2023, 594,309 shares were available for future issuance under the 2021 Purchase Plan.

Stock Incentive Plans

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as amended, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 13.8 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

As of December 31, 2023, 14.3 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.7 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through December 31, 2023. As of December 31, 2023, there were no outstanding awards that were granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”).

The Company has elected to use the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life, interest rate and expected dividend. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life of an award is based on historical experience and on the terms and conditions of the stock awards granted to employees. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

No stock options were granted during the years ended December 31, 2023, 2022 and 2021.

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

78

Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Costs of revenues

$

4,169

$

2,974

$

2,563

Research and development

 

7,711

 

9,391

 

5,515

Selling, general, and administrative

 

9,604

 

7,284

 

4,853

Stock-based compensation expense

$

21,484

$

19,649

$

12,931

Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was $0.1 million for the year ended December 31, 2023, and nil for the years ended December 31, 2022 and 2021.

Additional information with respect to options under the Plans is as follows:

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, January 1, 2023

 

68

$

16.11

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(30)

16.36

 

  

 

  

Canceled

 

 

  

 

  

Expired

 

 

  

 

  

Outstanding, December 31, 2023

 

38

$

15.92

 

4.05

$

619

Vested and expected to vest, December 31, 2023

 

38

$

15.91

 

4.05

$

619

Exercisable, December 31, 2023

 

37

$

15.84

 

3.97

$

599

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.14 as of December 31, 2023, which would have been received by the option holders had all option holders exercised their options as of that date.

The total intrinsic value of options exercised during the years ended December 31, 2023, 2022 and 2021 was as follows (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Intrinsic value of options exercised

 

$

630

 

$

2,287

 

$

2,972

Total remaining unrecognized compensation cost related to unvested stock options as of December 31, 2023, which is expected to be fully recognized in 2024, and total fair value of shares vested during the year ended December 31, 2023, was immaterial.

79

Nonvested shares (restricted stock units) were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2023

 

2,124

$

21.29

Granted

 

783

43.46

Vested

 

(882)

21.00

Forfeited

 

(30)

27.60

Nonvested, December 31, 2023

 

1,995

$

30.03

The weighted average grant date fair values of restricted stock units granted during fiscal 2023, 2022 and 2021 were $43.46, $23.23 and $19.43, respectively.

The total fair value of restricted stock units vested during fiscal 2023, 2022 and 2021 was as follows (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Fair value of restricted stock units vested

 

$

32,786

 

$

22,676

 

$

13,617

As of December 31, 2023, there was $45.4 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.5 years. Restricted stock units do not have rights to dividends prior to vesting.

401(k) Savings Plan

The Company sponsors a 401(k) Retirement Savings Plan (the “401(k) Plan”) covering substantially all of its US employees. The Company’s 401(k) Plan is a defined contribution plan with a 401(k) salary deferral arrangement qualified under appropriate provisions of the Internal Revenue Code (the “Code”) and applicable state laws.  Under the 401(k) Plan, eligible employees may make pre-tax salary or after-tax contributions up to 60% of annual compensation, as defined by the 401(k) Plan. In addition, participants who have reached the age of 50 can elect to withhold additional catch-up contributions subject to the Code and the 401(k) Plan limits. Participants may also contribute amounts representing distributions from other qualified plans (rollovers). The Company may make discretionary matching contributions. In fiscal 2023 and 2022, the Company matched from 50% to 100% of each employee’s contribution up to a maximum of 4% of the employee’s total eligible earnings. The Company’s matching contributions to the 401(k) Plan aggregated $1.7 million and $1.6 million for the years ended December 31, 2023 and 2022. No discretionary Company contributions were made to the Plan through December 31, 2021.

80

9. INCOME TAXES

During the years ended December 31, 2023, 2022 and 2021, income (loss) before income tax expense from U.S. operations was $3.2 million, ($1.2) million and ($19.7) million, respectively, and income before income tax expense from foreign operations was $1.7 million, $1.7 million and $1.4 million, respectively.

Year Ended December 31, 

    

2023

    

2022

2021

(In thousands)

U.S.

  

  

Current

$

(353)

$

1,210

$

(67)

Deferred

 

3

 

13

 

1,318

Foreign

 

  

 

  

 

  

Current

 

453

 

577

 

237

Withholding

 

1,770

 

2,111

 

1,591

Deferred

 

(109)

 

(12)

 

92

Total income tax expense

$

1,764

$

3,899

$

3,171

The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2023, 2022 and 2021) for the following reasons (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Federal statutory tax expense

$

1,016

$

106

$

(3,847)

State tax provision

 

(65)

 

949

 

239

Stock compensation expense

 

(1,747)

 

(898)

 

(499)

Tax credits

 

(3,214)

 

(2,877)

 

(2,676)

Foreign tax, net

 

1,859

 

2,195

 

1,653

Foreign-derived intangible income (FDII) deduction

(1,612)

(830)

Change in valuation allowance

 

5,043

 

5,122

 

8,099

Section 162(m) limitation

424

92

Unrealized tax benefit reserve changes

99

136

(151)

Other

 

(39)

 

(96)

 

353

Total income tax expense

$

1,764

$

3,899

$

3,171

As of December 31, 2023, the Company had federal and California net operating loss carry-forwards (“NOLs”) of approximately $7.2 million and $12.7 million, respectively. Some of the federal NOLs, acquired as part of a past acquisition, have expirations at the end of this fiscal year and onwards, and the California NOLs begin expiring in 2028 onwards.

As of December 31, 2023, the Company had federal and state research and experimental and other tax credit (“R&D credits”) carry-forwards of approximately $23.7 million and $24.5 million, respectively. The federal credits began to expire in 2022, while the California credits have no expiration. The extent to which the federal and state credit carry-forwards can be used to offset future tax liabilities, respectively, may be limited, depending on the extent of ownership changes within any three-year period as provided in the Tax Reform Act of 1986 and the California Conformity Act of 1987.

The Company assesses its deferred tax assets for recoverability on a regular basis, and where applicable, a valuation allowance is recorded to reduce the total deferred tax asset to an amount that will, more likely than not, be realized in the future. Based on all available evidence, both positive and negative, the Company determined a full valuation allowance was still appropriate for its federal and state net deferred tax assets (“DTAs”) as of December 31, 2023, primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2023 and the likelihood that the Company will not utilize tax attributes before they begin to expire. The valuation allowance was approximately $64.2 million and $59.2 million as of December 31, 2023 and 2022, respectively. The increase in the valuation allowance from December

81

31, 2022 to December 31, 2023 was primarily driven by an increase in capitalized research and experimental expenses and credits generated in the current year which require a valuation allowance. Management will continue to evaluate the need for a valuation allowance and may change its conclusion in a future period based on any change in facts (e.g. 12-quarter cumulative profit, significant new revenue, and other relevant factors). If the Company concludes that it is more likely than not to utilize some or all of its U.S. DTAs, it will release some or all of its valuation allowance and the Company’s tax provision will decrease in the period in which such determination is made. Net deferred tax assets, after the U.S. valuation allowance, were immaterial as of December 31, 2023 and 2022.

The components of the net deferred tax assets are comprised of (in thousands):

December 31, 

    

2023

    

2022

Deferred tax assets

 

  

 

  

Net operating loss carry forward

$

3,005

$

3,861

Research and development and other credit carry forward

 

30,633

 

28,046

Foreign tax credit carry forward

 

7,611

 

11,764

Capitalized research and experimental expenses

20,403

10,069

Accruals deductible in different periods

 

4,037

 

7,713

Leases

 

1,282

 

1,623

Stock-based compensation

 

1,882

 

1,948

Total deferred tax assets

 

68,853

 

65,024

Less: valuation allowance

 

(64,152)

 

(59,215)

Deferred tax assets, net of valuation allowance

4,701

5,809

Deferred tax liabilities

 

  

 

  

Property and equipment, net

 

(612)

 

(540)

Operating lease right-of-use assets

 

(1,266)

 

(1,635)

Intangible assets

 

(2,995)

 

(3,617)

Deferred tax liabilities

(4,873)

(5,792)

Net deferred tax assets (liabilities)

$

(172)

$

17

The Company classifies its liabilities for income tax exposures as long-term. The Company includes interest related to unrecognized tax benefits within the Company’s income tax provision. As of December 31, 2023, 2022 and 2021, the Company had accrued interest related to unrecognized tax benefits of $0.7 million. In the years ended December 31, 2023, 2022 and 2021, the Company recognized (reversal of) charges for interest related to unrecognized tax benefits of ($15,000), ($61,000) and ($89,000) respectively, in the Consolidated Statements of Comprehensive Income (Loss).

The Company’s total amount of unrecognized tax benefits, excluding interest, as of December 31, 2023 was $15.9 million, of which $2.0 million, if recognized, would impact the Company’s effective tax rate. As of December 31, 2023, the Company has recorded unrecognized tax benefits of $2.6 million, including interest of $0.7 million, as long-term income taxes payable in its Consolidated Balance Sheet. The remaining $14.0 million has been recorded within DTAs, which is subject to a full valuation allowance. The Company does not expect the change in unrecognized tax benefits over the next twelve months to materially impact its results of operations and financial position.

82

A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):

    

Amount

Gross unrecognized tax benefits, January 1, 2021

$

14,300

Increases in tax positions for current year

 

853

Increases in tax positions for prior years

 

1

Lapse in statute of limitations

 

(411)

Gross unrecognized tax benefits, December 31, 2021

 

14,743

Increases in tax positions for current year

 

988

Increases in tax positions for prior years

 

Lapse in statute of limitations

 

(622)

Gross unrecognized tax benefits, December 31, 2022

 

15,109

Increases in tax positions for current year

 

1,469

Increases in tax positions for prior years

 

91

Lapse in statute of limitations

 

(732)

Gross unrecognized tax benefits, December 31, 2023

$

15,937

The Company does not provide deferred taxes on undistributed earnings of its foreign subsidiaries as it intends to indefinitely reinvest those earnings.

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal, various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the years ended 2020 to present and 2019 to present, respectively. In addition, all of the NOLs and R&D credit carry-forwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under income tax examinations in the U.S. or in any other of its major foreign subsidiaries’ jurisdictions.

Valuation allowance for DTAs is summarized (in thousands):

Balance at

Charged to

Deductions/

Balance at

Beginning

Income Tax

Write-offs of

End of

    

of Period

    

Expense

    

Accounts

    

Period

2023

$

59,215

$

4,937

$

$

64,152

2022

$

51,586

$

7,629

$

$

59,215

2021

$

41,859

$

9,727

$

$

51,586


83

10. NET INCOME (LOSS) PER SHARE

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net income (loss) per share (in thousands except per share amount):

Year Ended December 31, 

    

2023

    

2022

    

2021

Numerator:

 

  

 

  

 

  

Net income (loss)

$

3,105

$

(3,429)

$

(21,488)

Denominator:

 

  

 

  

 

  

Basic weighted average shares outstanding

 

38,015

 

37,309

 

37,138

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)

 

922

 

 

Diluted weighted average shares outstanding

 

38,937

 

37,309

 

37,138

Net income (loss) per share:

Basic

$

0.08

$

(0.09)

$

(0.58)

Diluted

$

0.08

$

(0.09)

$

(0.58)

For the years ended December 31, 2022 and 2021, because the Company was in a loss position, basic net loss per share is the same as diluted net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table sets forth potential shares of common stock that are not included in the diluted net income (loss) per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Outstanding options

 

 

56

 

170

Non-vested restricted stock units

 

351

787

968

Employee Stock Purchase Plan

 

84

33

Total

 

351

927

1,171

11. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and reporting segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

84

Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Year Ended December 31, 

 

Customer

    

2023

    

2022

 

2021

 

A

35

%  

31

%

17

%

B

*

%  

10

%

*

%

D

*

%  

*

%

10

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

December 31, 

 

Customer

    

2023

2022

 

A

 

39

%  

29

%

B

 

*

%  

12

%

C

*

%  

12

%

G

11

%  

*

%

*

represents less than 10%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):

Year Ended December 31, 

 

2023

 

2022

 

2021

 

Percentage

 

Percentage

 

Percentage

 

    

Revenues

    

of Revenues

 

$

Revenues

    

of Revenues

 

$

Revenues

    

of Revenues

 

United States

$

92,798

 

56

%

$

73,625

50

%

$

50,374

45

%

China

 

26,488

 

16

 

24,494

16

 

14,267

13

Japan

10,465

6

13,916

9

11,097

10

Rest of the world

 

36,084

 

22

 

36,514

25

 

35,322

32

Total revenue

$

165,835

 

100

%

$

148,549

 

100

%

$

111,060

 

100

%

Long-lived assets, net by geographic area is as follows (in thousands):

December 31, 

    

2023

    

2022

United States (1)

$

45,619

$

44,730

Rest of the world

 

1,362

 

1,446

Total long-lived assets, net

$

46,981

$

46,176





(1)

Includes assets deployed at customer sites which could be outside the U.S.

12. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s

85

pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2023 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

December 31, 

Assets

Inputs

Unobservable

Assets

    

2023

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

83,810

$

83,810

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities (1)

 

36,544

 

36,544

 

 

Total

$

120,354

$

120,354

$

$

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2022 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2022

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

75,738

$

75,738

$

$

U.S. Government securities (1)

1,990

1,990

Short-term investments (available-for-sale debt securities)

  

 

  

 

  

 

  

U.S. Government securities (1)

19,557

 

19,557

 

 

Total

$

97,285

$

97,285

$

$

(1)The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022.

86

13. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”), which includes: (i) a Securities Purchase Agreement wherein the Company issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of its common stock, for aggregate gross proceeds of $65.2 million; (ii) a significant agreement for its assistance in development of cloud-based applications for Advantest tools that leverages our Exensio analytics software ; (iii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; and (iv) a 5-year cloud-based subscription for Exensio analytics software and related services.

Analytics revenue recognized from Advantest during the years ended December 31, 2023, 2022 and 2021 was $9.0 million, $10.3 million and $10.6 million, respectively. Accounts receivable from Advantest were not material as of December 31, 2023 and amounted to $0.3 million as of December 31, 2022. Deferred revenue amounted to $9.4 million and $7.1 million as of December 31, 2023 and 2022, respectively.

The Company carries out transactions with Advantest on arm’s length commercial customary terms.

14. BUSINESS COMBINATION

On July 5, 2023 (the “Acquisition Date”), the Company, through its wholly-owned subsidiary in Canada, PDF Solutions Canada, Ltd., acquired 100% of the equity interest in Lantern Machinery Analytics, Inc. headquartered in Canada, a privately-held provider of automated image analysis and feature extraction AI/ML software for critical inspection and metrology steps at battery cell development and manufacturing processes for the electric vehicle industry. This software will enhance the Company’s Exensio analytics software and product offerings to new and existing battery manufacturer customers. The total cash consideration for this acquisition was $1.8 million, net of cash acquired, for all of the outstanding equity of Lantern Machinery Analytics, Inc.

The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. As of December 31, 2023, payment made for this acquisition, net of cash acquired, amounted to $1.8 million and was funded from available cash of the Company.

87

The allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $265)

$

450

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

1,010

 

8

Customer relationships

 

100

 

6

Goodwill

 

895

 

N/A

Total assets acquired

2,455

 

  

Liabilities

  

 

  

Deferred tax liabilities

294

Accounts payable and accrued expenses

73

 

  

Total liabilities assumed

367

 

  

Total purchase price allocation

$

2,088

 

  

Pro forma results of operations have not been presented because the effect of the acquisition was not material to the Company’s financial results.

Item 9.  Changes in and Disagreements with Accountants on Accounting and Financial Disclosure

None.

Item 9A.  Controls and Procedures

Evaluation of Disclosure Controls and Procedures

Our management, with the participation of our principal executive officer and principal financial and accounting officer, evaluated the effectiveness of our “disclosure controls and procedures” as defined in Exchange Act Rules 13a-15(e) and 15d-15(e) as of December 31, 2023, in connection with the filing of this Annual Report on Form 10-K. Based on that evaluation, as of December 31, 2023, our principal executive officer and principal financial and accounting officer concluded that our disclosure controls and procedures were effective to ensure that information we are required to disclose in reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the rules and forms of the SEC and is accumulated and communicated to our management as appropriate to allow timely decisions regarding required disclosure.

Management’s Report on Internal Control over Financial Reporting

Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as defined in Rules 13a-15(f) and 15d-15(f) under the Exchange Act, for the Company. Our management, with the participation of our principal executive officer and principal financial and accounting officer, assessed the effectiveness of our internal control over financial reporting (ICFR) as of December 31, 2023. This evaluation was based on the framework established in Internal Control—Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (“COSO”). Based on our assessment under the COSO framework, our management concluded that our internal control over financial reporting was effective as of December 31, 2023.

The effectiveness of the Company’s internal control over financial reporting as of December 31, 2023, has been audited by BPM LLP, the Company's independent registered public accounting firm, as stated in their report which appears in this Annual Report on Form 10-K.

88

Changes in Internal Control over Financial Reporting

There were no changes in internal control over financial reporting during the fourth quarter ended December 31, 2023, which has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.

Item 9B.  Other Information.

Insider Adoption or Termination of Trading Arrangements

During the quarter ended December 31, 2023, none of our directors or officers informed us of the adoption or termination of a “Rule 10b5-1 trading arrangement” or “non-Rule 10b5-1 trading arrangement,” as those terms are defined in Regulation S-K, Item 408.

Item 9C.  Disclosure Regarding Foreign Jurisdictions that Prevent Inspections.

None.

89

PART III

Pursuant to Paragraph (3) of the General Instructions to Form 10-K, certain of the information required by Part III of this Form 10-K is incorporated by reference from our Proxy Statement as set forth below. The Proxy Statement is expected to be filed within 120 days of December 31, 2023.

Item 10.  Directors, Executive Officers and Corporate Governance.

Information with respect to our directors and our Audit Committee appears in our Proxy Statement under “Proposal No. 1 — Election of Class II Directors — Nominees for Class II Directors” and is incorporated herein by reference. Information with respect to our executive officers appears in Part I, Item 1 — “Information about our Executive Officers” of this Form 10-K.

With regard to the information required by this item regarding compliance with Section 16(a) of the Exchange Act, we will provide disclosure of delinquent Section 16(a) reports, if any, in our Proxy Statement, and such disclosure, if any, is incorporated herein by reference.

Our Board of Directors has adopted a Code of Ethics (“Code of Ethics”), which is applicable to all employees of the Company, including our principal executive officer and our principal financial and accounting officer. Our Code of Ethics is available on our website at www.pdf.com, on the investor relations page. The Company’s website address provided is not intended to function as a hyperlink, and the information on the Company’s website is not, and should not be considered, part of this Annual Report on Form 10-K and is not incorporated by reference herein. You may also request a copy of our Code of Ethics in writing by sending your request to PDF Solutions, Inc., Attention: Investor Relations, 2858 De La Cruz Blvd., Santa Clara, California 95050. If we make any substantive amendments to our Code of Ethics or grant any waiver, including any implicit waiver, from a provision of the Code of Ethics to our Chief Executive Officer or Chief Financial Officer, we will disclose the nature of such amendment or waiver on our website or in a current report on Form 8-K.

Item 11.  Executive Compensation.

The information required by this item is incorporated herein by reference to the section entitled “Executive Compensation” in our Proxy Statement.

Item 12.  Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.

The information required by this item is incorporated herein by reference to the section entitled “Security Ownership of Certain Beneficial Owners and Management” in our Proxy Statement. Also incorporated by reference is the information in the table under the heading “Equity Compensation Plan Information” in our Proxy Statement.

Item 13.  Certain Relationships and Related Transactions, and Director Independence.

The information required by this item is incorporated herein by reference to the section entitled “Certain Relationships and Related Transactions” and “Corporate Governance — Director Independence” in our Proxy Statement.

Item 14.  Principal Accountant Fees and Services.

Information with respect to Principal Accountant Fees and Services is incorporated by reference to “Proposal No. 2: Ratification of Appointment of Independent Registered Public Accounting Firm” in our Proxy Statement.

90

PART IV

Item 15.  Exhibits and Financial Statement Schedules

(a)The following documents are filed as part of this report:
(1)Consolidated Financial Statements and Reports of Independent Registered Public Accounting Firms

The following documents are included as Part II, Item 8 of this Form 10-K:

 

 

Page

 

 

 

 

Reports of BPM LLP, Independent Registered Public Accounting Firm (PCAOB ID: 207)

53

 

Consolidated Balance Sheets as of December 31, 2023 and 2022

57

 

Consolidated Statements of Comprehensive Income (Loss) for the Years Ended December 31, 2023, 2022 and 2021

58

 

Consolidated Statements of Stockholders’ Equity for the Years Ended December 31, 2023, 2022 and 2021

59

 

Consolidated Statements of Cash Flows for the Years Ended December 31, 2023, 2022 and 2021

60

 

Notes to Consolidated Financial Statements

62

(2)Financial Statement Schedules

All financial statement schedules have been omitted, since the required information is not applicable or is not present in amounts sufficient to require submission of the schedule, or because the information required is included in the consolidated financial statements and notes thereto included in this Form 10-K.

(3)Exhibits required by Item 601 of Regulation S-K

See Item 15(b) below.

91

(b)Exhibits

INDEX TO EXHIBITS

Incorporated by Reference

Exhibit
Number

Exhibit Description

Form

Filing Date

Exhibit Number

SEC File Number

Provided Herewith

3.01

Third Amended and Restated Certificate of Incorporation of PDF Solutions, Inc.

S-1/A

7/9/2001

3.2

333-43192

3.02

Amended and Restated Bylaws of PDF Solutions, Inc.

8-K

5/1/2019

3.1

000-31311

4.01

Stockholder Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 30, 2020

10-Q

11/6/2020

4.2

000-31311

4.02

Description of the Registrant’s Securities Registered Pursuant to Section 12 of the Securities Exchange Act of 1934

10-K

3/1/2022

4.03

000-31311

10.01

Form of Indemnification Agreement between PDF Solutions, Inc. and certain of its senior executive officers and directors*

10-K

3/16/2009

10.17

000-31311

10.02

PDF Solutions, Inc. 2021 Employee Stock Purchase Plan*

DEF14A

4/28/2021

Appendix A

000-31311

10.03

PDF Solutions, Inc. Eighth Amended and Restated 2011 Stock Incentive Plan*

DEF14A

4/27/2023

Appendix A

000-31311

10.04

Form of Stock Option Agreement (Non-statutory) under PDF Solutions, Inc. 2011 Stock Incentive Plan*

10-K

3/15/2012

10.18

000-31311

10.05

Form of Stock Unit Agreement under PDF Solutions, Inc. 2011 Stock Incentive Plan*

10-K

3/15/2012

10.19

000-31311

10.06

Board of Directors Acceleration Agreement*

X

10.07

Employment offer to Adnan Raza, dated January 23, 2020*

10-K

3/10/2020

10.17

000-31311

92

Incorporated by Reference

Exhibit
Number

Exhibit Description

Form

Filing Date

Exhibit Number

SEC File No.

Provided Herewith

10.08

Software License and Related Services Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated March 25, 2020 and Amendment No.1 thereto dated July 29, 2020+

10-Q

11/6/2020

10.1

000-31311

10.9

Amendment #1 to Amendment #1 to Software License and Related Services Agreement by and between PDF Solutions, Inc. and Advantest America, Inc., dated June 5, 2022, by and between PDF Solutions, Inc. and Advantest America, Inc.+

10-Q

11/10/2022

10.01

000-31311

10.10

Amendment #2 to Amendment #1 to Software License and Related Services Agreement by and between PDF Solutions, Inc. and Advantest America, Inc., signed November 11, 2022, by and between PDF Solutions, Inc. and Advantest America, Inc.+

10-K

3/1/2023

10.13

000-31311

10.11

Amended and Restated Master Development Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020+

10-Q

11/6/2020

10.2

000-31311

10.12

Addendum #1 to Revised 2020 Contract, signed March 17, 2023, by and between PDF Solutions, Inc. and Advantest America, Inc.+

10-Q

8/8/2023

10.2

000-31311

10.13

Master Commercial Terms and Support Services Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020+

10-Q

11/6/2020

10.3

000-31311

10.14

Securities Purchase Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020+

10-Q

11/6/2020

4.1

000-31311

21.01

Subsidiaries of Registrant

X

23.01

Consent of BPM LLP, Independent Registered Public Accounting Firm

X

93

Incorporated by Reference

Exhibit
Number

Exhibit Description

Form

Filing Date

Exhibit Number

SEC File No.

Provided Herewith

31.01

Certifications of the principal executive officer and principal financial and accounting officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

X

31.02

Certifications of the principal executive officer and principal financial and accounting officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

X

32.01

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

X

32.02

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

X

97.01

Compensation Recovery Policy

X

101

The following financial statements from the Company’s Annual Report on Form 10-K for the year ended December 31, 2023, formatted in Inline XBRL: (i) Consolidated Balance Sheets as of December 31, 2023 and 2022, (ii) Consolidated Statements of Comprehensive Income (Loss) for the Years Ended December 31, 2023, 2022 and 2021, (iii) Consolidated Statements of Changes in Stockholders’ Equity for the Years Ended December 31, 2023, 2022 and 2021, (iv) Consolidated Statements of Cash Flows for the Years Ended December 31, 2023, 2022 and 2021, and (v) Notes to Consolidated Financial Statements, tagged as blocks of text and including detailed tags.

X

94

Incorporated by Reference

Exhibit
Number

Exhibit Description

Form

Filing Date

Exhibit Number

SEC File No.

Provided Herewith

104

Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)

*

Indicates management contract or compensatory plan or arrangement.

Furnished, and not filed.

+

Certain portions of this document that constitute confidential information have been redacted in accordance with Regulation S-K, Item 601(b)(10).

Item 16.  Form 10-K Summary

Not applicable.

95

SIGNATURES

Pursuant to the requirements of Section 13 or 15(d) of the Securities Exchange Act of 1934, the Registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.

  

PDF SOLUTIONS, INC.

  

  

  

  

  

  

By:

/s/  John K. Kibarian 

  

  

  

John K. Kibarian

  

  

  

President and Chief Executive Officer

  

  

  

(Principal executive officer)

  

  

  

  

  

  

By:

/s/  Adnan Raza

  

  

  

Adnan Raza

  

  

  

Executive Vice President, Finance and Chief Financial Officer

  

  

  

(Principal financial and accounting officer)

  

Date: February 27, 2024

96

Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.

Date

    

Signature

    

Title

  

 

 

 

 

February 27, 2024

 

/s/ JOHN K. KIBARIAN

 

Director, President and Chief Executive Officer

  

 

John K. Kibarian

 

(Principal executive officer)

  

 

 

 

 

February 27, 2024

 

/s/ ADNAN RAZA

 

Executive Vice President, Finance and Chief Financial

  

 

Adnan Raza

 

Officer

(Principal financial and accounting officer)

  

 

 

 

 

February 27, 2024

 

/s/ JOSEPH R. BRONSON

 

Lead Independent Director

  

 

Joseph R. Bronson

 

 

  

 

 

 

 

February 27, 2024

 

s/ CHI-FOON CHAN

 

Director 

 

 

Chi-Foon Chan

 

 

February 27, 2024

 

/s/ NANCY ERBA

 

Director

  

 

Nancy Erba

 

 

  

 

 

 

 

February 27, 2024

 

/s/ MICHAEL B. GUSTAFSON

 

Director

  

 

Michael Gustafson

 

 

  

 

 

 

 

February 27, 2024

 

s/ YE JANE LI

 

Director 

 

 

Ye Jane Li

 

 

 

 

 

 

 

February 27, 2024

 

s/ KIMON MICHAELS

 

Director 

 

 

Kimon Michaels

 

 

 

 

 

 

 

February 27, 2024

 

s/ SHUO ZHANG

 

Director 

 

 

Shuo Zhang

 

 

97

EX-10.06 2 pdfs-20231231xex10d06.htm EX-10.06

Graphic

ACCELERATION AGREEMENT Effective Date: _____________

Acceleration Agreement

          THIS ACCELERATION AGREEMENT (the “Agreement”) is entered into as of the Effective Date, by and between ___________________________________ (the “Award Recipient”) and PDF Solutions, Inc., a Delaware corporation (the “Company”).

1.       Definitions. The following definitions shall apply for all purposes under this Agreement:

          (a)      Acceleration Event. “Acceleration Event” means the occurrence of a Change of Control on or after the Effective Date with respect to Covered Awards:

          (b)      Change in Control. “Change in Control” for all Covered Awards means a “Change of Control” as defined in Section 2(g) of the 2011 Stock Incentive Plan (as amended).

          (c)      Covered Award. “Covered Award” means any equity award granted to the Award Recipient by the Company, whether such equity award was granted before, on, or after the Effective Date.

2.       Benefits.

          (a)      Acceleration. Notwithstanding anything to the contrary in any plan pursuant to which any Covered Award was granted or any applicable stock option agreement, the vesting schedule for all Covered Awards that are outstanding as of the date of an Acceleration Event shall be accelerated to provide that all such Covered Awards shall be immediately vested (and exercisable, if applicable) in full.

          (b)      Conditions. All benefits provided under this Section 2 are conditioned on (i) the Award Recipient’s continuing compliance with this Agreement, any employment agreement or other agreement between the Company the Award Recipient, and the Company’s policies and by-laws, and (ii) the Award Recipient’s execution of a general release of any and all claims in a form prescribed by the Company.

          (c)      Excise Taxes. In the event that any benefit received by Award Recipient pursuant to this Agreement would be subject to the excise tax imposed by Section 4999 of the Internal Revenue Code of 1986, as amended (the “Excise Tax”), then Award Recipient shall be entitled to either the full amount of the benefits or such lesser amount that would result in no portion of the benefits being subject to the Excise Tax, whichever of the foregoing amounts results in the receipt by Award Recipient, on an after-tax basis, of the greater benefit. Unless the Company and Award Recipient agree otherwise in writing, any calculation required under this Section 2(c) shall be made in writing by independent public accountants agreed to by the Company and Award Recipient, whose calculation shall be conclusive and binding upon the Company and Award Recipient for all purposes. The Company and Award Recipient shall furnish to the accountants such information and documents as the accountants may reasonably request in order to make a determination under this Section 2(c). All fees and expenses of the accounting firm shall be borne solely by the Company.  

3.       Successors.

          (a)      Company’s Successors. Any successor to all or substantially all of the Company’s business and/or assets (whether direct or indirect and whether by purchase, lease, merger, consolidation, liquidation or otherwise), shall be obligated to perform this Agreement in the same manner and to the same extent as the Company would be required to perform it in the absence of a succession.

          (b)      Award Recipient’s Successors. This Agreement and all rights of the Award Recipient hereunder shall inure to the benefit of, and be enforceable by, the Award Recipient’s personal or legal representatives, executors, administrators, successors, heirs, distributees, devisees and legatees.

4.       Miscellaneous Provisions.

          (a)      Notice. Notices and all other communications contemplated by this Agreement shall be in writing and shall be deemed to have been duly given when personally delivered or when mailed by U.S. registered or certified mail, return receipt requested and postage prepaid. In the case of the Award Recipient, mailed notices shall be addressed to him or her at the home address which he or she most recently communicated to the Company in writing. In the case of the Company, mailed notices shall be addressed to its corporate headquarters, and all notices shall be directed to the attention of its Chief Financial Officer.

          (b)      Waiver. No provision of this Agreement shall be modified, waived or discharged unless the modification, waiver or discharge is agreed to in writing and signed by the Award Recipient and by an authorized officer of the Company (other than the Award Recipient). No waiver by either party of any breach of, or of compliance with, any condition or provision of this Agreement by the other party shall be considered a waiver of any other condition or provision or of the same condition or provision at another time.

          (c)      Whole Agreement. This Agreement contains all the legally binding understandings and agreements between Award Recipient and the Company pertaining to the subject matter of this Agreement and supersedes all such agreements, whether oral


or in writing, previously entered into between the parties. Any and all stock option agreements regarding the Covered Awards are hereby modified and amended as necessary to comport with this Agreement. To the extent that any such stock option agreement is inconsistent with this Agreement or conflicts with this Agreement, then the terms of this Agreement shall control.

          (d)      Choice of Law. The validity, interpretation, construction and performance of this Agreement shall be governed by the laws of the State of California without regard to the conflicts of laws principles thereof.

          (e)      Severability. The invalidity or unenforceability of any provision or provisions of this Agreement shall not affect the validity or enforceability of any other provision hereof, which shall remain in full force and effect.

          (f)      No Assignment. The rights of the Award Recipient to benefits under this Agreement shall not be made subject to option or assignment, either by voluntary or involuntary assignment or by  operation of law, including (without limitation) bankruptcy, garnishment, attachment or other creditor’s process, and any action in violation of this subsection (f) shall be void.

          (g)      Retention Rights. This Agreement does not give the Award Recipient the right to be retained by the Company in any capacity. The Company reserves the right to terminate Award Recipient’s engagement at any time and for any reason.

5.      Term of Agreement. This Agreement shall continue in effect until the Company shall have given the Award Recipient written notice of cancellation, which notice may not be given by the Company in contemplation of or immediately after a Change in Control. This Agreement shall terminate automatically in the event the Award Recipient ceases to provide services to Company prior to an Acceleration Event. Notwithstanding the foregoing, this Agreement shall remain effective if, in connection with an impending Change in Control, the Company terminates the Award Recipient’s engagement for any reason.

       

   IN WITNESS WHEREOF, each of the parties has executed this Agreement, in the case of the Company by its duly authorized officer, as of the day and year first above written.

 

 

 

 

 

 

Award Recipient


 

 

 

By:

 

 

 

  

 

 

 

 

  

 Full Legal Name

 

 

 

 

 

 

 

 

PDF SOLUTIONS, INC.

 

 

 

By:  

 

 

 

 

Name:  

 

 

 

 

Title:  

 

 


EX-21.01 3 pdfs-20231231xex21d01.htm EX-21.01

Exhibit 21.01

Subsidiaries of Registrant

Name of Entity

Jurisdiction of Incorporation or Organization

 

 

Cimetrix Incorporated

Nevada

 

 

Cimetrix International, Inc.

Nevada

 

 

Cimetrix Japan KK

Japan

 

 

Cimetrix Software (Shanghai) Co., Ltd.

China

 

 

PDF Solutions Asia Services, Inc.

Delaware

 

 

PDF Solutions Canada Ltd.

Canada

 

 

PDF Solutions GmbH

Germany

 

 

PDF Solutions International Services, Inc.

Delaware

 

 

PDF Solutions KK

Japan

 

 

PDF Solutions Pacific Services, Inc.

Delaware

 

 

PDF Solutions SARL

France

 

 

PDF Solutions Semiconductor Technology (Korea) Limited

Korea

 

 

PDF Solutions Semiconductor Technology (Shanghai) Co. Ltd.

China

 

 

PDF Solutions Semiconductor Technology Taiwan Ltd.

Taiwan

 

 


EX-23.01 4 pdfs-20231231xex23d01.htm EX-23.01

Exhibit 23.01

CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

We hereby consent to the incorporation by reference in the Registration Statements on Form S 8 (Nos. 333-257792, 333-233070, 333-202455, 333-180324, 333-167533, 333-159211, 333-149281, 333 141660, 333-133332, 333-112728, 333-109809, and 333-102509) of PDF Solutions, Inc. of our reports dated February 27, 2024 relating to the consolidated financial statements and internal control over financial reporting, which appear in this Annual Report on Form 10-K.

/s/ BPM LLP

San Jose, California

February 27, 2024


EX-31.01 5 pdfs-20231231xex31d01.htm EX-31.01

EXHIBIT 31.01

CERTIFICATIONS

I, John K. Kibarian, certify that:

1.  I have reviewed this annual report on Form 10-K of PDF Solutions, Inc.;

2.  Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3.  Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the period presented in this report;

4.  The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a)  Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b)  Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c)  Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d)  Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5.  The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of registrant’s board of directors (or persons performing the equivalent functions):

(a)  All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b)  Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

    

/s/ John K. Kibarian

John K. Kibarian

President and Chief Executive Officer

(principal executive officer)

February 27, 2024


EX-31.02 6 pdfs-20231231xex31d02.htm EX-31.02

EXHIBIT 31.02

CERTIFICATIONS

I, Adnan Raza, certify that:

1.  I have reviewed this annual report on Form 10-K of PDF Solutions, Inc.;

2.  Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3.  Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4.  The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a)  Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b)  Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c)  Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d)  Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5.  The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of registrant’s board of directors (or persons performing the equivalent functions):

(a)  All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b)  Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

2

    

/s/ Adnan Raza

Adnan Raza

Executive Vice President, Finance and Chief Financial Officer

(Principal financial and accounting officer)

February 27, 2024


EX-32.01 7 pdfs-20231231xex32d01.htm EX-32.01

EXHIBIT 32.01

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Annual Report of PDF Solutions, Inc. (the “Company”) on Form 10-K for the year ended December 31, 2023 as filed with the Securities and Exchange Commission on February 27, 2024 (the “Report”), I, John K. Kibarian, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

(1) The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

    

/s/ John K. Kibarian

John K. Kibarian

President and Chief Executive Officer

(principal executive officer)

February 27, 2024


EX-32.02 8 pdfs-20231231xex32d02.htm EX-32.02

EXHIBIT 32.02

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Annual Report of PDF Solutions, Inc. (the “Company”) on Form 10-K for the year ended December 31, 2023 as filed with the Securities and Exchange Commission on February 27, 2024 (the “Report”), I, Adnan Raza, Executive Vice President, Finance and Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

(1) The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

    

/s/ Adnan Raza

Adnan Raza

Executive Vice President, Finance and Chief Financial Officer

(principal financial and accounting officer)

February 27, 2024


EX-97.01 9 pdfs-20231231xex97d01.htm EX-97.01

PDF Solutions, INC.

COMPENSATION RECOVERY POLICY

(Adopted and approved on November 29, 2023
and effective as of October 2, 2023)

1.Purpose

PDF Solutions, Inc. (collectively with its subsidiaries, the “Company”) is committed to promoting high standards of honest and ethical business conduct and compliance with applicable laws, rules and regulations. As part of this commitment, the Company has adopted this Compensation Recovery Policy (this “Policy”). This Policy is designed to comply with Section 10D of the Securities Exchange Act of 1934, as amended (the ”Exchange Act”) and explains when the Company will be required to seek recovery of Incentive Compensation awarded or paid to a Covered Person. Please refer to Exhibit A attached hereto (the “Definitions Exhibit”) for the definitions of capitalized terms used throughout this Policy.

2.Miscalculation of Financial Reporting Measure Results

In the event of a Restatement, the Company will seek to recover, reasonably promptly, all Recoverable Incentive Compensation from a Covered Person.  Such recovery, in the case of a Restatement, will be made without regard to any individual knowledge or responsibility related to the Restatement.  Notwithstanding the foregoing, if the Company is required to undertake a Restatement, the Company will not be required to recover the Recoverable Incentive Compensation if the Compensation Committee determines it Impracticable to do so, after exercising a normal due process review of all the relevant facts and circumstances.  

If such Recoverable Incentive Compensation was not awarded or paid on a formulaic basis, the Company will seek to recover the amount that the Compensation Committee determines in good faith should be recouped.

3.Other Actions

The Compensation Committee may, subject to applicable law, seek recovery in the manner it chooses, including by seeking reimbursement from the Covered Person of all or part of the compensation awarded or paid, by electing to withhold unpaid compensation, by set-off, or by rescinding or canceling unvested stock.

In the reasonable exercise of its business judgment under this Policy, the Compensation Committee may in its sole discretion determine whether and to what extent additional action is appropriate to address the circumstances surrounding a Restatement to minimize the likelihood of any recurrence and to impose such other discipline as it deems appropriate.

4.No Indemnification or Reimbursement

Notwithstanding the terms of any other policy, program, agreement or arrangement, in no event will the Company or any of its affiliates indemnify or reimburse a Covered Person for any loss under this Policy and in no event will the Company or any of its affiliates pay premiums on any insurance policy that would cover a Covered Person’s potential obligations with respect to Recoverable Incentive Compensation under this Policy.

5.Administration of Policy

The Compensation Committee will have full authority to administer this Policy. The Compensation Committee will, subject to the provisions of this Policy and Rule 10D-1 of the Exchange Act, and the

1


Company’s applicable exchange listing standards, make such determinations and interpretations and take such actions in connection with this Policy as it deems necessary, appropriate or advisable. All determinations and interpretations made by the Compensation Committee will be final, binding and conclusive.

6.Other Claims and Rights

The remedies under this Policy are in addition to, and not in lieu of, any legal and equitable claims the Company or any of its affiliates may have or any actions that may be imposed by law enforcement agencies, regulators, administrative bodies, or other authorities. Further, the exercise by the Compensation Committee of any rights pursuant to this Policy will not impact any other rights that the Company or any of its affiliates may have with respect to any Covered Person subject to this Policy.

7.Acknowledgement by Covered Persons; Condition to Eligibility for Incentive Compensation

The Company will provide notice and seek acknowledgement of this Policy, in substantially the form included as Exhibit B attached hereto, from each Covered Person, provided that the failure to provide such notice or obtain such acknowledgement will have no impact on the applicability or enforceability of this Policy. After the Effective Date, the Company must be in receipt of a Covered Person's acknowledgement as a condition to such Covered Person’s eligibility to receive Incentive Compensation. All Incentive Compensation subject to this Policy will not be earned, even if already paid, until the Policy ceases to apply to such Incentive Compensation and any other vesting conditions applicable to such Incentive Compensation are satisfied.

8.Amendment; Termination

The Board or the Compensation Committee may amend or terminate this Policy at any time.

9.Effectiveness

Except as otherwise determined in writing by the Compensation Committee, this Policy will apply to any Incentive Compensation that is Received by a Covered Person on or after the Effective Date.  Further, as of the Effective Date, this Policy amends and supersedes in their entirety any prior recovery of incentive compensation policy and any recoupment provisions which appear in a Covered Person’s equity award agreements or otherwise (the “Prior Policies”).  Notwithstanding the foregoing, the Prior Policies shall remain in full force and effect as to any compensation that, without the existence, and satisfaction, of conditions as set forth in the Prior Policies, may otherwise have been deemed earned prior to the Effective Date. This Policy will survive and continue notwithstanding any termination of a Covered Person’s employment with the Company and its affiliates.

10.Successors

This Policy shall be binding and enforceable against all Covered Persons and their successors, beneficiaries, heirs, executors, administrators, or other legal representatives.

2


Exhibit A

PDF SOLUTIONS, INC.

COMPENSATION RECOVERY POLICY

DEFINITIONS EXHIBIT

Applicable Period” means the three completed fiscal years of the Company immediately preceding the earlier of (i) the date the Board, a committee of the Board, or the officer or officers of the Company authorized to take such action if Board action is not required, concludes (or reasonably should have concluded) that a Restatement is required or (ii) the date a court, regulator, or other legally authorized body directs the Company to prepare a Restatement. The “Applicable Period” also includes any transition period (that results from a change in the Company’s fiscal year) within or immediately following the three completed fiscal years identified in the preceding sentence.

Board” means the Board of Directors of the Company.

Compensation Committee” means the Company’s committee of independent directors responsible for executive compensation decisions, or in the absence of such a committee, a majority of the independent directors serving on the Board.

Covered Person” means any person who is, or was at any time, during the Applicable Period, an Executive Officer of the Company. For the avoidance of doubt, a Covered Person may include a former Executive Officer that left the Company, retired, or transitioned to an employee role (including after serving as an Executive Officer in an interim capacity) during the Applicable Period.

"Effective Date” means October 2, 2023.

Executive Officer” means the Company’s president, principal executive officer, principal financial officer, principal accounting officer (or if there is no such accounting officer, the controller), any vice-president in charge of a principal business unit, division, or function (such as sales, administration, or finance), any other officer who performs a policy-making function, or any other person (including an officer of the Company’s parent(s) or subsidiaries) who performs similar policy-making functions for the Company.

Financial Reporting Measure” means a measure that is determined and presented in accordance with the accounting principles used in preparing the Company’s financial statements (including, but not limited to, “non-GAAP” financial measures, such as those appearing in the Company’s earnings releases or Management Discussion and Analysis), and any measure that is derived wholly or in part from such measure. Stock price and total shareholder return (and any measures derived wholly or in part therefrom) shall be considered Financial Reporting Measures.

Impracticable.” The Compensation Committee may determine in good faith that recovery of Recoverable Incentive Compensation is “Impracticable” if: (i) pursuing such recovery would violate home country law of the jurisdiction of incorporation of the Company where that law was adopted prior to November 28, 2022 and the Company provides an opinion of home country counsel to that effect acceptable to the Company’s applicable listing exchange; (ii) the direct expense paid to a third party to assist in enforcing this Policy would exceed the Recoverable Incentive Compensation and the Company has (A) made a reasonable attempt to recover such amounts and (B) provided documentation of such attempts to recover to the Company’s applicable listing exchange; or (iii) recovery would likely cause an otherwise tax-qualified retirement plan, under which benefits are broadly available to employees of the Company, to fail to meet the requirements of Section 401(a)(13) or Section 411(a) of the Internal Revenue Code of 1986, as amended.

3


Incentive Compensation” means any compensation that is granted, earned, or vested based wholly or in part upon the attainment of a Financial Reporting Measure. Incentive Compensation does not include any base salaries (except with respect to any salary increases earned wholly or in part based on the attainment of a Financial Reporting Measure performance goal); bonuses paid solely at the discretion of the Compensation Committee or Board that are not paid from a “bonus pool” that is determined by satisfying a Financial Reporting Measure performance goal; bonuses paid solely upon satisfying one or more subjective standards and/or completion of a specified employment period; non-equity incentive plan awards earned solely upon satisfying one or more strategic measures or operational measures; and equity awards that vest based solely upon service and/or the passage of time and/or attaining one or more non-Financial Reporting Measures.

Received.” Incentive Compensation is deemed “Received” in the Company’s fiscal period during which the Financial Reporting Measure specified in the Incentive Compensation award is attained, even if the payment or grant of the Incentive Compensation occurs after the end of that period.

Recoverable Incentive Compensation” means the amount of any Incentive Compensation (calculated on a pre-tax basis) Received by a Covered Person during the Applicable Period that is in excess of the amount that otherwise would have been Received if the calculation were based on the Restatement. For the avoidance of doubt Recoverable Incentive Compensation does not include any Incentive Compensation Received by a person (i) before such person began service in a position or capacity meeting the definition of an Executive Officer, (ii) who did not serve as an Executive Officer at any time during the performance period for that Incentive Compensation, or (iii) during any period the Company did not have a class of its securities listed on a national securities exchange or a national securities association. For Incentive Compensation based on (or derived from) stock price or total shareholder return where the amount of Recoverable Incentive Compensation is not subject to mathematical recalculation directly from the information in the applicable Restatement, the amount will be determined by the Compensation Committee based on a reasonable estimate of the effect of the Restatement on the stock price or total shareholder return upon which the Incentive Compensation was Received (in which case, the Company will maintain documentation of such determination of that reasonable estimate and provide such documentation to the Company’s applicable listing exchange).

Restatement” means an accounting restatement of any of the Company’s financial statements filed with the Securities and Exchange Commission under the Exchange Act, or the Securities Act of 1933, as amended, due to the Company’s material noncompliance with any financial reporting requirement under U.S. securities laws, regardless of whether the Company or Covered Person misconduct was the cause for such restatement. “Restatement” includes any required accounting restatement to correct an error in previously issued financial statements that is material to the previously issued financial statements (commonly referred to as “Big R” restatements), or that would result in a material misstatement if the error were corrected in the current period or left uncorrected in the current period (commonly referred to as “little r” restatements).

4


Exhibit B

PDF SOLUTIONS, INC.

COMPENSATION recovery POLICY

ACKNOWLEDGMENT

By signing below, the undersigned acknowledges that they have read and understood, and they agree to be subject to the terms of, the PDF Solutions, Inc. Compensation Recovery Policy.

Date: ​ ​

Signature: ​ ​

Printed Name: ​ ​

5


GRAPHIC 10 pdfs-20231231x10k003.jpg GRAPHIC begin 644 pdfs-20231231x10k003.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" (' V4# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HJJFJV4EZUFMY;M=KU@$JF0=_NYS1_:ME]M% MG]LM_M9_Y=_-7S.F?NYSTH M45574[-SOI4,WB# M2[=(GEU*SC65=T;/.@#CU'/(H T**@EOK:!(WEN(HTE(6-G< .3T ]ZQ M8::RK>7MM:LPRHGE5"1[9- %RBH([ZVE:)4N(G,J[XPK@[U]1ZCWIMMJ5I>2 MRQ6]U!/+$<2)'(&9/J >* +-%5+75;*]>5+>\M[AXO\ 6+%*K%/K@\4]=1M' M2)UN8629MD;"08=N>!ZG@\#TH L45!>7]MIT7FW5Q%;1YQOF<(,^F34=QJ]C M:6\5Q/>V\,$H!CEDE55<$9&"3@\4 6Z*@MKVWO8//MYXIX>?WD3AEXZ\CBF6 M6J66I*[6EW!=*GWC#*KA?K@T 6J*K#4K0PI,+J$PNVQ9/,&UFZ8!SR?:H(_$ M&ES7 MX]2M'G+;1$LZEB?3&Z@2Z<96!I '8>H7.3T/ MY4^[O+>PA,US/';Q#@R2N%4?B: )J*K1ZE:3+ T=U"ZSDB(K(")".NWGGIVI MLFK6,/\ K+VW3]YY7S2J/G_N]>OM0!;HJK+JME#-+%)>6\9(C2J&1?[Q M&>!R.:?)?VT) DN(D)0R ,X'RCJWT]Z )Z*;'(LJ*Z,'1AE64Y!'J*K?VO8_ M8VN_MMO]E4X,_FKL!Z8W9Q0!;HK/A\0Z7< F+4K.4 @$I.AP2< =>YJF,YS3[W6 MM/TV18[N_MK61AN"33*A(]<$T 7:*I3:WIUO;17$M_:QV\O^KE>90K_0YP:+ MO6M/T\H+J_MK8N-RB:94W#U&3S0!=HJJ-5LC;PSB\MS!,VR.3S5VNV<84YP3 MGTJ8W,0N! 94$Y4N(MPW%J\6MZ=/;27$5_:R6\7WY4F4HGU.<"@"[16:OB32'C>1=5LFC3&YA<)A<],G M/%26^NZ;=C,&H6LPW!,QSJWS'H.#U- %ZBJL^J65J)3->00B(@2>9*J[,],Y M/&:9'K>G2VLERE_:O;1D!YEF4HI/0$YP.M %VBH3=P+(\9FC$B+O92XR%]2/ M3WJ56# $$$'D$=Z %HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** " MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ** M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH MH **** "BBB@ J*[\W[+-Y&WSMC;-W3=CC/XU+10!\C?LOV7PZ;X6^ +_P 4 M#2$^+_=4U=]7W2"5'.1(3P1M/R[0.,8KS.YC\/)^S/JVI3B(?'(>( MW6*<#_B=#4_MNU$0_P"M\ORN,#Y/+SVK[QB\+:-!K#ZO%I%A'JKYW7R6R"=L MC!R^-QXXZUSGQ&U/PQ\-=%U'QWJ6A0W=[8("LUI:1M?3.Q$:11L<$NY8(!N& M=V* /S"\7Q>(M"^*/QFLM.69A\5?$^I^#+XP?<@N+W[FXO@",]*[? MX.^"K_Q/JGP>T+1_"OAGQ9,WPINX$M_%=X]O;P@W[()0R6TY+C(X"KP3\PK] M!;+Q/X&NO#6E^)+E]'TNQU,#489M1\F!C(Z@,Y+?\M,$*QSGMFM+2M3\'![N M?3+O0PVD1>3<26DD.;*,DML+/B=-\7OB;\*_B+X? M^'NC?$I[WX;7FJOX;U.[$/[P2P^=%$6@F#3(X= I"Y(/S>OV\WBSP=I]LOB MZSH=M;Z@-HU0W4*),H?O';QWH ^*/V7SIQ\:_L_26.O)J]O+X-UV:6:)&1+*1[B)WM55_F M58"QC&[!P@. " .9\"2>(?AQIOQ*\%>'H- \9ZO<>"=4U+P]\1O"4V=0N;=9 MP?)O8UZW&^5BKY))7 SD[?MSQYXMT;X5ZOX6LM-\%RZSK6O7=Q:6%MHT5I"X M<0O/*2\TD:J"L3$_-DD"N/L?CKXZT:?1[*&P@N4N M;>![F3SI3,L3#RP6!#MDGU- 'CM[!X,T[4_@,?A0MDFLW49-I?\ M9\IG:]V\EA,8L&7YMY..*= U,@%; M1Q'=PWMDYZY#R0RI@8VR-SD5]YCXT^%_#%A!=:9\/[V+Q+JFOKX;N]"LX+*" M]2\:&6X FQVTTE MJB*6:5/L[R*,C/W3GVH \D^+T&DWW[5'@:V\=):R^"3X=O'L8M5"FQ?5!,F= MX?Y"XA^[N_VL5\RM:76L:YX L="T;3_$W@\?%C5X?">F>(+AX=.GL%T]_D23 MR9B+99!-Y96-UPH"_+@C[7\+_$C3?BM)8:=KG@34=/L=2L_[2TZ76X+6YM;J M(8.X&*24(P#*=LFTD'@'!Q?USXC>"M%L/"\]HECK=G-K$&AV#Z3Y$\=E.Z,% MP0V(PJK@[>0".,4 5/$.@/I_P \1Z9#YDD M:$!9&7:&W'+8?DD\U[9X^^+?@WP#X$U+Q3K^M62^'[6R>]FEC=9O-@'!*(N3 M("2!A0#]*L-6%K%IWA?1;&\6W6[=[>VM+IGC619(F5L$,&&,X) MP>,F>'?+PD>HW3&,!CG!CB999%7'# M2^U4?V+-(TJS\,'7+_4_A[ EOXCUF5HKS0U.M+MO9\$79N1@\9'[G@<>]?85 MYXD\*Z/K$;7>J:/8ZK>(D:--<11SSJ2=BC)#,"&OC#=0:W;M\2 MM$(M3\-Z-X< MT34/BGJ#K\1[>_'[X56GBY()/ 4EOJ+/% MJ !LGU$(AA$P;Y"0GFE0W<<^O#>0K+&J1J6)V$'<>. !DG M ')H ^9/B?'X&T'XB?L_:KX-DTNT\&Z?XTU"*]N]/E LK6YEL9TVEL[$W2'; M@8&XXZFOFOX[>$I_'ND7<6GN635OC'?7.EWD+925H]+E*2(PX8"2/&1Z&OO[ MP9\4/AO\09M0\(6,>E"SM6MU@L+E;=8+T21+<(T$63N # GY1@@_6NST]?"5 MQ>#0[$:++=:2?-&FV_DE[,GC=Y8YC^\1G Z^] 'Y/V%UK?Q@\7?%7X@3V5VV MJ^.OA;JMU;V3KF588+JVM8UVCN?(=N/[U?1OQGU6R\6>(+2[T6\M]5MM/^#> MJ_:Y;.595@WB)4#E2=I8JP //RGTKZ=M?BUX'T[XNZ[X"72/[/\ $.BZ.E[' M-]DC2*ZMW#220P.#G*85F0A?O@C.&(SY_BO\/O!_A7PEJT7AI;.Q\<-$@@M; M"%2L;KGS+D @;%W@$Y;EP.9G;@%Z]K\5^+/!W@+Q;>:)I'PS;7K_3+"'6= M1;0]/LE-G 9'$4FUW1Y&S%(0L0=ALZ9(S/J?QSLT\9:Q!H_P^UWQ-<:-IMO> MW>J:?':*\=O.C2(BI+,DSG"$[%0G. 3Q0!\>67A?1M*_8O\+WMEI%C9WMQ\ M3;**:YM[9$DD1==PJLP&2 . #TK173;J]^.=O^S*(7&DIX_?QIBO=LB #I@IZ#XJN+>>PDL;2-H((Y7 MCV7DBG&Q!)-#E@"09 <<$C1\5_$33= \>7%AHO@R^\7>*;:P6XOY=(BMDEM+ M=C\BR2S21Y+%21&I+$+G'2@#YO\ V0?#MA/K?#[PUJ%]HVGWM^/%.C6HNKBU2240M M>INCW$9V'OQ!M]'TF+3UB>^DOY=.C2>$IDN7^7<' M4J01UR*9X:^)]OX\U'2[#5?!&LZ3::I$U[I=UK%O!)#<KVPDNO[';6B+9-T@W M[&BV@ ]5VU]R:EJW@;Q=I$EU?WGA[6M+LYBCSW,L%Q#!+CD%B2JM@].N*FB\ M4^#?$,4-I'J^A:G&(OMD4"W,,H$:$CS57)^52I^8< J>>* /C#]M30;7X@^, M+/X7^&]/U*RM_"7AVZ\0V5OX7TF>=;;5W;_B7Y2VC81KO21MS8&3GGFNF^'/ MQFTCXD?M*_"3QY=WUGIL&M?"J\EE,\RQQQW!O[42Q L1RKJX]?EKZNT_Q#X5 MN?[5U:QU/1Y?LRXU"^M[B(^4J@G$S@_* ,GYCP,UC:E%\,Y-#T_4-03PHVC. M3%9W5R+8VY)))6-V^7DAC@'KF@#R7_@H'-'JG[(_B.2S%MJ,G^&_B.VU!/AOX@6721*+?PWX=CM&3;&QW3!KB?>02N# MA<$'KGCP7P_X9TK0/V//V>M;L]*LM-0:_HMUJE_!;I%E1,X$DS@#(!;&YCQF MOK+PIXP^'VG:YXWL;;3-+\*-X=OHM)U"[GAM[2*X:2UBN0%8$;EV3*"&QR&X MQR=;QGXX\$>"OAO=:G?SZ3)X;CL);F"SCD@\J\CCC,GEP*2$&M3\$ZCH^AV-I!H^GC4[>+5;31'6".7#*'5Q"/XA_> .".O%:7E^$O$L MZR;=%U6;48 RMB&9KJ&-P<@\[T5\>H!QWH ^&/@/X7USXD?'?XF_"WX@S:A! MJFA>%;#0[G5X'"2:A;17C207"/CJ\00,<<'=@YYK[O\ !7A:#P1X4TS0;:XG MNK?3X1!'-Y-U$ MK"L=Q#-&R[I'E) M9#@PI@@D5ZI10!\G0?LU^+HM0T31M1\OQ/H'AZXU\6&HZJ]OYTT%[:+Y&^.- M$1669I4^5% "J0!FJC_LP>*;/3]/BT[3K"VCM_".CV%W9QS(B7UW:WKSRPOC M@AD8@.>,M@\9KZSU.^32]-N[QU+I;Q/,R@@$A021DD =.Y KYXT?]M31M@#-\*?L]Z[/X_T MGQ#J^@Z?8Z)+XFU'6G\//)',FFQ2V,5NB@#*,SR1/,P3@&8]\U\^_%WP+JGP MR^ 2^"?$5EI.M^+K_P"'-KXGW&CBZB_T9K)MLTGFGY7',97'7>!QS7*6GQN\8 M6?[(GPJ^(/V"S\4>+M9708[R6\2.$.UW-#'*X"A51CYA V@!20<$#% 'I'QF M^%-U\3/&/PVGW746D:-J=U=:A-8:G-87"(]E-$GERP.D@S(Z A6&03G(R*YG MQG\'+KP3XG^&6K> O#4VL6GA_6-0U'4K>75-UW<-2T: -A8DDPYR25P M:Z'X#?M4>&?CYJUWIVD""*ZCL(M5B2#48+PFVD8JIE$3'R9 0,Q/\PW#WH X M[6_V?=;^(5]I^K>)="L'74O'D'B'4]%N9DF2WL8=.EM(T8\K(^?+8A<\L<$X MKWH^%(?#O@JYT3PGIVEZ8J6\B6=G- ?L:NV3AT0@["3SCU->%^+?'_CGPK\1 MM0;7M>UKPOI9UA(=)9M(MKGP[<6?[L!;B=(FN897W.-S2(@?'4<&MI/QWUJZ M_:?NM NO$\5GX26[N(;=+R*"#3KN"*WA0K;3O&)9;Q+R4JZK(8PA "[@30!1 MB^ 'B?5K77K7PYX>'PC@U30;RPU*SM-5\ZPO;N2%8X9(;>)RD04J+-,\01^&;+PA:0:IH;RZ)#=Q.&6S2Y$UT3&=F2)XT4?>(CYQ MP*R_"'Q;\<:_J]W)8^+?%.L:Y%XWO=)/A_\ X1R'^QTT^*_DAYNELE(*0J#N M^T$[A@@GBO0?VB?B;KWAWQ=HGAO1M1U_1H;C2;[5KJ^\-:7;7UVJP[% VW*/ M&$!?0-!( MJCF-6"+R^"I/(XS7?3?!+Q=;^/[CQ>_A:VU739-3NK@>%GNX!A+BP@A63+'R M]T31.F,_=D8K[RZO\=/$-[XLL]:T7Q.+WPM8WGA>S-K9V,0MM9BU:18VNQ2B M6+(^Q/Y2W<4LDBH6221H@-X ^Z:WO&WQVU+XWNG"-''',DC@GIN !X]:\8M?V8?%0T2QMK:.ST759=5\6376JP2KYL<6H/ M=_9)"R_,Q EB)7.5Q[5W,W[5]OI^E7D^H^$-3LK\65EJ5A9&>)S>VMU-Y,3A MP<(P? 96Y (/.:BN_P!JJ[L_$U]H1\ ZA)>66L6WA^8I?P%!?SV4-TD8/=0) MMI?H"N<'- '3?!_1]9\,:?:6]S\.+#PU)#:6>G37-E>P/)/Y:$-)A1S$I^[E MMYWGY1S6MX^TJZ^,/P.\:Z+#I[Z?>ZSIFIZ3!;WX'$F)H(W/;:Q"N#Z$&O-_ M%/[:&A^%/AC9^,KK1O)C8ZDEU87>JVMM-%)8S20W$<0=@;A]\3[5C!R,'C-4 M[C]HC7[SXH-I$J_V/X>B\4:9I]I=VL<4KWMO<:?<7#).')**3&K;DPPV@=S0 M!@6_[.'BB>PN+W^P;'3]8;Q)X6U*V/GQ&6"VLFMOM0#KT^6.7 !^;..]7?@Y M^SMXO\&_&:SUG6[O5;NQTV\U>[CO3>Z>EI,MVQV1B..T%W*<,"1--M4Q*1NX M%=0_[7^F6WA/4/$-SX7U.&Q&C#Q!I6)8RVI61G2$.O/[MLR1G:W.''O7HWPW M^)$OQ'C\2V-QI5SX;UC1+W^SKNW::.0>>"#0!YO\1_@- MKOC#Q%\1]9T^2"PU>X&FWGAJ_9P=EU;P2QNLBCD(XD,; ]5G^*/$VI^"8-)\)VOARSAT!K"X%P\B"2]D/OBW<^*?B9XCUGPUX%EMF2TN;'2U$T+Z=%88;*-R0SMMV,O0 M YYROA+]M;POXNT_4S9627>K6ZV+V^GZ9JEM?"?[7(T<*M+$Q6)PZ,'1N5&# MR#0!D^)OAAXW\7Z!HZ^*? .G:UXGAT2&UM/$FC:M_9^HZ7?(I5W:X617,3/M ME41<@%E96.,Z^@>&_BE\./&7B74H?#\7C34M6T+2K1=8:_AM8'OK>"1)))D9 M@ZHTCACL!."<#/%4_'?[17C#P/XZM;B]\)7\6CV?AC4]7U;0_M%L7C%K/&#< M)-U<>66*J",[N1D5U,G[3EK_ ,)L-'A\-7TNCKJFG:3)K1GC5%FO85E@Q%]X MCYU4GL3WH X33?V1M5_:/V?S3 M&8A\P4[67>!C=@8YS0 ?#OX4ZS>?LVW_ (.UZ$Z%K^JPWOVM2ZS)!//([DJ4 M)#("PQSD@=J)M/\ BGXW\'-X2N-)LO!L1T:XL;W6'O%N6GG,'EQ&U$3 HNXE MV:0 @ *225RO^&NX([ZS6X\%:M#I]_I%WKUE>B>)A-96]S;02/L!W*W^DA] MIYVKZFO4=!^)^GZ]X<\3:[%!(FE:+=75N+C<"MTMNO[R1,?P[@Z<]T)H ^>C M^SSXI\1R17,OA33?#5I&N@6(H-%U*RN-1UB^\':;97EY:2R%'MH%AGADW6Z([@E$:4F-(-5TOQ)>7.C/JUY?VUU%IT?> ?@7XI\9?"OPIK6G>'K'0K:V\/^'#_8:74?E>(A:W$-W()"HPHD12H\ MP=7^8;E-J,'A^YTN]N-;O\ 4;73]&U"P9],AG@2(PO#=Q2V MDTX #*VTHZ>+6Z,MPD@*0VUI M',X'E[M]S*S*6( ;(]'TZXTK3?!6J%+N:>2&1=3B@?; M=1;,%D'EL65@5.]5ZKN5NT^(?BJ_3Q/X)\,:-?'3[G7[B>::]B2-WBM+>+S) M"@D5E+,S0IRIP')Z@4 >5ZI\ M?U;XIZWJ]WI]E=:+>>/++7U2:5&W6D6E0V MS,4/<2QL-OH,UQ5W^S?XXT_P)'IS>'-/\2R3Z%XAT*/3Y[R)(]-:[OYI[:X0 MO\I'E-&I"_,NU0.,UUUEJGCK2_%OQLBF^)WB'4K3P9I\-QIUM=6.DA'>6P>< MF4QV2,VUP",%>!@YK,^#?Q6\1>+/%W@72[#Q[XF\5W&IZ.U]XAL]Q^*6EZI=W&ISZ7]IT._Q8WVG0V] MH;*SBBDA=I+62Z8%XG(6*1$<3,#MY)] ^ OPC\1^!?B;XF\2:OX?TZPL_$@E MN8(+6Y,CZ)^])^R@%RI$N3,QB"KYC,.>"?2?@SXNU#Q;X1N%UF1)]:T?4KS1 M;Z>-0JSR6T[1";:.%\Q%23:. 7QVKNZ "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH MHH **** "BL[Q!XBTKPGI%QJNMZG9Z/I=L TU[?SK!#$"< L[$ QM9B-?O.9@VS QRZ]8+ON]+M[R-[FW7CF2('%=.O7O)]6U_5+ MR1=,1YKZ[C8E;"662U "QJJA?-92% R "?F+,?9J* /*;G]G#PT]S/>66H:S MI&I3:K>ZLU_872I,&N\?:(@2A'EMM'&-PP"&!&:O'X"^'$^#>B_#6&?4+?1- M&BLH[&ZCF0W<+6DD_)W2#:[,@$C84<8]CHH YSP)X#TSX>:5>Z?I1G:"[U&[ MU20W#AF\ZYG>:7! 'R[W; [#'6LSXB_"C3OB.8))]3U71+V*":T^VZ/<+#,U MO* )8B65AM; Y # @%2#S7;44 >6C]G#P=!X@T'4;&.[TRST>*QBAT:TE5;& M460(LS(A4L3#D%<,.57.<"M'PU\$= \*^.KKQ3:SW\MS(;E[>RN)E>VLGN&1 M[EH5VAE,C1H6RQZ<8R<^@T4 >>^*_@=X;\9:KK6H7[7HN-6;2VN/)F"KG3[K M[3;[1M./WGWO4<<=:JR_L]>$;G6DU*XCN[F1=5O]7:"68&*2:\MFMIU8;)+_ %QFOOMM[X@@\2RXF&S[7#:QVJ8&WA/+B7*^ MN3GM7H]% 'B.J?LC>#-3TB;35O\ 7;*UN8M5MKL6EXB-6XU>YT^YT\:3;0RW*8TVR$PF%O;X0;4WJOWM MS851G &/1?#7@;3?"FM>)=4LC,;GQ!>K?WGFN&42+"D(V#' VQKQSSFNAHH MX]/A3X?^W>-[F>"2\7QB8_[5MYWS&X2V6V"J 5!C09YZY/%0-?[FU/3=6/[\?Z^QC2.#^'[N(UW#OSR*]+HH \>N?V6?!UY!KUI/ M<:K+IFIV&IZ=!IS7">1ID6H9-X;4;,HTA8G+%MO10!D5=A_9R\+6WB6VU99= M0DM[:[&IQ:++.IL/MP@,(NB@7<9-C-P6V9.[;N (]4HH ^4?"7[-WBS2_%^I M:Q?6<$NFV'A?4/#NDZ'-K/VBW?[7<12-L/D*8(T6!>&\QR9,;L(HKW+X7_"J MR^'_ ,'M'\".S7-K;:=]BN)&&WO M]>U+0/%.A6CZ0FL^'YXPUY9J_P @E26)T.X*CX*DJV<-@G,K_LT^&+2UTJ'0 MM1UWPHUC:26#W&AW_DSW<$DIFD660JS;FD9W,B%7#.Q##->M44 >>?\ "DM( MC\77>N6VJZW907TRW-]H]K>[+.]G6+RA+, OF.2@4%=^QMJEE)%U44 >4^*O@ MO')X(UKPMH19;/Q/K#76LS7N>:@E^$>CVS^$+RS-W%J'A*V:VTZ6.<(\L)C" M&"9BIW(VU">!RH/:NZHH XSX2^#+OP1X1-OJW6K:B\1S&+BYF>9T M3U1-XC4GDJ@SS79T44 %%%% !1110 4444 %%%% !1110 4444 %%%% !111 M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 >2_M- MQZ4?AM%-K$NHV5O;:E:W$>JZ=!',--F1\QW$RR97R@P"LVUMN\-@ %E^3?&> MO>,?'O[)%S91^!;[6?"-KH]U*-8\-BUM8]0GCA1;>:>&:XCD*(=[L8UD\QXT M( "[3^A;*'4JP#*1@@]#38HD@B2*)%CC10JH@P% Z #L* /E'XC^(-3\'^,7 M\6Z-XDGTOQM=:!I-C8>!KS24EDOPL\K-")@7#EC,P)@;]V0"Q(QB+X0QW%Q\ M5_!>E^5)'XAT/4_%-UK\9B(>&&XE7RC(W3$K- R\_.(R1]PX^MJ* *>J1W\E MN!IT]M;SYY:ZA:5N=^'/_)/O#/_ &#+;_T4M &SLO/^>T'_ 'Z/_P 51LO/^>T'_?H_ M_%59HH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ %59HH K;+S_GM!_WZ/\ M\51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ \55FB@"M MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ )[0?]^C_P#%4;+S_GM! M_P!^C_\ %59HH K;+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T' M_?H__%4;+S_GM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59 MHH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ %59HH K;+S_GM!_WZ/\ \51L MO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ \55FB@"MLO/^ M>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^ MC_\ %59HH K;+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H_ M_%4;+S_GM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K M;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ %59HH K;+S_GM!_WZ/\ \51LO/\ MGM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ \55FB@"MLO/^>T'_ M 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ M%59HH K;+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4; M+S_GM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ M )[0?]^C_P#%4;+S_GM!_P!^C_\ %59HH K;+S_GM!_WZ/\ \51LO/\ GM!_ MWZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/ M_P 51LO/^>T'_?H__%59HH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ %59H MH K;+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_G MM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ )[0 M?]^C_P#%4;+S_GM!_P!^C_\ %59HH K;+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ M ,55FB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/_P 5 M1LO/^>T'_?H__%59HH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ %59HH K; M+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_GM!_W MZ/\ \55FB@"MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ )[0?]^C M_P#%4;+S_GM!_P!^C_\ %59HH K;+S_GM!_WZ/\ \51LO/\ GM!_WZ/_ ,55 MFB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ \55FB@"MLO/^>T'_ 'Z/_P 51LO/ M^>T'_?H__%59HH K;+S_ )[0?]^C_P#%4;+S_GM!_P!^C_\ %59HH K;+S_G MM!_WZ/\ \51LO/\ GM!_WZ/_ ,55FB@"MLO/^>T'_?H__%4;+S_GM!_WZ/\ M\55FB@"MLO/^>T'_ 'Z/_P 51LO/^>T'_?H__%59HH K;+S_ )[0?]^C_P#% M4;+S_GM!_P!^C_\ %59HH 09P,]:6BB@ HHHH **** "BBB@ KG?AS_R3[PS M_P!@RV_]%+715SOPY_Y)]X9_[!EM_P"BEH Z*BBB@ HHHH **** "BBB@ HH MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH MHH **** "BBB@#S[XZ>+?$/@GP!-JGAJT-Q>K=01S3+8RWQM;=G DG%O%\\N MT?PKZY/ ->0^(?VF=:T#]F&'Q=IM_H7B_P 976G3WT)TU"EK"D,8>X>:,N63 MR=RQLF<^8\:G;NX]V^(_@RY\<^'/L%CKEYX>OXIDN+>^LVSAUS\LB9 DC8$A MD;@YSP0"/&T_8F\+:A\,K[P]K.JZK=>(-1L9+2[U^RO9[,OO15/[B*18V0!5 MPKAAQSF@"S\1/CGXD\/>)-7ETZ33XM$\+V>CW6J6UQ;,\MZ;V=D<1N' BV1K MN'#;F;!P!4_@'XV^(M?^(F@QWSZ>_AKQ->ZS8:?:0V[)<6K6+_([R%B)/,5) M21M7:=N,\UO>(?V!]!N+?2+"">XTZW::6*V16D)C4DL0,DY/>@#M:*J_V79?\ M/I!_WZ7_ H_LNR_Y](/^_2_X4 6J*J_V79?\^D'_?I?\*/[+LO^?2#_ +]+ M_A0!:HJK_9=E_P ^D'_?I?\ "C^R[+_GT@_[]+_A0!:HJK_9=E_SZ0?]^E_P MH_LNR_Y](/\ OTO^% %JBJO]EV7_ #Z0?]^E_P */[+LO^?2#_OTO^% %JBJ MO]EV7_/I!_WZ7_"C^R[+_GT@_P"_2_X4 6J*J_V79?\ /I!_WZ7_ H_LNR_ MY](/^_2_X4 6J*J_V79?\^D'_?I?\*/[+LO^?2#_ +]+_A0!:HJK_9=E_P ^ MD'_?I?\ "C^R[+_GT@_[]+_A0!:HJK_9=E_SZ0?]^E_PH_LNR_Y](/\ OTO^ M% %JBJO]EV7_ #Z0?]^E_P */[+LO^?2#_OTO^% %JBJO]EV7_/I!_WZ7_"C M^R[+_GT@_P"_2_X4 6J*J_V79?\ /I!_WZ7_ H_LNR_Y](/^_2_X4 6J*J_ MV79?\^D'_?I?\*/[+LO^?2#_ +]+_A0!:HJK_9=E_P ^D'_?I?\ "C^R[+_G MT@_[]+_A0!:HJK_9=E_SZ0?]^E_PH_LNR_Y](/\ OTO^% %JBJO]EV7_ #Z0 M?]^E_P */[+LO^?2#_OTO^% %JBJO]EV7_/I!_WZ7_"C^R[+_GT@_P"_2_X4 M 6J*J_V79?\ /I!_WZ7_ H_LNR_Y](/^_2_X4 6J*J_V79?\^D'_?I?\*/[ M+LO^?2#_ +]+_A0!:HJK_9=E_P ^D'_?I?\ "C^R[+_GT@_[]+_A0!:HJK_9 M=E_SZ0?]^E_PH_LNR_Y](/\ OTO^% %JBJO]EV7_ #Z0?]^E_P */[+LO^?2 M#_OTO^% %JBJO]EV7_/I!_WZ7_"C^R[+_GT@_P"_2_X4 6J*J_V79?\ /I!_ MWZ7_ H_LNR_Y](/^_2_X4 6J*J_V79?\^D'_?I?\*/[+LO^?2#_ +]+_A0! M:HJK_9=E_P ^D'_?I?\ "C^R[+_GT@_[]+_A0!:HJK_9=E_SZ0?]^E_PH_LN MR_Y](/\ OTO^% %JBJO]EV7_ #Z0?]^E_P */[+LO^?2#_OTO^% %JBJO]EV M7_/I!_WZ7_"C^R[+_GT@_P"_2_X4 6J*J_V79?\ /I!_WZ7_ H_LNR_Y](/ M^_2_X4 6J*J_V79?\^D'_?I?\*/[+LO^?2#_ +]+_A0!:HJK_9=E_P ^D'_? MI?\ "C^R[+_GT@_[]+_A0!:HJK_9=E_SZ0?]^E_PH_LNR_Y](/\ OTO^% %J MBJO]EV7_ #Z0?]^E_P */[+LO^?2#_OTO^% %JBJO]EV7_/I!_WZ7_"C^R[+ M_GT@_P"_2_X4 6J*J_V79?\ /I!_WZ7_ H_LNR_Y](/^_2_X4 6J*J_V79? M\^D'_?I?\*/[+LO^?2#_ +]+_A0!:HJK_9=E_P ^D'_?I?\ "C^R[+_GT@_[ M]+_A0!:HJK_9=E_SZ0?]^E_PH_LNR_Y](/\ OTO^% %JBJO]EV7_ #Z0?]^E M_P */[+LO^?2#_OTO^% %JBJO]EV7_/I!_WZ7_"C^R[+_GT@_P"_2_X4 6J* MJ_V79?\ /I!_WZ7_ H_LNR_Y](/^_2_X4 6J*J_V79?\^D'_?I?\*/[+LO^ M?2#_ +]+_A0!:HJK_9=E_P ^D'_?I?\ "C^R[+_GT@_[]+_A0!:HJK_9=E_S MZ0?]^E_PH_LNR_Y](/\ OTO^% %JBJO]EV7_ #Z0?]^E_P */[+LO^?2#_OT MO^% %JBJO]EV7_/I!_WZ7_"C^R[+_GT@_P"_2_X4 6J*J_V79?\ /I!_WZ7_ M H_LNR_Y](/^_2_X4 6J*J_V79?\^D'_?I?\*/[+LO^?2#_ +]+_A0!:HI M !@#L*6@ HHHH **** "BBB@ KG?AS_P D^\,_]@RV_P#12UT5<[\.?^2? M>&?^P9;?^BEH Z*BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HKG/''Q'\+_#32)- M4\5:_I^@6"#)FO[A8@?ID\_A7@UW^V5J7CQGM?@Q\+/$GQ%F+%%UF^C&D:.I MZ9^T3?,WKA4Y'0T ?3E>,Z-\7_'7BFTU/4M(\(>%(]&MM8U/2(9]7\6SVLTI MLKZ>S>1HUT^14W-;LP =L C)S7$VWPH_:+^):&X\:_%C2_AY:R_\P7P#IOG2 M1J?6\N/FW#H<(1GH:\K\%?L@Z5X>AU2T\<_"OXA_$V]&M:I,E_<>(M-DLKJ" M2_GE@F$,FH18=XGC>3,2G>S\4 ?07AS]J_P7#;:['X[\2>$O!6J:1J+6$L'_ M D<=Q#*!#%*)(Y)(X68$2[?N#E2.:)OVVO@/!U^*GAN3_KC>"3_ -!S7/? M/]ESP)X=3Q/J%]\(=*\,"[UAIM-T[4[:SN9[>U%M;H 3%)-&,R),P <_>R<9 MKVJ'X9^#[?\ U7A31(O]S3H1_P"RT >9VO[<'P&NV*K\4_#T6#C-Q<&$?FX MKI-%_:<^$/B.58M+^)WA+4)6Z);ZS;NQ_ /74S_#7PCJ*K6>HVEV&Y!@G M5\_D:OU\]W_[!/P3G+-IWA-_#DK<^9H-_/8L#Z@QN,&L_P#X9$\2^&?F\#?' M7QUX>"_,-'US/'EVMVC2 ^A3.X'VQ7=4 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%<+XY^.GP]^ M&D#2^*/&>B:(%ZK=WL:OGT"YSGVQ7DUU^W3X6UF1[;X?^#/&_P 3+S[JG0=$ M>.VS_M3SF-0O^TNZ@#Z3HKY?7Q;^U7\2'QI7@CP5\)M,?_EX\1ZI)JU\%[%8 MH%$8;_9<_C5H?LG>-?%_S_$/X[^+M=W?ZRQ\/1Q:+9GU&V/<_P".\4 >\>(_ M'GAKP?:O(M9TR M+29F^Q_#J*2\>XN_.0*"\<;*?DW8.X#WKUCPY^P[\&/#UTEW+X.AU^_3I>^( M+B74)L_[TS-75:K\#+2/Q'9:SX1UJX\ W%M8OI[0Z%867E31-(K_ #)+ X!! M08(QU- ',>#/M^F_$'X=7$&O>+9=-\2Z%>W\^C^*)E,UNRK:/&LD87]W*GG. MK#)PZUYUH/PHU&Q\;:;XEUKQQK/B>XTZUN;6VMKVULH8D$YB+M^X@1B M?W2XR<=>*]%H **** *NIZI9Z+837VH7<%A90+NEN;F18XXQZLS$ #ZUF2^/ M/#,&GV-_+XBTF.QOG\NTNGOHA%<-Z1MNPQ]AFO/OVHX-*F^&,;ZMJ::-%!J= MI/#?W5F;JRAF1]T9NH]Z?N21M+%U"EE.1BOG[2/&7@[Q)^RS-:W;^#O!>LOI M5U866J3V8EM]3B6&,3O:$E/WKL5& 7(=<[9 .0#[&UCQEX?\/7UM9:KKNFZ9 M>7/^HM[R[CBDEYQ\JL06YXXJS:^(M*OM6NM+MM3L[C4[10UQ917"--"#T+H# ME0?<5\B^*_%M_P"$=?T_QLESX:BUUO"NAV=MX$\1VTUQJ]P/-E>2*WDWQ@2D MRXWB.4DH-RI@[K?P=NHKKXP>#;: P#Q;::GXIE\21+_Q]16\DJF/S^X5G^S% M-W#!5NI6C7'U56 M.?PKE_AC+K#>!M %Q;6*0#3K?RFCN'9F'EKC<"@ ./0F@#M**K;KS_GG!_W\ M/_Q-&Z\_YYP?]_#_ /$T 6:*K;KS_GG!_P!_#_\ $T;KS_GG!_W\/_Q- %FB MJVZ\_P"><'_?P_\ Q-&Z\_YYP?\ ?P__ !- %FBJVZ\_YYP?]_#_ /$T;KS_ M )YP?]_#_P#$T 6:*K;KS_GG!_W\/_Q-&Z\_YYP?]_#_ /$T 6:*K;KS_GG! M_P!_#_\ $T;KS_GG!_W\/_Q- %FBJVZ\_P"><'_?P_\ Q-&Z\_YYP?\ ?P__ M !- %FBJVZ\_YYP?]_#_ /$T;KS_ )YP?]_#_P#$T 6:*K;KS_GG!_W\/_Q- M&Z\_YYP?]_#_ /$T 6:*K;KS_GG!_P!_#_\ $T;KS_GG!_W\/_Q- %FBJVZ\ M_P"><'_?P_\ Q-&Z\_YYP?\ ?P__ !- %FBJVZ\_YYP?]_#_ /$T;KS_ )YP M?]_#_P#$T 6:*K;KS_GG!_W\/_Q-&Z\_YYP?]_#_ /$T 6:*K;KS_GG!_P!_ M#_\ $T;KS_GG!_W\/_Q- %FBJVZ\_P"><'_?P_\ Q-&Z\_YYP?\ ?P__ !- M%FBJVZ\_YYP?]_#_ /$T;KS_ )YP?]_#_P#$T 6:*K;KS_GG!_W\/_Q-&Z\_ MYYP?]_#_ /$T 6:*K;KS_GG!_P!_#_\ $T;KS_GG!_W\/_Q- %FBJVZ\_P"> M<'_?P_\ Q-&Z\_YYP?\ ?P__ !- %FBJVZ\_YYP?]_#_ /$T;KS_ )YP?]_# M_P#$T 6:*K;KS_GG!_W\/_Q-&Z\_YYP?]_#_ /$T 6:*K;KS_GG!_P!_#_\ M$T;KS_GG!_W\/_Q- %FBJVZ\_P"><'_?P_\ Q-&Z\_YYP?\ ?P__ !- %FBJ MVZ\_YYP?]_#_ /$T;KS_ )YP?]_#_P#$T 6:*K;KS_GG!_W\/_Q-&Z\_YYP? M]_#_ /$T 6:*K;KS_GG!_P!_#_\ $T;KS_GG!_W\/_Q- %FBN;\8^.-,^'OA M^ZUSQ+J6FZ)I%LNZ6\O;GRT7\2.3[#DU\[?\+U^*_P"T='-9_!C0H?"7AB3* M?\+"\36[$.O]^RM& ,A]'D&WV/6@#W'XK?'/P/\ !33$O?&'B"VTHR\06N3) M]K8@@(?1 MI3^1KLO@]^R?X;^%NI/XBU$S>._'EQDW7BSQ-<&YO')ZB(%=L*>BH!QC).*] MLW7G_/.#_OX?_B: /#/ O[%O@#PWJL6O>)CJ/Q*\6J=[:YXON3>2*_K'$<1Q M#KC:N<=S7O,,,=M$D44:Q1(-JH@ 51Z #I4.Z\_YYP?]_#_\31NO/^><'_?P M_P#Q- %FBJVZ\_YYP?\ ?P__ !-&Z\_YYP?]_#_\30!9HJMNO/\ GG!_W\/_ M ,31NO/^><'_ '\/_P 30!9HJMNO/^><'_?P_P#Q-&Z\_P"><'_?P_\ Q- % MFBJVZ\_YYP?]_#_\31NO/^><'_?P_P#Q- %FF2Q)/&T5>/_V2?A+\2IVNM8\%:?%J)Z:EI@:R MNT_W982K#\Z\^N/V9_BO\-B)OA+\;=2%I'ROA[Q_:KJ]HP[(LZ[)HE^FX^]? M2VZ\_P"><'_?P_\ Q-&Z\_YYP?\ ?P__ !- 'S;%^T;\7/AJ@B^*7P7N[JVC MXD\0> ;H:C:L/[YMGVRQCVRQKO/A[^UM\*/B7"OBO:^1XN\%:#KR_P ,EU"#*A]5D"AE M/N"#0!Z$K!U#*0RD9!'0TM?*[_L9^(O $WVCX.?%KQ-\/XU.4T/4;K^VM) _ MNB&Y4NOIG>3Z5=;XC?M*?#2+9XF^&_A_XEV<8YU'P9?M9W#@=S;7&06/LX&> ME 'TW17S5IG[>/@*VNX['QG;:K\-=1<[/)\5V$UM&6]%F"%&^H.*]L\)?$30 M_'UH+GPUKNB:]!C<7T[4%GP/?;G'XT =315;=>?\\X/^_A_^)HW7G_/.#_OX M?_B: +-%5MUY_P \X/\ OX?_ (FC=>?\\X/^_A_^)H LT56W7G_/.#_OX?\ MXFC=>?\ /.#_ +^'_P")H LT56W7G_/.#_OX?_B:-UY_SS@_[^'_ .)H LT5 M6W7G_/.#_OX?_B:Q/$OCK2/!D'G:_K6BZ)%C=OU'4$@&/^!XH Z2BOGG7?V[ M_@]HUVUG;^,+'Q!J _Y[&?# ?130!].45\S33?M6>/HRL$'@#X66C_QRM-K-\@_V2-D6?JIJ M@O[&/B?Q@_F_$WXW^./&BM_K-.TV^31=/D]08;>,$_@XH ]N\=?'3X>_#.%Y M/%'C/1=$V?>CNKU!(/\ @&=WZ5Y/,OB1<]%;1-'>.W)[ M'SYMB$>X)KK/ G[)?PJ^&\J3Z'\.]!CO4QB_O0]Y=?\ ?Z8._P"M>L6\,UI$ M(H+:UAC'1(V*@?@%H ^<;CQ;^U+\22%T'P9X-^$^G/\ \O?B74)-6O=O]Y88 M B*W^RY(]Z6#]C_Q-XT7S/BI\;_&/B\OS)IVAM'H6GGU!CARY';(<&OI+=>? M\\X/^_A_^)HW7G_/.#_OX?\ XF@#ROP-^R5\(OAW.MSH_@32OMR_\OU]&;NY M;ZRREF/XFO6;>VBM(5B@B2&)1A4C4*H^@%1;KS_GG!_W\/\ \31NO/\ GG!_ MW\/_ ,30!9HJMNO/^><'_?P__$T;KS_GG!_W\/\ \30!9HJMNO/^><'_ '\/ M_P 31NO/^><'_?P__$T 6:*09P,]:6@ HHHH CG@BNH7AFC2:)QM>.10RL/0 M@]:@@TFQM;.WM(;*WAM;=0D,$<2JD2@8 50, =A5NB@"-[:*219'B1I%^Z[ M*"1]#0L$:2M(L:+(WWG"C)^IJ2B@ KG?AS_R3[PS_P!@RV_]%+715SOPY_Y) M]X9_[!EM_P"BEH Z*BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH MHH **** "BBB@ HHHH **** "BBN-^*OQ>\(_!/PG<>(_&6M6^C:9%\JF4YD MG<](XHQ\TCGLJ@F@#LJ^>_B1^UE:P^*KGP'\*](;XE_$&+"W%M82?Z!I>7(RJ8(^X,MP1C-#=$M=#TJ'YC';I\TKGK)(Y^9W/=F)- 'C'@_\ M9*N_&7B2S\:_';7E^(WB>W82V.AB/R]"TEN.(;;I(PQ_K),DX]@:^DT18T"H MH50,!5& *=10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 M 4444 5-3TBQUJUDM=0LK>_MI!M>&YB61&'H0P(->&^,_P!A+X(>,[S[?_P@ M]MX/[N9TW ?0YJ8:+^U7X=^6+Q+\.O%T"_=:[TVYL9W_WBCE/R6OI M.B@#YM'Q)_:8TGY+[X0^%=5 Z3:7XF9<_59(AC\S7B^DS>+?%_C[XDZKXE_9 M5T#QIJ\FNPI<37UQ874MH5TNQ"P"29,E=NV3C@&4CKFOOJO/]8^!GA36O$&J M:U(=?LK_ %25)[PZ5XFU.PBFD6*.$.8H+A$W>7%&N0N2$&: /ESX6^,_B=X& M^(/CFS\&_LYZ;X?AFBT^2?1[/5+2SAMVV2@/MB7:2XZD#/RC->H_\++_ &F= M1XL_@[X4L ?XM0\4MD?@D)S^=>T^"?AIH/P^EU&;2$OVN=0,9NKG4]5NM0FD MV A!YEQ+(P #' ! Y/%=30!\VF;]J[6.(X/AGX'O"L,A'T-P7KZ3HH ^9)/V*;[Q(=WC'XZ?%+Q"#]^WL];& MF6S^QB@4#'MFMKPK^P/\!_"EQ]J_X5_9:]?,=TEUXCGFU1Y&_O$7#NN?H!7T M#10!CZ#X.T#PK:+:Z+H>FZ/:K]V"PM(X$'T50!6Q110 4444 %%%% !1110 M4444 %%%% !1110 4444 %%%% !17#_&+XE-\*_!XUB'34U6ZFNX+&W@GNA: MP"25PH>:8JWEQCDE@K'H I) KAM4^/?B[2OA-8>.)_ %A;6WV!]3OUN_$T:0 M) %#HMM(L+-/+(IRJ/'$,@@LO&0#W&BO&/%_[13>'O$"PV?APWVAV5IIMYK= M_<7GV:>Q2^F,4(C@\MO-9=K/("\>U<;2[';5GP?\?)?%'Q!MM%E\/I9Z%JD^ MI6NCZPM]YDEU-8NJS"6#RU\H-EVC(=]PB;<$)4$ ]>KG?AS_ ,D^\,_]@RV_ M]%+715SOPY_Y)]X9_P"P9;?^BEH Z*BBB@ HHHH **** "BBB@ HHHH **** M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M**** "BBB@ HHHH **** "BBB@ HHHH *0G KEOB/\4?"GPB\-3Z_P"+];M= M#TN'@S7#'*H/'WQ2U;_A8WQ%0$P75W'_ *#I8)SLLX#\J ''SD;C M@'BO5?AE\*?"OP>\,0Z!X1T:WT?38SN*0C+RN>KR.>78]R2376T %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 M%%%% !1110 4444 <3\8?#>O^*?!,]EX<.ES7WFI))I^M1AK2_A!^>WD;8YC MW#E9 K%653@C(/BGA'X&_$GPQ\%(_"7]G^#-6_M.&8W>E:M=W/V?2)71%C:W MD$,GG!,,QCV199LK(HKZAHH ^;];_9K\2^:-)L=6T[5-!U?3-%TW6]0U266. M^3^SY2QEBC5'64S(Q7#NGED!LR^TJ M2UED:\N)+]P=LT9C"1")6F7*NYDW*<)M(;W>B@"GJFD6>M6X@O8%N(@=VUB1 MS^%FVG@;0)X;14EGTZW:1@3\Q\M3ZUVE<[\.?^2?>&?\ L&6W_HI: M -G^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^ MS;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ M )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y# M\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_ M9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_ MSR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'Y MFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% M %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^ MS;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ M )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y#\S1_9MM_SR'YFK-% %;^S;;_ )Y# M\S1_9MM_SR'YFK-.> D,*Y9R3Q MP* .U.G6H!)B4 =\FOGKXF?M064?B*X\#?"70!\2_B&OR20VTA73=,.<;[RX M!PH&<[%.X^W6N>FT/XO_ +6[*-<-Y\&OA/(%?A'X;@T'PCHEIH>F1<^5;)@NW=W8_,['J68DF@#QSX8_LD M#^W8?&WQ?UI?B1X^R7B$D>S2M*R*^A/[-MO^>0_,U9HH M K?V;;?\\A^9H_LVV_YY#\S5FB@"M_9MM_SR'YFC^S;;_GD/S-6:* *W]FVW M_/(?F:/[-MO^>0_,U9HH K?V;;?\\A^9H_LVV_YY#\S5FB@"M_9MM_SR'YFC M^S;;_GD/S-6:* *W]FVW_/(?F:/[-MO^>0_,U9HH K?V;;?\\A^9H_LVV_YY M#\S5FB@"M_9MM_SR'YFC^S;;_GD/S-6:* *W]FVW_/(?F:/[-MO^>0_,U9HH M K?V;;?\\A^9H_LVV_YY#\S5FB@"M_9MM_SR'YFC^S;;_GD/S-6:* *W]FVW M_/(?F:/[-MO^>0_,U9HH K?V;;?\\A^9H_LVV_YY#\S5FB@"M_9MM_SR'YFC M^S;;_GD/S-6:* *W]FVW_/(?F:/[-MO^>0_,U9HH K?V;;?\\A^9H_LVV_YY M#\S5FB@"M_9MM_SR'YFC^S;;_GD/S-6:* *W]FVW_/(?F:/[-MO^>0_,U9HH M K?V;;?\\A^9H_LVV_YY#\S5FB@"M_9MM_SR'YFC^S;;_GD/S-6:* *W]FVW M_/(?F:/[-MO^>0_,U9HH K?V;;?\\A^9H_LVV_YY#\S5FB@"M_9MM_SR'YFC M^S;;_GD/S-6:* *W]FVW_/(?F:/[-MO^>0_,U9HH K?V;;?\\A^9H_LVV_YY M#\S5FB@"M_9MM_SR'YFC^S;;_GD/S-6:* $ Z"EHHH **** "BBB@ HHH MH *YWX<_\D^\,_\ 8,MO_12UT5<[\.?^2?>&?^P9;?\ HI: .BHHHH **** M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **Q/''BB/P1X*\0>(YH'NH=(T^XU! MX(R TBQ1M(5!/0D+BO)/'G[1>M?"[PP/$/B_PUX?\-Z05#+/J/BR./?D9VJO MD9=O]E03[4 >[5C>+O&6A> =!N=;\2:O9:'I%L,RWE_.L4:^V6/)/8#D]J^9 MO#/[5GQ+_:#\-Z7=?"#X6W>F6NH6L4S^)?&I-M80,Z!F$*+\]R%)(W+A6QU% M=)X7_8UTW6_$%IXK^,>O7/Q<\56[>9;Q:LH72;!NO^CV0_=CIU8$GJ>>: ,B M7]HCXA_M 32:?\#/#BZ?X?8F-_B%XH@:.T"]"UI;G#3GN"<+]>E=K\'/V3_# M7PTUN7Q9KU[>?$'XC70_TGQ7XB833KGJENGW+=/0( <<$D8KVV&&.WB2*)%C MC0!51!@*!T '84^@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** " MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ** M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#R#] MJ32]-USX91:;J>J6NFQW>J6D<,>I6\D]E>2A]R6URJ8_=R%=OS$*6V YR ?G MCPPOP_\ &WP.T'PA;^ M(OO&SV\^DZ/9-)Y]C9MY4;3ZG&[C;;1(SJ6= '\S M$:%F(S]L:UHFG>)-*NM,U:QM]3TVZ0QSVEW$LL4J^C*P((^M+.=B;E.T9).!U))ZT ?.OQ9\-?\ "'>,7\:Z MU!X)^(,7A3PYH^GBRUX"ZU1G$\IDGA5@?)EE+J48[BY0#C&2?!Q(#\8/!NL6 MT,,?BO5]3\51>(I5&+J:WBE7RUG[E8G^S*@;A ^%P&.?J&?P!X8NK_2[Z;PY MI$U[I2JFGW,EC$TEFJ_=$3%J$NM0AMD M2XG4= \@&Y@,#J30!8U2^FT^W$D&GW.I/G'DVK1*P]_WCH,?C7+_ QU6ZG\ M#:!&^C7UND>G6X661X"LH\M>5VRDX[_, :[2N=^'/_)/O#/_ &#+;_T4M &S M]KE_Y\I_^^H__BJ/MV_:Y?^?*?_OJ/_XJC[7+_P ^ M4_\ WU'_ /%5\T']JOXF>/G$/PT_9]\4W,+G"ZQXUG@T2U4?WPC,TDB^R@'V MJS_PJ_\ :.^(8SXK^*>A> ;*3[VG^!M-:>90>PNKG!!_X : /?->\8:9X6L) M;[6KF#2+*(;I+F_NH8(T'J69P!7@6J_MZ^"M3U:;1/AQH/B3XMZ]&=IA\*6! MELXV_P"FEX<0JO\ M!F%:6A?L+?#""_BU/Q5;ZG\1M8C.\7OBZ_DO=K>JQD[ M%^@7%>\:+H6F^&].BT_2=/M=,L8AB.VLX5BC3Z*H % 'R9\1=$_:@^./@;Q) M8RV.A?#'3+S3;F&/1K2:+4M1O"T3 0O,SK#%N)VDC. >U1?#GX :%X.U6T\0 MZ[\$?B%X^\7Q(H_MOQ9JVBZA+&P'_+)9-2V1@=@%XP,5]C44 >#?#OB+P5\.?& M_P 1K375E:V_L;2C!Y.QBI\_[08VBR0<94Y R.* /:?M/ M+_4M>^*5AJ7AF1;A;;1+/PZEN\(8$1$SF1BQ3@]!NQZ&JGA+X._$;1;3Q'%J M_P 8]4UR74;0P64K:9;Q'3Y2V1,@ ^8@<8/'- 'K_P!KE_Y\I_\ OJ/_ .*K M!\3_ !&T7P97EFMG/%*I5I+E47(!24*JMU/E,>A% 'V5]KE_Y\I_\ OJ/_ M .*H^UR_\^4__?4?_P 57S1X3^)7QR\7*].0#TH ]A^UR_\^4__ 'U'_P#%4?:Y?^?*?_OJ M/_XJN%T7]H3X=>(/B%>^!;/Q79?\)A:2-%)HUQO@N&95W-Y:R*OF 9)3<,= MZ] CE29 \;JZGHRG(H A^UR_\^4__?4?_P 51]KE_P"?*?\ [ZC_ /BJLT4 M5OMF6K'_77U '6@Y XQ[4M<%\'O%FKZ]H-UI?B>2W M?Q=H=P;#5'M4V13N.4G1?X4D0JP'8DCM7>T %%%% !1110 4444 %<[\.?\ MDGWAG_L&6W_HI:Z*N=^'/_)/O#/_ &#+;_T4M '14444 %%%% !1110 4444 M %%%% !1110 4444 %%%% !1110 4444 %%%% !139)%B1G=@B*,LS' ]37 ME/CO]JSX2?#B0PZYX\T>*\SA;.VN!<3L?[H2/<<^U 'K%%?-1_;.N/$Q*_#_ M .$/CSQF&X2[?3QIUJ?S9% 'TW6;K'B72/#L1EU75++38P,[[NX2(8_X$17SK#^RI\2?&!W M_$7]HCQ;J2-R]CX1M+?0[?']PE5=F7WR":V=&_8,^"^G2B?4?#$WBJZSN>?Q M-J-QJ)<^I65RGY** -7Q-^VI\%?"T[V]QX_TV^O$ZVFD[[Z;_OB$,?TKEW_; M5?Q&NSP!\'OB+XU=O]7='2ETZS/^]+<,K+_WQ7M_AGX8>$/!D"0Z%X8TC2(T M^Z+.RCCQ^(%=/0!\P?\ "6_M8^.V_P");X$\ ?#*S?K)XAUF;5;I%]56W14W M>S<597]FWXN^+AN\;_M#:V$?[]GX.TFWTJ-1_=\P^8S#WP#7TM10!\\Z1^P? M\);>X6ZU[3-1\;WH.YKCQ3J<]_EO78[;!^"@5[-X6^'WACP/;K!X>\/:9HL: MC:!8VB1''N5 )KH** "BBB@ HHHH **** "BBB@ HHHH **P;[QYX;TW7(-% MNM>TZ'6)\^5IS72?:),#)Q'G<> >U>:^%OVF]/\ B3<^(K/P/X5\0ZY=Z7:O M-#->V+Z=9WDRG A2>8 9/][!&,]>E 'M%5-3U:QT6T:ZU"\M["V7[TUS*L:# M\20*\2T[2OCM\5/A]K-IXCU'1O@]K-S=1-83^'1_:US;VP_UL^*;PRRR.^-P<1A$91CA64@4 7_ M (C_ +3_ ,/?A??:98:KJT][J.IQI+9V6CV,OB5IK^& M;B&>VL]"\/:,+>2$/Q',;IW9]Z#' 7&?;BE\'?LK>$/#FAZ_IFLWFM^.X=>2 M./4O^$JU%[U9PA)4;#A%Y/\ "HS@9KV2N7^('Q0\)?"G1UU3Q?XAT_P[8,Q5 M9[^<1AV R0N>2<=A0!+X0^'/A?P!HR:3X<\/Z=HNFJ_FBVLK98TWXQNP!R< M<]:Z.N,^%GQ?\*_&C0;C6?".HMJFF07#6IN/)>-6<*&RNX#5#-@\9(ZT >[45Y MU\9?ASXK^(]AIEIX9^(VI?#M()7>\FTJRAGFND( 50\@/EX.3D YS[5?^$_P MSE^%_AN32KCQ?XD\;32S-,^H^*+Q;FXR0/E4JB!4&. !0!T%QXMT.TO4LY]9 MT^&[=@BP274:R,QZ *3DGVK*^(GQ6\'_ ETJ#4O&?B33O#5A/+Y$5QJ4XB2 M23!;:">IP"<>U<5I?[(GP?TCQ5_PDL/@33)==%R;Q+ZZ5IY(YMQ;>IH^" M_$5EXCL;6;[/-<6,F]$DP&QGZ$&N+T+6?&/Q@O=>U/0?%,?A+0-.U.YTBSBB MTZ*[ENI+>0Q2S2F3[JF17547!PN2WS8'K&F:/8:+"8=/L;:PA8[C';0K&I/K MA0*\[O\ X3^(-)UO5+SP1XR3PO9ZM2#O4G MG;R: *-A^T#HO@[P/=:G\2]8TSPUX0!E>//*AT*MM.=I) M7)QD]A\//BYX+^+5E<7G@SQ/IGB:VMV"RRZ;@..E+X4^&>C^&/"ZZ+ M+&=:1YWN[JXU15GDNKASN>9\C&XD]A@# ' K7T+PGHGA@W!T?2+'2C<,'F^Q M6Z1>8?5MH&: *MQHOA?Q!KBW4MGI5_K-D&1;@I&]S;Y4J0&^\N0Q';K7FOA_ M]F>T^&"^*;OX;^(]6\-ZGJ]H\=O!J-S)J.G6DY8,)EMI&Z@C& P&&--\7_L; M_"GQIXLF\3W>@W5EK\UR+N6_TK5+JS>24$'L;Q2D JW&2"#QUH \^T_P"*7Q)^$7PVN]5^ M+OAF+Q)?6E^+<77PZMY+KS;0J#]JEMY-K1X.=P0M["O4/!/Q(\._$+P[H^M: M+J*36>K1--9K.IAFD56*M^ZDVVK6OQ3UGPMKY1XQI ME_X=LY[661,-YAN8W8H&SLV^7Q][/:O"_CKXO^%/CKQ]!X>^)'@?QOX5U/1[ MUK31?%EE93P(Q+K\\%S;%MJ.<'$@&>XH ^P**\AN)/C#H'QCMA;CP[XD^%VH MF.+9(SVFJ:3MB 9]Q++@YUOAA^T'X)^+FKZKH^A:C+'KVEL1>Z M/J-M):WD(#;=YBD .TGHPX- 'I%%%% !1110 4444 %%%% !1110 4444 %% M%% !1110 4444 %%%% !1110 4444 %%%% !14%U>V]DA:>9(@%9\,>2 ,D@ M=\ 5XQHO[1Y^+WAKQ7+\(]%G\0:KID4?V"[UN&6QTN]D9RIV3LN7" %CM'/ M!&<@ ]KEE2&-I)'6-%&69C@ >I->6_$?]I/PA\-O$FC>'9TU77O$&KHDUIIN M@:?)>2-$S[!*S+\BID'DL/NG&:YZ3X":_P#&3X=Z=I/QNUV/4M0BOVO9K/P? M+/IME)&1A;:3YR\J+RPAL;&PMUM+:*-?]7$OW M4!/.!0!YI;3?&S7/C'+YMOX7\-_"ZRDPC;Y+K5=44H,'&%2 !CT.3QW!S7$6 M7['.H>%_B)8^-/#WQ&U"\UJ)9C<2>,K>76%E=\;&1$N($B*#&]4TS1-$T9O$'B+45>6&S:X%M"D28WR22E6VJ"P'"DDG@4 87@SX: M>,-&^)-SXJU[Q?I&JQ7-@+.:QTS0'L?-96S'(SM=2Y*@L,;>=W7BO4:X3PE\ M0]3O_$\GAKQ/H">'M;-N;NV%M>_:[>ZB!"L4DV(XNX;&ULK4JK332MM4;F(51U))/:N0E^.FL#P'9>* M(OASK;VSV,FHW4+W-LAMH%4,"&+XD+*=P5?2N@^-WAO4_%OP_N],TW1-%\3+ M+)&;K1==A62WO8 4FU>: /8=<_:0T?3-2LEM-*OM2 MTEK/3K^^U2(HB6$-](8[8NC$,Q."S!0=JC)J]X6^.]AXH\=Q^'TTB]M;.[EO M[?3=7E9##>RV;JMPJJ#N7!8E2P&X(Q'2N#^('P4\3>)/$.LQZ;I>GVVA^*[+ M1K:_S=[&TK['.S.J(%Q(#&X5=NW!7G@U:^'WP6\2Z#\1/#[:A;V<7AWPQ>ZU M?V5]%@#Z!KG?AS_R3[PS_ -@RV_\ 12UJ MZMI$&M6P@N)+J- V[-I=RVSY_P!Z-E./;.*Y;X8>&[2T\#Z#/'-?L\^G6[,) M=1N)$!\M3\JLY"CV4 4 =M157^S8O[]Q_P"!$G_Q5']FQ?W[C_P(D_\ BJ + M5%5?[-B_OW'_ ($2?_%4?V;%_?N/_ B3_P"*H M455_LV+^_TLK>2XN+B2"")2[RRW3JJ*. MI)+8 KY^\4_MH?#BUUN?P]X).L_%7Q3%PVE^#?-O5C/0>9.&\I!P>2W&.: / M9/B1X[D\ :187-OI$^N7E_J$&G6]E;S)$7DE) )9R% &#UKS_P =?M&7_P * M]+@U?QIX+?PYHK74%O+>W.N61\L22I'OV!]S!=^Y@N3M!/:O$?BKHW[2?Q=T M?2;T:+#\.]%MM5MKI;'1[I=3UY%4G]Z#+(ENK+DY7)]C61<_LH^&-1CL[F]^ M&_Q$\;>.)M4TZ23Q1X\OH+LQ1+>PO.=OVHJB>4L@PJ$XXYH ]=NOVX?#_B:= M[7X7^$?$WQ5N Q07.B6)BL=V<RT_/^S;6VP*/;<17K MW@3X _#?X8Q!/"W@?0M$;&#+;6*"5O=I""S'W))KM?[-B_OW'_@1)_\ %4?V M;%_?N/\ P(D_^*H LJH4 = *6JO\ 9L7]^X_\")/_ (JC^S8O[]Q_X$2? M_%4 6J*J_P!FQ?W[C_P(D_\ BJ/[-B_OW'_@1)_\50!:HJK_ &;%_?N/_ B3 M_P"*H_LV+^_<]C0![/6. MWB_14\5IX9;4K<:^]J;U=/+?O3 &VF3'IGBO)_&/Q1\::'XTDM+#X#+& M)+O4/%FI:T((5M_*$DK1Q!FD+(-P(8#E3VKPE_BMX#OO ]U\1[KXE>'$\?S7 MC:O%!;:Q&ES!I^THE@I+DAQ 7:O^U)X#A\&77B7P_>7?CNRMK]=->/PG:2:C(+AE+! M2(P<# ^]]T9'/-<[\(?V7_AU;>%;W5&U/7?B58>,+"&6ZO/&&K2ZDE_;/B6/ M,;_)M^8,/E]*]C\/^"-"\)Z:FGZ'IL.C6$?W+73\P1+]$0@#\J /+?$/Q$^+ MGB_PIX=U#X<>!=/TNYU+S3>?\)Q^,[/P?I,?BR\F:XFUI[< M271=AABLC9*Y]%P.O'-=TB+&H55"J.P&!7EGQ%_:#^%'PFOX[#Q7X]TW2-2D MD6-=/;47ENMQX&84+.,Y')7%;'Q-U;Q'H/A);_P3X;D\7ZO+(BQ64NJM:1A6 M_P"6C.Q/ ] ,T =[5+5-:T_1(4EU&_MK")W$:/=3+&K,3@*"Q&23VKSOX,V7 MQ.NK+4KGXGIHEC M']=\2RW5P+6&RT"Q:ZE+E2PW8X1?E/S-@9QZU'\'_'OB3XAZ#=ZEXC\#WW@1 MQ<%+6QU*XCEGEBV@B1A&2$.21MR>E=G_ &;%_?N/_ B3_P"*H_LV+^_(/%GQR\3W>EVM[]JL_#OAZWATFT5 V5BF9 SS+C@[ MCD^M>R^(?!V@^+39G6]&L-7-G+YUM]NMDF\E\8W)N!VG'&15[^S8O[]Q_P"! M$G_Q5']FQ?W[C_P(D_\ BJ );>UALXA%!#'!&.B1J% _ 5+57^S8O[]Q_P"! M$G_Q5']FQ?W[C_P(D_\ BJ +5%5?[-B_OW'_ ($2?_%4?V;%_?N/_ B3_P"* MH M455_LV+^_)?#&H^+O%?BRRUF(VR7VM:@&U M&Q@(_P!5%=QJDFT'!&XG& .1G/L/]FQ?W[C_ ,")/_BJ/[-B_OW'_@1)_P#% M4 ?$VA_%WX^_LS1GPMK_ ,-/%7Q($U""YN4TXG$8D=$4R2]"2ZJ M.3EN*^J_#/QC\,Z_)HUA=7\.@>)-4M$O(O#FKRI!J"JQ(P82E==_9 ML7]^X_\ B3_ .*KS7XQ?LO_ R^/<%JOCCPO%K5S:?\>M_]HEBN[?KPDR.' M"Y.=N=I."0<"@#U2BOFOX9_"/XF_ /7-0TNU\1OX\^%^RXNK.'5[VYDUG32( MR8[:-RY$T>0% .TC)]A7%_LQ_MD^)/C;XTNO"^K?#F_M+FRN/(U"[L=0D5M, M)W%/M5M,4ECW!>JAAGC- 'V117-ZKXE\,:%KFGZ-J7B&ST_6-1!-EI]UJGE3 MW(! /EQLX9\$CH#U%;7]FQ?W[C_P(D_^*H M455_LV+^_ ['Q*FK>, M8()IIM,LKJ606_EJ25GE!V0G(V_.1@D9KBOA_J/Q"_:*\'^+#J&I67P^TJ=Q M::;>>$M>&I:C:NK9E\V128DWU"]UKQ8) MDN(HV(9X%LUVNLFSC+$8)Z<5Y7\"/$7A_0[K2O!OA'X5_$SQ!IR:G)/>>+?& M,)-*\-NS,+Z[U>&> M[=4Q\OE*) N'OV;O"VB_%O4/B3>7NM^(?%4[R?9)M8U%YH=-C=" MC0VT(VHB%21R&/)YKL[KQSX2\/ZK9Z'<>(-&TW4KF006VFR7D44TKMT1(RP) M)[ #FL?X8^ M?\*^$QIWB_QG?>.=6>1WDU.:);/Y6Z1K'$0 !S@GGU-,_!6D^'(+@M-HWA[1YI9+F+G"/-/(2I MZ'*8^E=IX^\+Z_'XPT?QAX9CM[^_L+:6QN-+NI?*6X@D96)1^BNK(,9&"":[ MG^S8O[]Q_P"!$G_Q5']FQ?W[C_P(D_\ BJ . \,>'_$WB#Q_%XM\36-KHB6- MC)8V&F03BXD'F,K2222# _@4!1Z9S7I-(!@ >GK2T %%%% !1110 4444 %< M[\.?^2?>&?\ L&6W_HI:Z*N=^'/_ "3[PS_V#+;_ -%+0!T5%%% !1110 44 M44 %%%% !1110 4444 %%>1_%W]JGX5+'6M:.H^(9N+;PYH<+7VI7#'H M%@CR1GU;:OO7G$6J?M$_']0]C86WP&\(R_=GU()?:_,GJ(A^[MR?1R6'H: / MJ;\K'[!0,=J]QH ^9(?V-KGXDSQ7_QO\=ZM\1F#"3_A M'K>1K#1(VZ_\>\9!DQV+DGKZU] >#_!'A[X?:'#HWAG1+#0-*A^Y9Z=;I!$# MZ[5 &??K6W10 4444 %%%% !1110 4444 %%%% !114=Q<16D$D\\B0PQJ6> M21@JJ!U))Z"@"2BO+O%'[2?@/P_X2UO7]/U1O&,6CSQVEW9>$H_[4NDGD^Y& M8X<[2?5B!ZFL#4?B!\7/B)X!T#5_A[X+L_"5_J$LPO+;XA.\%Q90J<1R"&#? MN9NNUB".] 'N%S\1Z@VRTTB:^B6[G."WR1%MQX! M/ KS_P 7? ?7?B3J/AF_\0_$?Q#IJZ=:6XOM)\,S"QL[R[0[GE) ,@5CQLW8 MP /6NQL/@QX%TSQS?>,[?PII2^*[UQ)/K+6RMW2':D"/(-Y#-_$$. #D=,LT30 M_C3X[\#^(;+Q=K6C?#_6;QX?[-NO"@-[+91A@9-S3J%9F *@[>,D^E>TA@21 MD9'45Y=\0?VH_A/\+-5ETOQ/X\T?3=6BP)--6;S[I,],PQAG&?I0!E2?LI^# MO%'@S1_#_P 19+_XI?V9>/?PW?B>X:1_.<8)VH54J!P%((%>L:#H&F>%M'M- M)T?3[;2M+LXQ#;V=G$L44*#HJJH ]A7.^/O']UX5^'\OB;0?#.J>.)2D4EM MI6C!!<7"R%0&'F,H ;<>X /%P!Z;>WL&FV5Q=W4JP6T$;2RRN<*B*,DGV !KRD?' M+6'T1O$Z> -4;P8$^TC4_M$?VIK7K]H%IC?LV_/MSOV_PYXK"^+'P7^*WQ-U MW6[6V^+%& <=LU>AO?BE:>#U\&K MX-@?48[0:A>,] \3R&/2-;T_5 M)5B2=HK2Z21UC<95BH)(![$UY-\0?VHF\+>-;SPAX=^&7CKQQKMJ56633-): M+3T+*",W>*Z?X+?L[^ _@+HT5IX1\.V&F7C6T4%YJ$$($]V44 ML[ )8O!VI6?A7Q3<)$T5SJMK]KCM+? /\ :EUXO^(^I^/M0U 1_+=6T-O;6FW=D0QQJ,9W M;"UUI]PUM=1NAW1NDJ$,&4\C MM[5UU% 'R=\:/V==8_X5KX>T6Y\&Z;^T/#IDTXN&\7726VLBW=MR);W6 -RC M"Y9EW8!))KN/A_XZ^'?PRT_3?@[I'B-?"?C5M,6YT_0/$MW)/

:P?$O@+PWXQNM,NM=T+3]7N=,N$N[&>\MDD>VE5@RO&Q& M5((!X]* /,?AC<_'K2O&%KI7CZS\(:[X;=)/,\0Z+++;7",%.S-LX8$,V!P_ M&3Z']4M=8T:]C\VWOK20/%*OJ"*UE8,,@@CU%>;^"O'/P MS^+OPT+>&-5TV]\(7XDL-EH3:*"5.^+80C1O@D[< ]ZY_P"&?[*OA7X3^++; M7O#6N^*XH8D=!I%UKT]SIY##'^ITUA^)_'7AOP3%#)XB\0Z5H, M/O$]I\6M?TW7?&.RW^PZW?6:V<-S9>4N1 C$JI$F\ M.%;)(!/44 ?0>GZC::O90WEC=0WMI,H>*XMY!)'(O8JPR"/<59KYV^$MEXHN M_BUKNH^"M2TFT^#?VT[[%K-R]U<>41*]FX(58O,*DD J2&QUS7>?�/BOK5 MSIQ^''BS0/#4"(PNUUC2FO&D;/RE"'7 QVH ]-HKD?AWI'C'2_!D=GXT\06. MO>),R;]2TVP^R1$$G9B(LW(&._.*\W\-?!?XC:)XNL]<\0?'+5]3TRVN/-DT M@:=:V]M.F?\ 5N=I;'N"* /=>E 8,,@@CVKY[_:AOOA)K-QX=T?X@?$R_P#" M%T6\VTT[1-=ELKB]60A%+1PG>Z;EP#C ^;GK57X8:]'\*/'7_"J/ OPJ\:WW MAV&[\_4O%^L7&+%6DB5C)'-.Y:XX"*50#!SQUH [E/VK/@]/XPL/"MK\2/#N MH^(+ZX%I;V&GWR73M,3@(?++!6SQAB*I_M+_ +2VE?LR^$+?Q#J_A_5](/$USKW_"#^$M&U"WNK2SL M? FBK;W4'F9"7)NV56\T*_#']G+P;\+M(U"QM8+S7GU*9+B]NO$ M=V^H2W$BG*LQE)&0>F ,4 >8>"OVGOB9\:_A-I'BOX>?")TGU:\GMX_^$AU5 M+:&UB3;MN)!M#NK$L $4_=Z\U0?]FGXU?$GQ=HFM?$7XT2V&E6$\5TWAKP;; MO8VTC*P;9)+OWN#C!)/X"OJU5"J !P .U+0!Y3\1OV6?A7\5XHXO$O@S3[ MN$7C:A+%;!K5;FX88:2<1%?-;W?/4^IKL_ /PX\+_"SP\FA>$- T_P .:0CF M7['IT"Q(7( +D#[S$*,L->0>=#8WD=I=W5N&W2PV\KLH60J"?O*=JL 0< M&O!M7\?^*Y?V8-&UOPCXWU&W.EW=G#X@;7;8SZLTLL]JOV:.YF\ MZ:9!-&TRJGD JJR8&[(&1G.^%_CG7M0^)?A'5I]9U*\@\5ZCXALKO39IR]I; MQ6KYMC%&3B,H(BI*_>\T[LG& #Z>KG?AS_R3[PS_ -@RV_\ 12UK:IJ::5;B M9X+FX!.W;:PM*WY*,XKE_ACKL=SX&T"$6E]&8M.MU+26KJK?NU'RDC!'TH [ M2BJWVY?^>4__ 'Z-'VY?^>4__?HT 6:*K?;E_P">4_\ WZ-'VY?^>4__ 'Z- M %FBJWVY?^>4_P#WZ-'VY?\ GE/_ -^C0!9HJM]N7_GE/_WZ-,FU2&WB>659 M8HD4LSO&0J@=23V% %RD9@BEF(50,DDX KYY\8_MH^&XM7N/#GPYT/5?BOXO MC)0Z=X>C_P!&@;_IO=-^[C [XW'VKEH?@9\5?CQ+]L^-7C.X\/\ A^0[D\!^ M!=]O#M_NW5Z?WDWN$VC(R#VH [OXD?MB>!_!>KOX=T!+[XC>-3\L?ASPG#]K MF#=O-D'[N$>I=LXY -<=;_#;X\?M ?Z1\0_$L/PC\*2G*^%/"$WG:E*GI4_\ WZ- M%FBJWVY?^>4__?HT?;E_YY3_ /?HT 6:*K?;E_YY3_\ ?HT?;E_YY3_]^C0! M9HJM]N7_ )Y3_P#?HT?;E_YY3_\ ?HT 6:*J/J4<8!:.902 ,QD9)Z"O(_%? M[8_P<\%>)I/#NK^.],M=<0LK6&\M(&'\! '#9X ZYH ]GHKYD\2_M@ZX/!7B M76-!^$?C&%[6!5TBYUK366#4+EFVJOEPEY0F/FW%1QQQQGG?@EJGQ?\ VE?A MQXCL/BJ/%'POOC?PS6=UX:L!IC/;%3NAC>1YG=:8VH^)]>T[0+%02;C4;E(4XZ\L17GGB_P#:9TO0?%&A:#H7A+Q7X[NM7M[> M]BN_#FG":RBM92-L[W#NJ;=IW?*2<>F17AOB+]G/XKZAJ&G>'M)TOX>R^#?# M]S(VDZUXVM[[7M997;<\C;ML8+$GY(O! M2;HR+_PN5MKE$7_EFK-&X52., =AS0!SUJGQLU/XNR&[/@_1?AE;/(J+;M<7 M6JWRF,A6)(6.(AB#QNZ=Z\W72/A+\'-:\2I\2?C'/XGU#7;>33;S3?%VMQF( M02."8EMDVJ.RYV[L$C/->H_![X+Z+\&%U)M/U7Q3KUWJ&S[1=^(;^6\D;;G& M <*O4YV@9K6/PF\ MXEN_$+^"=+DUR[?S)]0DTQ'FD;CYBQ7.>!S0!FZE=># MOV<_AK+JGAKP7;LYQ$CLRXP.N1SUKT=;Q$4*L$RJ!@ 1' I?MR M_P#/*?\ []&@#Q/QUH7[1>O^-M1A\,^)_ ?A+P:'465U)87.H:DR;1N,L;%( M@=V[ 5B,8[UZ1\0_ 3_$7P9)H$VOZKH;RF,R:CHDWV:X.TY(#8. W.172?;E M_P">4_\ WZ-'VY?^>4__ 'Z- 'GGP?\ V?O#?P5FU&XT:]UW4;S4%1;BYUO5 MI[UF"YQCS&(7J>@%='M*_MB<@RW_ -BC\]R.A+[=QZ#OVK5^ MW+_SRG_[]&C[&;#4--6Y^VQQ"/RS'<8(\U63!#X)^;KS7(^+?V<[N]T7PYIO@W MXC^*_A_!H5NUM!'IMPEQ'<(2"//$ZN7(QP<@UZ_]N7_GE/\ ]^C1]N7_ )Y3 M_P#?HT >5>)?#'QHA\>Z7=^&O&OAN3P@JV\=[I>LZ0YN3MP)G2:-QEG&2 0 M#ZBO-/'W@_Q=\>_C%K_@'QLGA,_#O28O[0M+G2&G_M..1U(MEN#(-BN#NDQ' MD'8N>N*^H/MR_P#/*?\ []&N&UWX.^ /$VO7NM:IX1MKS5KTH;F[>W;S)MB! M%W$=<*H ]A0!Y?\ 7QM\0P2;OWA MG2?9N&W&W;T)R.P?"/XH:_\-+G0?%/QAN8O$4U\MPNO>%M(AT]X8 N#;A7 M,@()R=_!Z=AS)K7[*WACQGX-\.>'O&6L>(_&$.BO-(MSJ&JR1R79E(W?:!%L M60# !& .G6O7OMR_P#/*?\ []&C[W\/ M::)],M4LK.X>V1YH(4^[&LC L%&3QGN?6NDJM]N7_GE/_P!^C1]N7_GE/_WZ M- %FBJWVY?\ GE/_ -^C1]N7_GE/_P!^C0!9HJM]N7_GE/\ ]^C1]N7_ )Y3 M_P#?HT 6:*K?;E_YY3_]^C1]N7_GE/\ ]^C0!9HJM]N7_GE/_P!^C1]N7_GE M/_WZ- %FBJWVY?\ GE/_ -^C1]N7_GE/_P!^C0!9HJM]N7_GE/\ ]^C1]N7_ M )Y3_P#?HT 6:*K?;E_YY3_]^C1]N7_GE/\ ]^C0!9HI <@&EH **** .>\= M> ]%^(_A^31M=MGN+0R),CPS/!-!*ARDL4J$/&ZGD,I!%<]HOP&\%Z)\,X_ M4>FRW'AT-%+*EQ=RO/<2QR)(LLDV[>S;XT).<< 8V\5Z%10!Q'BSX,^$_'&M MKJFLV-U.VMHE+R33.$1%'4DG@"OF_5OVR M$\<:E<:'\$?"M[\4-3B'+[X MM>)(F,;OI1\K3+9_^FUXPV >H7?2"P>/P!X0D MDLM+09R%N)@?.N#Z_,!G..#BOI#PUX5T7P9H]OI.@:39:)I=NH2&ST^W2"&- M?144 "M6@#!\&> _#GPZT2'1_#&B6.@Z9" J6MA L2#\ .3[FMZBB@ HHJI? MZM8Z4(C>WMO9B5Q'&;B54WL>BC)Y/M0!;HKA_BU\:/"/P0\/P:SXPU,Z997$ MXMH-EO),\LI!(151223@UE?#_P#:&\)_$#PMJGB5?[1\,Z#I\JQR:AXILGTN M&0$9#HTVT,G^UTYH ]-HKXQ\=_MQ>*=&N#J^D:%X4G\ _P!MMI,&OQZV^HRW MFQLGRX;6-\,R L 6XR*ZS]H+XJ_$'QK\/?"S?"#2O&EA>:TWVM[^QTBU66&! M=RF&5;T@0LQ(8, 3A>.M 'U%7+:_\5/!GA:]CL]8\6:+IEY)(L26UW?Q1RL[ M' 4(6SDGVKP/P#X!^/GPUUBWLM+UE?&&C:D;:\U'6/'FL/<75LY4>=!;V\2! M8P.>C$$\U'IW["NGQ_M WOQ&O-7T=].DOY+Z'0X?"]D7W-_?NY%>7(.#E2O/ M(Q0![)\;_&E[X3\,:=!I=S]AU'6]2M])@O\ R?-6U\UL&7^Z"%SMW<;L=>E< M/\28I?VH^+M7=(Y]5\6ZY>7F+;SED>)/F(C/R@*RKN7L: M;8_L]_$^3Q1X5U'5_%=IK%KH>HQ74=OJ.HSW"1Q#Y754$"!WV$[7D+$''- ' M(ZE^T'^T]\1+:36OA9\*_#T'AI]4DM+3_A+6N8+Z:V4@K.\+-%Y88?[V#GKC M->C_ !3^&WQO^-'A7PS:6/CZS^#LC1^9KL>A0M>W7FACA(;@LF$VXSP#GN1U M^AJ* /G/P;^PSX)\/>(;#7]>\1^-/'VLV4D=Q#/XE\0331I.A!$@B0HIY .' MW"O4+3X"_#>P\27?B&W\">'H=OT5YUXT^.6B>!_%T>@W=AJ M=YY:6LFH:C9Q1M:Z8ES.8+=K@M(K_/(K#]VKE0I9PJ\TGAKXYZ'XH\=OX9M[ M#4["/@SJ&C6'BO4;VTO-8$C64%CH][J#RB-HU\3W'AK4].TR+[3'K^C7^G1H4B&Y1+/ B M,W!PJL2V/E!H ^BJS]?\0Z5X4T>ZU;6]2M-(TNU3S+B]OIUAAB7U9V( 'U-? M)?B3]MS5_']C+/\ "[2-.T#PKNV-\1/B/&4K+-[<*/7'6N1@TGX M':CX>;XF_&CXS0?&:VT^_6SW(SSZ-:W94L(X;*V#AC@$@D-D \D4 >JW'[7. ML_%FZFTWX"^"[GQRB.8I/%VI[K'0H&Z$K*PW3D>D8/YG6@#WK1-#T[PUI5MIFDV%MIFFVJ"."T MLXEBBB4=%55 'TJ[FOGOX?^$OVD]+\56X\5^._!FK^'1,_&/Q2\7>,84O)+NPT:[OI%M[1BVZ(C#=8S MC& !QR* /H?XG?&'P5\&-$CU?QQXFT[PSITKF.*:_F">:X&2J+U.-,A\+:=="SN-7U)FL;<2D950\X0,3VQG-86B?L;> M![6SUFU\1:CXD\>PZK#Y$T?BK6);U(AG.Z%6/[INVY,''&:ZSP9^S5\+?A_X M8NO#NA^!-$MM$NYDN+BRFM5N(YI4^X[B7=N8=B>E 'S?XK_X*/W&FRZ;J>C? M#FXU/P5?ZO)I=KXCAU!+M+WRG E:&*V$CYVG*A]N$A M\%?!WB":^UM5O)KZZTA%%K;DLICD6>1/*ESM;# C'UX^EM*T>PT*QCLM-LK? M3K./A+>TB6*-?HJ@ 5ZM;NZOE MR=T69)IVC#(<$;4 &*^S** /%?"?[.^KZ?/X@;Q5\5?%_C.WUBUELWL[FX2T M@@C?J8EA5=C@_"3P%X=UO1+3PC;ZII^N/%+JB:[*^H_;7C.4: M03,P)!YX KV:B@#)\,>$M#\$Z3'I?AW1M/T'3(R2EEIEK';0J3UPB ?E6M1 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% 'G7 MQ\T/4/$/PZN+73_#4/B[%Q%+<:2T_D7$L2MDM;2%T59U.UEW.JG:5)&[(\9T M7X5>/];_ &2V\/ZEIER?$,ES8/INDZE\=^*+;2=#EU'1O&5OHT$NKQWD,<>E&TN7:8S([K(P M:)P4\I7)8$-L&&I/AO\ "OQ9I7Q+\.6VI:))9:%X4O\ 7=0BUMKR%XM1^VO^ MX2*-7,H*I)(9/,1 "B[2X;(^CZ* /F[X^?$;P]\,/VD_A)J_B:SE.GR:3K5J MFII 95LI&>RPS8Y 8 C(_P :\V^+B_"K]L7]H[X=>%1:S>(;'2K*^O[C6;-' MBB1MB^7$)" 6Y);C@''.:^VJYWX<_P#)/O#/_8,MO_12T >2:#^PU\']#LI+ M:3PM#K0D(+2ZTS7LA(&!\TA)'X5ZIX:^&WA_P;I@T[0=)T[1[ 2>;]GLK&&) M-^,;L*H^;'?K74T4 5OLT_\ S]O_ -\+_A1]FG_Y^W_[X7_"K-% %;[-/_S] MO_WPO^%'V:?_ )^W_P"^%_PJS10!6^S3_P#/V_\ WPO^%'V:?_G[?_OA?\*L MT4 5OLT__/V__?"_X4?9I_\ G[?_ +X7_"K-% %;[-/_ ,_;_P#?"_X4?9I_ M^?M_^^%_PJS10!6^S3_\_;_]\+_A1]FG_P"?M_\ OA?\*LT4 5OLT_\ S]O_ M -\+_A1]FG_Y^W_[X7_"K-% %;[-/_S]O_WPO^%'V:?_ )^W_P"^%_PJS10! M6^S3_P#/V_\ WPO^%'V:?_G[?_OA?\*LT4 5OLT__/V__?"_X4?9I_\ G[?_ M +X7_"K-% %;[-/_ ,_;_P#?"_X4?9I_^?M_^^%_PJS10!6^S3_\_;_]\+_A M1]FG_P"?M_\ OA?\*LT4 5OLT_\ S]O_ -\+_A1]FG_Y^W_[X7_"K-% %;[- M/_S]O_WPO^%'V:?_ )^W_P"^%_PJS10!6^S3_P#/V_\ WPO^%'V:?_G[?_OA M?\*LT4 5OLT__/V__?"_X4?9I_\ G[?_ +X7_"K-% %;[-/_ ,_;_P#?"_X4 M?9I_^?M_^^%_PJS10!6^S3_\_;_]\+_A1]FG_P"?M_\ OA?\*LT4 5OLT_\ MS]O_ -\+_A1]FG_Y^W_[X7_"K-% %;[-/_S]O_WPO^%'V:?_ )^W_P"^%_PJ MS10!6^S3_P#/V_\ WPO^%'V:?_G[?_OA?\*LT4 5OLT__/V__?"_X4?9I_\ MG[?_ +X7_"K-% %;[-/_ ,_;_P#?"_X4?9I_^?M_^^%_PJS10!6^S3_\_;_] M\+_A1]FG_P"?M_\ OA?\*LT4 5OLT_\ S]O_ -\+_A1]FG_Y^W_[X7_"K-% M%;[-/_S]O_WPO^%'V:?_ )^W_P"^%_PJS10!6^S3_P#/V_\ WPO^%'V:?_G[ M?_OA?\*LT4 5OLT__/V__?"_X4?9I_\ G[?_ +X7_"K-% %;[-/_ ,_;_P#? M"_X4?9I_^?M_^^%_PJS10!6^S3_\_;_]\+_A1]FG_P"?M_\ OA?\*LT4 5OL MT_\ S]O_ -\+_A1]FG_Y^W_[X7_"K-% %;[-/_S]O_WPO^%'V:?_ )^W_P"^ M%_PJS10!6^S3_P#/V_\ WPO^%'V:?_G[?_OA?\*LT4 5OLT__/V__?"_X4?9 MI_\ G[?_ +X7_"K-% %;[-/_ ,_;_P#?"_X4?9I_^?M_^^%_PJS10!6^S3_\ M_;_]\+_A1]FG_P"?M_\ OA?\*LT4 5OLT_\ S]O_ -\+_A1]FG_Y^W_[X7_" MK-% %;[-/_S]O_WPO^%'V:?_ )^W_P"^%_PJS10!6^S3_P#/V_\ WPO^%'V: M?_G[?_OA?\*LT4 5OLT__/V__?"_X4?9I_\ G[?_ +X7_"K-% %;[-/_ ,_; M_P#?"_X4?9I_^?M_^^%_PJS10!6^S3_\_;_]\+_A1]FG_P"?M_\ OA?\*LT4 M 5OLT_\ S]O_ -\+_A1]FG_Y^W_[X7_"K-% %;[-/_S]O_WPO^%'V:?_ )^W M_P"^%_PJS10!6^S3_P#/V_\ WPO^%'V:?_G[?_OA?\*LT4 5OLT__/V__?"_ MX4?9I_\ G[?_ +X7_"K-% %;[-/_ ,_;_P#?"_X4?9I_^?M_^^%_PJS10!6^ MS3_\_;_]\+_A1]FG_P"?M_\ OA?\*LT4 5OLT_\ S]O_ -\+_A1]FG_Y^W_[ MX7_"K-% "#@#)S[TM%% !1110 4444 %%%% !7._#G_DGWAG_L&6W_HI:Z*N M=^'/_)/O#/\ V#+;_P!%+0!T5%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !7A'[4_B/QSX7L/#M]X:O\ 5-*T 7*QZM>Z%:VUS>(SW%M'$-DZN#&4DN,[ M%+[Q$!P6KW>O.OB[\$=)^+R:;+=:CJ6AZE8./*U'295CF,7FQ2O"VY65D9H8 MVY&0R @]00#R,?%O55\>Q:GJ7B3Q>/A[;VVD0V^MZ5H]I%I=Y/,6\R2X::)I M@K,\2$18\LA@VT]+^@_%/Q5LQ;9\/G4"]C.T!!C9U8%L M[E5F"LJL1E@X6X="=N+:VDG;/^[&K'\<5R_PQ\0VEUX&T"%( M[P/#IUNK&2QG12?+4?*S( P]P37:5SOPY_Y)]X9_[!EM_P"BEH V/[1A_NS? M]^'_ ,*/[1A_NS?]^'_PJU10!5_M&'^[-_WX?_"C^T8?[LW_ 'X?_"K5% %7 M^T8?[LW_ 'X?_"C^T8?[LW_?A_\ "K5% %7^T8?[LW_?A_\ "C^T8?[LW_?A M_P#"K5% %7^T8?[LW_?A_P#"C^T8?[LW_?A_\*M44 5?[1A_NS?]^'_PH_M& M'^[-_P!^'_PJU10!5_M&'^[-_P!^'_PH_M&'^[-_WX?_ JU10!5_M&'^[-_ MWX?_ H_M&'^[-_WX?\ PJU10!5_M&'^[-_WX?\ PH_M&'^[-_WX?_"K5% % M7^T8?[LW_?A_\*/[1A_NS?\ ?A_\*M44 5?[1A_NS?\ ?A_\*/[1A_NS?]^' M_P *M44 5?[1A_NS?]^'_P */[1A_NS?]^'_ ,*M44 5?[1A_NS?]^'_ ,*/ M[1A_NS?]^'_PJU10!5_M&'^[-_WX?_"C^T8?[LW_ 'X?_"K5% %7^T8?[LW_ M 'X?_"C^T8?[LW_?A_\ "K5% %7^T8?[LW_?A_\ "C^T8?[LW_?A_P#"K5% M%7^T8?[LW_?A_P#"C^T8?[LW_?A_\*M44 5?[1A_NS?]^'_PH_M&'^[-_P!^ M'_PJU10!5_M&'^[-_P!^'_PH_M&'^[-_WX?_ JU10!5_M&'^[-_WX?_ H_ MM&'^[-_WX?\ PJU10!5_M&'^[-_WX?\ PH_M&'^[-_WX?_"K5% %7^T8?[LW M_?A_\*/[1A_NS?\ ?A_\*M44 5?[1A_NS?\ ?A_\*/[1A_NS?]^'_P *M44 M5?[1A_NS?]^'_P */[1A_NS?]^'_ ,*M44 5?[1A_NS?]^'_ ,*/[1A_NS?] M^'_PJU10!5_M&'^[-_WX?_"C^T8?[LW_ 'X?_"K5% %7^T8?[LW_ 'X?_"C^ MT8?[LW_?A_\ "K5% %7^T8?[LW_?A_\ "C^T8?[LW_?A_P#"K5% %7^T8?[L MW_?A_P#"C^T8?[LW_?A_\*M44 5?[1A_NS?]^'_PH_M&'^[-_P!^'_PJU10! M5_M&'^[-_P!^'_PH_M&'^[-_WX?_ JU10!5_M&'^[-_WX?_ H_M&'^[-_W MX?\ PJU10!5_M&'^[-_WX?\ PH_M&'^[-_WX?_"K5% %7^T8?[LW_?A_\*/[ M1A_NS?\ ?A_\*M44 5?[1A_NS?\ ?A_\*/[1A_NS?]^'_P *M44 5?[1A_NS M?]^'_P */[1A_NS?]^'_ ,*M44 5?[1A_NS?]^'_ ,*/[1A_NS?]^'_PJU10 M!5_M&'^[-_WX?_"C^T8?[LW_ 'X?_"K5% %7^T8?[LW_ 'X?_"C^T8?[LW_? MA_\ "K5% %7^T8?[LW_?A_\ "C^T8?[LW_?A_P#"K5% %7^T8?[LW_?A_P#" MC^T8?[LW_?A_\*M44 5?[1A_NS?]^'_PH_M&'^[-_P!^'_PJU10!5_M&'^[- M_P!^'_PH_M&'^[-_WX?_ JU10!5_M&'^[-_WX?_ H_M&'^[-_WX?\ PJU1 M0!5_M&'^[-_WX?\ PH_M&'^[-_WX?_"K5% %7^T8?[LW_?A_\*/[1A_NS?\ M?A_\*M44 5?[1A_NS?\ ?A_\*/[1A_NS?]^'_P *M44 5?[1A_NS?]^'_P * M/[1A_NS?]^'_ ,*M44 5?[1A_NS?]^'_ ,*/[1A_NS?]^'_PJU10!5_M&'^[ M-_WX?_"C^T8?[LW_ 'X?_"K5% " Y /K2T44 %%%% !1110 4444 %<[\.?^ M2?>&?^P9;?\ HI:Z*N=^'/\ R3[PS_V#+;_T4M '14444 %%%% !1110 444 M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% ! M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %% M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444 M4 %%%% !1110 4444 %%%% ''^(_B]X-\(^);'P_K'B&RT_6;TH(+25CN8N2 M$R0,+D@XW$=*M:-\2O"_B'Q1?^'-.UNUN];L0S7%E&QWH%8*_;!VLRAL$X) M.,U\U_M!:G?^$OC]HNJ>&;/5_P#A);F2*--)N=.6[TG7/W$B*V]4\R*1 Y0G MS45=JN4<9W7?@[H^J_\ "S_!>FRZ=?VU_P"&I_$DVLW$]F\<12YGC\@+*0%D M\PD.-I/$9)Q0!]6USOPY_P"2?>&?^P9;?^BEK6U2*_FMPNG7-M:3YY>ZMVG7 M'IM5T.??-^/B#3%>&&6 1+I,OEL':,EF'VGEAY8 .> S>O !UM%<[]A\6?]!O1O_!/+ M_P#)5'V'Q9_T&]&_\$\O_P E4 =%17._8?%G_0;T;_P3R_\ R51]A\6?]!O1 MO_!/+_\ )5 '145SOV'Q9_T&]&_\$\O_ ,E4?8?%G_0;T;_P3R__ "50!T5% M<[]A\6?]!O1O_!/+_P#)5'V'Q9_T&]&_\$\O_P E4 =%17._8?%G_0;T;_P3 MR_\ R51]A\6?]!O1O_!/+_\ )5 '145SOV'Q9_T&]&_\$\O_ ,E4?8?%G_0; MT;_P3R__ "50!T5%<[]A\6?]!O1O_!/+_P#)5'V'Q9_T&]&_\$\O_P E4 =% M17._8?%G_0;T;_P3R_\ R51]A\6?]!O1O_!/+_\ )5 '145SOV'Q9_T&]&_\ M$\O_ ,E4?8?%G_0;T;_P3R__ "50!T5%<[]A\6?]!O1O_!/+_P#)55=0T+Q5 MJ,,<;>(-+A"31S;H=)E4DHX<*?\ 2>AVX([@F@#K**YW[#XL_P"@WHW_ ()Y M?_DJC[#XL_Z#>C?^">7_ .2J .BHKG?L/BS_ *#>C?\ @GE_^2J/L/BS_H-Z M-_X)Y?\ Y*H Z*BN=^P^+/\ H-Z-_P"">7_Y*H^P^+/^@WHW_@GE_P#DJ@#H MJ*YW[#XL_P"@WHW_ ()Y?_DJC[#XL_Z#>C?^">7_ .2J .BHKG?L/BS_ *#> MC?\ @GE_^2J/L/BS_H-Z-_X)Y?\ Y*H Z*BN=^P^+/\ H-Z-_P"">7_Y*H^P M^+/^@WHW_@GE_P#DJ@#HJ*YW[#XL_P"@WHW_ ()Y?_DJC[#XL_Z#>C?^">7_ M .2J .BHKG?L/BS_ *#>C?\ @GE_^2J/L/BS_H-Z-_X)Y?\ Y*H Z*BN=^P^ M+/\ H-Z-_P"">7_Y*H^P^+/^@WHW_@GE_P#DJ@#HJ*YW[#XL_P"@WHW_ ()Y M?_DJH[G2O%=U;2PG7=)02(4+)I$H89&,@_:NM '345S%II/BNTM88!KNDR") M%0/)I$I9L#&2?M76I?L/BS_H-Z-_X)Y?_DJ@#HJ*YW[#XL_Z#>C?^">7_P"2 MJ/L/BS_H-Z-_X)Y?_DJ@#HJ*YW[#XL_Z#>C?^">7_P"2J/L/BS_H-Z-_X)Y? M_DJ@#HJ*YW[#XL_Z#>C?^">7_P"2J/L/BS_H-Z-_X)Y?_DJ@#HJ*YW[#XL_Z M#>C?^">7_P"2J/L/BS_H-Z-_X)Y?_DJ@#HJ*HZ'IK:-HFGZ>]P]VUI;QP&XE M^]*54+N/N<9_&KU !1110 4444 (5!() )'0^E>>?$OXVZ-\,]=\-:+=VE_J M&I:YJ%M8QI9VSM%;B9RBRS2XV(N58 $[F(. <$CT2O/?C+X$U+Q[I_A>'36@ M5]-\0V&J3^>Y4&&&4.^W .6QT'ZT 0O\6[[3O'6E:%K'A.]TFPUB[GL=-U.2 MXCD\Z6-6;YHE)**RHS*23QC(&<#$\4?M.^'_ MHD>HRZ9J=X+CQ"WA^V2T@ M:02,EZ+.2=G VQQK*6&6(SMXSFLW3?"_Q&U#XJZEXG\1^'=)O?L?VFW\-NFL MGR=.A92%+KKXX-XEB-BT#:W;:E%XE:[<:A:Z>D*K M+I21A?\ 4R.FXC>%)N/^,/A2]\=?"SQ5X>TTQ+?ZGITUK 9V*H'92!N(!P/PH Y[QG\:KKP9#8ZI M-X2OI_#$BV9N=86YB40FX<(H6+.Z3:67=C&,\9JYXT^-^C>!9O$@OK/4+F/0 M[.WN9386SW#S23"4I"B("=VV$L2< !@20.:XKQ7X)\?ZWXQ\-V5WX?TO6O > MB6]I+':_VP;=KB^0#=+,AA;D^ ]6_P"$=^(;7_V8:YXF MN[UT\N0M&D(C^S6BDDI .2OOVJ;&'PUH^N6?AJ_O[*;PO!X MPU79-&C:;ITD8D+8/^M=5WG8O78>>17MUG=PW]I!=6\BS6\Z+)'(AR'4C((] MB#7RMXZ_9A\0^*?@MX1\$KH^D/J\/@VW\*WOB!-6N;9[(^0D,S>7& MY$,,Z MQ2X4L!DUOX[J=[:>YBM7MHX7=#O+G[[%#A0 M/J1BM9OC/:W^B^%M0T'1K[76\2:2=8L;6$I%+Y)B21 X<@*6\Q1STY]*\PD^ M%/Q(T3X/>%? 5A8Z;J&F-+??\)$L6KM9RS023R2)!%)Y+85UDPYP" "!UR.W MO?"?C'3AJ>O>']$T2TUNT\-VVEZ!I$UVPM;68L6F1W6,?NUVPA=J\B,\#- % M4_M%3QWT^@2^$+I/&J:G%IJ:(+V,I)YEN]P)1<8VA!'&^>,@@#'(KT?X?>-; M/XB^"]'\26$']/F M\8:5K3ZK?SWNM>8^MM+;/!*S2K !#L#)L0*554"C'6O7O@KX%N?AK\+O#_AR M]EBFOK2!FN7@SY9FD=I)-F>=H=V SV H [:BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ IDLJP1/(YVHBEF/H!UI]% 'D?A7]H6#XA1^,E\)^%]6U6[\. M:G!I9M[I!9- M&;C2Y)%9H[M9=CE7'RN@7,@(ZJ.@/% _A9J6D6G@ZU?P_9:%I^AW5Y MJ$]L-3:]FO+R13BYDF,:EI'>69G8C.6]^ #3L/CN;/7)]/\ %?A?4?"@_LV7 M5K=Y76[>2WC<*P:.'GV-YIMLUWG\)RA^4\CH:XGX.^%_',7C35?$OQ \/Z9'KU]$T*ZC8ZN M;F.TMP^8[6"(PH53GIZ@AMW++Y M5Q>2S1Y) YVN,CL<]: /0:*** "BBB@ HHHH **** "BBB@ HHHH **** "B MBB@#S.;X\:2_Q1O? MAI6JZEJMII=QJ3RQ6QCAD:)T5H(GDVK(^9%R5.T$@$ MYR!#IOQQ%L?%D/BK0)_"UYXV0EQ(G 8>4X*GIQUI?&?@K MQ))\7-/\::'!8W?]G>&M0TZ&VN[AHO,NI98'B#$*<)^Z.6ZCT-<-X8^$_C75 MO#.N6OBO2-/3Q#XCNK1M>UK^U/M/VNV213);11B%!%"L8:-$!/#LS$LS,0#M M;OXUZEHVL>'X=9\#ZEI6EZS=6^G17\ES$[+=RP^8L9B!W;004+\?,#QCFM#P M7\6+SQ!XSE\,ZWX6O/#&IMIXU2V2XN(Y_-M_,V'<4)".#C*Y/7@G%EZKX9T:7_B0(-9,7V=VCVR7 #V6BB MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH \]\=_&K1_ ?CGPEX3N+. M_O=4\17B6L;6UNQ@ME99"KRRD;!DQ, N=QP>,#-0V?Q&]9\*7NAP MZN]TFEWTUQ%)]H,'+;XT),89?F7).01G!XJ?XJ>!=2\9:QX"NK!H%CT/7XM3 MNO.&KVRTWQ#-+;:5J[S1L M+B6.V:X.802Z(8T?#GNN"!D5Y_XO^$GC(Z!X.\#6NB:=XF^'VEZ="FJVESJQ MM)=6N4Q\L_[E]T)8%V7(WDX;Y<@[GB;X=>+?&?Q;\)Z]+HFA:"-#OQ1PS N4_=JP7< 0 >WT444 %%%% !1110 5G>(?$>D^ M$=&N=7US4[31]*M@#/>W\ZPPQ L%!9V( R2!R>I%:->;?M"_\DS/_8:T7_TZ MVM !_P -*_"3_HIWA#_P>6W_ ,71_P -*_"3_HIWA#_P>6W_ ,77I-% 'FW_ M TK\)/^BG>$/_!Y;?\ Q='_ TK\)/^BG>$/_!Y;?\ Q=>DT4 >;?\ #2OP MD_Z*=X0_\'EM_P#%T?\ #2OPD_Z*=X0_\'EM_P#%UZ310!YM_P -*_"3_HIW MA#_P>6W_ ,71_P -*_"3_HIWA#_P>6W_ ,77I-% 'FW_ TK\)/^BG>$/_!Y M;?\ Q='_ TK\)/^BG>$/_!Y;?\ Q=>DUPGC[XIR>"_$NB>'['PCKOB_5]6M M+R_CMM$>RC\J"V>W21W:ZN8%^]=P@!2Q.3P * */_#2OPD_Z*=X0_P#!Y;?_ M !='_#2OPD_Z*=X0_P#!Y;?_ !=;'PX^(_\ PL'^WHIO#FK^%M1T2^73[O3] M9:U:4.UO#<*RM;3S1E2DZ?QYSD$#%=C0!YM_PTK\)/\ HIWA#_P>6W_Q='_# M2OPD_P"BG>$/_!Y;?_%UD^/OC#XMT7XA:MX7\+>$-&UTZ5H,6O75SJWB&33L MJ\DZ".-4LYP3^X)RS*/F'IFL;3OVB/$WCW5+:+X?>"-.URRG\-6'B57US7I- M,N'CNU=HX5C6TF7?A.K2*N6ZXYH Z_\ X:5^$G_13O"'_@\MO_BZ/^&E?A)_ MT4[PA_X/+;_XNN,O/VGY];U+PI;^#]$T6Z@U[1&UH3^*]?;1_("RB)H"$MKC M,JMD,,@ J<$]:[+XD?%J\^&O@?0=4O-*TZ?6]9O[72X+?^U3'IL5Q-G#27AA MRL("G#^22S%%"984 +_PTK\)/^BG>$/_ >6W_Q='_#2OPD_Z*=X0_\ !Y;? M_%U-H/Q=AM_"5]K7CFUM/!*V-W]DEGEOQ/87&=I22VN62/S8VW E%.0P(XJ MMK7QXT#1O&GAO2GN+-]"UG1+[6QX@-XHMXH[>6UC Z88/]J!W;AC;C!SP /_ M .&E?A)_T4[PA_X/+;_XNC_AI7X2?]%.\(?^#RV_^+I?%O[0/@OP?XMT?PS< MZK#<:WJ=\-/2VMY8R;>8V_GIYV6!0,A4C@GYUXPJ^'/"%YKFJ: M1X>UCQ):1W-MI?\ :L-SN+X^6.5/EE&3@,O![4 ,_P"&E?A)_P!%.\(?^#RV M_P#BZ/\ AI7X2?\ 13O"'_@\MO\ XNMO1_BYX*\0>);GP]IOBG2K[7+9YXYM M/@ND::-H7*3*5!R"C JP[$ MHZ4 $/_ >6W_Q='_#2OPD_Z*=X0_\ !Y;?_%U9^(?Q@T[X M;>+_ MI.K)#;:;K$&H7-QJUS MU/7;'Q3I5UHVF/Y=[?172&*W; ;#MGY3AE//J* ,3_AI7X2?]%.\(?\ @\MO M_BZ/^&E?A)_T4[PA_P"#RV_^+KMO#?B?2?&&D0ZKHFHVVJZ=,2([JTD#QL0< M$9'<$$&M.@#S;_AI7X2?]%.\(?\ @\MO_BZ/^&E?A)_T4[PA_P"#RV_^+KTF MB@#S;_AI7X2?]%.\(?\ @\MO_BZ/^&E?A)_T4[PA_P"#RV_^+KTFB@#S;_AI M7X2?]%.\(?\ @\MO_BZ/^&E?A)_T4[PA_P"#RV_^+KTFB@#S;_AI7X2?]%.\ M(?\ @\MO_BZ/^&E?A)_T4[PA_P"#RV_^+KTFB@#S;_AI7X2?]%.\(?\ @\MO M_BZ/^&E?A)_T4[PA_P"#RV_^+KT@G R>E<;\.OBSH'Q1?7%T22=CI%ZUE/YZ M!-Y'22/D[HVP<-QG:>* ,G_AI7X2?]%.\(?^#RV_^+H_X:5^$G_13O"'_@\M MO_BZ])KR_P"-OQUL_@C<^#3J.ESWVGZ_JITZXNX9-O\ 9\8ADE:X=<'3X&NH;1&CN QU)Y=/MKN,(-HV%FNEB RV2 <\X&5>?M&)#\(]#\ M61Z)%%K6I:DNAR:3J&H?9[>PU$2O#/%<77EML2.2*1?,$9+87"_-P ;W_#2O MPD_Z*=X0_P#!Y;?_ !='_#2OPD_Z*=X0_P#!Y;?_ !=+/$ M&I:&]KX@\-3R:?=:!#="7S[[Y1!!!,57>)VDB5&**?W@W*I! -#_AI7X2?] M%.\(?^#RV_\ BZ/^&E?A)_T4[PA_X/+;_P"+K/O_ (^PQ^ ?"FJZ?HS7_B?Q M/=_V7IOA[[4(\WZI(TTVTMM-O\B>"8QQ,Z,8I%(:-"K(PP1AF *G_#2OPD_P"B MG>$/_!Y;?_%T?\-*_"3_ **=X0_\'EM_\767_P +I\1:MJ^JW/ASP,=<\':3 MJ+:7>:HNI%+Z::.3R[AK6S$+":.)OE+-+&Q*2;5(4%NWNOB;X3L?%2^&;CQ% MIT'B%HO.&F27"K<;-I;.PG/W03]!F@#G/^&E?A)_T4[PA_X/+;_XNC_AI7X2 M?]%.\(?^#RV_^+I\7[1OPNG2-X_'_A]TD$11EU",AA( 8R#GHP(P>G-;=K\5 MO!M]XLD\,6_B?2YO$4ZW:)XJTEKK1(VFU*( M7:;K1%.&:09^4 \$]C7+^+/VBO#7A_3M!UFQN].UOPW?27RW6I6VIPH;=;:S MFN'\N-CF=_W.THI!4,6/"F@"[_PTK\)/^BG>$/\ P>6W_P 71_PTK\)/^BG> M$/\ P>6W_P 74WA#X_\ @+QK'H"V/B2PCU#7+.&]L],N+B-;HI(I9 4#'G / M )Z'&:]#H \V_P"&E?A)_P!%.\(?^#RV_P#BZ/\ AI7X2?\ 13O"'_@\MO\ MXNO2:* /-O\ AI7X2?\ 13O"'_@\MO\ XNC_ (:5^$G_ $4[PA_X/+;_ .+K MTFB@#S;_ (:5^$G_ $4[PA_X/+;_ .+H_P"&E?A)_P!%.\(?^#RV_P#BZ])H MH \V_P"&E?A)_P!%.\(?^#RV_P#BZ/\ AI7X2?\ 13O"'_@\MO\ XNO2:* / M-O\ AI7X2?\ 13O"'_@\MO\ XNC_ (:5^$G_ $4[PA_X/+;_ .+KL/%_B_2? M GAZ[UO6[K['IUMMWR"-I&)9@JJJ*"SLS, %4$DD "L?P/\ %/2/'=[>V%O: MZGI6JV:++/INLV,EI<+&Q(20*X^925."">G.#0!C_P##2OPD_P"BG>$/_!Y; M?_%T?\-*_"3_ **=X0_\'EM_\77I->6_%7XQW_@CQ?H'A70]&TS5-TNK^ M-M=UDZ59B*!HD9%F$,Q>9FF3;&$QM5R67 # %G_AI7X2?]%.\(?^#RV_^+H_ MX:5^$G_13O"'_@\MO_BZYGXE_M)S_#SPEX3U:3PE/'?ZXLDDNF:O=_8I+81) MNEB!$=H�!>_X:5^$G_13O"'_@\MO_BZ/^&E?A)_T4[PA_X/ M+;_XNL\_M!64_P #-#^(=GI$SS:VEM%8Z1_&CQ)9>'O#Z?\ "(Z;-XNUW4Y=.L=/A\0"33I4CBDF>Y%XD#-Y>R-A M@P!]Y"[0/FH UO\ AI7X2?\ 13O"'_@\MO\ XNC_ (:5^$G_ $4[PA_X/+;_ M .+KAIOVLHYM.TS5M.\,&YT6.PL=0U^>?4!%-IB7-S]G"QQB-EG:-ED9_GC& MQ,J68A:],\>_$R/P+XI\":/+8_:4\4:G/IYN3/Y8M!'9SW)D(VG?D0;<9&-V M<\8(!F?\-*_"3_HIWA#_ ,'EM_\ %T?\-*_"3_HIWA#_ ,'EM_\ %UA^/OVK MOA_X3\#Z]KVE^(]&\17.EQ1N;ƻA_%7P[ MJ.JZ?H-UKFC0^++BV2=]'M-0$[ LF\A"51G&.02BDCG H R/^&E?A)_T4[PA M_P"#RV_^+H_X:5^$G_13O"'_ (/+;_XNI;O]HKX86'VG[1X]T"'[,S)-OOXQ ML9?O \]L'/ICFM*V^,O@2\LM7NX/%VCS6ND%5OYDO$*VQ8[5WG/&3P/4]* , MC_AI7X2?]%.\(?\ @\MO_BZ/^&E?A)_T4[PA_P"#RV_^+K)\<_M1^!O!^F>' M;JWU6TUG_A(Y;NUTN6WO(DMI)X+>68I+,S 1AC%Y>[#8=UR ,D=5H_Q>\+W] MYH6DW>N:78^)-6M8KF+1Q?1RRDO%YFU"#A^ Q!'4#(XH R_^&E?A)_T4[PA_ MX/+;_P"+H_X:5^$G_13O"'_@\MO_ (NMO1_BYX*\0>)W\.:;XITJ^UU/,#:= M!=(TP,?^L&T'.5[CM7&_$WXK^//!'COP[H.E>"_#FL67B*\>RTZ]O/$]Q:2; MTMWF$/_!Y;?\ Q='_ TK\)/^BG>$/_!Y;?\ Q=6;K]H#X;66 MDVNIS^.-#BT^Z,@@N&O4"R>6<28.?X3P?3O6OK'Q3\'^'[S2;74O$VEV-QJP M0V$<]TBFY#D!"F3R&+ ]\B@#G_^&E?A)_T4[PA_X/+;_P"+H_X:5^$G_13O M"'_@\MO_ (NJ_A_]H7PM,G 8 GH3P#WH P_P#AI7X2 M?]%.\(?^#RV_^+H_X:5^$G_13O"'_@\MO_BZZ[2_&V@:TVF"PUFRO#J<,EQ9 M"&96^TQ1E1(Z8/S!2Z@D=-P]:X/QQ\>[?PE:>-+JWTK^T;7PU-::=+.UT(8W MOY_+80LQ4B.-$G@=Y>=HDX5BI% %[_AI7X2?]%.\(?\ @\MO_BZ/^&E?A)_T M4[PA_P"#RV_^+H\)?%NYDTG6[WQOINF^%;73 DW]K66K?;])N87R-T=TT4)+ MJRLK(8Q@[<%MW&G>?&WP#I_AZSUVY\8:/#H]X[QV]Z]V@CE9,AP#GJN#GTH MS/\ AI7X2?\ 13O"'_@\MO\ XNC_ (:5^$G_ $4[PA_X/+;_ .+J"U_:5^'L MNL^+-.NO$%KI;^&KN"SO)[Z>..)WFC\Q/+(8E@1D<@,#-;GB#XM>&]'MK M%+?6=+O-6U6W\_1]/:]5&U'(^01D!B0QP,@$9(H RO\ AI7X2?\ 13O"'_@\ MMO\ XNC_ (:5^$G_ $4[PA_X/+;_ .+K2E^+&DI\*E\=JKOI[V:W,< /SL[8 M"Q?[Q-OB]\1O"WC'PMH=KX"\-7B^(Y&ALIKGQ7<0/'(EOYT@F1=.< M* 5=059LX!(7) .A_X:5^$G_13O"'_@\MO_ (NC_AI7X2?]%.\(?^#RV_\ MBZX36_VEO%.C6_CW6CX&TB;PGX)U8:7JMV/$T[QJMUX\U3PMDU MS?Q#\$0?$7PE=:#<:A>Z4LTL$Z7VG>5Y\$D,R31NGFHZ$AXUX9&!&1B@#I** M\O\ ^%0^*_\ HM_CS_P"T#_Y5T?\*A\5_P#1;_'G_@%H'_RKH ]0HKR__A4/ MBO\ Z+?X\_\ +0/_E71_P *A\5_]%O\>?\ @%H'_P JZ /4**\O_P"%0^*_ M^BW^//\ P"T#_P"5='_"H?%?_1;_ !Y_X!:!_P#*N@#U"BO+_P#A4/BO_HM_ MCS_P"T#_ .5='_"H?%?_ $6_QY_X!:!_\JZ .1\4_L0?##QCXCU+7-1'B?[? MJ$[7$_V;Q3J,,>]CD[428*H]@ !7G'CO_@FQX4U36-)U#PCXCU/0GM8+BWN8 MM:U'5M36<2-"RE&CU&W>,KY39 8JV\9&44CW7_A4/BO_ *+?X\_\ M _^5=' M_"H?%?\ T6_QY_X!:!_\JZ /$O '_!-WP5HD.K2>*M8LB3W$DA91A2 MA691U/0\#O4UWP-\0?#'Q8UGQ-X&T?PG?Z=J&A6FE0PZQJ]Q8FT>!YB"(HK2 M4.F)%^4.A^4C(ZUN?\*A\5_]%O\ 'G_@%H'_ ,JZ/^%0^*_^BW^//_ +0/\ MY5T *-*T/PT^DRR:E:*TMQ>/<>=)<"(JR(K,7. MV1G'/6N_^*/A;7=;\-V%KX9BT.Y6UN8WN=!UZ ?8-3M@K*;=W$;S+ V,S2^;9IY)$N\.PP[1;2%;YONU[ M-_PJ'Q7_ -%O\>?^ 6@?_*NC_A4/BO\ Z+?X\_\ +0/_E70!QWAG]GG7=$\ M1:1J#WFDF.T\3^)M;E \Q]\6HS2O I7:NYE#J'&X#@@,>#4?P7^&?CCX.7ZK M<:?IDND7/V/2HM)TO6+J[AM8T\PR749N( T$8&T+:[V50,"5C@-VO_"H?%?_ M $6_QY_X!:!_\JZ/^%0^*_\ HM_CS_P"T#_Y5T <[^TQ\"=;^-(TL:/>:?:B MUTG6M/D%^[KN>\M1#&1M1OE##+>W0'I6=X@_9XU^_D\:75G>:6L^H7N@ZEIM MO*\BPO+IT<8,4Y$9V([1XW*'(!!V\;:[/_A4/BO_ *+?X\_\ M _^5='_"H? M%?\ T6_QY_X!:!_\JZ .B\!1>++>&8>)=+\.Z>T[27)70;F:18Y&D8^6WF1) MYIV[6,WR%F8CRUQN;KJ\O_X5#XK_ .BW^//_ "T#_Y5T?\ "H?%?_1;_'G_ M (!:!_\ *N@#U"BO+_\ A4/BO_HM_CS_ , M _\ E71_PJ'Q7_T6_P >?^ 6 M@?\ RKH ]0HKR_\ X5#XK_Z+?X\_\ M _P#E71_PJ'Q7_P!%O\>?^ 6@?_*N M@#U"BO+_ /A4/BO_ *+?X\_\ M _^5='_"H?%?\ T6_QY_X!:!_\JZ /4*\H M^)_[,O@GXN^*K/Q#XA_MLZC:1I%$-/UV[LX=JL6&8XI%5CD\DCFI_P#A4/BO M_HM_CS_P"T#_ .5='_"H?%?_ $6_QY_X!:!_\JZ .*^-_P"RE8^,[[6/&?A2 M:^M_B3-Y;6-Q>>)+ZUL(7!5"YBC\R,%4W%1Y3*7"[@035/PU\#O%H^+W@3Q' M>>%O#/A?1O#^D7.BSQZ-XLO;R2:!H=L)\IK"!7=&R-SOP)7/+!:]!_X5#XK_ M .BW^//_ "T#_Y5T?\ "H?%?_1;_'G_ (!:!_\ *N@#(\'?LD_#_P "+XA& ME?\ "0_\3ZR?3[PW7B*^N#Y3D%O++RGRVR!\R8(]:T/%7P.MM6;X;:;9B*7P MWX8GN%NK74IY)I9[:2QGM@@9MQ=LRC)4^%/V3?$^DCQ-H>J^)(;_P ,:QXKM]6^ MT6]W/!J TZUL;>WM8&95'[U6MHPSAAD)NZDJ.G3X$^*_!5WXIB\):AIFN>'] M5O;;53HOC"XFNA=W&WR[J.6=XY6C5U2%UD ?^ M 6@?_*NC_A4/BO\ Z+?X\_\ +0/_E70!Y-X>_9X\?>!?&VC>+O#ND^$H%M9 M[MAX/&NW4.GV$F/[/&O\ BF6R/BC4[>"" M_P#$$GB;6XM$OIX72XCC"6,%O*$1F2)@LC2'82\2D( <#L_^%0^*_P#HM_CS M_P M _^5='_ J'Q7_T6_QY_P" 6@?_ "KH X,?LU:_X;O/MGAS6(+B?0/$ M1\2>&EUN\GF+O-:R6][:W4A5F"2":4K(N\J64[3M*MN_!'P'\1M*^)?C/Q9\ M2(?#\E_JMI:6.GSZ#J$MPL-I \SK#*LEM#F3=<.QD4888&Q-N6W_ /A4/BO_ M *+?X\_\ M _^5='_"H?%?\ T6_QY_X!:!_\JZ ,&P^'GQ*\$W>M:!X2O/#\ M?A35=7EU6+6+VXF&H:4+B8S7,26ODM%.- M<$%YI,GA?5_$L/BV34KB:0:I!<1V45M]D6,1%&C)A5A+YBE5=D\LX#'O/^%0 M^*_^BW^//_ +0/\ Y5T?\*A\5_\ 1;_'G_@%H'_RKH \8G_8_P#$\GPCD\+I M?Z&NIGX91^"TGWRB-;U2"TN?*SY1()W8W?[-6_ GPR\3^+?BOXMDFM--TWPO MIOQ";7OM[/*NHW$D5G&B1)'Y>PQL7YD\SHK+L.[GPS=Z3HVGZQ9Z M2]Q+9,')D5<*2 6VC/J/_"H?%?\ T6_QY_X! M:!_\JZ/^%0^*_P#HM_CS_P M _^5= 'B'@G]D7QCH&N6/\ :,VCWFF37>EZ ME>.NOZ@!;3VD$4)2.U2...X!^SHZ2.\90NRE) HW?7]>7_\ "H?%?_1;_'G_ M (!:!_\ *NC_ (5#XK_Z+?X\_P# +0/_ )5T >H45Y?_ ,*A\5_]%O\ 'G_@ M%H'_ ,JZ/^%0^*_^BW^//_ +0/\ Y5T >H45Y?\ \*A\5_\ 1;_'G_@%H'_R MKH_X5#XK_P"BW^//_ +0/_E70!ZA17E__"H?%?\ T6_QY_X!:!_\JZ/^%0^* M_P#HM_CS_P M _^5= 'J%>$>)?V+/AKXL\87_B;4/\ A)CJE[=M>S>1XGU" M*'S"VX[8EF"*N?X0 ,<8KI_^%0^*_P#HM_CS_P M _^5='_ J'Q7_T6_QY M_P" 6@?_ "KH V_BS\-E^)_AJVL8]2DT?4]/U"VU;3=01/-6WNX'#Q,\6Y1* MF>"A(!!Z@@$4/ O@;Q/!XMN_%7C/5],U#5WLQI]M:Z-9R6]M;PARY/[R1V=V M.,DD ;0!W)I_\*A\5_\ 1;_'G_@%H'_RKH_X5#XK_P"BW^//_ +0/_E70!S_ M (Y_8W^'/Q$\7WWB76?^$D.J7D@DE^R>);^VAR -L4:E]:;8Y#,R+B/9(4++$G[Q%M4^)4NG>*Y-)\+R:'T6QTR%=%N[.^T[3;Q2ED_V9PRV[[ 2D;*"FX*VW=G:^-I\[TCX ^,/# MFGZ5KNFQ^'(O$]EXDO-31:3;P7%NUL]M%<" NN%*R[_( +[AL .ZN_ M_P"%0^*_^BW^//\ P"T#_P"5='_"H?%?_1;_ !Y_X!:!_P#*N@#RC_AE+Q+I MN@P>';"_T6YTK6M+T_3O$5UX;4+.Y#KB/E-EO(,G!W,.,$D=9#^S_P")(?B% M.WVG2&\*3>+5\8G4?.D&II,+=(C:>5Y>QDW1Y$OF@A&V>7\NX]G_ ,*A\5_] M%O\ 'G_@%H'_ ,JZ/^%0^*_^BW^//_ +0/\ Y5T >:Z!^R]X@TOP]H-A->:. M\NGVGB>"1E>0JSZE<320EA!QNJ"[_9G\:Z=X>TV#0]3TBWO++P[ MX?TAH8[N:T$[V,Z23JLZ0L\"NH(2549P?X1UKU'_ (5#XK_Z+?X\_P# +0/_ M )5T?\*A\5_]%O\ 'G_@%H'_ ,JZ /&)/V5?'2> K&PCO-"GUB+Q%J^J/'<: MG=/$+;4--N+1P9V@:226)KG=EE EV$DQ;L+N:9^S1XKL+G2]':[T23PZVK:- MKM]JGGR_;[>>PBB'D01>5M=)'@4>8TB%4D<;&/7TO_A4/BO_ *+?X\_\ M _ M^5='_"H?%?\ T6_QY_X!:!_\JZ .3\)_L_:YX?\ $7@74)+S33'H7B?6];NQ M$[[I8;V"YCB5/D&7!F0L#@84X)P,]_\ $'P!?^+?&_PZUFTGMHK;PYJD][=) M,S!Y$>TFA CPI!.Z13R1P#SVK,_X5#XK_P"BW^//_ +0/_E71_PJ'Q7_ -%O M\>?^ 6@?_*N@#RO5?V3M(K]K^UG\,ZUKCZ_P#:Y-7OH[FSE>U6$QI9 M(!!(RE8 S?ZW Y[_P#X5#XK_P"BW^//_ +0/_E71_PJ'Q7_ -%O M\>?^ 6@?_*N@#@=+_9JU^S^)/BGQ#+>:2]EJC:XUO&'D,B?;8[58]P\O P8' MW8)^\,9R<8VH?LO>,/\ A"K;PS:WFA7,&K^$-*\*ZW>W<\PDT_[*H5[BT40L M)R06*JYAPRJQ;D@>K_\ "H?%?_1;_'G_ (!:!_\ *NC_ (5#XK_Z+?X\_P# M+0/_ )5T >4_\,R>--!>]N](N/#VJ76I6>L:/W2SI<1LL+EI M%V[6B*JKY7]XNSYN%^.7@[4_!>H:MX.T)K/7[GQ%I'A[32NI07*78:UF=%>V MV0O%,&!)8-)'Y)!8[]P ^D/^%0^*_P#HM_CS_P M _^5='_ J'Q7_T6_QY M_P" 6@?_ "KH XK]GCP+=V7Q/^(>MO<"Z\+V%V^E>&!Y31^5%,PN[_;GJOVF M01 C Q; =JT=-\+>)+:;XI^'-+:R@U2ZUX:]9'5[?SK+4K2>&'?#*=IVCS(I MHB5#% $8!L[:Z3_A4/BO_HM_CS_P"T#_ .5='_"H?%?_ $6_QY_X!:!_\JZ M/)]4_97\0Z_X?\3/!;Z#X(NKZ_L-2M?#6@:I!:\+?L^>.? >J1^*M(LO#%_XBN?[0BO-(U;6[^>V"W'E8E-[)#)) M,X\E0R^3$KAL?+MRWIW_ J'Q7_T6_QY_P" 6@?_ "KH_P"%0^*_^BW^//\ MP"T#_P"5= 'FFH?L]>.M.^)Y\:Z4WA?4[FUO(K^"QNKB>RMKEWTTV-PA589C M;A#MDC8&4E2\9"YWUM^ ?@E??"'Q%X;\3WU_:7VG^'?!U_I5TL"OYIN)KR"Z M/E)MQY8$3J.0WW?EY..P_P"%0^*_^BW^//\ P"T#_P"5='_"H?%?_1;_ !Y_ MX!:!_P#*N@#D#X#UFV_9;LK VKMK%OY>KO8@G=Q<"X:(=\A/?&/PT\4Z=/!'IVBW,]].EQN661)K5XU"#:>07!()'&:J_\*A\5_P#1;_'G M_@%H'_RKH_X5#XK_ .BW^//_ "T#_Y5T >;Z_\ LD/K$_Q UY6TS_A+]1\4 MCQ%H5S-)*UMMC@MDCM[M,8*,\$FX!6P'5@2PP/2-+M+_ %SXZ'5)K46T>D>' MTLKEHG9XFNII!(8T?\ @%H' M_P JZ /4*\V\ _\ )7OBE_UVTW_TD%0?\*A\5_\ 1;_'G_@%H'_RKK<^'GPT M;P%>:[?7/B?6O%>IZS+%+] ':4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %RO=^'-.DU/5+ORB+6WCC'1=[P"ES-(Y)*CG&'W9_K0!9T[]IO0 M;WPOJ&K7'A_Q!I=Y;"P:#1+R&W%]>B]94L_*59F3,KL% =T*D'?LP:[+PI\2 M['Q=X/U#7X-/U"T;3Y+F"\TNY6/[5!- 2'B(1V0MQP5^LA8ZUXHN]3U!=.:=)#;F=-D4;.I*[MJH3M) +'DXS0!W>A_$+0 M];L=)E-]!I]YJ5M%W$27:!XP^QHPQ^8 \@$C@\DM?)'A;]F#Q5IGA2V%SHMB/$%OK?A2ZCN?.B: M2.VLH[-;L+)G( \J<;0?F'KFMC4_V9?%FI^%_B/I@N8+66.RGT?P?)%(H,=E M-/\ :IP<@A#(WDPG((Q;J2"#@@'TJ?&.@+I(U4ZYIHTMFV"]-W'Y);.,;\[< MY[9K-M_BEX5N?&&K^%TUJU_MK2;KV!GP(;>8N(W+GY>?+8XSD J3@,,_, M(_V;/'^LV^HS/86$&K:AX4T&TNKK2/LT*O)X@I9&C)3# M *!0!]9OXMT./28M4;6=/73)6V1WINHQ"[9(P'S@G((X/4&LKX>?$G2?B1\/ M=-\96(FL-'OH'N%_M'9&\2*S!B^&91C:3]XC%?.7A[X#>*/#HTK6IO"]_P") M+./6KZ]N?"FM:CIK2,)K>.)+A4@AAM(B&C),:[O]87W%F*CIM*^!OBNT_8YT M'X?M;VT/B+3%M9;C3$N08+Q(;U9Y+/S>!MFC0QY.!\_S8&: />Y/&&@PZ;%J M,FMZ!KF2\#;HQ$!DOD M=1CTKYLTO]G_ %S5_''AK6=1\+V6G>'E\2ZAJTWAZ>6&5;&&33)+>/**6C+- M,58JF0,@]C7L7P%\&ZEX'^#_ (?\.Z[ D=_9QRQRPAQ(JJ9G9 "."-I7Z=* M*FA?'FP\8^!+#Q3X5\,^(_$]M?7<]I!9V-M#%.?*9U>1C/+''&G[LXWNI.5 M&3BI;/X\:'JOASPYJ^F:;K&J#7K>XN+6RM+96N5$*DNKH7&#NQ'P2-S#)"Y8 M>=CPI\2_!'P=A\-Z!HDUQJ6I:[?/J%SI]Y;+/9V$L\LGF0^;(B&5E95&3\FX ML02H4]'X/\&ZWX:NQJVE^#5TZUT+PU%I>@:#>ZC$LIE>9WNU>6,R("RPVF&Y MR0V2,D@ T#^TOX6T[P?XKU[7[35/##^&+P:?J>E:A%')=QW!@CGCC4022I(7 MCEC8;'/WL'!! W+_ .,>EV?A[PUJD&EZMJ3^(;(W]CI]C;K)=,GDB7!3> #A ME7@D MR0,D><^#_A/K\7A7XOJOAV+PM9>*(&&D>&7NHIFM[C[&T4DSLA:-#* MY7A6. @8D%B!H6GA/QQX/\.:3J.F^'[;6]>\-^#;?3=+TR6]2*.?4"J+*&D) MPJKY:Y;N,XYH UW_ &D-+MK._BN_"WB*S\2VNIVVD#PQ(MHU]//.I>+RW6X- MN5*+(Y8S 1OG! !=KO[4'@GPWX#T/Q1J$E]%'K,_P!EM=,6 />>*+[4TU66V,R[8#)J MJ7DL0D)P=B C(."5X[4 =KXC_:&T+PUX]F\,SZ3K$\=K=V.GWNLP10FSL[F\ M.+:)PTHE8L2HW)&RKO&XCG'8:OXWL]#\4Z?HEW!<1"[LKB^.HML6T@6%HE*R M.6!#-YP*X4C"MDCC/A?C_P"#WC#6_BOJFI6VDI>W%WJVFWND^+#>1QKHUI"( MQ<6[0D[V+;)<;58/YXW%=M6OVH?@KXF^*GB"UN-$LH+NT7PKJVDR":=(\S7% MS8/&N&/0K;RY/08'J* /?])UO3M>MFN-,O[74;=7,;2VDRRJ&&,J2I(SR./> MN;\5?%_P;X,T.[U?5?$5A%86=S#9W$D4PE,,LL@C1&"9()8XYZ8)/ -,G&>:\#/[ M,_C+_A$M=T6R\+F+2TCLY(--UFYTZ[FDE@U".?R;:[C2-Y(1$)5#7G[PY3)& M6H ^R8M>TR;4CIT>HVDFH",2FT6=3+L/1MF'/!\&GR27/]J& M[UNST QZ9)',\%SB>)+W7 MO^$L6>,RM:36C11V.Q6\S*,RC&/+VPJ0"[C,)8=1OSC/!XSVK MRV3X9>(M4_9DU/P)#;6?AOQ$=-ETZ-[)E2WF=?E$HV9*"4#)!Y7>?2N L_@- MX@UR]@OYO"-EX=T>X\8Z3JS>&&GAD2UM[:T:*:4A&,9+N0=JY) !/)( !]$: MQXTL]%US1M.FAG>/4XYY5OTV?9H%B56)D8L"-VX;< YPLH9XK72M6LY%>9 M(@K3PQI$HR1P2I''2N5UW]GOQ'8>(_$%]I&@65QH'VSP_?IX>AEBABU/[+#+ M'&;(P.IR,5\2WG[ M+_CQK26^&@75E97&I:_<#PSH=YI9DBCO71X0RP* H9&*#"/"FIZ]/97FI16$)F:TL%5IY0.R!F52>>["K$'B;1[G5#IL M.K6,NHC=FS2Y1IACK\@.>._%>;_&G1=6^,_[.WBS2=$TR6WU?5[*:UMK*^=( MVWK+M&6R5 .W(.>A%>8/^SEXF&OZ5J=I86EAJ(\9+#\G48SCB@#W?Q-\6_#OAD:9F[74S?:O;:)C3I(Y3!<3,53S?G&U00 M<]3[&NE77-.=(W74+5DDB:=&$RD-&N-SCGE1D9/09KY>T[X)>*;K0/!>D+X MT_0;S0=1TAM1UW[? 9=26WED,DBHF24 8OF1@Y,A&SJ:YV/]GKXE:OX:T+07 MT:'2#H'A#4/#XO)-1B:._F>ZM)4"A"66*1('4E@"-QR ,$@'T-:?'_PWJ?C: M[\-Z=%>:G):3VL$VHV9ADLT\^*617\P29VJ(65CC() P>2.VL_%FAZA#=S6N MLZ? I.5()(.Y5HZ_P# +6? 'PJ@DN+73-$L;#P- MH=CJT;7"107M[:W4$EQ;RNO&)55XC*WR_O"6.W)H ^R],UO3M;MS<:=?VM_ M.LMK,LBC\5)%4G\;>'8[5;E]?TM;9I/)68WD80OC.P'=C=CG'6O$?V69X=>F M^*VJZ;HMMHFF:AK8%K;V<\4T1VVL:L0\),1.[KL8J#WSFO,]1_99\6V/@CX; MVL.F7,ATSPU<:/J>EZ'-I:2+=RF,^<7O8)8BI"%&=!YB_+MW#(H ^K(/B+I/ M]HZY:W[-HJ:5=):-=:G)'##(-+GADECU*SD MBBB2=W6="J1MG8Y.>%.UL'H<'TKY:T7]F7Q)%XTT"75=,@U/1+/Q7::I.;^] MCNV>VBT"2S+.2J^8WGE1]Q2?O;0*?X>_9J\6:?I?@.T:"UM[>>VDT;Q;;F96 MW6$=X;JU*$'YBO[V(#D 7)X^6@#ZBC\0:7-J*[3XFZ[J:I#>+JMA9V-Q!O&5MIMA$WAMWTO3-5T6]AL-:;2WU%_LQE6;]_:K'')&$>/:TH\ MUB'))R!0!]63>.O#=L9A-XATJ(P\2A[V(>7\Q7YLMQ\P(Y[@BKDWB#2[:_M; M&;4K2*]NUW6]L\ZB28>J*3EA]*^5?#/[+.K6]Y93:KX6R+?WCY;=?X,D<&N?A_9=\?/>>%QJHU:^;^R/#<$LVG:GIT":?/9"+[0) M)I[::X&&1G!MCB3[K;=Q8 'UUJ'Q \-Z9!J4L^NZ>/[-MY+N[C2Y1Y(8D&7= MD!R /I4OA_QGHOBCPE9>)M.U"&70KRV6[AO7;8AB89#'=C;QUSC'>OFBT_9F MU^.]T.8:/802-?>*&U2=N,G&*[:]^%/B&\_9>\+^ M$8=+CM-:TJ+36NM',T8CNQ;2QO-;[U.S$JHPR3CYANXS0!W_ (M^,_A_PKJG MA#3HR^MWGBF[:UTZ/39[8ME#)']IG&Y5/EH[+NP6&>:\3\'_ &UZ#QGX-U^[\/V6FV5IXKU M;6_[,,D3MI-K<6ACBB7:2I8R#S"L9*J9#@G&:A_:,^"?BKQKXG\67&F>&K7Q M9!X@T:PL;"ZN;J&$Z)+;7$DDIQ(<[91(I!C!.Z/#8�![WX8\?Z=XFCU9A' M-IC:;=W%M+'J!C1F6)MK3J Y_='LQQ[@5#8?$S1;I-7ENI?[(M=.O?L0NM1E MBBBNF,:R!H6WG_ KQ1HOQ*U;Q+_ ,(I:^*] ?6KZ2'P[]I@0&*: MRM8HKE1(0@*- Z%20P63*@]* />_!/Q7\/>.?"OA[7;>[738M=C\RQM-2ECB MN)/F*[0@8Y.1T4GK6]!XFT>ZU0Z;#JUC+J(SFT2Y1IACK\@.>._%?$]O^R9X M^M=%T+3[RVU&9'T*QTMH=$U+384TZ6*=V=FGNK::5%PRN'MAORI!7.#7?']F M[Q.FKZ3?V=G:Z?J:^-]6U2YU5)8_/6PN+"[AB8L.6_>2PDIVQG'% 'N:_&?P MM)\06\(QW\_?L_\ A_Q/X)\&II&OZ68O.U*^N('V M6<4T%N\A>/[4MMMA:9F9^8$"XVY ;<2 >KT444 %%%% !1110 4444 %%%% M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 % M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5Y M-^U!XOUOP1\);G4O#VH7NEZFU_96RW.G6\$]RJ27$:.(TF1XRQ5B!N4C->LU MSOCOP-IWQ#T--*U1YTMDNH+P&W<*V^&19$Y(/&Y1GVH \7_X3O6_ 5MX8N]2 M\2>/=52_U>>*2Q\1:+IBW<\<5G+*8D6U@APK%000&&/VK])\6>% M(]6T[1);V\N[ZVT_3]/LM1M;DW4L\9D52Z.5B955RRR;2NWIS7I7CKX:Z5\0 MI]%EU*>^MY-)N)+FV>PN6MW#O"\).]?F&%D8@J5(."#Q7$K^S%H4C7-[>>(? M$&H>(W>T>W\1SR6JWMG]F,AA\O9 L38\V4$R1N6#D,3@8 ,KXI?M7Z=\'?#M MEJOBGPY=Z47MY;F[L[J_M(YX(XY-CF-#)NN#C+@1@Y7!XK;\!?$;6[N#XMWE M^LVMCPWK-U#I]C;QQI(T,=K%(L*D L69@"Q)RW)Q61XT_9&\-^/]+OK+6?% M'BRY.IZ9/I6J7+:A&TVH0RR-*=[-$?*VNV52#RT 388_DKTCPUX"LO R>)K MG3!<7UUK5X^IW$=U*H$DYB1-JD* JD1KZX)/TH \[\1_M9^$_#_AJXUPQ23: M?]HTZSM;B2>*"&YN+R(2I'YLC!8PB'<[.0!@]^*R=7_;/\*Z=\/-,\6P6:WE MI=27L4L8U6SC6-[4@3*DC2!9VRPVB+=N&35[P#^S%I6G?"*#PSJOVC3=0_MJ M3Q%#--8T M32M$O/L6E06DUQJLTD:Q9N;:.XB54SN)VO@\<$>XKD4_; \'2?$^\\&+@SV^ MJ3:*)OMMOYLEY%%O=1;;_."9#+YA7:64]N:]!^'?PDT;X9WFKW6E37LTVJ1V M<=P;N16XMK=+>/;M5:=V-QC\SRBY+;-Q)(!Q.C_ +8VD7OAB'6]1\+ZMI%O?:#! MKVE12R0R27\U_:)\4VGQ@UFQ\0KJ&B:=I]Z MP70%@M)]\::7+'4\,VQ M-T%D2W1XWCEW*H(F1X8V#C !7I4,'[*_AQ]:O-9U/7O$6N:Q>R22W-]?W,.Z M1GM'M#\D<*(@$3G 15&0"023D R=,_:YTVZ\/W%_>^%=6TZ[>TTJ\TW3GEAD MEU!=1F$-FJE6(1FD(!#$;-'(R M3QQ!]RE259?F&#WKE/'/[-FECP7*;7Q5=3SZEXCU*ZOKCS;I+B9%E4( M TB(B%MHS\J!1G &!0!P7@3QCXU\)^%/A9XRUWQ[JGBZP\5/!9ZIIFK6.GQ1 MVQFA:19[=K6VA<%&CP5D,@*,W0@&M/PW^W!X'\0IJD^&)/#R7_B37_%>G>'8FCTC3-: M>U^S6;-&8O,"P01&1Q&SH&D+X$C8P3FHM*_9E\-Z=HNH:)/K'B#4O#\]D^GV MNCW5ZHMK"%G#@1"-%+LI5=KS&1E"@*0"V0#-\9_M/P?#O3M-_P"$F\,7&@ZQ MJ-T]O:6.I:G9V\4J+")6E%R\@BP =N"<[@1BL6]_;4\/_P!E6>L:3X:UC6]# METS3=5EOK8Q+Y,5[.;>)=C,"SB3 ('KG-=?>_LZV>I1VES=^-/%ESXAL[DW% MKK\MU;MXOS/,Z6-R+F%FDD#,SM(/G9BB^&M0COXM7U M#2M:\.&6V9I6CLTGC;SR2JJ!(K95AG[ISG%.U[]N?P/H5KI\\D#JKZ>-1OHK MF]MK::TC\UHG18Y'#3R*T/O#/:Z]^S9H6L>)Y?$=GKWB#0-=;5)= M72]TRXA#1326T=LX"21.C(8HP-KJW))ZA2(!^R]X:LET]=&UCQ!X<,%BFG7< MFE7B1RZE"LC2_OI&C9UE<(GB?QKX1^/MGX>O/$%WKVFZWINH7$%M MJEC;6=DMW%Y4D$%C)%'YIQ&TWF><\AP@92.0?4_!O@+3? TNN2:<]PYUC4)- M2N/M$@?$KA00O .W"CKD^]8&C_!73]-\;67B6]U_Q!X@GTPW1TFSU>\6:#33 M<8$IC(02.=HV S/(44L%*ACD Q/V.QXTGL9-5TGQ3=:9'%IJ8M MX(4A@98T) 9\%V^=N22>@P!Z]7(^&_AM8^$3KS:3?W]H^MZT^N7;[HW)F=8U M=%W(0(R(U&/O=<,*ZZ@ HHHH **** "BBB@ HHHH **** "BBB@ IDT$=S"\ M4T:RQ."K(X!5AZ$'K3Z* (;2SM["!8;:".WA7I'$@51^ J:BB@ HHHH **** M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB DB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /_9 end GRAPHIC 11 pdfs-20231231xex10d06001.jpg GRAPHIC begin 644 pdfs-20231231xex10d06001.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" Y :@# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]3OM$?]]? M^^A1]IC'_+1/^^A7Y"[V_O-^9H\QE_C8?\"-?XFLU(+Z?=2-+;R+Z;2?E^JXK]# M/A%\4-.^+7A"WUO3\QL?W=Q;,?F@E'53ZCT/I7@YAE-;+TIR?-%]5^IZ^"S& MGC&XI6EV_P CLC,B'!8#ZG%!N(_[Z_\ ?0KX]_;S\4_Z1X<\/QR8VA[R4 ^O MRKG\C7R/YC?WV_[Z-=^!R&6,H1KNIRW\O^"WF?KV)5(R#D>H MY%/!R,U^4'A+XA>(_ U\EYH&N7FG2H?NPS$QM[,ARK#V(K[V_9N_:!B^,NBS M6M^D=GXDT] ;J&/A)D/ E0=AG@CL<=B*YL?DM; P]JGS1_+_ (!M@\TIXJ7L MVN67YGLY;#8Y_"C\#^5?,_[<^HW>G>"- DL[NXM';4=I:WF:,D>6W!*D5\6G MQ7K2]=;U$?6^E'_LU:X#))8Z@JZJ6^7_ 2,7FL<+5=)PO\ ,_6K\_RHSCU_ M*OR3_P"$NU?_ *#NH?\ @?+_ /%5TOPUN]:\7>/] TA-:U&3[5>1HRB^E/R@ MY;^+T!KNGPU*G%S=567E_P $Y8YY&6HW?^/EJ^L?V-O"W]@_!:RNW3;-JMQ+>$GJ5SL3]%S^ M-? =Y=7/B36Y[ALR7FH7+2$=29)'S_-J_5;P3X?C\*>$-'T>-0J6-I%;X'JJ M@$_GFON\]:PV"HX5?U9?\$^3RE.OBJE=_P!7-NEK"\:>--%^'_AR]U[Q!J=O MI.D6:&2>[N&VH@_J3V Y-?%OC/\ X*S>"M(U*2W\-^#M9\1VR-C[9//'9(_N MJL';'U KXNEAZM;^'&Y]7*<8_$S[OHKX2\&_\%9? ^KWZ0>(_"&M^'87./M4 M$T=ZB>[ !&Q] :^R_ GC[0/B5X;M=>\,ZM;:SI-TNZ.YM7W#W!'4$=P0"**M M"K1_B1L$9QG\+.BHJEJVK6>B:=K4BYPC=('.,79L^U**0S.=_7.\=/2J_[+O[9>D?M0ZKKM MAIGAS4-"?28(YW>\FCD$@=BH V=,8[UO["I[/VMO=[D<\;\M]3Z+HKR+]I/] MH>P_9L\!P>*-2T>[UJ"6[CM/L]G(B."V?FRW&.*\H_9__P""A.@?'_XEV7@Z MP\(ZKI-S4_M(?'VQ_9R M^'X\5ZCI-UK-O]ICM?LUI(B/EL\Y;C'%?+7_ ]S\)_]$^UW_P #+>G2PU:M M'FA&Z%*I&+LV??=%? G_ ]S\)_]$^UW_P #+>NU^"__ 4C\._&CXH:#X*L M_!FKZ9%QQ6DL%B(IR<-%Z"56#=DS[&HKC/B_\ M$JW^$7PUU_QC=V@(;VKIGA*]./-*&AFJL).R9]$T4T,#T. M:^9?VF_VY=%_9E\;Z=X;U/POJ6MS7M@+]9[.XBC55,C)M(;G.5S^-84Z%?LP_M:^&OVG].U632;2YT74M-D43Z9?2(TIC8?+*I7@J3 MD>Q'N*U/VF/VC=._9J\%6GB/4='N];@N+M;006 M]V#FBUS7T/8:*^3?V?/^"@F@_M!_$>V\(:?X2U71[F>"2<75U<1.@"#)&%YY MKZP+87/2E4I3HRY:BLPC)25T.HKY=^.W_!0GX:_!36+G0XS>>+=?MV*3V>D; M/*@;^[),Q"@^H7<1WKQBS_X*\:,]TJW7PTU.&VSS)#JT4C@?[IC4?K71#!XB MHN:,-"'5A'1L_0FBO$_@)^UW\.OVB-UOX;U22UUJ--\NBZF@ANE7NRC)611Z MH3COBNI^,GQ/U#X6:!!J]IX;E\16[3I!,L-[%;M$78(A^U?E(G MWA]17Z/^/?CKHGP5\)^&'U:TO+Q[^V18HK,(6&V-22=S#CD#\:^ZXBIU*TJ- M.DKMWT^X^.R6<*:J3J.R5CP7]M3X2Z)X4DTKQ+HUI%I[WLS6]U;P*%1VQD.% M' /'..M+^P;K\\/BGQ#I)9C;36R3[>1&)+X"VM=PQN13EF'MGBGB(SPV M3.GBG[W3[]/N0491KYDIX=>[_P V?CO^T=-\*/B5%I4_AG3]Q%>E?!_Q[X>^,?A8ZUI^A+8(DS020W4$18,,9P5X(YKY/\ VWAC MXP0_]@^+^M>W?L-<_">]_P"PE+_):\G%8*C3RNGB8JTG;J>C0Q-2>/G0D_=U MZ#_VMO@WH&J_#?4_$UI8066MZ2@G%Q;Q!#-'N 9' SP<@GD$5\O?LPZ]-X? M^.7A=H7*K=W!LI5'\22*5P?QVG\*^X?VD?\ DAOC3_L'O_-:^"/@)_R6OP3_ M -A6'^=>AE$Y5LLKPJ.Z5_R.+,81IXZE*"LW;\SZ?_;Q_P"1"\._]A+_ -I- M7EG[$VB:?KGQ"UF'4;&VOXDTXNL=U"LJ@^8O(# XKU/]O'_D0?#O_82_]IM7 MRE\-/BKKWPFU:YU'P^UJES<0^0YNH/-&W(/ R."O#^FW27-GH6FVEPARLT%G M&CK]"%R*^$O^&U?B9_SWT?\ \%W_ -G7T[^R]\1_%'Q1\(WNM>))+5O]*,-N M+6V\D;0.2>3GFOF\7EF,P=+VM62MMN>[AL?AL34]G3CKZ'M6*\<_:U\3_P#" M,_ _7 K[)M1*6$>#R=[?-_XXK5[&>E?'O[>OB?\ Y%?PZCG_ ):W\R@_\ 3_ M -GKFRNC[?&4X>=_NU.C,*OL<-.7E;[SPK]G3PO_ ,)?\:/"UDR;X8KK[9,. MHV1#?S^(4?C7Z:H?EYZU\3_L%>&?M?B[Q'K\D>4LK1+2-CV>1MS?^.H/SK[9 M S7I<15O:8WD7V5;[]3@R6ER8;G?VG_P#\S_ /@K'\0M0?Q)X1\%Q2O'I:6[ MZE/$#\LLF[:A/KM&[\37CW[&W[&-K^T_:ZWJ6I^*)-#T[3)5@\BQB26YD=AG M)W<*OO@YKZY_X*-_LN^(/C!H^C^+O"-DVJZUHL5S]Z1VZLQ/))K\>O 7[=OQK\!WT,Z>-;K7[12 M"]EKH6ZBD7TW$;U^H8&OU>_9F^/.G_M$_"^Q\5V=O]ANBQM[ZQW;OL\Z_>4' MN#U!]"*\W'T\5&*]M*Z.BC*FW[JLSY1_X*N_%C4-'T+PMX L+A[>UU82:AJ* MH<>='&P6)#ZKNW,1ZJOI7R;^R+^RC>_M2>*=6M3K']@Z'H\,K#YTK-(2 M(XXU) R=K$DG '!S7L__!6GI^_DKT?\ X)$(O_"-?$Q^-QU" MQ4_3R9"/U)KNA-X;+U.GHW^K,6N>M9GR[^U_^R'=_LN:MHTD&M-X@T#5]ZV] MU+ (IHI4 +1R $@Y!R"/0\#%?27_ 2@^+&H7,OBCX?7ER\UA;PC4[%)"3Y) M+!9%7T!RIQZ@^M=+_P %;8D;X9^")"!O767 /H# ^:\-_P""5W'Q^U7T_L:7 M_P!#6B4Y8C .535K_,$E"M:)]O\ [?W_ ":GXW_ZX)_Z&*_*W]E#_DY+X?#_ M *BJ?R:OU2_;]_Y-3\;_ /7!/_0Q7Y6_LG_\G)?#[_L+)_(U.7?[I4^?Y!6_ MBQ/W:'2EIH/%.KYD] _-K_@KS_R$?AC_ -<[_P#G#6;_ ,$C_P#D M%K_Z-:M+_@KQ_P A'X9?]<[_ /G#6;_P2/\ ^1R^(7_7A:_^C7KZ3_F6?UW. M#_F(/:?^"J'/[/%A_P!AFW_K7QQ_P3<&?VJ="_Z\[K_T"OL;_@JA_P F[V'_ M &&;?^M?'7_!-O\ Y.IT/_KSNO\ T"JPO_(OG\Q5/XZ/TU_:=^ ,?[1_PY'A M.76WT!/M4=U]KCMA.?ES\NTLO7/K7YY_M._\$^;7]G?X57/C&+QQ/KKPW,5O M]CDTQ8 =Y/.X2-TQZ5^M0Z5\I?\ !3(?\8MZC_V$K7^;5Y>"Q%6G4C2B[)LZ M*L(M.36I^8/[.OP@C^._Q=T7P3+JK:*NHB8F]2 3&/9&7^X2,YQCK7Z*? W_ M ()L6GP5^*_A[QM'X_N-7?2)7E%D^E+$)=T;)C>)#C[V>G:OB[_@GG_R=MX, M_P!R[_\ 1#U^U Z5Z.9XBK3J>SC+1HPP\(RCS-:GB'[:XQ^RQ\1A_P!0F3^8 MK\>OV?N/CGX"_P"PY:?^C5K]A?VV/^36?B/_ -@F3^8K\>OV?O\ DNG@+_L. M6G_HU:K+/]WJ?UT"O\:/WODD6&!W8X506)]A7X2?M/\ Q5U'XN_&SQ/K>H7+ MRP17[Q7SXJUD$9S>SC M_P B-6.3Q3E.3W1>)>B1]K_"+_@F!<_$+X5Z?XDU;QH^B:SJ=L+FTL(K)98H ME8902L6#$GC.W&/>OC/7='UKX6^/+S3WG>PU_0K]HQ/;N08IXGX=#]1D5^\W MPH18_AAX55 HTRWP!V_=BOQ=_;#54_:?^) 1MR_VQ+R/PS77@<55KU9PJ.Z M,:U.,(IQ/V*_9U^(TGQ:^"G@_P 63[1=:GI\4MP%Z>:!MDQ[;E:OSI_X*P_\ ME[\,_P#8N)_Z42U]J?\ !/HD_LC^ <\X@G ^GVB2OBO_ (*P_P#)>_#/_8N) M_P"E$M<&!BHXYQ72YO6UI'S9\ ?C/JWP&^)^D>+-+9G6W?R[NVS\MS;L<21G MZCD>A -??G_!1SQEI7Q"_99\)^(M$N5N]*U+4H+B"5>ZE#P?0@Y!'8@U^:B^ M%=4;PK)XD6U9M&CO%T][E>0DS(753Z94'!]JZ9?B_JTOP:E^'-V6N=(34DU* MS9G.;9P"'4#^ZV0?8BO+U.2$^6+B^I[9_P35_Y.BTS_KPN?\ MT$5^F7[5?CF_^'/[/GC77M+D,6HV]@R02@X,;.0FX>XW$CWQ7YF_\$U?^3HM M,_Z\+G_T$5^J_P 9?AS;_%GX7>(_"5S)Y":K9M LV,^6_5&_!@/PS7AYBXK% MQOOS6/\ @D?HG]CR#2_B)JB:L$^1K^PA-NSXZ%4PP!/N2/>OA+XJ?!/QQ\#_ M !'-IWBC1+W2Y8)/W%^L;&WFP>'BF'RGUZY'M6EX9_:D^+?A/RQI/Q+\1)'$ M1B*34&N8^.Q63<*]RM"M6M+#5$D0J6AL(SUBMRP!R1]Z3 )Z# Z_0_CWP+9?$'PZ^CWTT\%NT\,Y>W(#9C MD5U'(/&5&:^-_P!AG]N_6/C%XK3P'X_2WDU^:%Y=.UBUB$(NR@W/%+&/E#[0 M2&7 .TC .,_=BMN&:^4Q2K1K-UOB/2I\KC[NQYGXG_9Z\(>,O%]YXCUJS.H: MC,L/D--@BU>,.%>/CJ1(<[LCIQ17IM%'U%?:GQO_9^\ M9?&6Y\,WFDW.F0:99:5#$B74[JY=E!8X"D= OZU\5QD,PP0>1T-?K7X6_P"1 M:TG_ *](?_0%K]"SW%5,).C5I;Z_H?$Y3AX8F%2G4VT/E?X<_L*K97\5WXSU M>*^AC(;^SM-#!']GD;!Q[ #ZU]9:;IMKI%E;V=E;QVMK @CCAB7:J*!P *M4 MGI7PV+QM?&RYJ\KV^X^MP^%HX56I1L? G[;_ /R6&'_L'Q?UKVS]AD@?"B]R M?^8E+_):\3_;?_Y+##_V#XOZUY?X.^,OC3X?Z8^G>'M>GTRR:0RF&..-@6/4 M_,I-?>?4YX[*:5&FTGH]3Y)XF.$S&I4FKK78^[?VJO$5EH?P0\1QW,R)-?PB MSMHR>9)&8< =\ $GV%?$?[.UC+?_ !O\&1Q*69-028]\*@+']!7,^+_'WB/Q M]=Q7/B'6+O5YD^6,W#Y5,]E48 S[#FOK3]CSX"7WA>1_&GB&U:SOKB$Q:=9S M#$D<;8W2L.Q88 !YQDGK6*HQR;+JD*DKRE?[VK:?J5[26:8V$H1M&-ON6I9_ M;Q_Y$+P[_P!A+_VDU>!_LS?"31?C!XNU+3-;DO(K>WLS<(;.4(V[>$\!^'LD#_B9]S_TS:O.?V$?^2CZY_V##_Z,6LL'4G2R64Z;LU?7YFF) MA&IFD8S5UI^1Z]_PPQ\/O^?S7O\ P+C_ /C=>R_#OX?Z7\,O"]KH&D")_ M^$F^-VMA&W0Z>$L(^C:5>W\Q AM87GUO4+CQ)X@O;YMTEU?W+R^I9W_ X&>E<_\/\ PU'X0\$:#HJ* M%%A90VYQZJ@!/YY-;YYXKYC%UO;XB=7NV>]AJ?LJ,*?9'BO[2G[57@_]FS1+ M6YUMI-2U6[8"VT>R=?M$JY^9^>%4>IZG@)--(D3V^9&4_\ 2:Y#]KC_@GP/CIXIN/&7A?Q&VE^))T5)[/52\UI-M&% MV,,M%] "OL*^/=0_X)M?'BQN6BA\/Z7?H.!-;ZS $;\'*G]*[\/0P=2FG*I: M77H*C%8U#$?CQ^%>(_"O_ ()7^/=&=*5@98+";[7=N.ZJ0 B_4D_2OTP^'/P\T/X5>#M,\,>';-;'2-/B$ M<,0Y)]68]V)Y)[DUMC<325%8>E+F\R*5.7/SRT/SU_X*V^$+M/$O@3Q0L3-9 M26DVFO(!PLBOYB@^Y5CC_=->??\ !.C]ICPK\"?$?BK1_&=]_9&DZ\EO+#J3 MQL\4,T6\;9-H) 97X;& 5YQG-?IU\8/A'X=^-G@6_P#"GB>U-SIMV P>,[98 M)!]V6-OX64]#[D'()K\ROB/_ ,$N?BCX$;K2O%VE%OW,CW*V5RJ]A(D MGR9]U8@^@IX7$4*V'^K5G;^KA4A.-3GCJ7/^"C/[3_@[XWS^&/#O@O4?[:L= M)FEN[K4HD987D9-BI&6 +8!8DXQR,9YK;_X).>#[J]^)'BWQ(T3"QLM.6T$F M#M\V1P=N?]U2:Y+X?_\ !+WXL>(]6B7Q1+I/A+30P\Z8WBWDY7OL2/*D_5A7 MZ9_!+X*>&O@)X%M/"_ABV:.UB_>3W,N#-=2G[TDA[DXZ= , 4\37H4,+738+"[TO[)$UG?"= MC)Y@;D # P#S7-7PV$A367 M2WE1]REPH)"D%AD X..V:_63XD?#G0?BQX+U3PMXEL5U#1]1B\N:(G:RD!M2T[Q7I#,3#'>7 L[Q!V#AAY;'_:## M/H*VPE>C4P[PU9V(JPFI^T@=-_P42_:Q\!?%CP/I/@[P5JR>(I!>I>W5];(P M@B5 =J!F W,2>W K@/^"7WA.ZUG]HIM8CB9K+2=.F::7'"LXVJ,^I-1^"O^ M"8/QB\0ZE''KPT?PK8[AYEQ/?+=2!>Y5(LY/U85^DG[/'[.GAC]G/P2NA: K MW%Q*PEO=2G $UW)C[S8Z =E' ]ZTK5Z&&PSH49P3JMW.(4VH3N^8@\ M\UXF'DH5H2ELFCJFKQ:1^:'_ 3S_P"3MO!O^Y=_^B'K]J!TK\V?V1?V&/BI M\'OC]X<\6>)+/28M'L5G$SVVHK+)\\3*N%"C/)K])ATKNS*K"K64H.ZL8X>+ MC"TD>(?ML?\ )K/Q'_[!,G\Q7X]?L_?\ET\!?]ART_\ 1JU^T_[2_@/5OB=\ M#/&'A;0DADU;5+![>V2>3RT+G&,MV'%?GC\)O^"=OQD\'_$_PKKNI6&BII^G M:G;W4[1:HKL(T<,V!MY.!TKIR^M3IT*D9RL_^ 36A*4TTC]4[J 75G-"3@2( MR$_48K\ /C!X7N_!OQ0\6:)>QM#<6NI3H588."Y*G\00:_H%7E:^5/VN_P!A M32/VB)E\0Z)>Q>'O&D\4=%E Y!'9QSZ@UR9=BHX:;4]F:5J;FM M.AA_ K]OSX36WP5T5?$GB5=$US2K%+>ZTR:"1II71 65T)P46,J$TM(O&>GG MR?\ 29/)2ZMR>49\'!4\@GW'>NZECHT\5--^XV8RHMTUW1\5_P#!-3_DZ'3/ M^O"Y_P#017Z[>*/$^E>#_#M]K.M7\.FZ78Q&:XNKAMJ1H.I/]!W-? /[&7[$ M_P 3_@C\<+'Q1XHL]*ATF*UFA=K74%F?

/J4JV)34O=TU1I1C*,+-:GC'A M#_@I)\%O&E[J.FZY<7?ARW29HX)M7LS+;W48/#Y0-LS_ '7 QZUXU^VU\7OV M;O&'PAU"T\)C0-9\;S21'3[O0]/\N6W82*7:2944!=@8%23G(X[CRSQI_P $ MO/B_H%[(N@RZ'XHL\GRY8KW[)*1VW)* ?HQK*T#_@F?\?],RE*K)6<3B/V'M,OM4_:K^'BV"L9 M(;\W$I4?=A2-S(3Z#;D?B*_;Y/NBOG#]DK]B_P /_LRVMQJ,EX?$'C"^B$-S MJK1^7'#'P3% G)520,L26; Z 8KZ1 P*\S'XB.)J\T-D=%&#A&S%HHHKS3)]RYF#3R)[JTA8C\*]" P!2? MQ4ZLIU)U7S5)-OSU-84X4U:"LO(H:OHEAKUJUKJ-C;7]JWWH;J)9$/X,"*Y? MPI\'/"'@;Q!<:SX?T6'2;VXB,,OV9F6-E)!^YG:#D=A7;&D'0TE4G&+A&32? M0;IQDU)K5 *4TB]:=4%GD'[5'BC_ (1?X*:\RMLFO56RC(ZY<_-_XZ&KX>^ M7A?_ (2_XQ^%=.9/,A%XMS,IZ;(AYAS_ -\@?C7U7^W5_P DNTS_ +":?^@- M7A/[%W_)<+7_ *\+G^2U]YE?[G*:M6.[YOP1\?C_ -[F-.G+;3\S]"E^Z.,> MU+2#H*6O@S[ *2EHH **** "DQ2T4 )BEHHH **** "BBB@ HHHH **** "B MBB@!,4M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '_ !V0$! end EX-101.SCH 12 pdfs-20231231.xsd EX-101.SCH 00100 - Statement - CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40302 - Disclosure - PROPERTY AND EQUIPMENT - Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40404 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40502 - Disclosure - LEASES - Lease Cost (Details) link:presentationLink link:calculationLink link:definitionLink 40503 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Note 5 - BALANCE SHEET COMPONENTS - Intangible Asset (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 40902 - Disclosure - INCOME TAXES - Income Tax Expense (Benefit) (Details) link:presentationLink link:calculationLink link:definitionLink 40903 - Disclosure - INCOME TAXES - Income Tax Reconciliation (Details) link:presentationLink link:calculationLink link:definitionLink 40904 - Disclosure - INCOME TAXES - Deferred Tax Assets (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) link:presentationLink link:calculationLink link:definitionLink 41402 - Disclosure - BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document And Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals) link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY link:presentationLink link:calculationLink link:definitionLink 20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) link:presentationLink link:calculationLink link:definitionLink 30103 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) link:presentationLink link:calculationLink link:definitionLink 31403 - Disclosure - BUSINESS COMBINATION (Tables) link:presentationLink link:calculationLink link:definitionLink 40101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40102 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Cash and Cash Equivalents and Short-term Investments (Details) link:presentationLink link:calculationLink link:definitionLink 40103 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) link:presentationLink link:calculationLink link:definitionLink 40104 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - REVENUE (Details) link:presentationLink link:calculationLink link:definitionLink 40202 - Disclosure - REVENUE - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 40203 - Disclosure - REVENUE - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 40203 - Disclosure - REVENUE - Additional Information Default (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - PROPERTY AND EQUIPMENT - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40402 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 40403 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - LEASES - Other (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details) link:presentationLink link:calculationLink link:definitionLink 40701 - Disclosure - STOCKHOLDERS EQUITY (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - EMPLOYEE BENEFIT PLANS - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40802 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) link:presentationLink link:calculationLink link:definitionLink 40803 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) link:presentationLink link:calculationLink link:definitionLink 40804 - Disclosure - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) link:presentationLink link:calculationLink link:definitionLink 40805 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - INCOME TAXES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40905 - Disclosure - INCOME TAXES - Unrecognized Tax Benefits (Details) link:presentationLink link:calculationLink link:definitionLink 40906 - Disclosure - INCOME TAXES - Unrecognized Tax Benefits Reconciliation (Details) link:presentationLink link:calculationLink link:definitionLink 40907 - Disclosure - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) link:presentationLink link:calculationLink link:definitionLink 41002 - Disclosure - NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details) link:presentationLink link:calculationLink link:definitionLink 41102 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) link:presentationLink link:calculationLink link:definitionLink 41103 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 41104 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 41202 - Disclosure - FAIR VALUE MEASUREMENTS - Other (Details) link:presentationLink link:calculationLink link:definitionLink 41301 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) link:presentationLink link:calculationLink link:definitionLink 41401 - Disclosure - BUSINESS COMBINATION - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - REVENUE link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - PROPERTY AND EQUIPMENT link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - GOODWILL AND INTANGIBLE ASSETS link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - LEASES link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - COMMITMENTS AND CONTINGENCIES link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - EMPLOYEE BENEFIT PLANS link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - INCOME TAXES link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - NET INCOME (LOSS) PER SHARE link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - FAIR VALUE MEASUREMENTS link:presentationLink link:calculationLink link:definitionLink 11301 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS link:presentationLink link:calculationLink link:definitionLink 11401 - Disclosure - BUSINESS COMBINATION link:presentationLink link:calculationLink link:definitionLink 30203 - Disclosure - REVENUE (Tables) link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - PROPERTY AND EQUIPMENT (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - GOODWILL AND INTANGIBLE ASSETS (Tables) link:presentationLink link:calculationLink link:definitionLink 30503 - Disclosure - LEASES (Tables) link:presentationLink link:calculationLink link:definitionLink 30803 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables) link:presentationLink link:calculationLink link:definitionLink 30903 - Disclosure - INCOME TAXES (Tables) link:presentationLink link:calculationLink link:definitionLink 31003 - Disclosure - NET INCOME (LOSS) PER SHARE (Tables) link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) link:presentationLink link:calculationLink link:definitionLink 31203 - Disclosure - FAIR VALUE MEASUREMENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 13 pdfs-20231231_cal.xml EX-101.CAL EX-101.DEF 14 pdfs-20231231_def.xml EX-101.DEF EX-101.LAB 15 pdfs-20231231_lab.xml EX-101.LAB EX-101.PRE 16 pdfs-20231231_pre.xml EX-101.PRE XML 17 R1.htm IDEA: XBRL DOCUMENT v3.24.0.1
Document And Entity Information - USD ($)
$ in Billions
12 Months Ended
Dec. 31, 2023
Feb. 23, 2024
Jun. 30, 2023
Document and Entity Information      
Document Type 10-K    
Document Annual Report true    
Document Period End Date Dec. 31, 2023    
Document Transition Report false    
Entity File Number 000-31311    
Entity Registrant Name PDF SOLUTIONS INC    
Entity Incorporation, State or Country Code DE    
Entity Tax Identification Number 25-1701361    
Entity Address, Address Line One 2858 De La Cruz Blvd.    
Entity Address, City or Town Santa Clara    
Entity Address, State or Province CA    
Entity Address, Postal Zip Code 95050    
City Area Code 408    
Local Phone Number 280-7900    
Title of 12(b) Security Common Stock, $0.00015 par value    
Trading Symbol PDFS    
Security Exchange Name NASDAQ    
Entity Well-known Seasoned Issuer No    
Entity Voluntary Filers No    
Entity Current Reporting Status Yes    
Entity Interactive Data Current Yes    
Entity Filer Category Large Accelerated Filer    
Entity Small Business false    
Entity Emerging Growth Company false    
ICFR Auditor Attestation Flag true    
Document Financial Statement Error Correction [Flag] false    
Entity Shell Company false    
Entity Public Float     $ 1.3
Entity Common Stock, Shares Outstanding   38,581,819  
Entity Central Index Key 0001120914    
Amendment Flag false    
Current Fiscal Year End Date --12-31    
Document Fiscal Period Focus FY    
Document Fiscal Year Focus 2023    
Auditor Name BPM LLP    
Auditor Firm ID 207    
Auditor Location San Jose, California    

XML 18 R2.htm IDEA: XBRL DOCUMENT v3.24.0.1
CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Dec. 31, 2023
Dec. 31, 2022
Current assets:    
Cash and cash equivalents $ 98,978 $ 119,624
Short-term investments 36,544 19,557
Accounts receivable, net of allowance for credit losses 44,904 42,164
Prepaid expenses and other current assets 17,422 12,063
Total current assets 197,848 193,408
Property and equipment, net 37,338 40,174
Operating lease right-of-use assets, net 4,926 6,002
Goodwill 15,029 14,123
Intangible assets, net 15,620 18,055
Deferred tax assets, net 157 64
Other non-current assets 19,218 6,845
Total assets 290,136 278,671
Current liabilities:    
Accounts payable 2,561 6,388
Accrued compensation and related benefits 14,800 16,948
Accrued and other current liabilities 4,633 5,581
Operating lease liabilities - current portion 1,529 1,412
Deferred revenues - current portion 25,750 26,019
Billings in excess of recognized revenues 1,570 1,852
Total current liabilities 50,843 58,200
Long-term income taxes payable 2,972 2,622
Non-current portion of operating lease liabilities 4,657 5,932
Other non-current liabilities 2,718 1,905
Total liabilities 61,190 68,659
Commitments and contingencies (Note 6)
Stockholders' equity:    
Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding
Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 49,749 and 48,613, respectively; shares outstanding 38,289 and 37,431, respectively 6 6
Additional paid-in-capital 473,295 447,415
Treasury stock at cost, 11,460 and 11,182 shares, respectively (143,923) (133,709)
Accumulated deficit (98,045) (101,150)
Accumulated other comprehensive loss (2,387) (2,550)
Total stockholders' equity 228,946 210,012
Total liabilities and stockholders' equity $ 290,136 $ 278,671
XML 19 R3.htm IDEA: XBRL DOCUMENT v3.24.0.1
CONSOLIDATED BALANCE SHEETS (Parentheticals) - $ / shares
shares in Thousands
Dec. 31, 2023
Dec. 31, 2022
CONSOLIDATED BALANCE SHEETS    
Preferred stock, par value (in dollars per share) $ 0.00015  
Preferred stock, shares authorized (in shares) 5,000  
Preferred stock, shares issued (in shares) 0  
Preferred stock, shares outstanding (in shares) 0  
Common stock, par value (in dollars per share) $ 0.00015  
Common stock, shares authorized (in shares) 70,000  
Common stock, shares issued (in shares) 49,749 48,613
Common stock, shares outstanding (in shares) 38,289 37,431
Treasury stock, shares (in shares) 11,460 11,182
XML 20 R4.htm IDEA: XBRL DOCUMENT v3.24.0.1
CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS - USD ($)
shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Revenues:      
Total revenues $ 165,835 $ 148,549 $ 111,060
Costs and Expenses:      
Costs of revenues 51,749 47,907 44,193
Research and development 50,736 56,126 43,780
Selling, general, and administrative 62,216 45,338 37,649
Amortization of acquired intangible assets 1,285 1,270 1,255
Write-down in value of property and equipment     3,183
Interest and other expense (income), net (5,020) (2,562) (683)
Income (loss) before income tax expense 4,869 470 (18,317)
Income tax expense (1,764) (3,899) (3,171)
Net income (loss) 3,105 (3,429) (21,488)
Other comprehensive income (loss):      
Foreign currency translation adjustments, net of tax 148 (1,493) (825)
Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax 15 7 (14)
Total other comprehensive loss 163 (1,486) (839)
Comprehensive income (loss) $ 3,268 $ (4,915) $ (22,327)
Net income (loss) per share:      
Basic $ 0.08 $ (0.09) $ (0.58)
Diluted $ 0.08 $ (0.09) $ (0.58)
Weighted average common shares used to calculate net income (loss) per share:      
Basic 38,015 37,309 37,138
Diluted 38,937 37,309 37,138
Analytics      
Revenues:      
Total revenues $ 152,085 $ 130,480 $ 93,415
Integrated Yield Ramp      
Revenues:      
Total revenues $ 13,750 $ 18,069 $ 17,645
XML 21 R5.htm IDEA: XBRL DOCUMENT v3.24.0.1
CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY - USD ($)
shares in Thousands, $ in Thousands
Common Stock
Additional Paid-in Capital
Treasury Stock
Accumulated Deficit
Accumulated Other Comprehensive Loss
Total
Beginning Balances at Dec. 31, 2020 $ 6 $ 407,173 $ (96,215) $ (76,233) $ (225) $ 234,506
Beginning Balances (shares) at Dec. 31, 2020 36,850   9,550      
Repurchase of common stock     $ (4,523)     (4,523)
Repurchase of common stock (shares) (251)   251      
Issuance of common stock in connection with employee stock purchase plan   1,035       1,035
Issuance of common stock in connection with employee stock purchase plan (shares) 109          
Issuance of common stock in connection with exercise of options   1,930       1,930
Issuance of common stock in connection with exercise of options (shares) 216          
Vesting of restricted stock units (shares) 487          
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock     $ (3,967)     (3,967)
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock (shares)     202      
Stock-based compensation expense   12,931       12,931
Comprehensive income (loss)       (21,488) (839) (22,327)
Ending Balances at Dec. 31, 2021 $ 6 423,069 $ (104,705) (97,721) (1,064) 219,585
Ending Balances (shares) at Dec. 31, 2021 37,411   10,003      
Repurchase of common stock     $ (22,471)     (22,471)
Repurchase of common stock (shares) (933)   933      
Issuance of common stock in connection with employee stock purchase plan   3,011       3,011
Issuance of common stock in connection with employee stock purchase plan (shares) 187          
Issuance of common stock in connection with exercise of options   1,686       1,686
Issuance of common stock in connection with exercise of options (shares) 150          
Vesting of restricted stock units (shares) 616          
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock     $ (6,533)     (6,533)
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock (shares)     246      
Stock-based compensation expense   19,649       19,649
Comprehensive income (loss)       (3,429) (1,486) (4,915)
Ending Balances at Dec. 31, 2022 $ 6 447,415 $ (133,709) (101,150) (2,550) 210,012
Ending Balances (shares) at Dec. 31, 2022 37,431   11,182      
Repurchase of common stock     $ (743)     (743)
Repurchase of common stock (shares) (21)   21      
Issuance of common stock in connection with employee stock purchase plan   3,832       3,832
Issuance of common stock in connection with employee stock purchase plan (shares) 224          
Issuance of common stock in connection with exercise of options   492       492
Issuance of common stock in connection with exercise of options (shares) 30          
Vesting of restricted stock units (shares) 625          
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock     $ (9,471)     (9,471)
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock (shares)     257      
Stock-based compensation expense   21,556       21,556
Comprehensive income (loss)       3,105 163 3,268
Ending Balances at Dec. 31, 2023 $ 6 $ 473,295 $ (143,923) $ (98,045) $ (2,387) $ 228,946
Ending Balances (shares) at Dec. 31, 2023 38,289   11,460      
XML 22 R6.htm IDEA: XBRL DOCUMENT v3.24.0.1
CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Cash flows from operating activities:      
Net income (loss) $ 3,105 $ (3,429) $ (21,488)
Adjustments to reconcile net income (loss) to net cash provided by (used in) operating activities:      
Depreciation and amortization 4,986 5,526 6,218
Stock-based compensation expense 21,484 19,649 12,931
Amortization of acquired intangible assets 3,551 3,484 3,334
Amortization of costs capitalized to obtain revenue contracts 2,142 1,550 674
Net accretion of discounts on short-term investments (1,174) (187) (14)
Write-down in value of property and equipment     3,183
Deferred taxes (108) (4) 1,373
Other (198)   161
Changes in operating assets and liabilities:      
Accounts receivable (2,748) (2,143) (5,980)
Prepaid expenses and other current assets (7,329) (5,787) 1,136
Operating lease right-of-use assets 1,205 1,821 1,414
Other non-current assets (4,166) 2,258 (1,336)
Accounts payable (2,145) (1,423) (86)
Accrued compensation and related benefits (2,188) 7,720 1,264
Accrued and other liabilities 110 1,671 (648)
Deferred revenues (358) 1,822 5,028
Billings in excess of recognized revenues (282) 1,852 (1,337)
Operating lease liabilities (1,287) (2,082) (1,584)
Net cash provided by operating activities 14,600 32,298 4,243
Cash flows from investing activities:      
Proceeds from maturities and sales of short-term investments 43,800 151,500 171,000
Purchases of short-term investments (59,598) (58,321) (168,560)
Proceeds from sale of property and equipment 105    
Purchases of property and equipment (11,236) (8,409) (3,672)
Prepayment for the purchase of property and equipment (89) (21) (381)
Purchase of intangible assets (150) (150)  
Payment for business acquisition, net of cash acquired (1,823)   (3,054)
Net cash provided by (used in) investing activities (28,991) 84,599 (4,667)
Cash flows from financing activities:      
Proceeds from exercise of stock options 492 1,686 1,930
Proceeds from employee stock purchase plan 3,832 3,011 1,035
Payments for taxes related to net share settlement of equity awards (9,471) (6,533) (3,967)
Repurchases of common stock (743) (22,471) (4,523)
Net cash used in financing activities (5,890) (24,307) (5,525)
Effect of exchange rate changes on cash and cash equivalents (365) (650) (182)
Net change in cash and cash equivalents (20,646) 91,940 (6,131)
Cash and cash equivalents at beginning of period 119,624 27,684 33,815
Cash and cash equivalents at end of period 98,978 119,624 27,684
Supplemental disclosure of cash flow information:      
Cash paid during the year for taxes 3,783 2,850 1,873
Cash paid for amounts included in the measurement of operating lease liabilities 1,648 1,744 1,947
Supplemental disclosure of noncash information:      
Property and equipment received and accrued in accounts payable and accrued and other liabilities 1,599 3,201 1,359
Advances for purchase of fixed assets transferred from prepaid assets to property and equipment 66 336 963
Operating lease liabilities arising from obtaining right-of-use assets 131 $ 2,502 $ 161
Property and equipment transferred to sales-type lease $ 8,076    
XML 23 R7.htm IDEA: XBRL DOCUMENT v3.24.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES
12 Months Ended
Dec. 31, 2023
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

1. DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Description of Business

PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower organizations across the semiconductor and electronics ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (“IP”) for integrated circuit (“IC”) designs, electrical measurement hardware tools, proven methodologies, and professional services.

Basis of Presentation

The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Concentration of Credit Risk

Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short-term investments, and accounts receivable. As of December 31, 2023, and periodically throughout the year, the Company had cash balances in various operating accounts in excess of federally insured limits. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.

The Company primarily sells its products and services to companies in Asia, Europe, and North America within the semiconductor industry. As of December 31, 2023, two customers accounted for 50% of the Company’s gross accounts receivable and one customer accounted for 35% of the Company’s total revenues for 2023. As of December 31, 2022, three customers accounted for 53% of the Company’s gross accounts receivable and two customers accounted for 41% of the Company’s revenues for 2022. Two customers accounted for 27% of the Company’s revenues for 2021. See Note 11 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.

The allowance for credit losses, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.

Supplier Concentration

Some of the Company’s vendors provide highly specialized, differentiated products and services related to the Company’s eProbe system and some licensors provide key enabling software for the Company’s products and services. In the event any of these suppliers delay or discontinue providing such products and services to the Company, it may be difficult for the Company to replace such suppliers, software, or parts in a timely manner or at all, which could delay or make impossible the Company’s ability to deliver or adequately support its software systems or to complete and deliver its eProbe systems to its customers, and could negatively impact the Company’s future financial results of operations.

Cash and Cash Equivalents, and Short-term Investments

The Company considers all highly liquid investments with effective maturities of 90 days or less on the date of purchase to be cash equivalents and investments with effective maturities greater than 90 days but less than one year to be short-term investments. The Company classifies its securities with readily determinable market values as “available-for-sale”. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and unrealized non-credit-related losses, net of tax, reported as a component of accumulated other comprehensive income (loss) in stockholders’ equity. Unrealized credit-related losses are recorded to interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss) with a corresponding allowance for credit-related losses in the Consolidated Balance Sheets. Realized gains and losses are based on the specific identification method and are included as a component of interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss).

The Company periodically reviews short-term investments for impairment. For investments in unrealized loss positions, the Company assesses whether any portion of the decline in fair value below the amortized cost basis is due to credit-related factors if the Company neither intends to sell nor anticipates that it is more likely than not that it will be required to sell prior to recovery of the amortized cost basis. The Company considers factors such as the extent to which the market value has been less than the amortized cost basis, any noted failure of the issuer to make scheduled interest or principal payments, changes to the rating of the security by a rating agency and other relevant credit-related factors in determining whether or not a credit loss exists. There was no allowance for credit-related losses on any of the Company’s investments recognized in the years ended December 31, 2023, 2022 and 2021.

As of December 31, 2023, and 2022, short-term investments consisted solely of U.S. Government securities. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2023 and 2022. Refer to Note 12, “Fair Value Measurements” for further discussion on the Company’s investments.

The Company recorded interest income from its cash, cash equivalents, and short-term investments of $5.5 million, $1.5 million and $0.1 million in the years ended December 31 2023, 2022 and 2021, respectively.

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable are determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $16.4 million and $13.5 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.1 million and $0.8 million as of December 31, 2023 and 2022, respectively.

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.

The changes in allowance for credit losses are summarized below (in thousands):

Deductions/

Balance at

Write-offs

Balance at

Beginning

Charged to

of Accounts

End of

    

of Period

    

Expense (1)

    

Receivable

    

Period

2023

$

890

$

20

$

(20)

$

890

2022

$

890

$

11

$

(11)

$

890

2021

$

963

$

$

(73)

$

890

(1)Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.

Property and Equipment

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

5-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated useful life or term of lease

Intangible Assets

Intangible assets consist of acquired technology, certain contract rights, customer relationships, patents, trademarks and trade names. These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from one to ten years. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.

Goodwill

The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.

Leases

The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use

(“ROU”) assets, operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company elected to not separate lease and non-lease components for all of its leases.

The Company determines if an arrangement is, or contains, a lease at inception. Operating lease ROU assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of the Company’s overall future business plans and other relevant business economic factors that may affect its business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from the Company’s initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.

Software Development Costs

Internally developed software is software developed to meet the Company’s internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally five to six years.

The costs to develop software that is marketed externally consisting of external direct costs and internal compensation related costs are capitalized once technological feasibility of the software product has been established. Costs incurred prior to establishing technological feasibility are expensed as incurred. Technological feasibility is established when the Company has completed all planning, designing, coding, and testing activities that are necessary to establish that the software product can be produced to meet its design specifications. Capitalization of such costs ceases when the software product is generally available to customers. These software development costs are amortized using the greater of the straight-line method or the usage method over its estimated useful life.

Cost of Revenues

Costs of revenues consist primarily of costs incurred to provide and support the Company’s services, costs recognized in connection with licensing its software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type leases), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by the Company in providing services to its customers in solution engagements or sold in conjunction with the Company’s software products.

Research and Development Expenses

Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities. Research and development expenses are charged to operations as incurred.

Selling, General and Administrative Expenses

Selling, general and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing and general and administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, IT and facilities cost allocations.

Stock-Based Compensation

The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Income Taxes

The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more likely than not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Income (Loss).

Net Income (Loss) Per Share

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.

Foreign Currency Translation

The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive income (loss) are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive income (loss). Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Income (Loss).

Derivative Financial Instruments

The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months.

Business Combinations

The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over their useful life, whereas any indefinite lived intangible assets, including in-process research and development, and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (“FASB”) requirements. See Note 6, “Commitments and Contingencies”.

Accounting Standards Adopted

In June 2016, the FASB issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to accumulated deficit as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s consolidated financial statements.

Recently Issued Accounting Pronouncements

In November 2023, the FASB issued ASU No. 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which requires disclosure of incremental segment information on an annual and interim basis. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, and requires retrospective application to all prior periods presented in the financial statements. Early adoption is permitted. The Company is currently evaluating the impact of the new standard on the consolidated financial statements.

In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” Adoption is either prospectively or retrospectively, the Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.

XML 24 R8.htm IDEA: XBRL DOCUMENT v3.24.0.1
REVENUE
12 Months Ended
Dec. 31, 2023
REVENUE  
REVENUE

2. REVENUE

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB Accounting Standard Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), SaaS (which is primarily Exensio products), and DFI™ systems and CV® systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under Topic 842, Leases; otherwise it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics Revenue in the Consolidated Statements of Comprehensive Income (Loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease

performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in Property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from Property and equipment, net at lease commencement and a net investment in the lease asset is recognized in Prepaid expenses and other current assets and Other non-current assets in the Consolidated Balance Sheets.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project–based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

The Gainshare royalty contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s IP after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of IP and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue by timing of revenue:

Year Ended December 31, 

 

    

2023

    

2022

2021

Over time

71

%  

69

%

65

%

Point-in-time

 

29

%  

31

%

35

%

Total

 

100

%  

100

%

100

%

International revenues accounted for approximately 44%, 50% and 55% of total revenues for the years ended December 31, 2023, 2022 and 2021, respectively. See Note 11, “Customer and Geographic Information”.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, licenses software and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare royalty revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e. contract liabilities) at the contract level. As of December 31, 2023 and 2022, contract assets of $6.8 million and $3.3 million, respectively, are included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets. As of December 31, 2023 and 2022, contract assets of $0.9 million and nil, respectively, are included in other non-current assets in the accompanying Consolidated Balance Sheets. The Company did not record any asset impairment charges related to contract assets during fiscal years 2023, 2022 and 2021.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying Consolidated Balance Sheets. As of December 31, 2023 and 2022, the non-current portion of deferred revenues included in non-current liabilities was $1.8 million and $1.9 million, respectively. Revenue recognized for the years ended December 31, 2023, 2022 and 2021, that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $24.8 million, $24.9 million and $16.9 million, respectively.

As of December 31, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $229.8 million. Given the applicable contract terms with customers, the majority of this amount is expected to be recognized as revenue over the next three years, with the remainder in the following three years. This amount does not include significant contracts to which the customer is not committed, future sales-based or usage-based royalty payments in exchange for a license of IP, and future payments for performance obligations from on-demand arrangements. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized in the years ended December 31, 2023, 2022 and 2021 from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $3.7 million, an increase of $0.4 million and a decrease $0.4 million, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare royalty.

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets as of December 31, 2023 and 2022 was $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying Consolidated Balance Sheets as of December 31, 2023 and 2022 was $2.6 million and $2.1 million, respectively. Amortization of these assets for each of the years ended December 31, 2023, 2022 and 2021 was $2.1 million, $1.5 million and $0.7 million, respectively. There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedients

The Company does not adjust transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component for the years ended December 31, 2023, 2022 and 2021.

XML 25 R9.htm IDEA: XBRL DOCUMENT v3.24.0.1
PROPERTY AND EQUIPMENT
12 Months Ended
Dec. 31, 2023
PROPERTY AND EQUIPMENT  
PROPERTY AND EQUIPMENT

3. PROPERTY AND EQUIPMENT

Property and equipment consist of (in thousands):

December 31, 

    

2023

2022

Computer equipment

$

12,515

$

11,853

Software

 

5,596

 

5,395

Furniture, fixtures, and equipment

 

2,501

 

2,484

Leasehold improvements

 

6,475

 

6,467

Laboratory and other equipment

 

4,891

 

4,431

Test equipment

 

25,044

 

28,403

Property and equipment in progress:

 

 

DFI™ system assets

22,864

22,231

CV® system and other assets

 

6,977

 

5,105

 

86,863

 

86,369

Less: Accumulated depreciation and amortization

 

(49,525)

 

(46,195)

Total

$

37,338

$

40,174

Test equipment mainly includes DFI™ systems and CV® systems assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated.

Depreciation and amortization expense for the years ended December 31, 2023, 2022 and 2021 was $5.0 million, $5.5 million and $6.2 million, respectively.

In 2021, the Company wrote down the value of its property and equipment by $3.2 million related to its first-generation of e-beam tools for DFI systems wherein carrying values may not be fully recoverable due to lack of market demand and future needs of its customers for these tools.

XML 26 R10.htm IDEA: XBRL DOCUMENT v3.24.0.1
GOODWILL AND INTANGIBLE ASSETS
12 Months Ended
Dec. 31, 2023
GOODWILL AND INTANGIBLE ASSETS  
GOODWILL AND INTANGIBLE ASSETS

4. GOODWILL AND INTANGIBLE ASSETS

The Company completed the acquisition of Lantern Machinery Analytics, Inc. in the year ended December 31, 2023. Refer to Note 14 for additional information related to the goodwill and intangible assets added from this acquisition.

As of December 31, 2023 and 2022, the carrying amount of goodwill was $15.0 million and $14.1 million, respectively. The following table summarizes goodwill transaction for the years ended December 31, 2023, 2022 and 2021 (in thousands):

Year Ended December 31, 

2023

    

2022

2021

Balance at beginning of year

$

14,123

$

14,123

$

15,774

Addition

895

Measurement period acquisition adjustment

 

 

 

(1,651)

Foreign currency translation adjustment

11

Balance at end of year

$

15,029

$

14,123

$

14,123

Intangible assets balance was $15.6 million and $18.1 million as of December 31, 2023 and 2022, respectively.

Intangible assets as of December 31, 2023 and 2022, consist of the following (in thousands):

December 31, 2023

December 31, 2022

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,508

$

(7,335)

$

2,173

$

9,407

$

(6,684)

$

2,723

Developed technology

 

4-9

 

34,650

 

(22,094)

 

12,556

 

33,635

 

(19,647)

 

13,988

Tradename and trademarks

 

2-10

 

1,598

 

(1,025)

 

573

 

1,598

 

(918)

 

680

Patent

 

6-10

 

2,100

 

(1,782)

 

318

 

2,100

 

(1,696)

 

404

Noncompetition agreements

 

3

 

848

 

(848)

 

 

848

 

(588)

 

260

Total

$

48,704

$

(33,084)

$

15,620

$

47,588

$

(29,533)

$

18,055

The weighted average amortization period for acquired identifiable intangible assets was 5.3 years as of December 31, 2023. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Income (Loss) (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Amortization of acquired technology included under costs of revenues

$

2,266

$

2,214

$

2,079

Amortization of acquired intangible assets presented separately under costs and expenses

 

1,285

 

1,270

 

1,255

Total amortization of acquired intangible assets

$

3,551

$

3,484

$

3,334

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2024

$

3,237

2025

 

3,072

2026

 

2,903

2027

 

2,750

2028

2,445

2029 and thereafter

 

1,213

Total future amortization expense

$

15,620

There were no impairment charges for goodwill and intangible assets for the years ended December 31, 2023, 2022 and 2021.

XML 27 R11.htm IDEA: XBRL DOCUMENT v3.24.0.1
LEASES
12 Months Ended
Dec. 31, 2023
LEASES  
LEASES

5. LEASES

In 2022, the Company early terminated an office lease contract. The termination of this lease reduced the Company’s operating lease ROU assets and lease liabilities by approximately $0.5 million and $0.6 million, respectively. The gain from the lease termination of approximately $0.1 million was recorded under selling, general and administrative expense in the accompanying Consolidated Statement of Comprehensive Loss for the year ended December 31, 2022.

Lease expense was comprised of the following (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Operating lease expense (1)

$

1,534

$

1,457

$

1,860

Short-term lease and variable lease expense (2)

 

923

 

1,032

 

822

Total lease expense

$

2,457

$

2,489

$

2,682

(1)Net of gain recognized upon lease termination of $0.1 million in the year ended December 31, 2022.
(2)Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental consolidated balance sheets information related to leases was as follows:

December 31, 

 

    

2023

    

2022

 

Weighted average remaining lease term under operating leases (in years)

4.4

5.3

Weighted average discount rate for operating lease liabilities

 

4.96

%  

4.87

%

Maturity of operating lease liabilities as of December 31, 2023, are as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2024

$

1,663

2025

 

1,611

2026

 

1,355

2027

 

1,294

2028

 

929

2029

 

63

Total future minimum lease payments

6,915

Less: Interest (2)

 

(729)

Present value of future minimum lease payments under operating lease liabilities (3)

$

6,186

(1)As of December 31, 2023, the total operating lease liability includes $1.0 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.5 million as of December 31, 2023.
XML 28 R12.htm IDEA: XBRL DOCUMENT v3.24.0.1
COMMITMENTS AND CONTINGENCIES
12 Months Ended
Dec. 31, 2023
COMMITMENTS AND CONTINGENCIES  
COMMITMENTS AND CONTINGENCIES

6. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest

See Note 13 for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases

Refer to Note 5, “Leases”, for the discussion about the Company’s lease commitments.

Indemnifications

The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following delivery of its products. The Company also indemnifies certain customers from third-party claims of IP infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

Purchase Obligations

The Company has purchase obligations with certain suppliers for the purchase of goods and services entered in the ordinary course of business. As of December 31, 2023, total outstanding purchase obligations were $26.2 million, the majority of which are due within the next 2 years.

Indemnification of Officers and Directors

As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2023, except as disclosed below, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023. A decision is currently expected in 2024.

XML 29 R13.htm IDEA: XBRL DOCUMENT v3.24.0.1
STOCKHOLDERS' EQUITY
12 Months Ended
Dec. 31, 2023
STOCKHOLDERS EQUITY  
STOCKHOLDERS' EQUITY

7. STOCKHOLDERS’ EQUITY

Stock Repurchase Program

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. During the year ended December 31, 2021, 251,212 shares were repurchased by the Company under the 2020 Program at an average price of $18.01 per share for an aggregate total price of $4.5 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.

On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years. During the year ended December 31, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. During the year ended December 31, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.

XML 30 R14.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS
12 Months Ended
Dec. 31, 2023
EMPLOYEE BENEFIT PLANS  
EMPLOYEE BENEFIT PLANS

8. EMPLOYEE BENEFIT PLANS

On December 31, 2023, the Company had the following stock-based compensation plans:

Employee Stock Purchase Plans

In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four six-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan” and, together with the 2010 Purchase Plan, the “Employee Purchase Plans”). The terms of 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.

The Company estimated the fair value of purchase rights granted under the Employee Purchase Plans during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

2021 Purchase Plan

Year Ended December 31, 

2023

    

2022

2021

    

Expected life (in years)

1.25

 

1.25

1.25

 

Volatility

43.66

%  

48.73

%  

48.00

%  

Risk-free interest rate

5.15

%  

2.75

%  

0.11

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

$

6.71

During the years ended December 31, 2023 and 2022, a total of 223,608 and 182,083 shares, respectively, were issued under the 2021 Purchase Plan, at a weighted-average purchase price of $17.14 per share and $16.15 per share, respectively. During the years ended December 31, 2022 and 2021 a total of 5,203 and 108,623 shares, respectively, were issued under the 2010 Purchase Plan, at a weighted-average purchase price of $13.40 per share and $9.53 per share, respectively. As of December 31, 2023, unrecognized compensation cost related to the 2021 Purchase Plan was $3.0 million. This estimated unrecognized cost is expected to be recognized over a weighted average period of 1.5 years.

As of December 31, 2023, 594,309 shares were available for future issuance under the 2021 Purchase Plan.

Stock Incentive Plans

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as amended, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 13.8 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

As of December 31, 2023, 14.3 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.7 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through December 31, 2023. As of December 31, 2023, there were no outstanding awards that were granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”).

The Company has elected to use the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life, interest rate and expected dividend. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life of an award is based on historical experience and on the terms and conditions of the stock awards granted to employees. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

No stock options were granted during the years ended December 31, 2023, 2022 and 2021.

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Costs of revenues

$

4,169

$

2,974

$

2,563

Research and development

 

7,711

 

9,391

 

5,515

Selling, general, and administrative

 

9,604

 

7,284

 

4,853

Stock-based compensation expense

$

21,484

$

19,649

$

12,931

Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was $0.1 million for the year ended December 31, 2023, and nil for the years ended December 31, 2022 and 2021.

Additional information with respect to options under the Plans is as follows:

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, January 1, 2023

 

68

$

16.11

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(30)

16.36

 

  

 

  

Canceled

 

 

  

 

  

Expired

 

 

  

 

  

Outstanding, December 31, 2023

 

38

$

15.92

 

4.05

$

619

Vested and expected to vest, December 31, 2023

 

38

$

15.91

 

4.05

$

619

Exercisable, December 31, 2023

 

37

$

15.84

 

3.97

$

599

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.14 as of December 31, 2023, which would have been received by the option holders had all option holders exercised their options as of that date.

The total intrinsic value of options exercised during the years ended December 31, 2023, 2022 and 2021 was as follows (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Intrinsic value of options exercised

 

$

630

 

$

2,287

 

$

2,972

Total remaining unrecognized compensation cost related to unvested stock options as of December 31, 2023, which is expected to be fully recognized in 2024, and total fair value of shares vested during the year ended December 31, 2023, was immaterial.

Nonvested shares (restricted stock units) were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2023

 

2,124

$

21.29

Granted

 

783

43.46

Vested

 

(882)

21.00

Forfeited

 

(30)

27.60

Nonvested, December 31, 2023

 

1,995

$

30.03

The weighted average grant date fair values of restricted stock units granted during fiscal 2023, 2022 and 2021 were $43.46, $23.23 and $19.43, respectively.

The total fair value of restricted stock units vested during fiscal 2023, 2022 and 2021 was as follows (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Fair value of restricted stock units vested

 

$

32,786

 

$

22,676

 

$

13,617

As of December 31, 2023, there was $45.4 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.5 years. Restricted stock units do not have rights to dividends prior to vesting.

401(k) Savings Plan

The Company sponsors a 401(k) Retirement Savings Plan (the “401(k) Plan”) covering substantially all of its US employees. The Company’s 401(k) Plan is a defined contribution plan with a 401(k) salary deferral arrangement qualified under appropriate provisions of the Internal Revenue Code (the “Code”) and applicable state laws.  Under the 401(k) Plan, eligible employees may make pre-tax salary or after-tax contributions up to 60% of annual compensation, as defined by the 401(k) Plan. In addition, participants who have reached the age of 50 can elect to withhold additional catch-up contributions subject to the Code and the 401(k) Plan limits. Participants may also contribute amounts representing distributions from other qualified plans (rollovers). The Company may make discretionary matching contributions. In fiscal 2023 and 2022, the Company matched from 50% to 100% of each employee’s contribution up to a maximum of 4% of the employee’s total eligible earnings. The Company’s matching contributions to the 401(k) Plan aggregated $1.7 million and $1.6 million for the years ended December 31, 2023 and 2022. No discretionary Company contributions were made to the Plan through December 31, 2021.

XML 31 R15.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES
12 Months Ended
Dec. 31, 2023
INCOME TAXES  
INCOME TAXES

9. INCOME TAXES

During the years ended December 31, 2023, 2022 and 2021, income (loss) before income tax expense from U.S. operations was $3.2 million, ($1.2) million and ($19.7) million, respectively, and income before income tax expense from foreign operations was $1.7 million, $1.7 million and $1.4 million, respectively.

Year Ended December 31, 

    

2023

    

2022

2021

(In thousands)

U.S.

  

  

Current

$

(353)

$

1,210

$

(67)

Deferred

 

3

 

13

 

1,318

Foreign

 

  

 

  

 

  

Current

 

453

 

577

 

237

Withholding

 

1,770

 

2,111

 

1,591

Deferred

 

(109)

 

(12)

 

92

Total income tax expense

$

1,764

$

3,899

$

3,171

The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2023, 2022 and 2021) for the following reasons (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Federal statutory tax expense

$

1,016

$

106

$

(3,847)

State tax provision

 

(65)

 

949

 

239

Stock compensation expense

 

(1,747)

 

(898)

 

(499)

Tax credits

 

(3,214)

 

(2,877)

 

(2,676)

Foreign tax, net

 

1,859

 

2,195

 

1,653

Foreign-derived intangible income (FDII) deduction

(1,612)

(830)

Change in valuation allowance

 

5,043

 

5,122

 

8,099

Section 162(m) limitation

424

92

Unrealized tax benefit reserve changes

99

136

(151)

Other

 

(39)

 

(96)

 

353

Total income tax expense

$

1,764

$

3,899

$

3,171

As of December 31, 2023, the Company had federal and California net operating loss carry-forwards (“NOLs”) of approximately $7.2 million and $12.7 million, respectively. Some of the federal NOLs, acquired as part of a past acquisition, have expirations at the end of this fiscal year and onwards, and the California NOLs begin expiring in 2028 onwards.

As of December 31, 2023, the Company had federal and state research and experimental and other tax credit (“R&D credits”) carry-forwards of approximately $23.7 million and $24.5 million, respectively. The federal credits began to expire in 2022, while the California credits have no expiration. The extent to which the federal and state credit carry-forwards can be used to offset future tax liabilities, respectively, may be limited, depending on the extent of ownership changes within any three-year period as provided in the Tax Reform Act of 1986 and the California Conformity Act of 1987.

The Company assesses its deferred tax assets for recoverability on a regular basis, and where applicable, a valuation allowance is recorded to reduce the total deferred tax asset to an amount that will, more likely than not, be realized in the future. Based on all available evidence, both positive and negative, the Company determined a full valuation allowance was still appropriate for its federal and state net deferred tax assets (“DTAs”) as of December 31, 2023, primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2023 and the likelihood that the Company will not utilize tax attributes before they begin to expire. The valuation allowance was approximately $64.2 million and $59.2 million as of December 31, 2023 and 2022, respectively. The increase in the valuation allowance from December

31, 2022 to December 31, 2023 was primarily driven by an increase in capitalized research and experimental expenses and credits generated in the current year which require a valuation allowance. Management will continue to evaluate the need for a valuation allowance and may change its conclusion in a future period based on any change in facts (e.g. 12-quarter cumulative profit, significant new revenue, and other relevant factors). If the Company concludes that it is more likely than not to utilize some or all of its U.S. DTAs, it will release some or all of its valuation allowance and the Company’s tax provision will decrease in the period in which such determination is made. Net deferred tax assets, after the U.S. valuation allowance, were immaterial as of December 31, 2023 and 2022.

The components of the net deferred tax assets are comprised of (in thousands):

December 31, 

    

2023

    

2022

Deferred tax assets

 

  

 

  

Net operating loss carry forward

$

3,005

$

3,861

Research and development and other credit carry forward

 

30,633

 

28,046

Foreign tax credit carry forward

 

7,611

 

11,764

Capitalized research and experimental expenses

20,403

10,069

Accruals deductible in different periods

 

4,037

 

7,713

Leases

 

1,282

 

1,623

Stock-based compensation

 

1,882

 

1,948

Total deferred tax assets

 

68,853

 

65,024

Less: valuation allowance

 

(64,152)

 

(59,215)

Deferred tax assets, net of valuation allowance

4,701

5,809

Deferred tax liabilities

 

  

 

  

Property and equipment, net

 

(612)

 

(540)

Operating lease right-of-use assets

 

(1,266)

 

(1,635)

Intangible assets

 

(2,995)

 

(3,617)

Deferred tax liabilities

(4,873)

(5,792)

Net deferred tax assets (liabilities)

$

(172)

$

17

The Company classifies its liabilities for income tax exposures as long-term. The Company includes interest related to unrecognized tax benefits within the Company’s income tax provision. As of December 31, 2023, 2022 and 2021, the Company had accrued interest related to unrecognized tax benefits of $0.7 million. In the years ended December 31, 2023, 2022 and 2021, the Company recognized (reversal of) charges for interest related to unrecognized tax benefits of ($15,000), ($61,000) and ($89,000) respectively, in the Consolidated Statements of Comprehensive Income (Loss).

The Company’s total amount of unrecognized tax benefits, excluding interest, as of December 31, 2023 was $15.9 million, of which $2.0 million, if recognized, would impact the Company’s effective tax rate. As of December 31, 2023, the Company has recorded unrecognized tax benefits of $2.6 million, including interest of $0.7 million, as long-term income taxes payable in its Consolidated Balance Sheet. The remaining $14.0 million has been recorded within DTAs, which is subject to a full valuation allowance. The Company does not expect the change in unrecognized tax benefits over the next twelve months to materially impact its results of operations and financial position.

A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):

    

Amount

Gross unrecognized tax benefits, January 1, 2021

$

14,300

Increases in tax positions for current year

 

853

Increases in tax positions for prior years

 

1

Lapse in statute of limitations

 

(411)

Gross unrecognized tax benefits, December 31, 2021

 

14,743

Increases in tax positions for current year

 

988

Increases in tax positions for prior years

 

Lapse in statute of limitations

 

(622)

Gross unrecognized tax benefits, December 31, 2022

 

15,109

Increases in tax positions for current year

 

1,469

Increases in tax positions for prior years

 

91

Lapse in statute of limitations

 

(732)

Gross unrecognized tax benefits, December 31, 2023

$

15,937

The Company does not provide deferred taxes on undistributed earnings of its foreign subsidiaries as it intends to indefinitely reinvest those earnings.

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal, various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the years ended 2020 to present and 2019 to present, respectively. In addition, all of the NOLs and R&D credit carry-forwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under income tax examinations in the U.S. or in any other of its major foreign subsidiaries’ jurisdictions.

Valuation allowance for DTAs is summarized (in thousands):

Balance at

Charged to

Deductions/

Balance at

Beginning

Income Tax

Write-offs of

End of

    

of Period

    

Expense

    

Accounts

    

Period

2023

$

59,215

$

4,937

$

$

64,152

2022

$

51,586

$

7,629

$

$

59,215

2021

$

41,859

$

9,727

$

$

51,586


XML 32 R16.htm IDEA: XBRL DOCUMENT v3.24.0.1
NET INCOME (LOSS) PER SHARE
12 Months Ended
Dec. 31, 2023
NET INCOME (LOSS) PER SHARE  
NET INCOME (LOSS) PER SHARE

10. NET INCOME (LOSS) PER SHARE

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net income (loss) per share (in thousands except per share amount):

Year Ended December 31, 

    

2023

    

2022

    

2021

Numerator:

 

  

 

  

 

  

Net income (loss)

$

3,105

$

(3,429)

$

(21,488)

Denominator:

 

  

 

  

 

  

Basic weighted average shares outstanding

 

38,015

 

37,309

 

37,138

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)

 

922

 

 

Diluted weighted average shares outstanding

 

38,937

 

37,309

 

37,138

Net income (loss) per share:

Basic

$

0.08

$

(0.09)

$

(0.58)

Diluted

$

0.08

$

(0.09)

$

(0.58)

For the years ended December 31, 2022 and 2021, because the Company was in a loss position, basic net loss per share is the same as diluted net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table sets forth potential shares of common stock that are not included in the diluted net income (loss) per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Year Ended December 31, 

    

2023

    

2022

    

2021

Outstanding options

 

 

56

 

170

Non-vested restricted stock units

 

351

787

968

Employee Stock Purchase Plan

 

84

33

Total

 

351

927

1,171

XML 33 R17.htm IDEA: XBRL DOCUMENT v3.24.0.1
CUSTOMER AND GEOGRAPHIC INFORMATION
12 Months Ended
Dec. 31, 2023
CUSTOMER AND GEOGRAPHIC INFORMATION  
CUSTOMER AND GEOGRAPHIC INFORMATION

11. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and reporting segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Year Ended December 31, 

 

Customer

    

2023

    

2022

 

2021

 

A

35

%  

31

%

17

%

B

*

%  

10

%

*

%

D

*

%  

*

%

10

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

December 31, 

 

Customer

    

2023

2022

 

A

 

39

%  

29

%

B

 

*

%  

12

%

C

*

%  

12

%

G

11

%  

*

%

*

represents less than 10%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):

Year Ended December 31, 

 

2023

 

2022

 

2021

 

Percentage

 

Percentage

 

Percentage

 

    

Revenues

    

of Revenues

 

$

Revenues

    

of Revenues

 

$

Revenues

    

of Revenues

 

United States

$

92,798

 

56

%

$

73,625

50

%

$

50,374

45

%

China

 

26,488

 

16

 

24,494

16

 

14,267

13

Japan

10,465

6

13,916

9

11,097

10

Rest of the world

 

36,084

 

22

 

36,514

25

 

35,322

32

Total revenue

$

165,835

 

100

%

$

148,549

 

100

%

$

111,060

 

100

%

Long-lived assets, net by geographic area is as follows (in thousands):

December 31, 

    

2023

    

2022

United States (1)

$

45,619

$

44,730

Rest of the world

 

1,362

 

1,446

Total long-lived assets, net

$

46,981

$

46,176





(1)

Includes assets deployed at customer sites which could be outside the U.S.

XML 34 R18.htm IDEA: XBRL DOCUMENT v3.24.0.1
FAIR VALUE MEASUREMENTS
12 Months Ended
Dec. 31, 2023
FAIR VALUE MEASUREMENTS  
FAIR VALUE MEASUREMENTS

12. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s

pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2023 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

December 31, 

Assets

Inputs

Unobservable

Assets

    

2023

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

83,810

$

83,810

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities (1)

 

36,544

 

36,544

 

 

Total

$

120,354

$

120,354

$

$

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2022 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2022

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

75,738

$

75,738

$

$

U.S. Government securities (1)

1,990

1,990

Short-term investments (available-for-sale debt securities)

  

 

  

 

  

 

  

U.S. Government securities (1)

19,557

 

19,557

 

 

Total

$

97,285

$

97,285

$

$

(1)The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022.
XML 35 R19.htm IDEA: XBRL DOCUMENT v3.24.0.1
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS
12 Months Ended
Dec. 31, 2023
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS  
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

13. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”), which includes: (i) a Securities Purchase Agreement wherein the Company issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of its common stock, for aggregate gross proceeds of $65.2 million; (ii) a significant agreement for its assistance in development of cloud-based applications for Advantest tools that leverages our Exensio analytics software ; (iii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; and (iv) a 5-year cloud-based subscription for Exensio analytics software and related services.

Analytics revenue recognized from Advantest during the years ended December 31, 2023, 2022 and 2021 was $9.0 million, $10.3 million and $10.6 million, respectively. Accounts receivable from Advantest were not material as of December 31, 2023 and amounted to $0.3 million as of December 31, 2022. Deferred revenue amounted to $9.4 million and $7.1 million as of December 31, 2023 and 2022, respectively.

The Company carries out transactions with Advantest on arm’s length commercial customary terms.

XML 36 R20.htm IDEA: XBRL DOCUMENT v3.24.0.1
BUSINESS COMBINATION
12 Months Ended
Dec. 31, 2023
BUSINESS COMBINATION  
BUSINESS COMBINATION

14. BUSINESS COMBINATION

On July 5, 2023 (the “Acquisition Date”), the Company, through its wholly-owned subsidiary in Canada, PDF Solutions Canada, Ltd., acquired 100% of the equity interest in Lantern Machinery Analytics, Inc. headquartered in Canada, a privately-held provider of automated image analysis and feature extraction AI/ML software for critical inspection and metrology steps at battery cell development and manufacturing processes for the electric vehicle industry. This software will enhance the Company’s Exensio analytics software and product offerings to new and existing battery manufacturer customers. The total cash consideration for this acquisition was $1.8 million, net of cash acquired, for all of the outstanding equity of Lantern Machinery Analytics, Inc.

The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. As of December 31, 2023, payment made for this acquisition, net of cash acquired, amounted to $1.8 million and was funded from available cash of the Company.

The allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $265)

$

450

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

1,010

 

8

Customer relationships

 

100

 

6

Goodwill

 

895

 

N/A

Total assets acquired

2,455

 

  

Liabilities

  

 

  

Deferred tax liabilities

294

Accounts payable and accrued expenses

73

 

  

Total liabilities assumed

367

 

  

Total purchase price allocation

$

2,088

 

  

Pro forma results of operations have not been presented because the effect of the acquisition was not material to the Company’s financial results.

XML 37 R21.htm IDEA: XBRL DOCUMENT v3.24.0.1
SIGNIFICANT ACCOUNTING POLICIES (Policies)
12 Months Ended
Dec. 31, 2023
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
Description of Business, Policy

Description of Business

PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower organizations across the semiconductor and electronics ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (“IP”) for integrated circuit (“IC”) designs, electrical measurement hardware tools, proven methodologies, and professional services.

Basis of Presentation, Policy

Basis of Presentation

The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.

Use of Estimates, Policy

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Concentration of Credit Risk, Policy

Concentration of Credit Risk

Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short-term investments, and accounts receivable. As of December 31, 2023, and periodically throughout the year, the Company had cash balances in various operating accounts in excess of federally insured limits. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.

The Company primarily sells its products and services to companies in Asia, Europe, and North America within the semiconductor industry. As of December 31, 2023, two customers accounted for 50% of the Company’s gross accounts receivable and one customer accounted for 35% of the Company’s total revenues for 2023. As of December 31, 2022, three customers accounted for 53% of the Company’s gross accounts receivable and two customers accounted for 41% of the Company’s revenues for 2022. Two customers accounted for 27% of the Company’s revenues for 2021. See Note 11 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.

The allowance for credit losses, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.

Supplier Concentration, Policy

Supplier Concentration

Some of the Company’s vendors provide highly specialized, differentiated products and services related to the Company’s eProbe system and some licensors provide key enabling software for the Company’s products and services. In the event any of these suppliers delay or discontinue providing such products and services to the Company, it may be difficult for the Company to replace such suppliers, software, or parts in a timely manner or at all, which could delay or make impossible the Company’s ability to deliver or adequately support its software systems or to complete and deliver its eProbe systems to its customers, and could negatively impact the Company’s future financial results of operations.

Cash and Cash Equivalents, and Short-term Investments, Policy

Cash and Cash Equivalents, and Short-term Investments

The Company considers all highly liquid investments with effective maturities of 90 days or less on the date of purchase to be cash equivalents and investments with effective maturities greater than 90 days but less than one year to be short-term investments. The Company classifies its securities with readily determinable market values as “available-for-sale”. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and unrealized non-credit-related losses, net of tax, reported as a component of accumulated other comprehensive income (loss) in stockholders’ equity. Unrealized credit-related losses are recorded to interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss) with a corresponding allowance for credit-related losses in the Consolidated Balance Sheets. Realized gains and losses are based on the specific identification method and are included as a component of interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss).

The Company periodically reviews short-term investments for impairment. For investments in unrealized loss positions, the Company assesses whether any portion of the decline in fair value below the amortized cost basis is due to credit-related factors if the Company neither intends to sell nor anticipates that it is more likely than not that it will be required to sell prior to recovery of the amortized cost basis. The Company considers factors such as the extent to which the market value has been less than the amortized cost basis, any noted failure of the issuer to make scheduled interest or principal payments, changes to the rating of the security by a rating agency and other relevant credit-related factors in determining whether or not a credit loss exists. There was no allowance for credit-related losses on any of the Company’s investments recognized in the years ended December 31, 2023, 2022 and 2021.

As of December 31, 2023, and 2022, short-term investments consisted solely of U.S. Government securities. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2023 and 2022. Refer to Note 12, “Fair Value Measurements” for further discussion on the Company’s investments.

The Company recorded interest income from its cash, cash equivalents, and short-term investments of $5.5 million, $1.5 million and $0.1 million in the years ended December 31 2023, 2022 and 2021, respectively.

Accounts Receivable, Policy

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable are determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $16.4 million and $13.5 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.1 million and $0.8 million as of December 31, 2023 and 2022, respectively.

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.

The changes in allowance for credit losses are summarized below (in thousands):

Deductions/

Balance at

Write-offs

Balance at

Beginning

Charged to

of Accounts

End of

    

of Period

    

Expense (1)

    

Receivable

    

Period

2023

$

890

$

20

$

(20)

$

890

2022

$

890

$

11

$

(11)

$

890

2021

$

963

$

$

(73)

$

890

(1)Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.
Property and Equipment, Policy

Property and Equipment

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

5-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated useful life or term of lease

Intangible Assets, Policy

Intangible Assets

Intangible assets consist of acquired technology, certain contract rights, customer relationships, patents, trademarks and trade names. These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from one to ten years. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.

Goodwill, Policy

Goodwill

The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.

Leases, Policy

Leases

The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use

(“ROU”) assets, operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company elected to not separate lease and non-lease components for all of its leases.

The Company determines if an arrangement is, or contains, a lease at inception. Operating lease ROU assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of the Company’s overall future business plans and other relevant business economic factors that may affect its business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from the Company’s initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.

Software Development Costs, Policy

Software Development Costs

Internally developed software is software developed to meet the Company’s internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally five to six years.

The costs to develop software that is marketed externally consisting of external direct costs and internal compensation related costs are capitalized once technological feasibility of the software product has been established. Costs incurred prior to establishing technological feasibility are expensed as incurred. Technological feasibility is established when the Company has completed all planning, designing, coding, and testing activities that are necessary to establish that the software product can be produced to meet its design specifications. Capitalization of such costs ceases when the software product is generally available to customers. These software development costs are amortized using the greater of the straight-line method or the usage method over its estimated useful life.

Costs to obtain or fulfill a contract

Cost of Revenues

Costs of revenues consist primarily of costs incurred to provide and support the Company’s services, costs recognized in connection with licensing its software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type leases), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by the Company in providing services to its customers in solution engagements or sold in conjunction with the Company’s software products.

Research and Development Expenses, Policy

Research and Development Expenses

Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities. Research and development expenses are charged to operations as incurred.

Selling, General and Administrative Expenses, Policy

Selling, General and Administrative Expenses

Selling, general and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing and general and administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, IT and facilities cost allocations.

Stock-Based Compensation, Policy

Stock-Based Compensation

The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Income Taxes, Policy

Income Taxes

The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more likely than not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Income (Loss).

Net Income (Loss) Per Share, Policy

Net Income (Loss) Per Share

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.

Foreign Currency Translation, Policy

Foreign Currency Translation

The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive income (loss) are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive income (loss). Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Income (Loss).

Derivative Financial Instruments, Policy

Derivative Financial Instruments

The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months.

Business Combinations, Policy

Business Combinations

The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over their useful life, whereas any indefinite lived intangible assets, including in-process research and development, and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.

Litigation, Policy

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (“FASB”) requirements. See Note 6, “Commitments and Contingencies”.

Accounting Standards Adopted, Policy

Accounting Standards Adopted

In June 2016, the FASB issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to accumulated deficit as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s consolidated financial statements.

Recently Issued Accounting Pronouncements, Policy

Recently Issued Accounting Pronouncements

In November 2023, the FASB issued ASU No. 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which requires disclosure of incremental segment information on an annual and interim basis. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, and requires retrospective application to all prior periods presented in the financial statements. Early adoption is permitted. The Company is currently evaluating the impact of the new standard on the consolidated financial statements.

In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” Adoption is either prospectively or retrospectively, the Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.

XML 38 R22.htm IDEA: XBRL DOCUMENT v3.24.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)
12 Months Ended
Dec. 31, 2023
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
Schedule of Accounts Receivable Reserves

Deductions/

Balance at

Write-offs

Balance at

Beginning

Charged to

of Accounts

End of

    

of Period

    

Expense (1)

    

Receivable

    

Period

2023

$

890

$

20

$

(20)

$

890

2022

$

890

$

11

$

(11)

$

890

2021

$

963

$

$

(73)

$

890

(1)Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.
Schedule of Property, Plant and Equipment Estimated Useful Lives

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

5-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated useful life or term of lease

XML 39 R23.htm IDEA: XBRL DOCUMENT v3.24.0.1
REVENUE (Tables)
12 Months Ended
Dec. 31, 2023
REVENUE  
Schedule of Disaggregated Revenues

Year Ended December 31, 

 

    

2023

    

2022

2021

Over time

71

%  

69

%

65

%

Point-in-time

 

29

%  

31

%

35

%

Total

 

100

%  

100

%

100

%

XML 40 R24.htm IDEA: XBRL DOCUMENT v3.24.0.1
PROPERTY AND EQUIPMENT (Tables)
12 Months Ended
Dec. 31, 2023
PROPERTY AND EQUIPMENT  
Schedule of Property, Plant and Equipment

December 31, 

    

2023

2022

Computer equipment

$

12,515

$

11,853

Software

 

5,596

 

5,395

Furniture, fixtures, and equipment

 

2,501

 

2,484

Leasehold improvements

 

6,475

 

6,467

Laboratory and other equipment

 

4,891

 

4,431

Test equipment

 

25,044

 

28,403

Property and equipment in progress:

 

 

DFI™ system assets

22,864

22,231

CV® system and other assets

 

6,977

 

5,105

 

86,863

 

86,369

Less: Accumulated depreciation and amortization

 

(49,525)

 

(46,195)

Total

$

37,338

$

40,174

XML 41 R25.htm IDEA: XBRL DOCUMENT v3.24.0.1
GOODWILL AND INTANGIBLE ASSETS (Tables)
12 Months Ended
Dec. 31, 2023
GOODWILL AND INTANGIBLE ASSETS  
Schedule of Goodwill

Year Ended December 31, 

2023

    

2022

2021

Balance at beginning of year

$

14,123

$

14,123

$

15,774

Addition

895

Measurement period acquisition adjustment

 

 

 

(1,651)

Foreign currency translation adjustment

11

Balance at end of year

$

15,029

$

14,123

$

14,123

Intangible assets balance was $15.6 million and $18.1 million as of December 31, 2023 and 2022, respectively.

Schedule of Finite-Lived Intangible Assets, Net

December 31, 2023

December 31, 2022

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,508

$

(7,335)

$

2,173

$

9,407

$

(6,684)

$

2,723

Developed technology

 

4-9

 

34,650

 

(22,094)

 

12,556

 

33,635

 

(19,647)

 

13,988

Tradename and trademarks

 

2-10

 

1,598

 

(1,025)

 

573

 

1,598

 

(918)

 

680

Patent

 

6-10

 

2,100

 

(1,782)

 

318

 

2,100

 

(1,696)

 

404

Noncompetition agreements

 

3

 

848

 

(848)

 

 

848

 

(588)

 

260

Total

$

48,704

$

(33,084)

$

15,620

$

47,588

$

(29,533)

$

18,055

The weighted average amortization period for acquired identifiable intangible assets was 5.3 years as of December 31, 2023. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Income (Loss) (in thousands):

Schedule of Finite-lived Intangible Assets Amortization Expense

Year Ended December 31, 

    

2023

    

2022

    

2021

Amortization of acquired technology included under costs of revenues

$

2,266

$

2,214

$

2,079

Amortization of acquired intangible assets presented separately under costs and expenses

 

1,285

 

1,270

 

1,255

Total amortization of acquired intangible assets

$

3,551

$

3,484

$

3,334

Schedule of Finite-Lived Intangible Assets, Future Amortization Expense

Year Ending December 31, 

    

Amount

2024

$

3,237

2025

 

3,072

2026

 

2,903

2027

 

2,750

2028

2,445

2029 and thereafter

 

1,213

Total future amortization expense

$

15,620

XML 42 R26.htm IDEA: XBRL DOCUMENT v3.24.0.1
LEASES (Tables)
12 Months Ended
Dec. 31, 2023
LEASES  
Schedule of Lease Expenses

Year Ended December 31, 

    

2023

    

2022

    

2021

Operating lease expense (1)

$

1,534

$

1,457

$

1,860

Short-term lease and variable lease expense (2)

 

923

 

1,032

 

822

Total lease expense

$

2,457

$

2,489

$

2,682

(1)Net of gain recognized upon lease termination of $0.1 million in the year ended December 31, 2022.
(2)Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.
Schedule of Supplemental Operating Lease Information

December 31, 

 

    

2023

    

2022

 

Weighted average remaining lease term under operating leases (in years)

4.4

5.3

Weighted average discount rate for operating lease liabilities

 

4.96

%  

4.87

%

Schedule of Operating Lease Liabilities and Maturities

Year Ending December 31, 

    

Amount (1)

2024

$

1,663

2025

 

1,611

2026

 

1,355

2027

 

1,294

2028

 

929

2029

 

63

Total future minimum lease payments

6,915

Less: Interest (2)

 

(729)

Present value of future minimum lease payments under operating lease liabilities (3)

$

6,186

(1)As of December 31, 2023, the total operating lease liability includes $1.0 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.5 million as of December 31, 2023.
XML 43 R27.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS (Tables)
12 Months Ended
Dec. 31, 2023
EMPLOYEE BENEFIT PLANS  
Schedule of Employee Stock Purchase Plan, Black-Scholes-Merton Valuation Assumptions

2021 Purchase Plan

Year Ended December 31, 

2023

    

2022

2021

    

Expected life (in years)

1.25

 

1.25

1.25

 

Volatility

43.66

%  

48.73

%  

48.00

%  

Risk-free interest rate

5.15

%  

2.75

%  

0.11

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

$

6.71

Schedule of Stock-Based Compensation Expenses

Year Ended December 31, 

    

2023

    

2022

    

2021

Costs of revenues

$

4,169

$

2,974

$

2,563

Research and development

 

7,711

 

9,391

 

5,515

Selling, general, and administrative

 

9,604

 

7,284

 

4,853

Stock-based compensation expense

$

21,484

$

19,649

$

12,931

Schedule of Outstanding Options Vested and Expected to Vest

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, January 1, 2023

 

68

$

16.11

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(30)

16.36

 

  

 

  

Canceled

 

 

  

 

  

Expired

 

 

  

 

  

Outstanding, December 31, 2023

 

38

$

15.92

 

4.05

$

619

Vested and expected to vest, December 31, 2023

 

38

$

15.91

 

4.05

$

619

Exercisable, December 31, 2023

 

37

$

15.84

 

3.97

$

599

Schedule of Options Exercised Intrinsic Value

Year Ended December 31, 

    

2023

    

2022

    

2021

Intrinsic value of options exercised

 

$

630

 

$

2,287

 

$

2,972

Schedule of Restricted Stock Unit Activity

Nonvested shares (restricted stock units) were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2023

 

2,124

$

21.29

Granted

 

783

43.46

Vested

 

(882)

21.00

Forfeited

 

(30)

27.60

Nonvested, December 31, 2023

 

1,995

$

30.03

Schedule of Vested Restricted Stock Unit Fair Value

Year Ended December 31, 

    

2023

    

2022

    

2021

Fair value of restricted stock units vested

 

$

32,786

 

$

22,676

 

$

13,617

XML 44 R28.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES (Tables)
12 Months Ended
Dec. 31, 2023
INCOME TAXES  
Schedule of Components of Income Tax Expense (Benefit)

Year Ended December 31, 

    

2023

    

2022

2021

(In thousands)

U.S.

  

  

Current

$

(353)

$

1,210

$

(67)

Deferred

 

3

 

13

 

1,318

Foreign

 

  

 

  

 

  

Current

 

453

 

577

 

237

Withholding

 

1,770

 

2,111

 

1,591

Deferred

 

(109)

 

(12)

 

92

Total income tax expense

$

1,764

$

3,899

$

3,171

Schedule of Effective Income Tax Rate Reconciliation

Year Ended December 31, 

    

2023

    

2022

    

2021

Federal statutory tax expense

$

1,016

$

106

$

(3,847)

State tax provision

 

(65)

 

949

 

239

Stock compensation expense

 

(1,747)

 

(898)

 

(499)

Tax credits

 

(3,214)

 

(2,877)

 

(2,676)

Foreign tax, net

 

1,859

 

2,195

 

1,653

Foreign-derived intangible income (FDII) deduction

(1,612)

(830)

Change in valuation allowance

 

5,043

 

5,122

 

8,099

Section 162(m) limitation

424

92

Unrealized tax benefit reserve changes

99

136

(151)

Other

 

(39)

 

(96)

 

353

Total income tax expense

$

1,764

$

3,899

$

3,171

Schedule of Deferred Tax Assets and Liabilities

December 31, 

    

2023

    

2022

Deferred tax assets

 

  

 

  

Net operating loss carry forward

$

3,005

$

3,861

Research and development and other credit carry forward

 

30,633

 

28,046

Foreign tax credit carry forward

 

7,611

 

11,764

Capitalized research and experimental expenses

20,403

10,069

Accruals deductible in different periods

 

4,037

 

7,713

Leases

 

1,282

 

1,623

Stock-based compensation

 

1,882

 

1,948

Total deferred tax assets

 

68,853

 

65,024

Less: valuation allowance

 

(64,152)

 

(59,215)

Deferred tax assets, net of valuation allowance

4,701

5,809

Deferred tax liabilities

 

  

 

  

Property and equipment, net

 

(612)

 

(540)

Operating lease right-of-use assets

 

(1,266)

 

(1,635)

Intangible assets

 

(2,995)

 

(3,617)

Deferred tax liabilities

(4,873)

(5,792)

Net deferred tax assets (liabilities)

$

(172)

$

17

Schedule of Unrecognized Tax Benefits Roll Forward

    

Amount

Gross unrecognized tax benefits, January 1, 2021

$

14,300

Increases in tax positions for current year

 

853

Increases in tax positions for prior years

 

1

Lapse in statute of limitations

 

(411)

Gross unrecognized tax benefits, December 31, 2021

 

14,743

Increases in tax positions for current year

 

988

Increases in tax positions for prior years

 

Lapse in statute of limitations

 

(622)

Gross unrecognized tax benefits, December 31, 2022

 

15,109

Increases in tax positions for current year

 

1,469

Increases in tax positions for prior years

 

91

Lapse in statute of limitations

 

(732)

Gross unrecognized tax benefits, December 31, 2023

$

15,937

Summary of Deferred Tax Assets Valuation Allowance

Balance at

Charged to

Deductions/

Balance at

Beginning

Income Tax

Write-offs of

End of

    

of Period

    

Expense

    

Accounts

    

Period

2023

$

59,215

$

4,937

$

$

64,152

2022

$

51,586

$

7,629

$

$

59,215

2021

$

41,859

$

9,727

$

$

51,586

XML 45 R29.htm IDEA: XBRL DOCUMENT v3.24.0.1
NET INCOME (LOSS) PER SHARE (Tables)
12 Months Ended
Dec. 31, 2023
NET INCOME (LOSS) PER SHARE  
Schedule of Earnings Per Share, Basic and Diluted

Year Ended December 31, 

    

2023

    

2022

    

2021

Numerator:

 

  

 

  

 

  

Net income (loss)

$

3,105

$

(3,429)

$

(21,488)

Denominator:

 

  

 

  

 

  

Basic weighted average shares outstanding

 

38,015

 

37,309

 

37,138

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)

 

922

 

 

Diluted weighted average shares outstanding

 

38,937

 

37,309

 

37,138

Net income (loss) per share:

Basic

$

0.08

$

(0.09)

$

(0.58)

Diluted

$

0.08

$

(0.09)

$

(0.58)

Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share

Year Ended December 31, 

    

2023

    

2022

    

2021

Outstanding options

 

 

56

 

170

Non-vested restricted stock units

 

351

787

968

Employee Stock Purchase Plan

 

84

33

Total

 

351

927

1,171

XML 46 R30.htm IDEA: XBRL DOCUMENT v3.24.0.1
CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)
12 Months Ended
Dec. 31, 2023
CUSTOMER AND GEOGRAPHIC INFORMATION  
Schedule of Revenue by Major Customers by Reporting Segments

Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Year Ended December 31, 

 

Customer

    

2023

    

2022

 

2021

 

A

35

%  

31

%

17

%

B

*

%  

10

%

*

%

D

*

%  

*

%

10

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

December 31, 

 

Customer

    

2023

2022

 

A

 

39

%  

29

%

B

 

*

%  

12

%

C

*

%  

12

%

G

11

%  

*

%

*

represents less than 10%

Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area

Year Ended December 31, 

 

2023

 

2022

 

2021

 

Percentage

 

Percentage

 

Percentage

 

    

Revenues

    

of Revenues

 

$

Revenues

    

of Revenues

 

$

Revenues

    

of Revenues

 

United States

$

92,798

 

56

%

$

73,625

50

%

$

50,374

45

%

China

 

26,488

 

16

 

24,494

16

 

14,267

13

Japan

10,465

6

13,916

9

11,097

10

Rest of the world

 

36,084

 

22

 

36,514

25

 

35,322

32

Total revenue

$

165,835

 

100

%

$

148,549

 

100

%

$

111,060

 

100

%

Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country

December 31, 

    

2023

    

2022

United States (1)

$

45,619

$

44,730

Rest of the world

 

1,362

 

1,446

Total long-lived assets, net

$

46,981

$

46,176





(1)

Includes assets deployed at customer sites which could be outside the U.S.

XML 47 R31.htm IDEA: XBRL DOCUMENT v3.24.0.1
FAIR VALUE MEASUREMENTS (Tables)
12 Months Ended
Dec. 31, 2023
FAIR VALUE MEASUREMENTS  
Schedule of Fair Value, Assets Measured on Recurring Basis

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

December 31, 

Assets

Inputs

Unobservable

Assets

    

2023

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

83,810

$

83,810

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities (1)

 

36,544

 

36,544

 

 

Total

$

120,354

$

120,354

$

$

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2022

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

75,738

$

75,738

$

$

U.S. Government securities (1)

1,990

1,990

Short-term investments (available-for-sale debt securities)

  

 

  

 

  

 

  

U.S. Government securities (1)

19,557

 

19,557

 

 

Total

$

97,285

$

97,285

$

$

(1)The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022.
XML 48 R32.htm IDEA: XBRL DOCUMENT v3.24.0.1
BUSINESS COMBINATION (Tables)
12 Months Ended
Dec. 31, 2023
Notes Tables  
Schedule of Purchase Price Allocation in Business Acquisition

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $265)

$

450

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

1,010

 

8

Customer relationships

 

100

 

6

Goodwill

 

895

 

N/A

Total assets acquired

2,455

 

  

Liabilities

  

 

  

Deferred tax liabilities

294

Accounts payable and accrued expenses

73

 

  

Total liabilities assumed

367

 

  

Total purchase price allocation

$

2,088

 

  

XML 49 R33.htm IDEA: XBRL DOCUMENT v3.24.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)
$ in Millions
12 Months Ended
Dec. 31, 2023
USD ($)
Dec. 31, 2022
USD ($)
Dec. 31, 2021
Number of operating segments 1    
Number of reporting units 1    
Stock option vesting period 4 years    
Minimum      
Intangible asset amortization period 1 year    
Capitalized computer software, useful life 5 years    
Maximum      
Intangible asset amortization period 10 years    
Capitalized computer software, useful life 6 years    
Receivables Benchmark      
Unbilled receivables $ 16.4 $ 13.5  
Other Non-current Assets      
Unbilled receivables not expected to be collected $ 1.1 $ 0.8  
Customer Concentration Risk | Receivables Benchmark      
Number of major customers 2 3  
Customer Concentration Risk | Receivables Benchmark | Two Significant Customers      
Significant customer concentration (percentage) 50.00%    
Customer Concentration Risk | Receivables Benchmark | Three Significant Customers      
Significant customer concentration (percentage)   53.00%  
Customer Concentration Risk | Revenue Benchmark      
Number of major customers 1 2 2
Customer Concentration Risk | Revenue Benchmark | One Significant Customer      
Significant customer concentration (percentage) 35.00%    
Customer Concentration Risk | Revenue Benchmark | Two Significant Customers      
Significant customer concentration (percentage)   41.00% 27.00%
XML 50 R34.htm IDEA: XBRL DOCUMENT v3.24.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Cash and Cash Equivalents and Short-term Investments (Details) - USD ($)
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Cash and Cash Equivalents, and Short-term Investments [Line Items]      
Allowance for credit losses on investments $ 0 $ 0 $ 0
Realized gains (losses) on investments 0 0  
Unrealized gains (losses) on investments 0 0  
Interest income from cash, cash equivalents and short-term investments $ 5,500,000 $ 1,500,000 $ 100,000
Minimum      
Cash and Cash Equivalents, and Short-term Investments [Line Items]      
Short-term investments, effective maturity threshold 90 days    
Maximum      
Cash and Cash Equivalents, and Short-term Investments [Line Items]      
Cash equivalents, effective maturity threshold 90 days    
Short-term investments, effective maturity threshold 1 year    
XML 51 R35.htm IDEA: XBRL DOCUMENT v3.24.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) - Allowance for Credit Loss - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Balance, beginning $ 890 $ 890 $ 963
Charged to Expense [1] 20 11  
Deductions/ Write-offs of Accounts Receivable (20) (11) (73)
Balance, ending $ 890 $ 890 $ 890
[1] Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.
XML 52 R36.htm IDEA: XBRL DOCUMENT v3.24.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details)
Dec. 31, 2023
Computer Equipment  
Property and equipment useful life 3 years
Software  
Property and equipment useful life 3 years
Furniture, Fixtures and Equipment | Minimum  
Property and equipment useful life 5 years
Furniture, Fixtures and Equipment | Maximum  
Property and equipment useful life 10 years
Laboratory and Test Equipment | Minimum  
Property and equipment useful life 3 years
Laboratory and Test Equipment | Maximum  
Property and equipment useful life 10 years
XML 53 R37.htm IDEA: XBRL DOCUMENT v3.24.0.1
REVENUE (Details)
12 Months Ended 24 Months Ended
Dec. 31, 2023
USD ($)
item
Dec. 31, 2022
USD ($)
Dec. 31, 2021
USD ($)
Dec. 31, 2023
USD ($)
Number of revenue sources | item 2      
Capitalized contract cost, impairment loss   $ 0 $ 0 $ 0
Revenue, remaining performance obligation $ 229,800,000     229,800,000
Revenue performance obligations satisfied in previous period 3,700,000 400,000 (400,000)  
Prepaid Expenses and Other Current Assets        
Revenue, net contract assets 6,800,000 3,300,000   6,800,000
Capitalized contract cost, net 2,000,000.0 1,700,000   2,000,000.0
Other Non-current Assets        
Revenue, net contract assets 900,000 0   900,000
Capitalized contract cost, net 2,600,000 2,100,000   2,600,000
Non-current Liabilities        
Noncurrent deferred revenue 1,800,000 1,900,000   $ 1,800,000
Deferred Revenue and Billings in Excess of Recognized Revenue        
Recognized revenue from the beginning balance $ 24,800,000 $ 24,900,000 $ 16,900,000  
Geographic Concentration Risk | Revenue Benchmark        
Significant customer concentration (percentage) 100.00% 100.00% 100.00%  
Geographic Concentration Risk | Revenue Benchmark | Non-US        
Significant customer concentration (percentage) 44.00% 50.00% 55.00%  
XML 54 R38.htm IDEA: XBRL DOCUMENT v3.24.0.1
REVENUE - Disaggregation of Revenue (Details)
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Performance obligations, percentage of revenues 100.00% 100.00% 100.00%
Over Time      
Performance obligations, percentage of revenues 71.00% 69.00% 65.00%
Point-in-time      
Performance obligations, percentage of revenues 29.00% 31.00% 35.00%
XML 55 R39.htm IDEA: XBRL DOCUMENT v3.24.0.1
REVENUE - Additional Information (Details) - Software License and Related Services Agreement - Advantest America, Inc.
Dec. 31, 2023
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01 | Minimum  
The majority of the remaining performance obligations 3 years
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-01-01 | Maximum  
The remainder of the remaining performance obligations 3 years
XML 56 R40.htm IDEA: XBRL DOCUMENT v3.24.0.1
PROPERTY AND EQUIPMENT - Narrative (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Write-down in value of property and equipment     $ 3,183
DFI Test Equipment      
Depreciation and amortization $ 5,000 $ 5,500 6,200
Write-down in value of property and equipment     $ 3,200
XML 57 R41.htm IDEA: XBRL DOCUMENT v3.24.0.1
PROPERTY AND EQUIPMENT - Property and Equipment (Details) - USD ($)
$ in Thousands
Dec. 31, 2023
Dec. 31, 2022
Property and equipment, gross $ 86,863 $ 86,369
Less: accumulated depreciation and amortization (49,525) (46,195)
Total property and equipment 37,338 40,174
Computer Equipment    
Property and equipment, gross 12,515 11,853
Software    
Property and equipment, gross 5,596 5,395
Furniture, Fixtures and Equipment    
Property and equipment, gross 2,501 2,484
Leasehold Improvements    
Property and equipment, gross 6,475 6,467
Laboratory and Other Equipment    
Property and equipment, gross 4,891 4,431
Test Equipment    
Property and equipment, gross 25,044 28,403
DFI System Assets    
Property and equipment, gross 22,864 22,231
CV System and Other Assets    
Property and equipment, gross $ 6,977 $ 5,105
XML 58 R42.htm IDEA: XBRL DOCUMENT v3.24.0.1
GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) - USD ($)
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Goodwill $ 15,029,000 $ 14,123,000 $ 14,123,000 $ 15,774,000
Intangible assets excluding Goodwill $ 15,620,000 18,055,000    
Intangible assets, weighted-average amortization period 5 years 3 months 18 days      
Amortization of acquired intangible assets $ 1,285,000 1,270,000 1,255,000  
Total amortization of acquired intangible assets 3,551,000 3,484,000 3,334,000  
Impairment charged against intangible assets 0 0 0  
Costs of Revenues        
Amortization of acquired intangible assets 2,266,000 2,214,000 2,079,000  
Costs and Expenses        
Amortization of acquired intangible assets $ 1,285,000 $ 1,270,000 $ 1,255,000  
XML 59 R43.htm IDEA: XBRL DOCUMENT v3.24.0.1
GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
GOODWILL AND INTANGIBLE ASSETS      
Goodwill, beginning balance $ 14,123 $ 14,123 $ 15,774
Addition 895    
Measurement period acquisition adjustment 0 0 (1,651)
Foreign currency translation adjustment 11    
Goodwill, ending balance $ 15,029 $ 14,123 $ 14,123
XML 60 R44.htm IDEA: XBRL DOCUMENT v3.24.0.1
GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Gross Carrying Amount $ 48,704 $ 47,588
Accumulated Amortization (33,084) (29,533)
Net Carrying Amount 15,620 18,055
Customer Relationships    
Gross Carrying Amount 9,508 9,407
Accumulated Amortization (7,335) (6,684)
Net Carrying Amount $ 2,173 2,723
Customer Relationships | Minimum    
Amortization Period (Years) 1 year  
Customer Relationships | Maximum    
Amortization Period (Years) 10 years  
Developed Technology    
Gross Carrying Amount $ 34,650 33,635
Accumulated Amortization (22,094) (19,647)
Net Carrying Amount $ 12,556 13,988
Developed Technology | Minimum    
Amortization Period (Years) 4 years  
Developed Technology | Maximum    
Amortization Period (Years) 9 years  
Tradename and Trademarks    
Gross Carrying Amount $ 1,598 1,598
Accumulated Amortization (1,025) (918)
Net Carrying Amount $ 573 680
Tradename and Trademarks | Minimum    
Amortization Period (Years) 2 years  
Tradename and Trademarks | Maximum    
Amortization Period (Years) 10 years  
Patents    
Gross Carrying Amount $ 2,100 2,100
Accumulated Amortization (1,782) (1,696)
Net Carrying Amount $ 318 404
Patents | Minimum    
Amortization Period (Years) 6 years  
Patents | Maximum    
Amortization Period (Years) 10 years  
Noncompetition Agreements    
Amortization Period (Years) 3 years  
Gross Carrying Amount $ 848 848
Accumulated Amortization $ (848) (588)
Net Carrying Amount   $ 260
XML 61 R45.htm IDEA: XBRL DOCUMENT v3.24.0.1
GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) - USD ($)
$ in Thousands
Dec. 31, 2023
Dec. 31, 2022
GOODWILL AND INTANGIBLE ASSETS    
2024 $ 3,237  
2025 3,072  
2026 2,903  
2027 2,750  
2028 2,445  
2029 and thereafter 1,213  
Total future amortization expense $ 15,620 $ 18,055
XML 62 R46.htm IDEA: XBRL DOCUMENT v3.24.0.1
LEASES - Other (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
LEASES    
Operating Lease, Liability, Amount Related to Extension of Lease Term $ 1,000  
Operating Lease, Liability, Current 1,529 $ 1,412
Operating lease right of use assets decrease from early lease termination 500  
Operating lease liability decrease from early lease termination 600  
Lease termination gain $ 100  
XML 63 R47.htm IDEA: XBRL DOCUMENT v3.24.0.1
LEASES - Lease Cost (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
LEASES      
Operating lease expense $ 1,534 $ 1,457 $ 1,860
Short-term lease and variable lease expense 923 1,032 822
Total lease expense $ 2,457 $ 2,489 2,682
Weighted average remaining lease term under operating ROU leases (in years) (Year) 4 years 4 months 24 days 5 years 3 months 18 days  
Weighted average discount rate for operating lease liabilities 4.96% 4.87%  
Right Of Use Assets Obtained In Exchange For Operating Lease Liability $ 131 $ 2,502 $ 161
XML 64 R48.htm IDEA: XBRL DOCUMENT v3.24.0.1
LEASES - Maturity of Operating Lease Liabilities (Details)
$ in Thousands
Dec. 31, 2023
USD ($)
LEASES  
2024 $ 1,663
2025 1,611
2026 1,355
2027 1,294
2028 929
2029 and thereafter 63
Total future minimum lease payments 6,915
Less: Interest (2) (729)
Present value of future minimum lease payments under operating lease liabilities (3) $ 6,186
XML 65 R49.htm IDEA: XBRL DOCUMENT v3.24.0.1
COMMITMENTS AND CONTINGENCIES (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2023
USD ($)
COMMITMENTS AND CONTINGENCIES  
Future Lease payments $ 6,915
Term of Product Warranty 90 days
Purchase Obligation, Total $ 26,200
Period over which the majority of purchase obligations become due 2 years
XML 66 R50.htm IDEA: XBRL DOCUMENT v3.24.0.1
STOCKHOLDERS EQUITY (Details) - USD ($)
$ / shares in Units, $ in Millions
12 Months Ended 21 Months Ended 31 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2023
Dec. 31, 2022
Apr. 11, 2022
Jun. 04, 2020
2020 Stock Repurchase Program              
Stock Repurchase Program, Authorized Amount             $ 25.0
Repurchase of common stock (shares)   218,858 251,212   470,070    
Repurchase of common stock, weighted-average price per share   $ 26.40 $ 18.01   $ 21.91    
Repurchases of common stock, cost   $ 5.8 $ 4.5   $ 10.3    
2022 Stock Repurchase Program              
Stock Repurchase Program, Authorized Amount           $ 35.0  
Repurchase of common stock (shares) 21,340 714,600   735,940      
Repurchase of common stock, weighted-average price per share $ 34.81 $ 23.36   $ 23.69      
Repurchases of common stock, cost $ 0.7 $ 16.7   $ 17.4      
XML 67 R51.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS - Narrative (Details) - USD ($)
12 Months Ended 270 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2023
Stock option vesting period 4 years      
Software Development        
Share-based Payment Arrangement, Amount Capitalized $ 100,000 $ 0 $ 0  
Restricted Stock Units (RSUs)        
Unrecognized Compensation $ 45,400,000     $ 45,400,000
Unrecognized Compensation Recognition Period 2 years 6 months      
Fair value of restricted stock units vested $ 32,786,000 22,676,000 $ 13,617,000  
401(k) Savings Plan        
Defined Contribution Plan, Employer Discretionary Contribution Amount $ 1,700,000 $ 1,600,000    
401(k) Savings Plan | Minimum        
Defined Contribution Plan, Percentage of Employee Gross Pay Match 50.00%      
401(k) Savings Plan | Maximum        
Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent 60.00%      
Defined Contribution Plan, Percentage of Employee Gross Pay Match 100.00%      
Defined Contribution Plan, Employer Matching Contribution, Percent of Match 4.00%      
Expired Stock Incentive Plans | Stock Grants and Awards        
Stock Incentive Plans, Common Shares Reserved for Future Issuance 3,500,000     3,500,000
Stock Incentive Plans, Cumulative Share Forfeitures, Expirations and Repurchases 500,000      
Stock Incentive Plans, Stock Option Awards Outstanding 0     0
2010 Employee Stock Purchase Plan        
Shares Issued During Period   5,203 108,623  
Weighted Average Purchase Price   $ 13.40 $ 9.53  
2010 and 2021 Employee Stock Purchase Plans        
Eligible Employee Contribution Rate, Percentage of Compensation 10.00%     10.00%
Eligible Employee Share Purchase Price, Percentage of Fair Market Value       85.00%
ESPP, Share Offering Period Duration       24 months
ESPP, Share Purchase Periods Within Each Offering Period       4
ESPP, Share Purchase Period Duration       6 months
ESPP, Purchase Plan Term       10 years
2011 Stock Incentive Plan        
Common Stock, Closing Share Price $ 32.14     $ 32.14
2011 Stock Incentive Plan | Employee Stock Option        
Stock Option Expiration Period 10 years      
Stock option vesting period 4 years      
Stock Incentive Plans, Stock Options and Awards Granted 0 0 0  
2011 Stock Incentive Plan | Stock Grants and Awards        
Stock Incentive Plans, Common Shares Reserved for Future Issuance 13,800,000     13,800,000
Stock Incentive Plans, Rate Decrease in Reserved Plan-Shares Pursuant to Awards Other Than Options or SARs (1.33)      
Number of additional common stock capital shares reserved for future issuance 14,300,000      
Stock Incentive Plans, Shares Available for Future Grant 3,700,000     3,700,000
2021 Employee Stock Purchase Plan        
Shares Issued During Period 223,608 182,083    
Weighted Average Purchase Price $ 17.14 $ 16.15    
ESPP, Unrecognized Compensation $ 3,000,000.0     $ 3,000,000.0
ESPP, Unrecognized Compensation Recognition Period 1 year 6 months      
Shares Available for Future Issuance 594,309     594,309
XML 68 R52.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) - 2021 Employee Stock Purchase Plan - $ / shares
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Expected life (in years) 1 year 3 months 1 year 3 months 1 year 3 months
Volatility 43.66% 48.73% 48.00%
Risk-free interest rate 5.15% 2.75% 0.11%
Expected dividend 0.00% 0.00% 0.00%
Weighted average fair value of purchase rights granted during the period $ 15.71 $ 10.00 $ 6.71
XML 69 R53.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) - Employee Benefit Plans - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Stock-based compensation expenses $ 21,484 $ 19,649 $ 12,931
Costs of Revenues      
Stock-based compensation expenses 4,169 2,974 2,563
Research and Development      
Stock-based compensation expenses 7,711 9,391 5,515
Selling, General, and Administrative      
Stock-based compensation expenses $ 9,604 $ 7,284 $ 4,853
XML 70 R54.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) - Employee Benefit Plans - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Options Outstanding, Beginning Balance 68    
Options Exercised (30)    
Options Outstanding, Ending Balance 38 68  
Options Vested and Expected to Vest 38    
Options Exercisable 37    
Options Outstanding, Weighted Average Exercise Price, Beginning Balance $ 16.11    
Options Exercised, Weighted Average Exercise Price 16.36    
Options Outstanding, Weighted Average Exercise Price, Ending Balance 15.92 $ 16.11  
Options Vested and Expected to Vest, Weighted Average Exercise Price 15.91    
Options Exercisable, Weighted Average Exercise Price $ 15.84    
Options Outstanding, Weighted Average Remaining Contractual Term 4 years 18 days    
Options Vested and Expected to Vest, Weighted Average Remaining Contractual Term 4 years 18 days    
Options Exercisable, Weighted Average Remaining Contractual Term 3 years 11 months 19 days    
Options Outstanding, Aggregate Intrinsic Value $ 619    
Options Vested and Expected to Vest, Aggregate Intrinsic Value 619    
Options Exercisable, Aggregate Intrinsic Value 599    
Intrinsic value of options exercised $ 630 $ 2,287 $ 2,972
XML 71 R55.htm IDEA: XBRL DOCUMENT v3.24.0.1
EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) - Restricted Stock Units (RSUs) - $ / shares
shares in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Non-vested RSUs, Opening Balance 2,124    
RSUs Granted 783    
RSUs Vested (882)    
RSUs Forfeited (30)    
Non-vested RSUs, Ending Balance 1,995 2,124  
Non-vested RSUs Opening, Weighted Average Grant Date Fair Value $ 21.29    
RSUs Granted, Weighted Average Grant Date Fair Value 43.46 $ 23.23 $ 19.43
RSUs Vested, Weighted Average Grant Date Fair Value 21.00    
RSUs Forfeited, Weighted Average Grant Date Fair Value 27.60    
Non-vested RSUs Ending, Weighted Average Grant Date Fair Value $ 30.03 $ 21.29  
XML 72 R56.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Narrative (Details) - USD ($)
$ in Thousands
12 Months Ended 36 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2023
Income (Loss) from Continuing Operations before Income Taxes, Domestic $ 3,200 $ (1,200) $ (19,700)  
Income (Loss) from Continuing Operations before Income Taxes, Foreign 1,700 1,700 $ 1,400  
Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent       21.00%
Deferred Tax Assets, Valuation Allowance, Total 64,152 59,215   $ 64,152
Net deferred tax asset   17    
California R&D Tax Credits        
Deferred Tax Assets, Valuation Allowance, Total 64,200 $ 59,200   64,200
U.S.        
Tax Credit Carryforward, Amount 23,700     23,700
U.S. | IRS        
Operating Loss Carryforwards, Total 7,200     7,200
U.S. | California Franchise Tax Board        
Operating Loss Carryforwards, Total 12,700     12,700
State and Local        
Tax Credit Carryforward, Amount $ 24,500     $ 24,500
XML 73 R57.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Income Tax Expense (Benefit) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Total income tax expense $ 1,764 $ 3,899 $ 3,171
U.S.      
Current (353) 1,210 (67)
Deferred 3 13 1,318
Foreign      
Current 453 577 237
Withholding 1,770 2,111 1,591
Deferred $ (109) $ (12) $ 92
XML 74 R58.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Income Tax Reconciliation (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
INCOME TAXES      
Federal statutory tax provision $ 1,016 $ 106 $ (3,847)
State tax provision (65) 949 239
Stock compensation expense (1,747) (898) (499)
Tax credits (3,214) (2,877) (2,676)
Foreign tax, net 1,859 2,195 1,653
Foreign-derived intangible income (FDII) deduction (1,612) (830)  
Change in valuation allowance 5,043 5,122 8,099
Section 162(m) Limitation 424 92  
Unrealized tax benefit reserve changes 99 136 (151)
Other (39) (96) 353
Total income tax expense $ 1,764 $ 3,899 $ 3,171
XML 75 R59.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Deferred Tax Assets (Details) - USD ($)
$ in Thousands
Dec. 31, 2023
Dec. 31, 2022
Deferred tax assets:    
Net operating loss carry forward $ 3,005 $ 3,861
Research and development and other credit carry forward 30,633 28,046
Foreign tax credit carry forward 7,611 11,764
Capitalized research and experimental expenses 20,403 10,069
Accruals deductible in different periods 4,037 7,713
Leases 1,282 1,623
Stock-based compensation 1,882 1,948
Total deferred tax assets 68,853 65,024
Less: valuation allowance (64,152) (59,215)
Deferred tax assets, net of valuation allowance 4,701 5,809
Deferred tax liabilities:    
Property and equipment, net (612) (540)
Operating lease right-of-use assets (1,266) (1,635)
Intangible assets (2,995) (3,617)
Deferred tax liabilities (4,873) (5,792)
Net deferred tax assets (liabilities):    
Net deferred tax asset   $ 17
Net deferred tax liability $ (172)  
XML 76 R60.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Unrecognized Tax Benefits (Details) - USD ($)
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
INCOME TAXES      
Unrecognized tax benefits accrued $ 700,000    
Unrecognized tax benefits (expense reversal) (15,000) $ (61,000) $ (89,000)
Unrecognized tax benefits, excluding interest 15,900,000    
Unrecognized tax benefits that would impact effective tax rate 2,000,000.0    
Unrecognized tax benefits, interest accrued 2,600,000    
Unrecognized tax benefits subject to full DTA valuation allowance $ 14,000,000.0    
XML 77 R61.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Unrecognized Tax Benefits Reconciliation (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
INCOME TAXES      
Gross unrecognized tax benefits, Beginning Balance $ 15,109 $ 14,743 $ 14,300
Increases in tax positions for current year 1,469 988 853
Increases in tax positions for prior years 91 0 1
Lapse in statute of limitations (732) (622) (411)
Gross unrecognized tax benefits, Ending Balance $ 15,937 $ 15,109 $ 14,743
XML 78 R62.htm IDEA: XBRL DOCUMENT v3.24.0.1
INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) - SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member] - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Balance, beginning $ 59,215 $ 51,586 $ 41,859
Charged to Expense 4,937 7,629 9,727
Balance, ending $ 64,152 $ 59,215 $ 51,586
XML 79 R63.htm IDEA: XBRL DOCUMENT v3.24.0.1
NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
NET INCOME (LOSS) PER SHARE      
Net loss $ 3,105 $ (3,429) $ (21,488)
Basic weighted average shares outstanding 38,015 37,309 37,138
Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under Employee Purchase Plan 922    
Diluted weighted average shares outstanding 38,937 37,309 37,138
Basic $ 0.08 $ (0.09) $ (0.58)
Diluted $ 0.08 $ (0.09) $ (0.58)
XML 80 R64.htm IDEA: XBRL DOCUMENT v3.24.0.1
NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) - shares
shares in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Antidilutive securities excluded from EPS 351 927 1,171
Outstanding Options      
Antidilutive securities excluded from EPS   56 170
Non-vested Restricted Stock Units      
Antidilutive securities excluded from EPS 351 787 968
Employee Stock Purchase Plan      
Antidilutive securities excluded from EPS   84 33
XML 81 R65.htm IDEA: XBRL DOCUMENT v3.24.0.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details)
12 Months Ended
Dec. 31, 2023
CUSTOMER AND GEOGRAPHIC INFORMATION  
Number of operating segments 1
Number of Reportable Segments 1
XML 82 R66.htm IDEA: XBRL DOCUMENT v3.24.0.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) - Customer Concentration Risk
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Revenue Benchmark | Customer A      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 35.00% 31.00% 17.00%
Revenue Benchmark | Customer B      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage)   10.00%  
Revenue Benchmark | Customer D      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage)     10.00%
Receivables Benchmark | Customer A      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 39.00% 29.00%  
Receivables Benchmark | Customer B      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage)   12.00%  
Receivables Benchmark | Customer C      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage)   12.00%  
Receivables Benchmark | Customer G      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 11.00%    
XML 83 R67.htm IDEA: XBRL DOCUMENT v3.24.0.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Revenues from External Customers and Long-Lived Assets [Line Items]      
Revenues $ 165,835 $ 148,549 $ 111,060
Geographic Concentration Risk | Revenue Benchmark      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Revenues $ 165,835 $ 148,549 $ 111,060
Percentage of Revenues 100.00% 100.00% 100.00%
Geographic Concentration Risk | Revenue Benchmark | United States      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Revenues $ 92,798 $ 73,625 $ 50,374
Percentage of Revenues 56.00% 50.00% 45.00%
Geographic Concentration Risk | Revenue Benchmark | China      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Revenues $ 26,488 $ 24,494 $ 14,267
Percentage of Revenues 16.00% 16.00% 13.00%
Geographic Concentration Risk | Revenue Benchmark | JAPAN      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Revenues $ 10,465 $ 13,916 $ 11,097
Percentage of Revenues 6.00% 9.00% 10.00%
Geographic Concentration Risk | Revenue Benchmark | Rest of the World      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Revenues $ 36,084 $ 36,514 $ 35,322
Percentage of Revenues 22.00% 25.00% 32.00%
XML 84 R68.htm IDEA: XBRL DOCUMENT v3.24.0.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) - USD ($)
$ in Thousands
Dec. 31, 2023
Dec. 31, 2022
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net $ 46,981 $ 46,176
United States    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net 45,619 44,730
Rest of the World    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net $ 1,362 $ 1,446
XML 85 R69.htm IDEA: XBRL DOCUMENT v3.24.0.1
FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) - USD ($)
$ in Thousands
Dec. 31, 2023
Dec. 31, 2022
Assets measured at fair value, total $ 120,354 $ 97,285
Quoted Prices in Active Markets for Identical Assets (level 1)    
Assets measured at fair value, total 120,354 97,285
Money Market Mutual Funds    
Cash equivalents 83,810 75,738
Money Market Mutual Funds | Quoted Prices in Active Markets for Identical Assets (level 1)    
Cash equivalents 83,810 75,738
U.S. Government Securities    
Cash equivalents   1,990
Short-term investments (available-for-sale debt securities) 36,544 [1] 19,557
U.S. Government Securities | Quoted Prices in Active Markets for Identical Assets (level 1)    
Cash equivalents   1,990
Short-term investments (available-for-sale debt securities) $ 36,544 [1] $ 19,557
[1] The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022.
XML 86 R70.htm IDEA: XBRL DOCUMENT v3.24.0.1
FAIR VALUE MEASUREMENTS - Other (Details) - USD ($)
$ in Millions
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
FAIR VALUE MEASUREMENTS      
Interest income from cash, cash equivalents and short-term investments $ 5.5 $ 1.5 $ 0.1
XML 87 R71.htm IDEA: XBRL DOCUMENT v3.24.0.1
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) - Advantest America, Inc. - USD ($)
1 Months Ended 12 Months Ended
Jul. 31, 2020
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Related party receivables   $ 0 $ 300,000  
Analytics        
Related party revenue   9,000,000.0 10,300,000 $ 10,600,000
Related party deferred revenue   $ 9,400,000 $ 7,100,000  
Securities Purchase Agreement        
Common stock shares issued 3,306,924      
Proceeds from Issuance of Common Stock $ 65,200,000      
Term of cloud-based subscription for Exensio analytics software 5 years      
XML 88 R72.htm IDEA: XBRL DOCUMENT v3.24.0.1
BUSINESS COMBINATION - Narrative (Details) - Lantern Machinery Analytics, Inc.
$ in Millions
Jul. 05, 2023
USD ($)
Business Acquisition [Line Items]  
Equity interest acquired in business combination 100.00%
Consideration to acquire business, net of cash acquired $ 1.8
XML 89 R73.htm IDEA: XBRL DOCUMENT v3.24.0.1
BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) - USD ($)
$ in Thousands
Dec. 31, 2023
Jul. 05, 2023
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Assets          
Goodwill $ 15,029   $ 14,123 $ 14,123 $ 15,774
Lantern Machinery Analytics, Inc.          
Assets          
Cash assumed   $ 265      
Fair value of tangible assets (including cash of $265)   450      
Goodwill   895      
Total assets acquired   2,455      
Liabilities          
Deferred tax liabilities   294      
Accounts payable and accrued expenses   73      
Total liabilities assumed   367      
Total purchase price allocation   2,088      
Lantern Machinery Analytics, Inc. | Developed Technology          
Assets          
Fair value of intangible assets   $ 1,010      
Intangible asset amortization period   8 years      
Lantern Machinery Analytics, Inc. | Customer Relationships          
Assets          
Fair value of intangible assets   $ 100      
Intangible asset amortization period   6 years      
XML 90 R74.htm IDEA: XBRL DOCUMENT v3.24.0.1
Pay vs Performance Disclosure - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Pay vs Performance Disclosure      
Net Income (Loss) $ 3,105 $ (3,429) $ (21,488)
XML 91 R75.htm IDEA: XBRL DOCUMENT v3.24.0.1
Insider Trading Arrangements
12 Months Ended
Dec. 31, 2023
Trading Arrangements, by Individual  
Rule 10b5-1 Arrangement Adopted false
Non-Rule 10b5-1 Arrangement Adopted false
Rule 10b5-1 Arrangement Terminated false
Non-Rule 10b5-1 Arrangement Terminated false
EXCEL 93 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( #J"6U@'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " Z@EM8PXA1)N\ K @ $0 &1O8U!R;W!S+V-O&ULS9+/ M:L,P#(=?9?B>*''*"B;U9:6G#08K;.QF;+4UB_]@:R1]^R59FS*V!]C1TL^? M/H%:'84."9]3B)C(8KX;7.>ST''#3D11 &1]0J=R.2;\V#R$Y!2-SW2$J/2' M.B+PJKH'AZ2,(@43L(@+D_"V@6XES]$SMW@%V20[9+JN_[LF_FW+A##6]/CR_SNH7U MF937./[*5M YXH9=)[\V#]O]CDE>\551\8*O][P6]5HTJ_?)]8??3=@%8P_V M'QM?!64+O^Y"?@%02P,$% @ .H);6)E&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R M> +]O6N[!3+ MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,! M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2 MBW A(5M>5 TR M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$ MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH] M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2.FJW"$2M"/F(9 M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+ MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+ M.7\N?<^E[[GT/:'2MSAD6R4)RU3393>* M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.WF)&Y M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_# M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0 MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_ M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]! MU4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04 M" Z@EM8T=4'YJ$' .,@ & 'AL+W=O$'G9 M7S_Q8C"=$+"3?TELS/PH!$5[TMY[OW@T'D;G&( MHE.ZPT1\LJ8L1%R\99M!M&,8>6E1& R@89P-0N23WN0RW;9DDTL:\\ G>,E M%(+9EX-RA4/#_$)/(I 0RO MKWI3\_UL:"0%Z1Y??/P<';P&R:6L*/V>O%EX5STC.2,<8)\(V#H)$ M29S'W[EHKSAF4GCX>J\^3R]>7,P*1=BFP5??X]NKWK@'/+Q&<< ?Z/-O.+^@ M4:+GTB!*_X+G;-_160^X<<1IF!>+,PA]DOU'+SF(@P++JBF >0'\H< 8'5MF"8%PQ3,MFEI!QFB*/))://@"5["[7D10HSK1:7[Y/DOCNN"'(,NZ? ,D\ -* E M.2%;73['JU, K;1\*"F?J<&_R\T_FF?&+#)9.L9DFL0K(80%RJ%(O03Z^[K , MF[K<-/H?97R455WY:!*K\!D5?$;M^$P)B5$ 'O".,BX#I=;A+);AM95574%I M$JN .BM G;4#M<3,ITFG]( 88Z5MJD%I/U+5#E7*^J[0-(E5H)T7T,Y;]CZ& MA#E(OT/J6YA::XV"2-K$E&5=:6D2J] :%[3&RBO,Q_FY'V!P%X&6VX+8A+F>B%J9%&:#^NQ&AD]=U)6?+K4JP -_;+8!^(A>P,(3 YN_]MW,&M=WV 9)..J; MYX9IG4F[K+JX,SU-:E5ZL*0'V]";>IY0CT[V+\"MV _<$WF;4TO"\6@,9AC< M(F"S^!]P'3QYIU*02IW.(#6I54&6ZN;_@+23=Z(#/])G:39HD'/$""KX M!8@A*3JM:4"76A5=F0=,M:/_$5TQ^"T9??*)*V^$:DU[*L6F-23H4JMB*V." MJ?;W/V);THB+N/"'OZO_ME K7HR,D2'EIC4SZ%*KC!' MV:GN$ -/*)"G>K5N9Y['B!)FF25,=0@0V=3SR08XK^&*!E*,C2G"D5+2FAQT MJ55G5\OH -7F?M_,P,V+NT5D@VLC5X/0W=2937^7SM!J30JZU*J\RJ0 6R6% MKS@(^M^)\&6BHZ)(C' >6$11+!_B&C3OJ!2;UHB@2ZV*K8P(L%5$^$(#$441 MRV9#F/0)0X-2#2RM,4"76A56&0-@JQA@QXPEDVS9S%HZE E3&\NAJ16_85F5 MK:[J3.T8"0"6"0"V2@ +PC'+'C0F$[EHCU%*3:U81TUK -"E5J56!@#8*@"D MW1'8(C-M*)-ZC@:=6\3$=\?4=;$0$C)>)BGEIS4(Z%*K\BN# %3[^)R?$Z(@ M -=Q)#Z.Y#U4K5,[#:ZNZTSK&(D EHD JLU\3NLFQ&R3#&B_"@6^%1DJW"$B M;W;_\^F!NJXSMF-$ UA& Z@V] M[_@"FL>=SRL"4CH[.0_01DI-K5?W M5$]=UAG:,?P_+/T_5-OWXB'5W">(N+Z(HNFD4+KMAK%T8EQ\-61+4_Y,4/XE M9:D^3'T+U!H3=*E5ERV4,<%J]83!V0K?J^JN#3*UL-1UG559X]'8')L7Q37F((X1!:R#]4+MHH 8 MLY@8P!;$PR_@(Y;W/;54,@ED0N/"E*V#LM7%G9O/,:* 548!2VWJ M*SMC.X;EMTK+;[5<,I1SRU<.S<5FJ?-OD)M_DQ+3:OMUJ56)E;;?:KE>Z+"E MU?-J>"!0L[I*7=:9V#$OD)W-XNI9BT>GQ=:E5, MI<>WU.9[CVGNLQ L9E)2:@5HG$LI:37ONM2J2V5+\SY4N^X]I>1Y7-TRXP8) M!Q'P@4;X!-@H\->4$5^ZID MTWD%K58?/SA80)],0*0_1(B FZR.RM;2%UN+ M'SM,TR7^@W+W[)<2GU R?Q&! *]%J7%Z+KZ16/;C@^P-I[MT.?Z*BG&2_?D?)D6218A*T7Q))/IZ>.Q[O>4B= MW KYK=IRKM!=D9?5Z6RKU.[U'7YS34 QJ+?S)^6PVND0[E M6HAO^N;]^G3F:40\YZG2+AC\V_-SGN?:$^#X?G ZZ]ZI!PZO'[S_T00/P5RS MBI^+_-]LK;:GLWB&UGS#ZEQ]%K=_\4- @?:7BKQJ_J+;@ZTW0VE=*5$2I ^AA &T";9$U85TPQ58G4MPBJ:W!F[YHK3Q_>7YQ]>7>!WIY]./MX_@Y=_?7NW9_HQU8RD]G ML'@J+O=\MOKU%QQZ;VS1_21G1['2+E;J\KXZ9]46P:RA5%_P[W6V9SD$;YW% MUE74N-(-8+]*XB2*3Y;[83BF%<9)2/S.[ BHWP'UG4"OMD*JA>*R@&+;\TH5 M4RA;/^'@_30,?'^$TK3"21!$=I!!!S)P@CQ+4U$#+.A@*8=,7N=\CDKHMF*# M6 X]D94I1]!=42KY.E,H%U!CUB@" Y_O)]XX"HL5P>%$JL,NBM 9Q:7D.Y:M M$;\#-@!X37T(M>4 ^VAIV'"'9EXC7R_+(]P6*^*%U(X[ZG!'3MQ?A&+Y$R!& MEJF/8G]MOI0FZJQ(8U-HLYHG0,U;3R M/4B['6G2(4V<2#\!3J:R\@;E')@024UY"[%9U'#39G<2=F("2D@X0FT:A9Y' M[*"QUS.6YX3]IQ#KVRS/K33DF7,:>"09 ;.9^9A,E"<>D"EV0GM?*E;>9- 5 M'LO?P=$QT)!X8Z 6L]@+@@F@/0%B)^< HVXXK*(U4NSN4:C$ C4: S6-IKH4 M[JD+N[GK4].22E$N'E_S!U?'JYG@\4*RF(6Q/Y7/GKNPF[S:SN1 9[(123Q, MQRO&9A?%880G /:\A8,G29X\8]=9GJF,VW4/=O+?T8+L9B%B3^%O:P3:L@ MB*?604]Y^'F<-\ *^YV'"'8@16$JK.A-4L.!23 6*R 8.WK24Q]Q4U_7MB7? M\[)^*F9BTAT)HF!<*3:ST,/)!.J>%8F;%=\"64/&*[V)Y'&.+%8!0F="J'G5.+>#)KRY#&TYFZ.1(9$L5CAQ)N0**0G0^(F MP[:6'T-HX3G8W!O+S6(6A\%4I^CYD+CY\%P41=9N_-LS"U'J6N!EJOOSRX]" M<13^;@7N=&Q7&LAZ5O/CCHZ#[PF5Q$Z)=J5$^FTK\C67U6_-SE'=V\^FG,3\ M[,.IG^3M..J>D(F;D"_E Z=5.OXY>N&]\CP/!]"Y)-JSO.9S%,SA$:JV3.K# MBEIMA=3$ 5L6\? TJZI.C=2J@GW8&BK'FCXGH.>4RH\[.C[2ZW4 =>L O4Z@ M7SHR%GGVE+T9Y>J5!W4KC[/U.M/, HU/'W@M,FC5;)=!([2"-$6$ M'U&2!&.D%CL_\O%$BZ:]W*"/R T)G%?+^W9B$5/0 "LU1QC/_=!K$@Z7.":' M67E"WDVQL< ^3D5"W(AD"/6QH8%LF^59_M-KSYBC7BMQ4%PM"X[$( ML9H%D[![%4+=*J3E]1-5E8@/C&PO=V]R:W-H965T&ULK99K;YLP%(;_BL6F MJ96Z< V0+D%*DTZMU+51DVV?77""5<#,-DF[7S\;"*,))0G;E^#+N;R/S2%G MN"'TF84(A5PNJ-XPA2LT M1_Q[.J-BIE91 ARCA&&2 (J6(V6L7T[TW"&W^('1AM7&0*(\$?(L)[?!2-&D M(A0AG\L04#S6:(*B2$82.GZ5094JIW2LC[?1O^;P N8),C0AT4\<\'"DN H( MT!)F$7\DFQM4 O5E/)]$+/\%F\+6$<9^QCB)2V>A(,9)\80OY4'4''3K'0>C M=#".=3!+!S,'+93E6%/(H3>D9 .HM!;1Y" _F]Q;T.!$7N.<4[&+A1_W)@_W M\X>[V^EX<3T%5^.[\?WD&LQOKJ\7.;II]'$5@2SFH/) KQD*?312!$5QA!=(\7[]$&WM2]-I/\IV!MN ML^(VVZ)[,U$[B%(4 /'"^<\7((44K&&4(7 F+C@@400I RFBQ;6?-YU&D<+- M4\BOQ]K3>IJFZ?VANJZ#MDKI"&I5H-9IH.5;##,>$HI_BPT)7*PV4A;Q[1IE M7T#N(+:*Z(C8KQ#[G1 Q8]EAO/X>WBY;:_:.;';%9G=B$_]/C(LO$$Y6AP#M M@X"M$CH".A6@TPHX(7$L_MS^H0J=(ZNP54='2K>B=$^@/+D$W;TK=+3]&FR5 MT!%P4 $.3@<\K@ '>W#6P+$&.W -5JZMFY75&]6Z]K<9T$[7?4)QE>'KNDS7 M<'?5-YDYEJF_([_6R^BM\A>BD649?=T!."1:WU.CZY:]^SXUFNFNL2-:K?5B MLA'^!ND*)PQ$:"G\M)XCOI^TZ"V+"2=IWIX]$2Z:O7P8BGX<46D@]I>$\.U$ M=GQ5A^_] 5!+ P04 " Z@EM856-59[4& #;( & 'AL+W=OQT0U=LP=27S9V MI\G>2Q2G+),QSY!@3V>CX)QO%OY72T_\W<\/#[B_>/!7D@\T@EF_/D6QRI]=DH&*&( M/=%MHN[Y\R=6$7)S?TN>R.)?]%QAK1%:;J7B:64,(TCCK/RD/ZI '!A@K\> M5 :D;>#T&-B5@?U: Z+^SS*KF;8<\-;/=T MLCN,B ;F!*XS;<)"#0QCR[/VL 8+=\_"-4[\G$LE$2PJ=/D#*K[L20%WR!08 MTEDXD+-&\+Q]\#QC"I3!XT_&+"A=> ?SYF*_/;OS+LKQIY;?R@$-RL%36Y\" M_IZ%;V1Q#W&A8KDNLB ")@G?0/]5.C)^EXSEVUZ+C ;E8=)"A5V48_M!3SX' M>S*!D(3??$ID9BYRD7*OY%"TT#*4>7_VYCP2)HC(IFJ_@Q88A*R90V M":>=(6$2M N1#N1;+7(ZD.OJN6&KU@J6D=TW$2LVCOASEC?Z'4VV+">Y$2!# MA?I93"(#PKV):?;_U@HUJ+>P\M9("!STK%I\H*^P,697F6+PZZH(#E=K)A K M:SAZ'V=+GK(/1RAC^G#ASI#&KD5:DSW7P8CKD59.Z&!>+T%2$R2_(9B30.\3 M+N4'],A@+\)0R0PI^N.%K98?Z:[4P&L771VJD_ :T!AF#_L]]&K)A8WRY(7> M[YC8FI^'+K46PF8Q= /[R/APNK14',TZL-I52(,: MVP[I,-' " BGH(=*+8BP61'=%BL)J,#27N?;T!UK4M,*)#RH0AK46SB4MV9 M:Y&$S2H)=M&P1\Y@SRD$RY8_$;3A3"9E)Z/1/[ 5S:NZ+(I57O5A16A#W%4_ M,-_M[.F"QM@YD$A52#2P@/2UL5I)8;.4FJ^A%>?I@K:98#2)?TE%XKHJ8 M8, ;WBF.Z([&"86V/8:Z-I84^G?$'A62# (5JYC]/B!=!84[JZF+:8M*#01" MUA.*6H=ALQ KMT=S:;>)V4[:+&SK0]DZ$.1HA->OH0J;47L8P%KU.[$6BN\AA&6^K( MH%)K4&_A4-Z:H:PE&3%+L@LJXZ4V9J7=]&#RK&.KG0D:U!A@[=:GA[D]G8_4 M>HN8]588)UO5/ARKQD]>-?XN2CM^+:QW_+6@(N9#K&_%42Q45[J#K1_48WY3Y@YZ$#>HM',I;,_:U "1F =B?^1K1%UB= M/J6#^78W=70P;/>E3BWZB%$#&5/?U1"8VGZ;@ :F(Z"#]1.H118QBZSSC"8_ M5;S4=E:S[9OS=DAOX5#>FG&K%1OQ___!-S&JO3?';4AOX5#>FG&KY1UYC;PS MG7M6#AH'UBZQ.J=..IQM.4%['Z[!36T']VAV4FLZ8M9T^3'*2A2J_.^8)1&Z MI^E&2\CHY\W9,*2W<"AOSM,UZ\?>K MJ'+07!V^VSZHT\$"JWW@%>I@ON>TU]#DX-8W96)5W)Y+D%/;3)4WI/NW^QOZ M\^)>NO7^ I^$Y3U[[::\]K^F8A5G$B7L"5Q:QS[T15'>I)3%MW(I1.4\KE=9>3Y:5M7FW612SI=BG91O\XW(ZO_K-XFY2;@J1+':=UJL)=EU_LD[2;'1QMOOMJK@XR[?5*LW$5>&4V_4Z*;Y_ M$*O\X7R$1C]^^)S>+:OFA\G%V2:Y$]>B^K*Y*NJMR8&R2-SYZ MC]YQBIL.NQ9_I.*A//KN-+OR-<^_-1L?%^;XJ=W^=A[:M.W+FV[+*UVWGVH-UFNT_D\=V((XZ(-+3 ;<=L-(!!ST= M2-N!J!:\G@ZT[4!5"WW[X+4=/*4#Z7/);SOX3]WIH.T0[(*U']U=:**D2B[. MBOS!*9K6-:WYLHOOKG<=D31K4O&Z*NK_IG6_ZF)V^?OUY:>/T?N;.'*N;^J/ MW^+?;ZZ=2U9O7<[^_>OEIRC^?.W$__GR\>9_SMCY>O-A[PWN\R9?K^O\O*[R^3=#[YF]]_O% M(FWR.UDY5TFZ&->^S))-6B4K RNRLV[JX[K<%M][?8E/^#*?;]?;55*)A1.) MVW2>5@8(>SKDLEJ*PJD'J)YQELU4<"^<3WEI&F1^8M=R;40F==8<4@@7QSL8M>4 7MHL(,V$^7]A7\V MN3^.LMZ"N@$*B-PLTIN-0Q\C3VX6&YH%/B8*C1F:8:RPN-X($^JYW0Y( TD. M TF&#N2;_>'U\Y-&=$_WC[PB_M1SE5&U^M"<\=Z5FV0NSD=U@I6BN!>CBW_^ M _GNOTP'CVXR]%2+,:1%!@GC0# IVO00;6J-]F>QV1;S97WZ=/);9[Z?\ M6>:#E35PMV>0L(CJ!PSUL')8Q9 F&22,4RV%9?^EX'J'X'K/#.[AD#9%V=-] MP1Y2#F"KY:'1TRUJ!F-(@PP2QH%@4HC]0XA]:X@_EN6VF:2U ->7&_,\R]IK M[(>T6CIBO5GEWX5H6QQR8U-/\Z8\L%H>>K3[6HB12Y0S6@1I,8:$,4@8/S$6 M4B($AT0(7B41K#-#8' \5"8&JYM#)P9(6 P)8Y P#@23$F=Z2)PI7.(\BF*> M[D\G^:;YW7A;934X=.*8ZCD7$N7B+H*T&$/"&"2,GQ@+*?[A(?[A2\;?.E^$ M^GD=J?=75N^&SA>0L!@2QB!A' @FY0MR.Y'&M6;,'Z*LFOO#.@EJ?%6D\T82 MV"?--DLK>TZT\..DH-- 20J[!T.S I06@](8*(U#T>3,.)+OD#4SKMHKB;+) MC>J':-4[G53)X^[+,E\MZH2J>V7.?7]R&;/)ZM#0",@:1%+4TZ8;I8S1=(DPR4QJ%H M7S<%(,6S;7,1F1ELLLB\=A\%\9\@-3R9DC7(A$.B2)F1*!& M8U : Z7QDP,BA[K3+9%=N)1K#VE6AULX;U9YV7/4@TJ7H+0(E!8C@Y2($9U. ME1*#J=V4*'?SW$C#!/>= 3II$MFUR3A;V(HUR!A$[V2U!NE2(L7$]4/U -11 M8^32P%4+-@;@. P"C-3A-+1#KD_5\31(G2CTICWJ#^IT0&07 M7Q[*O9F =6 M5Z1(0)&J^=I=&)SV)AG,=57-'M0H Z5Q*)H<\T[R0W;-;UCQQ@X;/ 6"ZGPM M32EXTD M H!:9: TCG1U5-D'.<=4S1@1J,P:E,5 :/S4>\J*6 M3FO#=JWM59Q=<7O),@_692NDK?BR^S=X_H"D MQ: T!DKC4#0Y;SI)#=LEM;]6[,&Z^N-K%4"[!X,S U1: Z4Q4!J'HLF9T2EP MV*[ O7ZQQ^[0X!,/J(B'#2L0?4^[]P$URD!I'!NT/FD7Y$3II#YLE_K^QF*/ MW;/!&0.ZZ!$;I$#JJ_D"NNP1E,:A:'):=8HGMBN>SRGVV)&#\\&@8(8^5;5F M4*,Q*(V!TOC) 9%#W0F=V"YT#BSVV&F#HPRJ=(+28FS0' G%2@8R4S-$U9LL M;FI&0]13F\"=@(GM N:)6@\VQG!ZLM:#=;&1TH"JS]Q$!M08$1*H2U=C W", M7*3=RS!30ZP]F9W?3@$.HF58LQJ$4&2N-0-#G0G1A' M ,6X@64>N^G!1[XN[9$I4:;M"-1F#$ICH#1^:CSDA#AZYM:NLKU*F8?H8AS& M5)TG8)_,!17C0&D,E,:A:'("=6(\DB#]'E*O4QK)G=O<&3!R0M!J4Q4!J'HLEITREIQ*ZD M_;4:#]%%'U]]5\7,[L'@S !5U$!I#)3&H6AR9G3"&[$+;Z]?X[$[-/BL ZK= M$<,JQ5!?I AJE('2.#%(?&'O&D7227S$+O']C34>NV>#,P9T/20Q*(">^@ 8 MJ$D&2N-0-#FM.J&3V(7.Y]1X[,C!^6!ZAMGSU/5)H$9C4!H#I?&3 R*_AZC3 M-ZE=WQQ8X['3AD89E!:!TF*JBXT$J<^I,$,KY"N:*C>AL#_M"5VG6U*[;GFB MOD.,\=,?CE7K.X8F-" X5.L[AG9C1$FHO_[)T#"I'9Y\*GE'?/ FA2JVBUU<$&7XQF,(D1]]1ULH$89*(U#T?8QGQR] M!+-YB^IO27&7UG?8*W%;X]VW07W'5^Q?3+K?J/+-[KV87_.JRM>[KTN1+$31 M-*C_?YOGU8^-YE6;A]?#7OP?4$L#!!0 ( #J"6UC=]V@"FPH '@U 8 M >&PO=V]R:W-H965T&ULK9MM;]LX$L>_BN!;'%I@78L/ M>LHE 5*KQ2ZP;8*F>WW-R'2LJRQZ*=E)]M,?*^$WB1]&8_W)X?#' M(77](N3/:L%Y[;TNB[*Z&2WJ>G4UF539@B]9]4&L>*F^F0NY9+5Z*Y\GU4IR M-FLN6A83[/OA9,GRNT@#K"QJ+_^;\ MI=I[[6DI3T+\U&]^G]V,?'U'O.!9K5TP]6_#I[PHM"=U'W]U3D>[W]07[K_> M>O_??^4 M>H_?U;\OG[Y^?_3N/WO3N\??O,]_W/]X],;>GX^I]^Z7]]XO7EYZWQ=B7;%R M5EU/:G4/VM,DZW[O8_M[>.#W$/:^B+)>5-ZG]C$!;FAZ^N48N#P]_7+D4$-V_4$:?V2H/UBU\.9J-%;>7(JEIP:X M9'5>/K*RPT?W?[[7RCT_P,UV26= MI1=R=M"<=->ZB!H7.D]N;@GR@^O)9K]) M;*,QH3@YM$H!*XQH'._,#E0$.Q6!,RCN9O]3F4!EV[KR:J'2;2;*+"^X5YKR M]-?ZPTR'T4J*3:X&F??TYKU;5^I%7KX_/:*"2T;4)9VE%W)VT!?AKB]"9T2E M7#G-BRC8( &T:I;11B-!!:T4Y. MY)3S6(OLYUC/G#-/Q9'"B:J5QE_U:PXIBJS[T#%.#4FV%4I":@X8P HG!,&B MXIVHV"GJ;J]+/#%7@?[7.I=-_->L?,Z?U-!A5<5K< *+K5LB08 ,=8"1U00I M8$0(A;4E.VW)6=HR4:FLD+%57K,B_UN)5"E /-4*^52BV/!RS95-64LUVD&Y M"=2;V)!K&Z$@\ VYME$8#:A%?L\G_M$,SK),\JW@65YE8JU3H7I?+51KC&LN MEZIO-[Q+DB"6^-;=C1&*S*@%S>+(4 I:#4G=0S'DE/I#YC4?S\1+J2%KPPK5 M=4JP2N,J9==O3;;A*I)76B2HT>G_W)1]46]IY^U@,*"8#+09[ML,'TG'>6'=^45@# M?A.% ^D8]12&J)MJ%RKM\DJ']1Y^-!FXB>HB9T]Y,8PBR$EY9P?V);VEE_)V MV+0]&B(G[=S>95TV5%3"\PU3\C6P^&D?$1/0I9!9$=HJWS1 BX8#" M'K>0F[?N=^%?< 5=GM1UB;&8CQ6?N[1!G&2M42"K&"-3&6!%!V>OGKF0&[J: M-.:5HAR?T%4V&8TI"DTJ!LPP#F)3#^ ,D<&NZD$+'2&M[6Y 6K]?*0EWR>PSV% =)1BPXS M;P!F481-0 2L$ X'(@_WW(3=W+05V">+O?D$%&6S"$*^*0DP"B-S, %6XY . M+,IPCS7X1*SI$!Z6 3 +,8?'%+!220&;.FRKP,=#.GJVP6ZV^9@7ZJ/G9N;G MKQFO*DVTNH#Q7#:+%:<^@']P;"Y- "L4!Y8^B*4(B08$]F2#W04F,Y\?BSP* MW 8V)Y\I9(9]4WH*>@OBH0'5,P5V,\57J(($U8U B38;(!KZUO"RS0C&)MVF M@!G%=("Y<0\:.#RKS-HN'D\HBF$GP)Q+HA?UEE[*VV&;]FB#W6CS($7&^:QK MT26KU[)IQR8O5ZS@S=@_?<6.;4ZA)+8#"<"9 6F70K91#S ML);9@E5GRP.P)4@":WT'VL7$PCK(#H5Q$ X)[$$(NT'HL&-U3YY7EL! ]2,]; MQ,U;S2KM38OPYD)ZBKB\52?X3+T /,7F>@TRLH(?,B+Q0-V"]!A&W!CVL"?K MI-HQ@8I-9J%T>I)5ZKZW?QK#>QN1;G1[V.OBIW6EOE7PUE32JUPO(7YM-IIT M!5K/I=L2.]@H$'O%YNIGZKZ?LW<=@1\E?C# 1J0'/G)\1]&QNP:!!-@F$.'% M26+N,P!V,0T2:Z@#[F@8#N MZ4F0N'<>34Z:YR4KLU.VHR^Z>WA1;^FEO!VV M:<^>Y%B1:W\ZY:]<9GF;8BJ]&:= 6P\O.&J@S41S0008*0XP-Q,AJX0,L +I M(9"< X%\N2K$&^>=LMTLL2H8N%=*;$8C"G5,@8"5CZPI > ]GP0# GO:(T=H MKTV+53OUZ4V'71VEVWNO%DPJQ;RN"]YD4-6S>AK4,^(+D_"I&0+06T+-@-!%+PI=%_667LK;8?OVT$7=T-4$4;.W M.%M+/3+TJO6-,]G/XV"+VI1$HMB.CX .V)B[J)JU>FE;!E MNV>5EUFQGK7SF9:ZY$S'TY9'Q'EE:PJP5&AM'D-6$;5&$'0PC Z@">VYC,;_ M= "5HFS&T-'AXR2_LX?/);VEE_)VV+H]^-&C)4"@IM.=.>BVWEBW#9?KT_R' M6Z<'WY^\34>A4V?FTG<*6!'LF_ (^2)! D==T+-C<&1O=;91J,C;U MOVJI[1&76K*RZC;TFG71JCOGL/U>G%$T"VQ,M#;. 1MB5A%3P"@)!])1T--F MX*9-QX:8QV1>Z6_:D^W-&47]]L0S$ &P(4O,!5)GM'\"&P>^N7$&6 V><@IZ MZ@R.5 OA0;+?^ZJGFYV025ER M^=P\VE-Y35IHG^W8?;I[?.BN>6C&^/PCNDK;AX!Z-^TS25^85)A;J5:<*Y?^ MAT@1AFP?\VG?U&+5//CR).I:+)N7"\YF7&H#]?U&PO=V]R:W-H965T&ULS5U[;]M&MO\J1+9WD0"48ME)FS9M <=)NUZT:1 GN[A_4N1(FH8B M53[LJ)_^GM\Y9QZD*-GM/G"!HI'$X[3I MNMTW3Y^V^<9LLW9>[TQ%3U9UL\TZ^MJLG[:[QF0%O[0MGYZ?G7WY=)O9ZM'W MW_)O[YKOOZW[KK25>=+1ZY'][;]:;##T^__W:7K:J+O]I MBV[SW:,7CY+"K+*^[-[7=W\SNI_GF"^ORY;_G]S)V*]HQ;QONWJK+]/WK:WD MW^RSXB%ZX<79D1?.]85SAEL68BA?9UWV_;=-?9LW-U?OK]]]N/[E;?++#\FKCS?7;]__W!]=?GV0W)Y=?7+Q[O39LW=LM?7IR?G[V\JK>[K-KSM\7+I&[< WI1?WR2)KNFOK6%:?&AZ/.N M3;*J2$ %F].O],2N*U,D79V8[:Z^,PW-M,XJ^WO&"Y.::6J"!@NW9FOSNL(T MM!KF8674U)7-V\3D=;MO.[/%7#2LHDD).6-?D5:KF]LM987.]-VF-YNL2_#4.VM*0M^^EN?E;;; M XOTP#;#/9/>;WA/69F8UAF0E7I,R?JMHT=BJ[SL M"X.1N\::C@P /5UU=UE#F]QM]JW-:2%;=8810*#Q6-,0@(^54M?O'*$2,D<\ M>$TP$CERV^2][<+(*S]2,$4 "?)YF:W)VKXQP%NRR9H"4!">2)<*!YB*AG2; MNJC+>FW=;NC)BCA-4.(V.D]>9:UM@<1W$->J8Z0QFHBJA %;,(@K6V55;O$J M#>&U UI F"S/ZQX_"CT'D9.* !ZQ/&55*8EL3JV^P3H<$#SN+3DLNQ M$S[L-EE'^%H1*_!JM*>Z89BV'ODTWJ@0E#9;6A(2Y@&,+VR;ES68!R-IK]@% MEIY^*C?O*99@#?9NYNH2/K6K/J2-GIK&$(OJ0RA4TG"N200U=HN M2Z,H2@?TV&:T(L'%*D[EB)BEO@-KLI3GC2E(L@GI+8BPRDA1W69E;P:TRID9 MBD/\8RT#,)*ELQ0D $L5$IJ0="--R?#2?.NZ+NXLB0U/5%?K&399>-BQLH@ M8"/WSS18MLL^A^U5 P['N)+T#=%_6=JU6Y8\N_S3# YE 8! 5)E7"9PJ]NB9 MX>E[0DC3D9LM^ZJ*P'VDFDEH+T5KDDB01XI=]J3G"TN\WB2KIB8[LZG;L6QL ML[V^ 13A]\:*PC$VV5#8XS#O'(K5@*ZVZ]6LQ! %PE"(5@IU1EW8FV(?W[V/R/3 M[.5AS3[?!)^()U49/^EHSHOG1^?LZHZE674_1@/&8\"?@Z<:8XZ#?_$GP3^% MDV>+HY..(3\G^I^8Z?RK!\]$L<0-;?0MJ8ADL>!?5SUQ@(%")BXO1ZQ6U/1N M57?.96 G&YJ.\$OOUOQF:W(RJ!VKEK;?P:!."_Z'FKX21YE8WZ2Q%T(2"P\( MVG-=0W)UH/'&@RG(DNBPH9N-1 =\JTIT6I*]F13$>(TYM)CR]DF3>K>Q.8EV MUB9BCNHJVHVGPA*QA#<>J=J7)@)'9A75XY?R]HF(U#W$P<9DNUUIB:YGE1F;V<*11 M: C.SAJQ>EE"+&1*" &%RXB\X5\3;SL>5I_'[8)C ?+OB,_9 9W"EKB*# R] M1[Z>3%N0JB#:@>RJ#""N'O="LQ9#U3R5IA-UZ6;!^ &%&4D#H4_5C0/0E8%K M>(L5X9%J>#*&=M5W"#T"JSO_BXCI W8B]I6S\/SA3>SIX->;8.*O(Q,?ZYE@ MX1%$J@B4EF8J#MT"<1<)>D@HU*@5[_SK,XI\]HRFDOV5:A -[?HFW\ S)L00 MFB:]D8>MM6Y,)C%P5OE5E^1Q\;+\*ZPP?*^A%Q([:F1GD/0]Y@!QRL$'"_/D M!W8IPG-BT+XB.%A#L'+U?G [=/@0*> _XEK#QH=!00@G/C+CR.3(H6'6$/(0 MEDB/2[9@B_&_<_1 BGG)20B+L)#1*2I^YC00\D+0*':86JB,Y?61%Z@*9E!X M8V0L 5-G*3)GC=VIVT?ST[)049\,>[:$5QA6]YPCIZ5QAK;P$Y*W)Z*"H)*D MPVF?R6W,CS"BVP0KBTQR;.9SIX&_: #\1G[E)],IQC8P:\94$2<<6S=E.M!^ M&&&VU" ?PRV%D:;Q^0741HJ^9)M'? ++"#TEN0S$/]E>XP?B;XK0O'Y45UYG M]3['DGC"/T(7!46" M8-H<3'Y51\Z!> 2G8QOQ-8_(B(9=AE-_1J(N2=V ZA6[1[IKZWP3)D P1OYI MDNW(UGS6E$,D!)HK"1OP;H$XLEX&1^)HAAH.K-@4,0TUVF:WQ<5)Z42P>")* MHGU\\7S^/-F2)'#BY(M%^,8O?G$V7_@?U&6"7B+BH!(2HUVQ#HP[U!,I"-2= M:, 2H8SS4=\'K_URPI-WV1V75Y)$&.&PK\@"@I4U567 >,*?HAW#4#AIN3HT M).7N/;9AG+6E;QI]9,+EN MN=<0IR9+W6;9)9T7\V9 \BXN88-.2$ G"D!HG]^CQ"+E\""ZC M%!_IO-P8]L)&B.49(UY6K5'5UMLCD_KOC7XNJU/A M"]LDC8DTE"2ML62$#P=*<-/OCN2TQ"B[/*#8%B614L2JJ^A,UV1T>#K8 K3B M9BB3(V?2$-N7>S7AQ X"B:S!?F@>UG13S[EZ=7;Q4E2H6AE[&E7LN7+UG76B M.!./60?5?4O$;9]\X^?]__[O:P3AS$Y/[QW[2A)K4''W#?TG&1\SJU>K]B%O MOS)K6['9=;]<;;)F+6+M?B+:>8WL?GLC6C8:\DZD^8VD?Y/'BR>Q2M>G+(7N MI2^2%^3JAF_G\9?'YV=/1B/9CAQ[>;&(7UXL)EZ.1WS]90P'"]'YRWB&KR[& M,V!'EX5(M7>(IO2D5KV/,' >$+S,$&XM.Y'>D/@%YZ-B] MR#KQ0SC?R[9HUR#0<#-74_M>&0Z-X1W1 "E_N#>O M0T7H4@S3];A&Y-/WJ/"XTDYG\DV%@NR>?#(IA02WH %9X&^[/"OC&)RVL3M4 M=;-.?#<:7AA$"+[N24Y1E6W5&VW-8<7*93("))+1GZXH2?JD08'1Q;>#3P *(ZXI(EW9+/K?6L@Z]WC84NBA>$(/H MHW$7<84R7*W!6Q=-@K(O@":;*5-1/%0/4TXJ1 M-+0 ML4 DAZV%BDAKUK[..'S2DQ0<<4LR+5-PMB74'04-0#%BL*BDBJE"IMQA;9P, MF%X*KE4%]S4J,@[]##]AY.NM:F2SG6? $I8AN87PH\@:R6(@O850?(58FR8K MD71;#2)O[T_C 0#CW!\S*/=+;$GWELR$G"6+ MLQ2 ',R*=)&KM"00M:I(Q?6]XT07G/H<$_BD ?\\F5?01/LAHXT)I+Z,!&U- MLV J(#>WEB6ZE'.$'S48"PB<8! M%-BZLH;C2_8>A<"\!\Z!#Y?RT@DP L@IQU.!"SD;<.?RZEKJAR*"O^GSZSHE M.) +CJD4%T-*.PR0GIJVJ+S_Y:-O3G&] .,7!ZT)H&V:B;?D,TF;>I2GI!GC=>$9*/BFE,RK6@9 MLFMLBI@ZR*E!P&HI61$3NA4YV6)VHN5_&6&!,#GHICB)Q0;:QVJK@(^#?26K MD\XE-&8%X95I7)8N>'#R.S:D#,R?AVU:8-5MOT4_AHM1(3#JZOA94M]>X5ZN M=][SY:QEX5PD> XF6I]-D6B4AGZH4?G9>Y='M1$X%.4RQG/A%17K<+>22\>: MSZ;);0NE\4%2RY:;JE&/"#MK XBVNJU+^!8'KL!D-XAJ?2U.>$NQ(WYLIQ*9 M?@11JZJW-O>Y3-X#D*8M6N Z-QI=395: \=U [@"]4)S&!@25:7#],T<[EE9SL_&0,=-*YL,FBRD)K6H!O5_,)CE %P8&)Z8S(?^<%&*BJ. M'DZ QS53GP6;[JW-LQTYJY+%'L/"^\AY'U'$Y$$8])6YH%.&2RNACM-P19X0 M97KN:8L\TEB$XJ7)9UH;'S-'T4P(6N)0)8V:05>P]*W][$L K;BL/'G8J#B) MK=9T3 "ZW+LM:T%E>C?:@G@_/I!9B#!=LZ9Q$2V+MC& M0UM7W#DN'=/\,:^+03.Y]*&1%R+&-V2T#=Q#-'7'VPJ^\P&B%7.QD[97U2@W^?!@H20J!/9J0\NE0[DKS6GI&S(YD&] MN?JSXXO)/)'X&'T+F8ES1]PI,)5#$<[!I.]="Y2P4MP4/-WI..2X2 NQ\MT*M'PAQIAU^YVZ#BW. M?Q ?8(_E".#!E$&+I#@%4M9[@])\9586T"SKJM?VF'N:?)\@Z%ZZ)!9[RKP? ML,7&9(7[3H^)$[4;M2SKW!6 )[$;V3NACSFT$4J&MJTURQ_%C[ 2\<5M[?RS"])N?%+3_.K_4?0>/ M?&B&OY@,5I#*=-X]6#/9@_ (NC%'YH6AI: MMAM3EFQY?A2ES1->#O,$GG9^\#H:/$HJ_)?(F$KJ@$\)/8BD'&.S)DK5R6$; M2V^>V(P']PFBF'4&BN,$PO#D06"+,#&@ZRMG5*,4.([MH*$Q-[.QV/\1=G(, M>#];$8T9-:\8-5R,X^W#U'=&6J<0I'JSZ8+U0\+[K -#UMK..(KYEHG+]G[^B0UTU,&KL/2E M^!5RC,(G@="PPDV:WF&55*L4T(,S0M]6A@M*+3>\N2_BD_IAZN6A.Y.3VD"2 MHN$6>0=.37L?D=-7., FF6O=K>2/I!LX6O;4"18)F [I<-A WN+@'[:9QWZ9B$:_'+7_D@6LVH M4RK?JI\M;!N.<=NZ,+[W%LU3S0[)6"*:.[T2'_4*JO2V1FT.<4H: MY190-/3A&@J23:"Q'Q5>'7 [(-Z0?JSE?&;92$. MGM[E"!@;PO\0C(]VQ._%>XGV$;KBM<8E8F:DN%2$+IDV1!XQ;9GQ7-IO@->( M,F%Q[HVIEUQ]+Y(/#6O&O9X8)N:[-4(3Z0JY<"O/PT'5=A8[JAA'U(:G?#$)8>U(. +6!-G]<:G!>?D&MX[R/=; MJ=(]V+^ 5XEVRZ41NL-A\0;QL3LX@ =+T]T9#5CQUI)CV*,G4(6,\=EE./*N MQXL=KONACSG-8Y<7-57FX2^SN_:E;$L2L= SDMZ->HW<2'CHRAC:W1::AXGY M_N'/3$9'5M0_1TQ:2&,PE_JFMH"6J,J5FB0A-'E"Q>=BC[8IUZ[8A8PU5Z'7 MJ$MT;F^TJ&N6)$:;)V]KZ5[MF$$'(,,"9PVR)(P\E$]X:'PP.W5&1+N4.5_A MWY(,@]GZZA_).NV*:[G:4^I$=R)[Z@5!LZWBSC4F\@"&>6_]BNTQH'IP4)U4 MK>@2,QOD7AQEIY?'TY6%RXW8N[XC/[])QQ8MZ]&XHY%@J%X)87NRY*X'&+U1 M#>P""ENQOCA[@GUJ_W/JCU2/6L33.$4LA'5U$O3.(0M0J/?ZK;]@D)(;E?@Y_0#)?< M; $[E[(N>5$07A<\H@=TCL;S>#GTC3%:0EN* 8.#]^AIW=\B0_V! 5!=J/J MN0&6$R;B,EJ/P+I-#;,X J,/PV'QV?DX\:FB8I8.V_=J6 M#/1#-Q=<-[>+V;^PBUW92Z04CA4&2U -,[?AV9]<0(E!T>ZJ^FL*%(Y'A4M M^C@ VCD/0Y C\=J3E)L-=LPW.;,;?0BG.Q0,W[L 4S-S$"G:.$8.YR$'ZP\* M):$(-1R$\QZL*EG%N/HIYYQC.J;RW'GL2-12+)%&]T) E;NY=&Y75'=AC[^B M@B,X&@MW#RO)<,E53I;E7 Y"8/+]6\CDL^TJ[L.%%,]#K[R+5?LNZOW:RSRF MB!A/C3$KRTR:2>2PIQP:9&2$S Z.:?B++8:Y08XJV>1&ZVKJ M=<(G2H.!]>HN'ZB[H7!/S^XD>3!U7*%#_#=/?I2#P94_[R+' UF^01Z''X^% M+N!ZQ WH PNM('R^D(OX)V#_L^OKM3.3W/AGC<9K(L>M),O"+1/7T2T3<8Y) M6-7XXJUP6ZE7[[1Z 8644:(2OVN2V_KF6%L=;G% ,F11V/8B4Z)A_]#I,0"A M%<5Y,!?]@.R!;WMM(\]98Q"YFV;JY2'OK,H>N18-'BM?G3YXK3!HT:B8 *0Z MY.JF4P'*P;'[7K*6L':(8$5T=28'5)?B2C2G6 M)DXPXTB\],A%XAIUA"X0-^ M$#]?K20J/ W.O\3(:>3.9&5;#\Y7/11:;;;J!\U3DPQ+N.K)[NME,08:!5/P3@.$ M-MXT(I;>QA#W.Z"&([F1S$5ET%%V&K#<371,D3_@*NO=M#M>>KG7E <]:,H(5Y%%HKY"ZZ/1:]$F5,*]C6 K;MHS0&:=<.QIG#A*R>\:4A*>K! OH[S:WI H]P?G.AX'9SK..4J M?KXO>K0N#R1M]^&6B9!BB4[.%!P0C'-<7 Z*KKMQO?4/N]HN#54)F@IJI-;+ M==A08K:@QSZZTZ^X/8U"_*A[=FJ3@# JU,5 #E) D7F?)S\1>'+-W7V^KAUD M/US-*"\SJ_4-KFTG3&\^^^P[SFP;SIP@=PA33AJ@D1@]= R/*LF-NT7*AR?^ M@IXR0*U1;0B:.;ZU;3A8[%*+_$!;V:)6[:!1]?QY4[#SQH0*X5CR&(\%EDQ-'\,1PA*M^1VT!,?]'%7RG M^8!088RQY1\DWI49MS6EH8AW\RD>M(@^)>;QF MIZ&4T*A0*A*ENRMFPN!&0O\-?)M,.UAJAS/D%[L85[;GU MW84B'N%L$9>%A=DSY^W.RKK^A+>F\#@L)'.*/-Q)28J%[^\:T6-TR=E-T%*J M/N-4VFA#$XP=!KR8+;Y.270*WWN:7,<'8&EZSYQ_B*G3>)6O9V?/_D.KR'LO M%L_3* LB"N%O%.GY?EX==_Y\>OXQN$>&/4""DP]H]^JXI)Q5:@K?P[E:I8>D M&:RZ.)M>='9TL:.;=H,(,4\$ 7I$S?W^[%Q_'T*P^->H-(14+%)D4FDM?W!# MHUFUY";S[2'HKA@2W8 [Q-NI-^VFBZ::3T@^"9-E_[6 MAN%%-TAW%Y+:%_4EG?HN42\G4N7" ,T0N]&'.H8<^8+?^&,'@1YPH^%[[D\A M-^/ZP"B_:^JJ[O54&,ZV$$2W+WF]Z5.^=7\S.ODK)JY 2^GMOME0\SE^< MD2D><[\,8_OAWGSM;\AN#P@WO#T[+K^XH]SQ(1^Y!$A/4/O.(+L-MX01@V$' M2-'Z6^'$(K=(]DM35*"VW)/NK[6!A@SW6KG)';65U?_05,^FNG&[ .I00B=F\L43?W<9W";:XKINW"E==[J#7L_6]&7MO;"8795FG%V' MLU*A]57[7FB2Q^=/(E!H9O*7BGA*J8W]2F%GBY0!9\*N.\D_J@)NO6*6O&.D MY$=(\/)0:19M&@O"+^JR:P)@8#>& *>T2=81T="6#=POL95AUPE M9' E[?&I 1Y&;VGS>O].FSJ;^H\C?Z>TM:0[WK%5Y0S2/*GE?RO_@]3 M750W+1-9U\A?WIR8LNU;(6=ZUYV<*76IA4#?#2K$]L;*2IZ MJ&U.%J>G#T]:H;JCE\_IN_?FY7,]#HWJY'M3V+%MA=F^EHW>O#@Z._)??%"K M]8!?G+Q\WHN5O)+#/_KW!CZ=A%4JU9*GU1_SPKGIQ=(H$R4:6 ZX@X,>UO)1-@PL!&;^Y-8_"EOA@^KM?_0W9^5)2C M'73K'@8*6M7Q3W'C^) \\/CTP ,+]\""Z.:-B,HW8A OGQN]*0S>#:OA+W14 M>AJ(4QT*Y6HP<%7!<\/+#V]_>?OW?[Q]?C+ 8OC52>D>?,T/+@X\>+8H_J:[ M86V+MUTEJWR!$Z BD++PI+Q>W+KB&UG.B_.S6;$X79S?LMYY.-HYK7?^^4?C M!R_V/XAV\-3VHI0OCD#1K337\NCE]]^=:+9#JJ,]XBN M*MYU@UP9,2355\$&WO[YAG6QA9ZE6G?D]V46A0I3:5Z$H).CNLBQ]> M7;TN7L&78S>H;E5<#;"-,!4L4ZE:E8+,\-[WWSQ>+$Z?O;JZI-_.GMTO?M:] M*HN'IP]GQ8?T%)>@8 ;LUO(&EV0.TMC)^0=IP#(2XAR]M-^P-GI$G+*H; M "&DK0:6%7:0/;#G^V^>/'STY%GQKI) >"!4U_1,Z6B8%=J$#W;&% EGHM+< ML4HO#0$H,DLO&[6BJQ;9F&X25GGC#I4M K=T5C":]4;!4O[V5W"N\HY[!_U% ME'Q(> EK>Q9OUK(CE@C@Q:$UA0$FP^^V5J!EJ= $JXD%D1CDHM\5ERW44*P% M/-WW1E^+AK2UU&VK!O & ZO&4@/[>V$&)8$ I-P@_MK <+Y$)"@G$ED!J6)+ MBR![=Z]F'$ :<%MI2@54V'%I!SSBS!'4H&<12]6H88O;PH,6%C,L!V6![WHI ME@T8TT216W 9JF\."R-E%5"'*J\Z$�/Z!4#$4I8)^N;,9*%M?"*#T2Q4NG M-\2,!F3?6602D%.-^"R2CZ@&5^!K"^J+-V[6JEP31RIEP8"! W@C?N&D!3(D M<5EX&O@+T''H //BA]1:/NW4S/Z@(:S2TAY0YXEYHGI+ 0?8OWB! 0 H;R,P M"$ _#O(9+4(!KF()JAK=P:\0(.#7O(M'JZNK]QZMY@F>>K3:15A8GH&Y'M#L1)8[MFC MBV>3'QFN[EM1V0CS%= .45^%I +CP"B!?$-G<&32SM+TJ_M M"9ON%6(X:Z63]-1 < !HD.1BU'.]6KHG. M7@EQE:(*4L_.$-6(V(%;H)T!S1"M-'JL6,FC;COO6NC >!9V#&X $)LD7*V0 M.*4KX@,I'S 6TN8,N2 (N:8C J")CZ1R(&[KQ.\WGY%E39VTH)"E-*H_8% B MB9A9/V>W0$U0W6Q5=X:E7*FN<_X";ZJ\W#TS8.M:&3M \@K12L26U+8^5>U9 M8' >4@=9_?>H^A]1\S<_O"OL%I*>EH.,RU_"QWL<1>(.E^"H@400Z^],C.?M M?8XY*UUT>@AA9[HS>NINH&24C0.>#K+%\.GLT;-B2[DF$*V MG87CF,\0W&F M\[!D8;P51AC_!'PC7AN91ZR?&5IZ]0<^PI=@FPU0;U ODR/ H\H@YYU^@I5: M^?\DN/U,?9GR%24-O"V-/!SKSXHU<%\#W8AOLS0"CK+,46>_6!W) K]!11(K MR6E5"WRE<[80AR+8!.4"!VP1<0%*M#D&]*1$J1\#A$L$+<5L;N%N3BJ!+K35 M5@H[FL!MN+ R *[ )0#5RJ8[[_AGC"PD*%T;0.DNJI5?\(9#_''YJV31MJ@2 MF+^QXI&9&?G;J#!]5L VK": H?PZ5NR@(,1N@'8L=-0(RACSX -?+>!:@YN]ZD 2 ]6@H8$!)C^1<\O*/:*PN:$,;LD4%C(^ DN,)B-C* M@<(FNCW!]P.%&^2MO $UDEWIG"P?D *RS"&ZZ,RF+AE^M6DB[PG@XL+$S5:R M)N_K"AZ\CP#),QI1;M_ K@2G'<$7WH*;N._0? J1V/&Q[MQ@< M\Y5;%F7NU_+9Q>1NS$P4>$6)!)?2# (( _>*""P@8H?$Q-7''E\L9L5?:8=G M'.)M%#X_[-FFFU(Z+W[*OTCM-,U #OC_Z/[Y:0[]KZ:'20N,I39@3A +5^FF MI537K.=H_'DAS0B/E95]ZQLRP\4%A" M 6M%#T7ZV^V0^O$-S=!]MV9W#K[ZB7]W@^AHE!<#@GI:\*P$:5:L@TG3"^ M2YV1<\PV75VV2UE5;"031Q>,F7'*QP&=[HZ="#[/ 4ZJ9I,JY%(.&RF]N% " M<:.0:.WXZN *V6F_8C1($'?'C(W$!A9N_][@Q6%+FR$(]Q$6-!:V.5Q8(I" M#$OT)-6^/0[(329:1F'9_@UG12>' S9!BDC750?!%E=%#4%?! M+C=]K#5QLEB.8*RX-I\#+_Q$%Y#?DXO[]/NU:$CB5]B) I[O[RYX"[FU]["W M=C95UEK=R.JXEJ"KW4JXO"U7R3\A-'5E-M)1##5B0 -&_"-HC%T3(NBM:+#< M##'RMN= :'>?0/M&H->V:Y8TU\\1]GVB1]Z,#\CA8-IV((+"AJ13/G2(\3XC M!R\$80VJ).U^]HRIVEF059.B7X]^X :X6%1./.@L.21[6**U0&'$X@M9"Q&U]:#5+CDF-P%9T+,LE7 MW))QDJ4BQX@\3$^<]N^4TB&G'T/WJA-#(BIL^"%6VK03 MCY@4Z:&D@@3C*I*>P(Q9.[XNB!+%1J$R+QS#12O:(#75.3_!21<]6D)4 -2] M4? 1 ',5K,M+*\OUXEW3486#\25U/%UIGBJ+26<;;0D^KS2)(.V8X0>\;24! MQD6_1D<%&ZYV>9E48KFRE9P$MHN3#L$G(]JNM"&_R_K)V(O6V&AV(@05B*#P M%$2("AO)>I. %Z0F+4;N,W? M B/\-X_.BN^*AT_POP?PW_N4+\4"OS_'.\[QXL]Z +T[.SV%W]/__5J(R(8K MVJ2?Q(N=(CY&*3?HN"1@R\7%=[/BP>EWI!0/'GQ'!D';A,=]JV(+1[>(M=.S MXYEG?&A=._:3%KY,$L-8:@PSJNZ= @+( MYSQI_V:!K'DQ"=_7Z2#6!>3P3E]?FL\OJ%(?:QKH^_J-[J;OUWA]MO_G.1 MX.R6,) =*.F5W0D#.83Y7[GU((UR4G*S,R] ;HS#,=JBKZ()LFQ>PCF49*^ M\H7"X!#"]2#Y83*TFYZ=A8]LKM&$9 WT*=G!/TS5X>#*E&/K=!/6QKHB3QBM MD7U$)?B]E4*PBL8;41R82YO22)B\&<@XZJEP$P:3MBI+?LA)- <%;!.2L^&J MHKL5+0H6'!L*4R#3,J$,6TG_ :[XM:J(C=39L[XT2'7=N"[#4-TPLU07;,G% MJ.WH\B(( GV._&# M89*&H#N.@0''6X5,P!U\I.0GOV9QRBCTK9W>8 Z70$GL!\*UFCO.2< *IB3+ M=4>QE9][B-?(''@:#ZA(AT[\K FFN>$(\S#MB/OY8:/]\U"?DF,SKRV@4X.- MZ8/=7M)5U^&*\V[#>IRZX4&OB*;974:>1>I *CCM78:["GN8P'+M=:LS+" , M=YXJQ072&K))[(-C*0 IO+6I]ZZ+?@?9:WA: G;@PX.O&+"BM40N\[R/FRI* M":JTY ?\/$TV3D6,A>PF[?BGG![VQ=TV3&ZP)U(QFF 9HK5[Q6Z%^2@1VKI* MN? U%"\3TKGLDXMBPDM.=?:D=":OWW]B O1Z#[-B0AC8QJT&Z0(5-/1&LMY@ M] P&9#D=PL9:-.YJ-.RC5_!L5_PV"H,I-D* HY*"S]H@K1UL82W&&VA?%1R9 M T?V-PYP>"L:!G&<34(GSDP(UMQ6C<=;-XN(L.DN36I996E&)U)?/ AQOP\@ M,M<13TGQ3[/%DU+5/,_^]Z%AXL4!H/#8- R[3/:*76D<1A$SC &I^&#!2R": M@2><.0>W._Z,BCLKO)AB,2V_7745',)P[7ZZU+2P 98Y8@C (I7=M3*Z(P5H M(%SG-)1GU6-U9P?M"0V)1Z"9%NMM#38?J'1';A'+#"B*-(7UP:U7G\ C$F<0 M"B!W]>O(_03<&.QYF43G[EPQ]_/+D:L9)7K%I(ZY1ZU8^[!=X@>B?=\@'WEV M2&;)&%)DYT YG1>?3.$O/>*2+B7H%"8ANZN>= M6L2MF3;YY4K5-$(8ELL7V%$2U\ ,A7YG>X[W)A_&%TD#@Z.2:^;=D"_[:I^>5\NXU4._(ZA/MYP.)N(!7(0/[V9]EQS HEH[)WG75EQ MB"9N]J!2!*<@FEG!4_O@>@(5V0:>LY^RRF\1ZW;/0M 376]\(8/90W'I6*(ET\>-;*[E<8LO8OI0-3/ Q#BG=A=+ MY3S\0,D>N&?W\E)88J_B)$;Z[U!X*O DVWFZX+'=8Z0J?HC#BV[.I_9]% M&YI603_L NB7%5=9H"(GDQM#?TR/ESYR+Q_.?@N8O86R$0%#R3U*71DLX#Q=;@-IK9C%UL: M&/?A>X!DX>F%C7^],!37OUTLGD2^S(L?*=^B4_4X1D712/;BRS0T9Q[D7A^# M#&8%_!9J<3P^M'\0/PR>=?(&Y6JD5[CT=\3?&*MS4KNCKT[//D==W9M*!T00 M^7/?6"59&BQ0'BP^CVMPT]R/)?;@+SL:)/U=NH*F.VX8JY>4M^"&OE- MC2B?A*=95"YZ-4"*^KL+RXD_5/-O8FGXUM4FF5%:TN.2CTLCZ44DEVNF,Y.U ME#0]P^_CLNY:7SYA)>4Q>$N0WB+2N#<&7(R4FJSOG_I35>X4!Z8NO2NS5O. M77SI*NL=)]56;#,XF$7\AQR36W#IG@<.[FGY&N$>#1'?YOP<2,]/IZ[JT4&] M_P/G_+-"PD\^UL/\6(OYV4%7DZI4&/).)KO)QSD7\UD@YTA)=@;V/BC>H]U0 MO>@M2+U25 7)(EU?RV/HW>/7?(@@J4=O.4=/:\6UZH!K-'H2)N5"TA;>I>*9 MUW38(;[7SO7]BD8?TI?-)DD_F%[THX-H,R0P'%4X# M6/NLQ!!#A?PZ.G\T_[;+4 TB0?EU+ &PO=V]R M:W-H965T&ULK5;K;]LV$/]7#FI0M(!JZ^E'XAC($PO0=%Z2 M=MA'6CI;1"31)2D[WE^_(V7):NIX&[8/B7FGN]^]>,>;;(1\5AFBAI8-^P7CI3">6-Y/3 MB:ATSDN<25!543"YO<1<;,X=WVD8#WR9:8&E MXJ($B8MSY\(_O8R,O!7XQG&C.F#;$77KN>,8AS#'1!H'1SQJO,,\- M$+GQ?8?IM":-8O?:JSV$8:6KSP/T=:XT2'<4R7G*H52_#V1$OH];+ MZ!CZO_#R.$[8@\-0,)/4T5)O@94IX/>*KZC'-"2"&DUI$ OXP$O0F:@42:B/ MI_#^W2CPPK/_[9#SI4.([AMI(EUY5$%Q;\Q1R4^RH=K2=N[/D=*AI%\!EI M#&0B3X$7*RG6:#14*S1PHV'W=W2,1L$9J*W26 !3"CL!MC8# M=S2(#K$#\OOJ&S7%,-J#M'&_@ANXX^&P4R'?BW_"' W(5-@EP\&8"F'BN4B2 MJJARIC&E>4P]F7!63WRRR HA-?^S9C3J'Z*Q&P?QQPYCX/IC8CP)S?+.K0J' M;AB..HS(4[B2O4E0_IU)9IUZE1C4987HW\BE)BFL"T!GQ MS'6F]M22SRO-RR5H0>_A&LL*>_^@XB1K!Q5Q*?V4HC4]Q;64D+;OM:SJ-Y*: M?W48SSJ2L35"*31L:5N8(Y*-G 9A:JR90<@3!-H3K!G3O:SEA7&[P<%&"DT9%9O2LM9%(*(J=;V> MM-QVN;NH=YJ]>+T9WC.YY*6"'!>DZO6&L0.RWK9J0HN5W7#F0I.']IC1@HK2 M"-#WA: R[0ACH%UYIW\!4$L#!!0 ( #J"6UC&WYO%0P8 #04 9 M>&PO=V]R:W-H965T39DHN/E@(+,Y*;'L\P5A\&?*18D5@&(VD M!<&Z(RF+@NVX\*#%E MO=&967L0HS->J8(R\B"0K,H2B]4%*?CRO.?UU@OOZ6RN],)@=+; ,_)(U.^+ M!P'08,,EIR5ADG*&!)F>]\;>Z46H\0W"'Y0LI?6-M"43SC]JX"8_[[E:(5*0 M3&D.&%[/Y)(4A68$:GQJ>/8V(C6A_;WF_JNQ'6R98$DN>?&!YFI^WDM[*"=3 M7!7J/5_^1AI[(LTOXX4T3[2L<0.0F%52\;(A!KBDK'[CSXT?+(+4W4/@-P2^ MT;L69+2\P@J/S@1?(J&Q@9O^,*8::E".,KTICTK 7PIT:O3VW;NK#S>WMVA\ M?X5N[I_&]V]O+FZOT?CQ\?KI\6R@0(;&'&0-OXN:G[^'G^>C.\[47*)KEI.\ MRV RFTT]-<:7O@'.5Z1K(\"ST&^ZP<'^ 4;BP/#+_C/+*[YA;OYZ:PYE0N< MD?,>I(4DXIGT1J]?>;'[YH"VX4;;\!#W[]#V,+^PCPZS1$]S@BYYN3 %6'-US19 7(J@T".>YD8,+8%*7GKH*%-AHPPWC M&>?YDA8%PBP'/(79C$X*4%1*HJ1F KA3P4O IM+6OX_&4MNPI8]A!1^^8R1D M6(@593.$2UXQI4DV0I=8HB,OZKN0ET5A2@S0'GEAWUNO.*"Q7!!3>8I5W_AV MR@NHA)JGPEK9NAS2+T2VK)7 3.*Z;FEWK+TH][G1//VU\AXZ-J[GE805>7** M7K]*?3=X\\/??^JMOM[6\6L\XVJCLK7BH0M<8);!!BHT(3/*F'83^-Q$T!KS M"(+$\8#^T$+D)$F(QDT8;K]+_ AOOKM>=]LA.5A"*5=OHT< MUQ]^@[-OMO)NTLA8)TC\58*D;8( R4MIV,V@;6DO<\@XS!#2)*_J).#_E24_ M^KWMC'U__"W:<"B[EBV+OB?H7%.OW0YU::_!R78$W"F99559U M']B+]'U4F[S494R>:%_HHM]Q2;NV]YY(_?Z!=FL$3 MPL0T7+!-SNE"(@_]@CS7*@5#)W)3"SY.G""(3JP5W_&2H$,1NHE-$3MQ&G8I M$@C8*P+Y#D\-D*A2"_+4U!"-6SU>884MT=6JP\WXFBN$4/G#AH MJ_ZQ-W3B,+'0 V>8INA)8-@V7!)30)2&H#U_E,CO&N\YT3"UN$'5M R/+*._ MPAQZ:8L7IRYZ@*"$L(F[_,%QKFOS3U*_I0N\=#]F/(Q;S- -8;)B>I(CJNE4 M,T%,&Y.HU3(-+1T!..D$A=U2.IA1:F'ZL8N>N(*A;5]@':$P=1)0R8H V!BW M&P+0@V+?CK,P<4"03>1#Z 5!ARAUW"@R(];2G,4@=O S$7"TU--;FZ9-[S9C MY@NINNXQNI-%_:"9P?9TG!?'NQT3JJT7^0PG;4G64_,E9!TO:&Y*UJ."5[UE M(%J/YX+,]='XF>A1&W(5'=]"Q3WY:2>_=N(SDUZG<())FYVPTIVRK*@TPPK8 M"FCCLC9?0&U@%9'6YON.'\==V L[L)L,]PO=WAESE&/:]9(LL #O%ZN.'KHZ M-#O6*N(Y?AK94&(7#%^'ITD/_,\5:6T(H)QY'3A,PPXK%U+92,Q$12N^F^,W1- MA"764@(- I;2+15\)PPC_6M8U_DY$01/X3QK[Y<7-/LUK11,_KO3=6_9>M(\ MH1;!@W%$82NH,&-\-L=B1N2NVX&!=9,#_7=F[JLDA!RXI;[4V:QNKL3&]4U0 MBU[?I]V!$,HD*L@42-U^$O60J.^H:D#QA;D7FG %S=Y\S@FT.Z$1X/^4PX&\ M ;2 S47AZ&]02P,$% @ .H);6."(,I>,!0 @PX !D !X;"]W;W)K M&ULM5=K;^(X%/TK5J8[:B4FD I]('4=CK:2M.= MJLQ#^]$D%V*-$V=MIY3]]7NO\R#0EM6N-%\ &]^GSSFV+]9*_S0I@&7/F/&5P7D^,]2Z8Q;'.I5WQ0:>.*,,MD/!X.HGW&1>[,+-_>@ M9Q>JM%+D\*"9*;.,Z\TU2+6^] *OF7@4J]321']V4? 5S,%^*QXTCOJMET1D MD!NA>E=!6?7(UKO%GP7L#:=WXPJ62CUDP9WR:4WH(1 0FS) \>O)[@! M*8))+L.^IA$FTG89'(='O3X$6*?#8,>"P?A\("_85O9T/D; M_N?**KO1ZW;$@C-3\!@N/82Y ?T$WNS]NR :G!_(:M1F-3KD_4!6A^W&/JM, MV5U.'0I[S*; ;E16\'S#@&NY818T0H1;2!C/F5HN10Q, H*6Q;A9&BG@LZ]H MUBPD7J@E>A*F7J!] %,\&C@CQ'%4CI"H@U.1,U$#X.; AQ-Y:9*=(6R MPI9:92ZA*L)>\B\B!&V$-3?H,U8:$18C719\ 0="F.I MNB=@\(R2AX$P-$7E<5PU@BJ_4;E14B2NR7.+7ZA0EO*@;FE(2:_0QV=E#$/- M=!XVN#T,B"<,40[9 A.ID1[BOKJJFJ"4,\73PN!RMSF CB2J)\4_=DFITF#> MYN2,T>8,AN>__/M/*N'V90G-_T1:5P]]!.S+'E2:ZHZ#D];DB 6]\7"T,QZ- M3W?&DVC YJG2]@/M>NV,MNR):P2:A'W_X=;_%#-J?@>]P3!L1Q-,\ZNRN/N[ MUMO(X5XF.)Y,=\;19.N/JOH#' H<8 ESJUS\3:@K$(>OXG8'J374#@.%BG-@ M,7A(V)0XCK"U NMPW4&G*,M9):#RFMP=(%]SR7/4BCF= M(Z;G.MR5E[8@L]>Q&N&FW@=#WCDC)M%I^(%4C Y-E!?U!'J/Q#[[_OHN-KQ! M$ F5&.9T.*=$D19X=Q!(=)''LJ1ZD"P91<4K":-;B(7%H5T M-,5&Q=VR%W79[O@TZ+*ZY%3W#>F66-541L3DIJ:B^77,^Q=Z_7#W#%)X;"A> MFS!3JGI+-0>%2NSV!-LX]2",F9,784?^Z,7B M7&6N9"(\!MS5KBAR6S3NB$X4!#05=::&XS%-G7:FPNF(IB8=Y9K2Q%9PT'.E M5\L2&P1T$119V>AAP3>$;O.BC*@W#<8H&0;A>H?$0!K9'8D\/@VG)^RAHA=J MJBR!&GLXRJO8VMF>XV%7Y:->,(EVC8BNW4%ON6V);QA1X$_:(6SPU.Z M\A2.O#B 9]0!!&N7%#;EE@FZ$G"CT-EW%9 M^2\-Y80YZ$9)%DKKZDP636M;)@"/TRJR[YIQU^1.A<:EUM3N H^U^BPXU$PZ M*H+NM>GU)OJO74[[G8=!!BB']/RA^P6"N'HCM+/M"^NJ>EALEU?/LWM44Y&3 M_B_1=."?CCVFJR=/-;"J<,^,A;+X:'$_4WPE@J8%^/]2*=L,*$#[[IS] U!+ M P04 " Z@EM8?%#SE^ ( "6%@ &0 'AL+W=O>&>IH[?RWL"**ZGMMFW \6<78OMW; M"\6*:AUFKJ4&*Y7SM8YX],N]T'K2I1RJ[=Y\?__U7JU-,SDYDG?7_N3(==&: MAJZ]"EU=:[\Y(^O6QY.#2?_BBUFN(K_8.SEJ]9)N*/Z[O?9XVANDE*:F)AC7 M*$_5\>3TX.W92]XO&_YC:!U&OQ5[LG#N&S]3?3:(+!61)6C\NZ5SLI8% MP8P_LLS)H)(/CG_WTC^*[_!EH0.=._M?4\;5\>3-1)54Z<[&+V[]B;(_KUA> MX6R0OVJ=]A[N3U31A>CJ?!@6U*9)__7W'(?1@3=/'9CG W.Q.RD2*]_KJ$^. MO%LKS[LAC7^(JW(:QIF&DW(3/58-SL63\\^7EQ=?+S]A@C?N%5G<61(W?T+%; 'VP8#Y[V! M9_.=$M]3,5.'!U,UWY\?[I!W.#A\*/(._U\.)W$O'Q?'-?,VM+J@XPF*(I"_ MI&?%B9%HB, M*W5:WNHF4HCJADA=N4CJX%"!%516L,TT2_4;H0B#^D(5"W#)E%=3Q6KF M^^_2LCP"EM0J>,;F"%Q-B4/,>' =PCS _6?#"3[Y,<460A8E8/P-YW#J66G.;H$BU;ZEE3C MHEH0-2J894I3$^]Z8AAL>F&)A0!+!E1.8@5HU-1=K5H@2,*N#(X4D4U[H W M87.K+G9('$H=M"^^NH1,I&&FKCM?K!A#GQ?6+!]!#!95VV]RHTV2X#[&H6M; M:R3&&;[;,Y5:.E<": U0 +HQ!8QC4'B$"6=Y-U!C&K18!+'SZ="B"R"# !M/ MQ6K0*M4+5%!/K5.$)R($J U&8MQ2:%+_F+^>S=&/K,6[:8[F[\A>%%RM M5Z98*49XV27P9LL:^A[57&U(^X?%Q2<_5WABS]F_]\:C>3L\P6B$&67)8%AL M1-9[8$.J*)R=@U%3DNI:PP\Z>4"HQ1BQ65K M+2W9O?Q&0&B\J@P*Q,BY+G(IZI$6G!N43)7#"0:,%K<*(4K(J;SN2MZ:UIEU MJLXB?:%P#5K_UTA.E!BF*=Y@,&YDKI$Q[+.<6PS7!+ *:9J)"JX"8A7>Z[,$A?3>W MD =&C,1E)5MF^:N:2_[N<"LGZ4[N?A0O?>C[FN-:$(!-\]"0^HD(2566\787;EIP/ )<(75R%W*Y-AQ(6YK)X%T> M-8;NL]$PMP7S/Q)E&:7WUQ$=3"U^,U,WAO7IH?5O&]M]I@.A\&R!?%E3F(C1 MBH%$3^KH^=+W#65'$;"I,OJ5!#24'&866>DB+Q;&8]3C/ES04-2,;YY<,TCR M))*&KL39[E;&T<&[%-3>LW$3QYB4)J=M?C?#< 36^@V@SW'Y*&,>+N(RA.'_ M]'Z<,+C^CL3S^BW,=*BV/ JR+VAJX(DQA8[\^9&!Y&P4_WAZ<]9S6;XI/#E7T?>"VLC% MRST,VKC'\]>0NX%.YDG^JJ2E10Y MI/8O\LE<*CTJ=2CN #S&0TJ%>Y_<;9;C%H6!CGPS6%@9<,26E3W)K;BY-RPT MC_@SRB/BU':X]^&ZNE6?Y9-P,?7^],/@$$7.NW C;QK"P;E^D%LLX&+9J$L8 M^EJRM7\/VPT )49Q+/W"1#^TR)Z@)0A\Z)/#T[_XST4C(9%9Q:K3T;GS%-F> MU&\N+\[5%:W55RI6C;-NN<&]-F X1E:?Z;I]!SS= BJMW**>WZ Q+5?:O("% MV[;[/-]\65J^][Z0N1N1[-\)156@=:8,O&_ALH0R[QM[G:[FFMMEYEP&@=:[C_N2+5-KI JE#<$7*H61JP?KE)KJB)U(Z2^:5)"UG MVZ]8Z#T+8H,F%AY\O98U^@]D;? M"G&-7\H74>Z[((KTV7!X.WQT/4W?&K?;TQ?;2^T12OYL4N'H_NR75Q/ETU?0 M]!!=*U\>%RY&5\M/1 R9Y@U8KQSH.3^P@N%3],F?4$L#!!0 ( #J"6UC3 MS33&PO=V]R:W-H965TUZ#9 T[M?DM@&\C8T:XMD=KMA'VGI+ F12)6DXN3?[TCY11T2-\90 M8%\DD;Q[[GG(.^HF:R'O58&HX;&NN)HZA=;-J>^KM,":*4\TR&EE)63-- UE M[JM&(LNL4UWY41 ,_9J5W)E-[-R=G$U$JZN2XYT$U=8UDT\76(GUU F=[<2\ MS MM)OS9I&$Y+E!_:>XDC?P=2E;6R%4I.$A<39WS\/0B,?;6X,\2UZKW#4;) M4HA[,[C)IDY@"&&%J38(C%X/>(E598"(QM<-IK,+:1S[WUOTWZQVTK)D"B]% M]5>9Z6+JC!W(<,7:2L_%^CUN] P,7BHJ99^P[FPCBIBV2HMZXTSCNN3=FSUN M]J'G, Y><(@V#I'EW06R+*^89K.)%&N0QIK0S(>5:KV)7,G-H2RTI-62_/1L M\?GV\L/[VX]7U_/%3W#]QY>;SW]/?$W(9MU/-R@7'4KT DH8P2?!=:'@FF>8 M?0O@$Z4=KVC+ZR(ZB'B%J0=QZ$(41/$!O'BG,[9X\2MT'I#9@23/@Y@".54- M2W'J4 4HE _HS-Z]"8?!V0&*R8YB<@C]U4=Q&&7D01_HW9MQ%([.-G"PT"*] MASDVK4P+2F:XDR*7K(9;#K^W'"&Q.QZXH N$2U$WC#]M,!1<""8S$"NX*B55 ME9 *6"8:C1DP4!9:[J&;#?3/!LI@1,&9P=[&M%/AV2^@1=^M;2ET 70R!B:.XNJ1-[3K<9X!B4G-N4#TU@] <=+#W1O6\,\EYB3:-IP\ ; M;_?YM2+,?&RAYUX+MS;M&]A.3>10) X %XO 9 >&PO=V]R:W-H965T:0E=C[!9%%JN*=7Q5U)-=67U6&R%J]C7/"O7T9%/7VT?GYRK9B)PKO]R* MZL MRBKG-3Q6ZW.UK01/:5&>G4=!,#O/N2Q.GCVAL77W M0F3E[NE)>&('KN1Z4^/ ^;,G6[X6UZ+^N+VLX.G<44EE+@HERX)58O7TY'GX MZ,4$Y].$3U+L5. MN"UQ8?>WI?Z:9 =9;K@2+\OL5YG6FZ(3EC2J+G.S&#C(9:'_\Z]&#YT%B^# @L@LB(AOO1%Q^8K7_-F3JMRQ M"F<#-?Q!HM)J8$X6>"C7=05O):RKGUV\O?SE_6\7%^S%Q;N+UV\^L,M?GK^[ M?G)> VV<<9X8.B\TG>@ G3!B;\NBWBAV4:0B[1,X!Z8<9Y'E[$5TE.(KD?@L M#CT6!5%\A%[L)(V)7OR')=5T)N-TT$L>J2U/Q-,3< ,EJEMQ\NRG'\)9\/@( MEQ/'Y>08]>_@\CB=A<_&2;'W!0/5BOQ&5$Z]'JLW@KTL\RTO[MB&I_2\*C/P M65FL&9AA\OD,K3]E"RRJ9(-3&:7^)J] M*=C/378'.P5A;Z>??EA$X?RQTO0W99:*2C%9R%KR#!;P[;8J;X7F!E)%"'%$UK^%!%D Q#-@IS#83-&_(5!0\ MII<]^O0B?/R0U2437VM80O-K4>6L7-%O5 ?\J,IFO6%O^1T+YZ3@P&-5JC2C]A404QL.6L%?EZ]>(]$<#I9.A/&:<;:M9$(3%U.[.0.[ M &G,PXH#,Q#2/T,.N>59(W =OK@1:UD4:$!F9KE:B0J?M_"O3%FI-8*JM!JT MC.D9/OLPJC&&AB'Q4%=(8P<'?7>V*IOJ+,]\A=Y1MT*9O107)$TX?TBHM5AX:.20E MG&S(Z3C[D-TG(F+KUO M#4 \DRO!3D&/=["A>K@W._2CZ?T&>R\_E1GX;2;KN[WWD]B?S=B/^^,+?QZ/ MCPFS_UP^D(FADN(B]8Q";@DINB4@&59G>0O.#(F 0W M[D66?8_P=%2VCGQFU=5&3ANO'X1S/YR@6O26Q,2#<(;G[P;[;/CW%3>RXH9= M::<>J$S+&BR\6?2]LNXGQOO+&ON38"CKTI_&AT5]3DEO! PU1262KS.B+6=#GQXF!I$SX= K_E,N.(/#"1KIJZ,2?#"U#L,3OT M#09[ Q,+5*G)>8 OWP&_M' MA'M@HRXK^%D ,+%OVG%2,>%43L\:L?'UNA)KS#ZM.@T/IF;2R(UK2-KL:PL= M GQZ85W(19)MUBB#AF,P^OYK" CB5I:- CL:B2^!M27:@:>@]#V[T)4!5BK: MP, K059;,(3LM'?P03BH#388L<"'!( VV/=4/D1!5_ H".^>2ABIA(U@>[NC M4F"Y$0?JF/^ GE%8HZIO"GBI:Q!@0W.N038BQ3.<-A.:U*"#<8FBZH=*&)BOP!P;(76DIC]9!J6&/G-3&3;M%2]V<%U26 MAV-X./'CH\&P0YXI3:\LEP4WUN M-I2VG-NR?^_0CF1D]!*A>0)K I>$M%6DZ)/B[4ZX:J-?:K-5-TJ&),I-4RUW31*?%^I:F,FG&)9;4MT2P6N4.')=$M4 M<\RX[M850EX+@+#H\@9E#)Z>&%8AUHW-<$L,TXNCDRX MH)("H0HJR@B-(=]EZ%2:0*RY,#A#VYFUKF[RUYP,#L&=8M$>6I"'>08]5$H MBIF](F-<)=1^U9YA@9EYX0HDFJ'#=I:5B=:$,ATA19T-! ,*B*B'?U\'Z%OM M&ZJHJ8_T%; M*5#)RFV.GFPGSKUYV%;_2R]>MD]3;PHU\[6 =%2LW6%Z.I^E@*HD6@/5)BV! M63#I$(\6[=/$6T!=^BT;Z(H0>I-%5Z80R$^Z0H<@==PR?)!VPK<2BG4R8],< M[ ZI' MNB=:EX7,:/;S5 /2(@"K*GAT3&L_[?)7F= J3HF_O=W-=]W\OA[ MP^)?O:?KGOUI!)Z;'L/O)3AX.W)862R?Z1#([ADO"^??J 5SCVX1,%??O4CX_42[JF_M+I;[H?/)C0 M.7N/_ MEV.UWQ]N.P/ZVM%&76Z@)-=H2L/%<1%AGEW54DOOV5@?]ILQO_SS$,R;^Z@$ M;#8."+)$B[F!,NU%U0?2;>7BZ/W;U$UQJYVKCYN_83[[+6EL!MUUD3 UQ:*) MSM[Z[/O7-J9T-]L/COSPB>,9RQQQ.Y0+&4)^)X$F>(HU"7A#*Q1U/!\:J/L7 M9O][9UJ; "FT[[V]UG+8QU<845ZCZH[FGTN7?YQ&]M-,Y(51#P"'?K1T&6:^ MB/>8F<3^9&8#\.EB$>UG%" 2!.RU:V6.IIUH[L^"+FO[$3?TELMND(X#/V@9 MPA"R=\O1J=@ZM]6Z&A@S@N'=X$HJ+)%'8PE:RP,2WV,/HM@W]W@/PJ4_B8<7 M1FV ZQOY 3;Z1G^,BW]D1'O]'3J /@^-,XL'R^D^YAHO::[BK<86D)2O*6B=E?'[)K:M8KW6SL-NW4%F(YW<38J5>B!OA&M5MO5??JPDSM M75ZTUT7-#>(Y>R&7T>4NM@?&@*6#EVJP]Q'2>Y;)OO=F"[G'-.*9QC$ M8+JHH+AF'/X6:RW%%T#Y%%@)7/PDRZ#V#ILT+4+-X6RQ[:\JF4BMW0-N-N4QL($3S;F*A4M%>_H M _JTC-J\R "> D(]1PO9X'6R.0,&^QQWVNX:JZ:Z.S;@C&4R)[>Z[/)$%YZ9 M*KL?M?&\;/"=P\EH?"DV4]R>JZK,S752:P6ZJW5:8< $DU6#-K8[#""55(*$ MJG (I,(=>E*1'CO!N?,=1_^^MB9-$C]3.#3Z&D\?'BK9V4(+W;L&KP^;XZ>[ M,F_H@\&)^YIN;ZF.:ZV9\0H!WP&/&Q?+'E+W7%SM@@FN<[FC,YX_&^W8?/N# M%^K(]E5MM=9GB;(M7<\8YHY>G(2^S0UCW]6>=[YYSD6UIB^[4>E@4/KS9S?J M/AY_KK^9;J?K+\_?\FH-T)QE8@5+ W\^/=&AV3[4Y9:^H+XIZ[K,Z>=&@!@5 M3H#WJ[*L[0-NX#ZI?_8_4$L#!!0 ( #J"6UB@) GC> T %LJ 9 M>&PO=V]R:W-H965TF,SNMA\9B8ZY(TM>41K'_?4]EZ0DRI:3F;2+%@ABB1(O+^_CW ?U M8IL77]5*B)+=K]-,O3Q9E>7FV?FYBE=BS=4HWX@,3Y9YL>8E;HN[<[4I!$_T MI'5Z'OK^['S-97;RZH4>^U2\>I%792HS\:E@JEJO>;%[+=)\^_(D.*D'/LN[ M54D#YZ]>;/B=N!'E+YM/!>[.&RJ)7(M,R3QCA5B^/+D(GKV>T/OZA5^EV"KG MFM%.;O/\*]U<)R]/?&)(I"(NB0+'SS=Q*=*4"(&-/RS-DV9)FNA>U]3?ZKUC M+[=KER>*$)6+)J[3\G&__)NQ^ID0OSE.E_[.M>3<8G["X4F6^ MMI/!P5IFYI??6SDX$Q;^D0FAG1!JOLU"FLLK7O)7+XI\RPIZ&]3H0F]5SP9S M,B.EW)0%GDK,*U]=?[C\^/X-^W+QCSJ/\O;P[&C$7 +LJBID M=L?*E6 [P0O%!*F$0:!B?2N*1JCZ?\AXEM %!F46YVO!!FFNU)#="GBZJ =+ M?L_$/1! ";8L\C7[970S8H"$@I-3*;;EBIV.1R%L,TTQXK'!:3 *A_6]7@=# MT6@^;-^!+#="^V.Z\_0K=KU'5J>'\BX[8" 8S5OB[IVFC8%)_]HC]O-/B] ? M/__3?_\)E1@GZ6JD?DZ:,8IQ1H(#,H/K#!K.*X5]05E:&T]EZ;(J"I&5S?TI M&XRGXZ%S'WAAX+O/9U#BE5@*3$R:\7%S%3B7WCA8L+=67]_+PF3:4IC.YZTL MQG/VFRQ7JSQ-R,C;5>;SEL'0"X+ >3:-@D-N!X$?#9V[L+V)0O8E+WG:9WZN M4.:SB7,_]A91U+D/YBT77U:]UIS()?A2QJK)9?DZKR (H4J)4 -^;W>,;S;I MKO9I5?*R*O-BQY8B@?5WN(0SP('#X"_D(7U>/M0/B,XR3Q&(B2IBN"(/&DC7 MII[]'[J$=H6W=MNM(([IQP]F[KWOW@V@K@FL^*8DD1&%39%_DSK':(QB-G6, M8A(Y9AAA8AY_99 \K:LQZ("' 4R$UFCN%]'"N9M$,, O6#F&7) M\V;H+>;SSOUL/ALV7@7N/9:)UGT";S%UN/6":.H\F\&Y[-0SB!( 2+!;\NQ. MWJ:-E0[>7EU?#Y'8))7)FPX@")1A@*!C/>H0VA0]^A ,6CKI=((IF[0U@ M^+^/1!>*Y*_%[C6KICI_,V6[#A.73#=S<^W]#V M04-#EV6,Z"-KB/^H)"$[$H -+TJ]$JY4:1XI66IZ*P[U07BRSAAXJ:DA/3*$ M)6!8JAB$*6_2+.69WI%)3;1\6CG0ZC"/.YD9JB0-7$.6BWK>Z&G"5AJ3R.)X M$:_T$"F]H"*HM._DVH3*!CT:H7_^F:\WSZ]J4&GDOZ>C0W6$X_UT*9R,IL?T M\<710XU?$ 8'&N5&'L)*(_38=B4!+'ORJV=IO62YHQI#7=R7E!* '*9##*[F M6RG9W>_M+@8?MX)5BKPXQV:7"E:[K,JJ,$Z42GXK4UB&4/M9Z)KO:*Y&%)%X M0$#XF\XV\LP8C&$,$LRW&8+W2FX:6-@B.9$D/D2E52'$F38ETEUN#)2"3*(! M5],B^/],N>Z:7<2:9A M9GWF=IEG])HL=\Z;VB\] MP1@%_T+$^3=(4>]_1YOB&+NK4J[K6FFM?0O[$CKUD#%'7,!H+V3#:XABD1A1 M%Q0OC*Y+C5R';-!KT(_-=,H5_' +(X/D*>5/Y5V24C9IX7:5:^^7+3^R8\A!999\T)")@G% MZDQGA"RNUM"8WI:&8 2(2J]#NM5["\*S/RK@H6CL[T@AV%B;%KU$^@>"LTF^U%A&KDC_5*J M\]NP#Z8@&DIQ16T]?9SH_'N?;$A[.%QKJ_VX1RE99ZF8;Y"2&+L]CN4VFBO] MI(;$.R0=A<[^+_U>.6+O><;O!"UB5!?G&>)U);1:S SC MI9G ,F3#_>Y-;!$BQC9O W<@%:>5SI0)ZFI8M49VV_ADUL[*V)+'9/EB=#=R M+=,Q8Y@!$BV/*>2E<@G0 >N9V&*CD&\E/"?L%2+%'O"21VW22N<8A4836!GM51?6Y*<>T="2I,5)Q3UO'Q.@PYE. M,^?/U5[)H2DGHFNH5J*X,RI7%?[54&76H5WQ!/K^T(\UD-JRM("@]]+#(N(S M0;U08+4W5B=@SP>&'>+J2VC>6?7FH^4D=>]?"X3^+# MD327V22CDU_[_K2;?\\"A'7'YQ,8<9IOM#^V=NPF+P=TQ[XW&[=%4(BZ9S)S M:[Z'I\]1G3E-$%,C7/X8)NW+)/2]B3\^+'1\SY]%2$OBHN*IJFM&4TS:%@=M MW-AS2W;B^>.YP_ \&+-WY #M*X$7+D+G;@85ZLK[S.!,I_YVRM_.I&BRL&54 MGW'6[\T6J)K;S$ZMF#M>I@-O&"J5,(#Z81ZO?IL,_,3)T.#WB( M8BN?N7_8^IMZ"_^PV/Q^SW!X%#E=F<$89CX? M?O^V!A-O,1_W="VFWCSJZ69\[^\1_&4#AQFWI3H(YF&GQ=HZ@IO1QRGH(!K: MG-[=F&A4-362'6>05$PHSP>L7>O M]=$4-7U1S&&@"68/5+U[)P[[13 G!#'=J!]@#TN=^FWMBEP@>\+IA\N+L]* MTH]"<8KQ0\IGBKM&]C_(Y. T *;X_I#.1F:!OK3'(HO(W'4KT4;FFA% M=+]R70==8K@0*SH;109U;3MW[^@ IZ/Y-NO0,&A++Q XRK '@R)C,5T-LU/O M:&)@#E^FHZAM%^ ]D[6\;F-?Q,,<%!#6@=MS&/:+>4=UKGFJ8OZ%#6J.>0M!Y M.2UV&DQ:,6GF;X7(VAU8'S2IJ!$LUE'0L,LV8[[!ADA!7]J3C/S_?N# K_K6@7/ ! MQ_D[SU#=[)@QR\ %^8DW]GWRT\*D.=(D MD_RP=WQC*@IS7J*;J&VWW(FLDR 8/KZY?:]S4DRD*Y-'F>S=7+18/&5S=@-SK*5L,O,GLT9E]FXQ^0(7S\5/V-W8M=.I%X_Y4I $. MV\/LI#MXE!-Z)%+9EA X"6DHGDA33)"A7G@%HX)0&)1+P& M.$C=#L*$[!M!,/P6(J@I=A$-D$'U!A"S4C)#OL[NTOQ60Q$\7:,UMTCD 7=2 MVD:U%@60@.:V *T[=V+#]2FJ>ZHJRJK(5!V/=1UMNWT> !=*JY1M^6EHL_O\ MO4*]FTA]3@664;EUINZ?J[BI5%7 ,*@UW9[X'FC=FIF6$D4111";->>[;O8# M)?LD6_WMBJU 0S^(G+']QAER*)XD]NC$MCB(K#[UH/G=%G.7.K?5:6Q; M+-K#7W7^T,SF41.GZQ&;D=(I1SWT6P'7/J,3&9)[/?K&',+5M[C\9)I?;^QI MYT4<4_15]?@>;IF2VQF8='#LM(D5[8@IV[L #T*!-UVX'PK,O5D8/4C(KKT7 MZR?=0_A3%GGS\&&.]M;>^^W[T.S<^> /B':G/VLD5(.HS+=_S6CSY>2%^6"P M?=U\=OD>VB<02<424Y'N3D],[5[?E/E&?SYXFY=EOM:7*\'A<_0"GB_SO*QO M:('F>])7_P902P,$% @ .H);6)4!KQ'L! 80X !D !X;"]W;W)K M&ULM5=M3^,X$/XKH^YI5:1NFY<"+2^5@&6U*QU0 M4>Y.]]%-7.(CL7.V0^'?WXR=M&%+>R"Q7]HXGGGF)?,\B4^62C^8C',+3T4N MS6DGL[8\&@Q,DO&"F;XJN<2=A=(%L[C4]P-3:LY2YU3D@R@(#@8%$[(S.7'W MIGIRHBJ;"\FG&DQ5%$P_G_-<+4\[8:>Y<2ON,TLW!I.3DMWS&;=_E%.-J\$* M)14%ET8H"9HO3CMGX='YD.R=P9^"+TWK&JB2N5(/M/B1GG8"2HCG/+&$P/#O MD5_P/"<@3./?&K.S"DF.[>L&_9NK'6N9,\,O5/Z72&UVVAEU(.4+5N7V5BV_ M\[J>?<)+5&[<+RR];83&266L*FIGS* 0TO^SI[H/+8=1L,4AJATBE[7)P&( ,ALD-=BY!XNV@(417"EI,P.7,N7I2X !9K9*+VK2.X]V M(G[E21_BL =1$,4[\.)5N;'#BS^F7 \V?!V,^')D2I;PTPX2PG#]R#N3SY_" M@^!X1ZK#5:K#7>CO374W6!CT80<@G#,C$I H D(FJN#0S94Q>U!R)'#&- =A M #?*RO(4YL^0BD>1"GG_B@_N+AT9T)(]N9VV%3(B>0!5$J<-X,T&RE3S?Y#J8!6*15GI)$.R M[O7AJ\A=TF\MKC(4AA+YB"K*O#)^K2R75K <^&)!>2)*2JFA*('A2:6%%8BU MS$22 265*(EQK9CGF*#$LEX&[:X3M2C'IM+/=7,*;C.5[O4 .\A+JAH2[(6A M"P]/3G4:2U7E^$0YMM**+TU&?;A#DX7*4;0I"C:(85LQI43D@CE!Q0((!YN" MW;%*^Z>19H6JI-T[ M@L^?1E$0'__R_[\YTU[; )6)NVD@=6KV2:7H)Z*?$*Z;UFS/\'JC^F;G-XA[ M8;#?6G?CWC :MRVZ4=@;CD9[F,VJZ]MC>9)O3/4K0]QXQ*->$*Y3B ][<3!N M+\-X!)>OS'.;I#VH<) -A<0X5HN$+KU))85%@Q:-6^1R%ORIY,X!"3 GIIJ* M2(K/0 ,OREP]\R9>0WHD'9/=5BO'^$#:S0BCXXUU(Q/O;,\X/OR?]GST#&Y. MS(H0'T<$/RKK00OZP:BU[.+ZY2 &_7T:P[J)[W9L;GRKU?,9B8:$WV2:(Q>- M"Q&LAQ.1,!09YW.!(L,DOGR84SH&U!W472-H#'NU])#<^(VV^I._8=A2]&T+ MTT^6S%MB^U'66QJX%O>7&NW%-<-1PDRYW*VQEI'2&VX-O41LUD+=P@V;,>M> M%5)9GU3J]99R>HN^)BQ/JMS+.9LKEV;=4 6I J.VO!]^>LU1PU.1,(KW0K-_ M@3:_4X-O6KQMOAH:SN\?0'@8P+627W8*%,3[X0K_<+1F_/@ Y:\1H9ESF#8B M-$41VE";T7 M#S'<*8L/MPT^CM;@82\\7.V\]D$Y:'WVXXOFWAUNZ$L&7XK^ M!+"ZNSH_G?ECP]K<'[ZNF+X7V)F<+] UZ!_N=T#[ XU?6%6Z0\1<63R2N,L, MSX!0_4$L#!!0 ( #J"6UBG-AQ:A04 -L0 9 M >&PO=V]R:W-H965T9NO- MLITFN7.<-LUN:7)YV6X?:8FV>:5(C:3LY-\/H&Q)KAVWVRW]$@LD #YX0(!D MCE=*?S4+QBQYS(4T)YV%M<51KV?2!]TRA&\GO9QRV3D]=F,W^O18E59PR6XT,66>4_UTQH1:G72"SF;@EL\7%@=ZI\<% MG;,[9A^*&PU2K_:2\9Q)PY4DFLU..N/@Z"Q&?:?P!V= M88=D;$9+86_5ZC-;Q]-'?ZD2QOTEJTHW2CHD+8U5^=H8$.1<5K_T<'FNU(AJUP1M^N%"=-8#C$I-R9S7,7UU^.>Q860O5>NG9Z5CD-GW$: MA.1*2;LPY*/,6+;MH <(:YCA!N99>-#C.4N[) H\$OIA=,!?5(<=.7_1_QMV MY33>[Q3KY\@4-&4G'2@0P_22=4[?O@H2_\,!R'$-.3[D_;]"/NPT"+KD!QR3 MZX)I:KF<$\/F4)/6$*H9;G]PF!%J2*KR0DDWHV:$2@*?3!>:&T;H%-H!62UX MN@#[@H(K1L"2RI130;BLF@M6*0?'2\H%G0I&[():'&%+*DJPR: -S$M!M7@B MTR>89B1=<#8CJH:7L92[AI'3KTQ[1&DRUZHL/%C%36:HM0#JK2)4")4B%LB6 M*G7*8'&9H28UAAF#JN#9H9,IZY)[6'$"@5+Y]/;5, P&'\QW$30HV2-+2VQ" MP-",ISBIV1+[#,FX235[EA6WG202@(T,N)9&"9XY2J G 46@2XI2%PIP8P(: MH@ &PMH%:+P- ;B$LUFSX#D:&@X:4%MLC--4:>13/%5AKJEQ^'C&M"'<0@.> M(==3AKS"#FDAP54T*Y1VTBU;,ED"_)E6.2AG?,FS$A:MVB"Z M.=##(,3 ?X.)SI5&:MM0FBRU*;/*@EN]6<\Y1 J!C94Y(FCD1Q]>[/36<0R.=,S77M(#^C"Q1=\UQK0:9;G<(U\LVEFONW;6+&&YW*@FW M YBHTD"AFW68MXWCE^34>@-1D/23UH;\S491%X2]NN!OK\UV_>]:!#7 S$VM/VHA\%N),'935U!&(FN:>>+YPYBTME)KIA\T$;=H;4X%+VH91LWG??O@ M:V4@2/K>$ Z3P-_.3! /O7X\VAW'D!+_F_'?E9S_*N!^4]T=+-PC)#PK]S08 MO.7]O#:QMW9=S;I:W=[*OP3O6H'&?2\)1NV!V!M$_H'$!5Z4A"TICI,U[6(_ M/2W?B3<:!ML#P>#Y#?C<+X9PZ0YB;,EN*;CT%4(]X=*V[N#KIEW=R^'@A"C@ ME@97=;R\N= >NG?=?4^77NO!"8[F[EF-ERPX?*NW9SU:O]S'U8.U4:^>_5=4 MS[G$PVH&IGYWT.\073VE*\&JPCU?I\H":O>Y8!1NEZ@ \S.E[$; !>K_9YS^ M U!+ P04 " Z@EM83<\D^:XDUI; M'/3[)DHAYZ:G"I#X)E$ZYQ:;>MHWA08>.Z,\ZP>#P=M^SH7LG!RYOAM]J'$5'W<&1 @RB"PA9D@S;SS7ZI?,=?0FY@7.5_2-BFQYW]CHLAH27F;U5LS^A\F=">)'* MC/O/9GYL,.ZPJ#16Y94Q,LB%]+_\8(U!4!D$CK>?R+%\QRT_.=)J MQC2-1C1Z<*XZ:R0G)"W*G=7X5J"=/;D\O;IEGT[?WU^PZXO3N_O;B^N+OS[> M'?4M@M.0?E0!G7F@8 W0,HMK4L L90[P,T$=6#;6@IG86;$1\!U&/C89= M%@R"T0:\4>/JR.&-?MY5#S1>#41UE&8*= 4C,:_V 0 775D2BX-(:Q&8J<71RX*;4@(I@6H/N>1T1-/1L@I2Y9""<;R,!-8D''71PZ+5>3B7_!A1GOR M1X64-C@2:F":$^O[ZZ&E_'IP.$?JCZ5P!-PL+D#*V!7((7C6LQ1#S)^XR.AM MCWWX:B2&@]1R*92KUL0G _'#2%#.$(UV'BP6G10S9JI96UPXCAPM;A?8GVB5 M(T8,N,?$M*Y&E3I"_V>I0%JK7&\XXE.AD!1.C98XUYM7>\%P]] TC/S<98&S M"[14LX9%RT&716:Q#)057#Z@(8\B3%8782F!)!5/J@%8J!6/609/D"'']_3+AFR'72UX/I;*(I0K M6N/*RVUQE9/&IRV%5428^VYQ3'MU!#3(P29DPC&8F!G7JU&JTEZ:OKL"9$'F M.8BU&R[&Q$HJ6\W1K6.L,-XD5CC[\G2-42N#7(DYT!U<6:U"I;EUY>RP,.>B MU-F@0CF)0RQ).9^A7KE419)+EEB'+?Q6BM=Q'2W'M09V8"N3 _WV/)0$FBY7 M:&;$5(H$ X<54CM>ITQ,B-K#M^O%JV.B,OSLX%/5^[8)-4_A1B=M22 U;(KZ% MSMI4E0;'FNT#1C0&H\-?]NLVQ4_.U>L%3V5<=HFYUSDS+:Q+&X7)I],W@H"?-:9/+2ENAL4F+I M-"->L[U1=V\XV-3A:CTX7-%SE^)VNF-!TY;\A!\R/ONWFD^&'5RV'8-L4<=" MW*M)"9Q:;W^3^WWOKL?^4*A4TI7^PI9M#1?FH[?=R7B\KODE];K]4=G6NK]F MPV#0'4W&&WO6AZ'N^97R&?R6S]_R^2/R^2.S/4LZE[3N?]#.JKE0S6"E:KZP M7.Y.NKNCO4T=ZW7BF9)6_PZ[^_N#9_:N$KIV_TLJ]7_"E5K<#AVJPP5U>%%KA&1Z_^-MR M'N.?.ZT!=IG%BN"XRK);JSA^FJ<<-2&D2PZI&.:T]-_P$9Y6 MR^;\XL_9SC3E="71/@A DM YF(X/Z1(Q[S >:=L^;/A*I^+KK;JXZK>N%7/0 M4W=Y:O $A&'U-XQ-;W,_>^JO)1?#_>4N*M=42(/GV01-![W=28=I?V'J&U85 M[I(R5-:JW#VFP/&\1 /P?:)P6Z@:-$%S:WWR'U!+ P04 " Z@EM8/=G< MO+0$ "P &0 'AL+W=O[7]P"4:,E-W)=V M^D(2X.[9OI5*NZM.X7UUWN\[7HB2N9ZIA,:?I;$E\QC: MO.\J*U@6G4K53P:#DW[)I.Z,+^/7);-/UT*9]55GV-E. M3&5>^##1'U]6+!#SU*LWXO^4]0.+0OF MQ(U17V3FBZO.68TIC'GMO"DWSF!02MV\ MV;=-'G84&KU!3NJP*#-O\5?" MSX]G\VDZGWR\OZ''=#I_F$QG=_>/E'Z<3B:?)@]S^G(_OZ/T]G/Z,)_,YI0^ MW-)T\@M<;J/#[P3_AUEZ,[__]6%VV?>@%(#[?!/^N@F?_"#\,*%/1OO"T41G M(ML'Z$-+*RC9"KI.7D6\%;Q'HV&7DD$R>@5OU"9H%/%&_U>"FO!'WP\?:O+< M58R+JPZ*S@F[$IWQVS?#D\'%*^*.6G%'KZ'_]^)>#S\<]>A?I4#WFGZNU5-8 M_$&7?"'HQI05TT\DM!=69"2U-\1(&9T?8J8DYRWS(I><*F:]%M85LD(5^H+2 M;,7@YCQ0;&5@%QJ)+ZRI\X*D=[0NC%)/AV:M >WJA9.91&_K[KBFI;"2LRZX M86>^0\'&CK02H(D.)&Q@!4X%Z$FT*4=OWYPER>"BA8CCX<7[+L))CL":JSH3 M[IS>R??0,A.\MM)+X>BQMKQ DZ(TMT*@>7KX-,"[R9#.U8C*-$@;%XE:&A*(:47$!*5.)EKN41P\&:M@H 5(C#GI/-,0R]>0E M=\C,TJ^AD"*]R"]H%)9+IG;H0=8*RZ[S&"JD&<$!)D):?2%M%G>6;%*%?-<- ML4@""<3Y04MKRNBZJRJ<9XT5XBY0.[2W)8:G%P#!((3>DQS6=5=3I9@/Y_=% M_/-.KH*6X\,GP>Q>WL(&YE96<9L',:\D)2!9 >#@A[8$R:Y':6MH(437 F]N ML*A_PBR*?%Z*#)L6S(/JP,2A1'$$$!JX*!?"MDT\/I,8$!]#6J-$#C[T!MO= MTZ6#X: WV@ZC89@Y>39 EJMMT8$DYZ;6/G#D0J[80HF7W-:H&=+&XZA%DXCK M'5?O;^1B-%8&O*:,#_:H?-H4] :'-!:6?;ZUW:W&J>S9N[X2=F&PO=V]R:W-H965TW*QK LV793MR\ ;;3;!F2U*C3#?M(4[1%5")5DO++?OT>4O)+4C<;,.Q+ M+%)WSSUWO'O$7*ZT^6I3(1RM\TS9JT;J7''>;EN>BIS9EBZ$PINY-CES6)I% MVQ9&L"0XY5D[CJ+3=LZD:EQ?AKV)N;[4IG55:/3V&Y\ MEHO4^8WV]67!%F(JW)=B8K!J[U 2F0MEI59DQ/RJ,>R/AC\+L7*'CR3 MSV2F]5>_N$NN&I$G)#+!G4=@^%F*L<@R#P0:WVK,QBZD=SQ\WJ+?AMR1RXQ9 M,=;9'S)QZ55CT*!$S%F9N<]Z]:NH\^E[/*XS&_[2JK*-$9&7UNF\=L8ZEZKZ M9>NZ#@<.@^@'#G'M$ ?>5:# \H8Y=GUI](J,MP::?PBI!F^0D\H?RM09O)7P M<]>C+].[QX_3*8T_/8SN'H=/=Y\>+]L.R/Y]F]=Y=G-^!U_V.>%4KO.(J?D'-; M,"ZN&A@!*\Q2-*[?O>F<1A>O<.SM./9>0__7'%]'Z?1:= R)/BGZKEB[V[UW2:N)<41$ ]=.%/U$ M>AX"">PY#^$$RNL\UCWS"T4/C*?(% &&BF4;)[EMTIU"EZ30HF\E,]XG.0S/ MJ#!RB6Q ,Q59@J5>RD08'XZ5&"V\@T<.]2'F4:VT>$AH+I@K#?BLG6&5? SO MV@_W9/70 Z)&Q2,LPPQ;;%5&7CGPAF=Z<6&K!,%$!V$PSG/G4-^(!I+ MB&$!:7.5/5/E'&%*(]7"D^3"6F%#C% 5+V%&-BE92)8SUG!!<.]2%,YL2Q]G[HK-0GRHG7^:#CELQ2V\[K0$$ M+LNPT410SZ("V'9*,S@SI%AW"[XQUH&:)U5W#M[\<\,\[2L#<*Y+Y=O@*#,0 M8S0K+8"L12KY3*HJ$:F"KTE"L5?2I70[G(YH.!W3DRYP6H,(DS;:^H[WOC9, M7=2]"$R0D.859IU741J>XDOCVY>+H\2:GEEMGJ"+M\_/3+R+[R($6%EZ#\8N MU:5%Q5 )L>:B0/_EVCCY5Q6_P*GKY.1\Q^__^AT>1CW8Q$G0))"@]W\*9NP) M#9^59[(MS<279D]TB(%Q^[K>,FEHR;*R*@Q3"SG#W+#*"I7@61G:)C083-[& MI_V3G?M;ZO6C%R#0I.-FK]^G>\EF,D,/"/N= MQ8W 9'M7Q]:4O6(8?^A]?VK5K%@JV(:%0D 6, 2F%%X><$^T1Y#.NC7[PW#( MI,R/9- ]/:NM7PS!P93L3REN1H/!;CTQFL(M%26VN)2% <&QF'KH4K84I#3$ M6 CTNO]^A\&?"ZNOL/JQKS[5VVX4/L/N'X/IO4$L#!!0 ( #J" M6UC-4#*Z^R( ,UX 9 >&PO=V]R:W-H965TV_;1K;_*D2V=Y$ M&/)>;5I SA.TO6B38,XV<7]DR)'TC04J>7#COOI[_F= M<^9!B:(==W=Q@:*QQ.$\SISW2S]>U\V7=FU,EWS=E%7[TX-UUVU_>/RXS==F MD[7']=94]&19-YNLHX_-ZG&[;4Q6\$N;\O'\Y.39XTUFJP>O?N3O/C2O?JS[ MKK25^= D;;_99,W-:U/6US\]F#UP7WRTJW6'+QZ_^G&;KF+#$3[>-?.ND#OR9>C/]VL[_CP]-A%EEKSNORG[;HUC\]>/$@ M*HKY\KIL^?_)M8Q]3BOF?=O5&WV9/F]L)?]F7Q40T0LO M3@Z\,-<7YKQO68AW^2;KLE<_-O5UTF TS88_^*C\-FW.5KB5RZZAIY;>ZUY= M7OS\_N+=Q?G9^T_)V?GY;Y_??[IX_W/RX;=?+LXOWEXF#S_4IZ\)DP]O"#9UV>,!37]1 MT>T\[-8F^>M?7LSG)R_/Z\TVJV[XT^QE4C?N ;VH7SY*DVU37]G"M/BCZ/.N M3;*J2 4F].W],2N*E,D79V8S;:^-@W-M,HJ^T?&"Q-E-S7M!@NW9F/SNL(T MM!KF8?IOZLKF;6+RNKUI.[/!7#2LHD_&&2@H@J MR1;$SW0C:6+^U=LM,29YHU\28^D;6ZWDQ1V"HO M^\)@Y+:QIB.F2T^7W776T"&WZYO6YK20K3K# *"M\5C3T 8?ZDU=?' 7E9 ( MX,$KVB-=1VZ;O+==&'GN1PJD:$,"?%YF8[*V;PS@EJRSIL N"$[$O@0#3$5# MNG5=U&6]LNXT]&1)F"8@<0<]GJ"1IYY&GDZB].NLM2VNX0/HK^H8[%,4A*;,$P6]HJJW*+L] 0!D:X)V!*EN=UCR\%0=RM,RPL?7V])F2].:JO M01!MOVAM83.Z7,*?94>$@7=,:4E09(Y:LY)6H^NPA$\9 1]7V.0Z[R(K:4-& MT*]KLJK-6%I.POB9A_&S2:!\;@TV\+;M+(E/,\F OFTFABQQSFW6^',>@"TN M ,H+J.[:=NMD92JB,H(B@&VVN!:%.M$P34K78;>EX7J&][3QB$#CC7*(TF8+2QR$"03C"]OF90W*PD@Z*TZ!I<=?2C)9!NCH<&P4 M<(P/!_;3&*+67@]COI*"V()/,Q.,7F)PFL;6Q7%R&2%@ (9 N#VP!4<7NAS] MF]],KQ#S\9XAXY?"Q41<58KNRB-@B@=W,IKD FSP+PQ!;$] GJ+2UAFQ,6OLK(W@[O*&1F*??AC+8-M) LG M1HD8%TJP-"$)#IJ2]TOSK>JZN+9$PCQ17:V.<,C"[QTK"PE@;Z2.F@;+=MG7 M<+QJ@.$85Q(SIOM?E';EEB5-,_]R! 6WP(9PJ3*O7G"JT*-GAJ?O"2!-1WJ_ MG*LJ O9!7SQ.SD2D$$F0AHQ3]B0$"TNXWB3+IB8AO*[;7=K89#?Z!D"$[QLK MTM! 2M95S!:],%3!2:=SJV&N@%7;NF6\F>)JSSU7>S[)B\YK.GC5!<9S+@CQ MT;9?ICC<_6=-WOF#V*KMFE[H@UG'MN[H@V5^1C<%@,9R0_2<,#/CJ&)P@ZDA MGBQI+,3WR"JS):LF>=:NY4;Q!^B'T QK$IJLB;*/Z%8VM!>BMFXCWT=(UH)2 M#;U"-$98P$N2XFXV"[IXI[RK>&?V /V %N[63=VOUE"U6&DR69,.#K/.=$=> M:A&*7-&NZSY& ;\-"^3-06$0#Z90MD\P[$$C$)-DT<;:50([%CC=LK0]" ?1 MM$9!(4+F&G=#,&;PTL)MLB;ST$'>:8'+P;W:3A2WX8["Q9 I6\J^QA5EOFN\ M9 4R9ZW-TN1M#UXHX'Y/&UXG9QL#E8PWJC)NJ#9;^H/0[&;B\KKK6JU3G$TA M#@6'7G]Z\C\[ZHNGTQ4KZB-X(NIO9?RD.W.>/CTX9U=WS&54)F$T]GAH\W/@ M5&/,X>V?WG/[4S!Y,CLXZ>[.YW3_$S/-G]]YIAG)73KH>V(1R6S&WRY[P@ # M04%87NZ@6E'3NU7=.56&+2-P8((OO5OSFZW)2=!WS%K:?@M!/T[XGVKZ2!AE M8GZ3QMH142PT,W#U50W*U8'&"S6^0:9$!PT];$0ZP%MA[@$#:4E%!G(LBF1>)_YDDLH( &F@RD&Q M$>TEA=2"$K8P#"F;0Q7;V3#>(1V_S'(C,_M]I)&' ;26-2*'LX20VI0@RZIB M!PXL$:(V1U6J';I3L-5$FC!1'JOJ8] 2I9HW0^^15BS3%L2\Z.YP[P$ \ M[.7.6@Q5@5F:3ABXFP7C!S?,0!JPH5057FRZ,E"BK[ B='.98)?RA8H!UZL"IC>7VXGZJ"*0H* M+>D;V%-G<[MEH=>IYDSST[+@J5\,&P<$5^@F[CD;Q0OC=)7"3T@*L] V_ 5$ MSHY=CA[C^ BND,P=\O$MVR^=NK3$9:%[T@U_V(ZA=@:FH$Q580)A]9-^1[H M/ PP6ZK_!L-MV_:F\:XCQ.&*OF2U@? $R@48J[BI8-IF-TK A-]D?'N&KM:0 MSNK5M@7AA'N6P587)XDH=W2'I'S1(0_=:07-D;#55GC?X11M"%>3Q0H3@8OL M2@$P'0Y:4U5'^I4H5=/FH:CK!VA$+5?#+F\CAJMXY7#K%6N8>FKKU#N^@" ] M_=,DVY)P_*K>I(@(U T6#N U*[$%/ WND*,9.[I\=/DPU1 BM:W\W")W[QNY/CF?]"M4[P);HKH* MVNI6.&!Y,R6:9BN.B'Q'?<>JP$Q]X1\O]>D_:LFK))64JJH:O^ >)C"P;X<*!8K/WV@ -5U 3G M=!9IIU>D-V)5VW;"=-3DG[:@L5M1?!3)X0AK".W+&U4J"!UD)[(&J_)Y6--- M?[9:5"Q\L^Y)\RE1;UYR%RQ[ENZW/;1#W[>_^__OH%GA='I M\:UC7XNW%"SNMJ'_)'%HCNKELKW+VZ_-RE:L"+AOSM=9LQ*R=E_1W7F.[+Y[ M*UPV&O)!J/FMQ!J2A[-',4O7ITR%[J7ODA>D?(=/\_C#P_G)HYV1+-D.O3R; MQ2_/9B,OQR.^?Q;O@XEH_C*>X?GI[@PXT5DA5.U5M#$^J>D@!Q X#P!>9+!8 M%YT+T$S*YR@=:#8I43_$D;.W(=-A0D3?9\+DPX$('8BT8RTLZT1=X\@""\AM M S>.Q/N\:"#!B,2K([9@)(,@@0(X%2$$U;,>],BQ%J?HLK" !%C68"7M[1P! MG+2'/1@.<9I<.F_#:?*N;RH+TS\E!O\5?ZA6%\8_/9J=)+]DBYK4\KJY"6DD MT90\!%&[=5T6+KE$]$"W$[:TH8TOQ\Z]-.SR@!)) S@ .(4P\X P\\G[O0CQ MU#,-.$[@RC?.E5SL1FM]P JQ5A=D[4R^KI W[N3 G&"T-3$_>]]VF&+&5VA#Y)BM3E!;OPW%V>LAQJ>0*Q 7"43]3B!(1&7-*ZQ51 M> Y_#X%O,%+:T:R U0;C%U)T4I#Y0_V/R <0I&M6?G$@^&3GIC" =4QT_@@ M.Q5#(H* 3<-RSW*L&AHLA*^Y>7 7^-M'CS QMC%S73"V64;$@4< MMV%?0NJ],=AV0=C?.N5OF$Y1,BVP,SCV;6'GH!DX&5V(,P'%5T4JYLDU^W-A M>.68P+N:^.M1;Y1&N/81;?>"5-\44[]I;O@2V1IU!AN^<< FKK \"(RBYJ6' MV[S##FP[M8D.Z.4OVTH@T!&:M]0$3=16JVH?3W1XR1J^7#"?@8-/PZ4\=6(; M8&!)M M9].)L2R1IR7>72;8YR*>3Y0R8,F1#;C=6HZ#70GG:K.2O=]+R?^$[I@U^5JC M&62>UJ(^E$/E(J=9JZ2IZ\WQ'NME*+>2:B3:PG O*D_56-\0L#5A;&_7,I*L MB:,>*KTFSGW\[;-/F7,92KLO#A*F0E[LV/,TMO6'EGGJB/X\CGXZ>^82*?,[ M_E]3>J\$L+^5_$*CJPK*5T?R"9$C8NG.6P^FHH:]7-E.:-UQNE98'1 MV.%>.+456I2)UF=Y*&RMH2]J1%EOO/JG+!$8BF YP[GPW)(%B5O)11+,5]/D MM@7G^B11$G&U)7QLQWSP?@3= M5E5O;.[=\'P& $T31X%U;C1R+2L520[K!OL*MQ=25H&0B.#F?N3O?;$2RZ^, M;I@7UA0^6XGW&WE,DLVW?V9%.3\;;SI.65MGX&3!JZX!U ->JDE"OH!24$3I MH;MO*RM5\>DB]")U4./2(2QB>*(XR#%*&J-) $#%MI)2+?9D7F6V%)^OF@+^P@M/D^YN M)B5B2*N?32?">\OW321^SLF.GY:2]YT4UI-I*L8E%7@<$-+Q-@K\A\<(K:'@ M;1SB,A]9"4:BE Y1'&?939SP?MSQ.HT\VY(J+Y&AW;WP.7(^1V36^BT,TG"= MAT*&2^:UCE.;4IX0RO2< ASIZS%MQTN31KDRWL$2F9S!LHSMR33*G5]"!6GM M5Q]6:T6AY\G#046%;C5.:L*FRQMW9 U2CI]&,[9OAP=\8Q&D:V:!SBW !2A+ MHLH=)[;?IF;&A @NJ;-(VFG7D ;G0\#Z +,?Q' ^N)@+'E4M.YC\1(0O!]\A MD$5;""9PK"2ZW)6"E0^(D8JKD*3ZAO_,ZV)0F"3IL:0>B5808C(&RC,*A.)C M!>"[+J?#X<6H4U&4G[X%S<2.1DX7&G.X37+44$0SFZY] M.7?$52^8_W 69[GDF@#OY1IEJK?/BP-_=%FCLE!'#ZDAHA#LD6B.5=C MO#44JLD MDR<(P.^INMJIOM:AS M)!S%&DQ4H@G\95GG+N%C%+K'P;4M]V/VY9=>0]O6ZJWGZ\S+NB^.-,7N MQK-O7SXDA3+NRKNU;8HCI ^&FD605H'\E9@1$N)$68Z1:!Z$6#',%48FIEII MSBX[5UIVJ#/^_4[62D# 413>X4N3"7NS4%(RFZ[^^!@;[K&2HP&Q:>7I3\Z= M?#SD-O"7,\H(_NOX7/<=S*RA"N-YBD/D&'4$Z?:R>A7U]SB)!IR$"IP5ZCB: MDT3QZD&6'M\!BCL!O)#U.= *IA JI&+/;LF=-F7)DO]G$9J\J;.A ^E.N/7O M6R;Q@U?1X!VGUG\)XU)Q77%A\9VPCWT\S-13U659E:(W)P[CM_L(5O0J W*B M+F]8CQXWY<#MY@/L?'V'[CCH@9$'732\/<-Y)PM>J]H/SSVPS5=- M5G5'[(;:#TME)%<*N6NO&#D?UCX^>F<<[ZRUG7&(Y%/.SMK;T3I6P:*R%MU+ M7XI6*[6%WC>*%$2N$_#FDH1!) $IJ,+T:6DX]MUR"K/[(!:1'Z8V!@H$.. $ M("D8KN".X["1MU#8JXO*=XDJZ6G%K2HE,M&R4^6F8J[OW\-^556+%@:<: IP MHZ1QMHU#$LYE6OS.5>,U M@TYO^4JM/$';8#+5.8D7]>%F+GD.99%UWVA.Z-W H?MT+M"AZ>/HZ'69$=Y= MYNL::O"OINF@A_,[1\31UC) M:>1R0WZ#=Q8@=Z()=^Q'A5<'V(X=KXEMU]*I(AIUIRMSE+@!ZT0FC\=*=3\3 MA\!]>J4R0&RX_[M ?.=$_%Y\EN@\X8/ MX!K=3%B<2[,G(GDFM-6,!L4*WJ>P!BJIU02$>> M3R<07T@:]J?LZ[0>] W3'.K6N/"-ANQ\ MG'NDQG^WR\ QZ?FW#O*IL\K_]ZY"ME<)H\VERJ9#!YX&CB)71H<'"]-=&_7< MX*T%.W,.=JX0C(H;PL!J=.FZK#W?OOL8Z3UT>5%397[_97;=OI1C2:@$+$\" M,%':J!L)J!;VJQJOB1^$S 9.2'>SX\OCZ=+"*(&CI[XFHZU)=X5K MUB,'4]T.(;XL%]N34N$*3)#FVD!$(?0DOA7+ M3OU1&@=QY&)=)!.%6>Q*E8L*#38:,X50;=]*(CFGG?O^'O$MN2HS60JO#I,S M[-+IA:$&*N.. +RD7=>B=BR,5*7Z!3\-$(QU<:L'VV-:OH(W!!Y]=YK&KFSE MNOLTO2E2C8KEC;B8N4N*^S"H'L@&^.@5[<89CZ/I!)>A7PV:=H";FS6<6(0A M*A4>_E*W[:-)>172<^?3V;3O29L<3(O#G7&F3+)0F6O7-S$G0T."(*,*;(U#;*%&331E<4435VTZ*RQ>RIBC11^&C79.#1/@B%'[ M*.5LJ2UC=,Z$0'^$HD;=AD^^@A \?.K$&\@@RN-.IT!2'CYM*Y74*.LPU]TRTV[?THJN":6YTST&WX4@VI'A MJ+RJZE DTZ"5>!F1#V3$D.^,S^Z8S&#J.+X/^_TX^5FZG52^ E4Z###K >8X M^'@H= '6.XB*'-N0X<8M"C@W:6+O]UU?^PV.$LI_0-*&]/;Y=&[Z&[K2*_'C MAO9;%Z']UB32WZ/[ZVWK#?R:0OG&IZL(A93:)[+53F 2G(VRK5S2],;7CMAJ M_UH&: ;/'2M9\,ZIJVFHW1ILH14YM#<7?0&/E8]3MY&)I,:F-"\<>WF([\NR MAW]/'1:5S\?9>ZTPR):K&&F($TOCTRE+=*__42\._^&TX0CL3":^P>;*E=35 M-!G+>)(0@/S.Q*ZD0=(']V%"=!X<;ZY2'2V?&G'FB_4UMJG]N2Q(=[2Q6$CG MX3#.#)>4$N=43M:F6)DXA@(UI_-U#F[7O%7O-]ES;;8P6QW1:7%J M*-.O(P-WCQMZ;UA(VW3,,(0KH5;R\^52S/_I[?PI1$XC[3 KVWI0$WW7W6K> M:S_(8QU%6()53VJ4=NTSX"CH\WV<3+'>D%4_GTZ*]_VESP>-,2?X[3WF&\:) M-/%AK&3H0-61>D3VRH4TTR0=[?HYVH T9*?$'NE!55?<9'2D@^M8M9ES%+O^ MAW<^F/=G[W0V%5QPM5)9O/]]UUQL5(>B%FY8%E7"NSYS(QUSV]&&L3O=<\F. MT=9>I3;W585.L..T, M,5;QS(6R>K3Z6*+&5+0CCP1QCZFQ D?_I2]' M[C+XGK"OOMI"X.2=:[68"DL6_3)U<3_74 LYYG'<+XKXG?G ]C1EWP7+,VU) M.V:*#/+/0@/=B-272(TWVLQWA"7K MF3<<*AH2O%KY*D_O$O?;PO5U[-W5*L+R9J_L\$VP4F*'OQA,/OK7.B^DU(:% M!EK!P1>5=Q9L6>UZ6#DN&C5#= 5@=VO(G(;P'$T%-E)KZT66WI@M\+'/KHT& M>NN6?1M55XP=$CN,(M;Q)@<.R$CGF+1A0C+^?#IO_A<'FMH#Z= M"SRZ];.B1G?\2=2Y_[0HL_E[3W0^/YD]$SP"=*3]63$.S,];UGH<-,\N0RGA M^_J89SJ:G:8'#&CFSK.7KK/V+X(S#S_56YLGI_-GCWY(?AW&)(HO!MUPS'6F13'XU*U:EU!;"I9"A-\65=IW3N&W()DCU4$[.QWGA_!F& M#JD_P/H=D#G=R37',V^3XFJ"U\FD5S$C3UH>H^< MWX34:;S*]T\ILDDLHJ< M-%J]".J,-/@4*4RRO[%+=4OJ#R*Q[S+483E%O\/IO)WE6^GM+3Y0 524T$AD M!XF8 ,O[>T;J*.D0OIND1,0RD+\T^FA,U]3>^<\I21EBZKMUDL3?-NKG.]*X M6-#?.#T@UQ&&\U:XCC3T#%GX%EG#KH((^Q02XA+V)45E+F EK26D$9*&(]SH M?1Y#QD[!;WQ;,>V?Z@D^#Z4-\]O*#W*QZ2[V!/N'IJ[J7JNSIQT\_Z8UH'2\ M!TTA6*N_9'"0/\]/CTZ>IZ2823+.1R]>E8SG+TY(9=BE4AG&/;KSJ3U=+3'; 2%HX74("8TB:O(V M:\J;0"/0[5$TF'K&C6Q06Z/7JBE+[U)&+ZQ)T/6 I:N[=0C) , ^"PP@F MR/5]F@P2!Q6OGC\9PZLP,L:GX97'K#?^_3D.M&TS'SV-TEP"_K6(&\L],9+/ M'OD6NU#OZ(BKNG$=.5S!)+V>K>C#RFN+,;KJG7'X!DI5A3(#S:"C21[.'T5; MH9E)KROB*266_7M/]B'!G(NN77_@,)W4^'DIZST$(JXW. LFF:L,_=_F&Z51ZD4CY$A^$ YJRVT M+^VD5T<>,E#,S@_)#01/@#.2G^NHDI%Y _O>7/C1A=H&/_5P>&KL"S^-1',S M>*?5@/N)_3#AZ1HNKL1\J?*$#6\%'FI>DZF]?K&=56< M8<'4N5AC22>ID 73M)4K5ZTELL0:%;D;>-Z56S!>.OVNEXSL[P9RO,FT$;K^[9BN,4"_6,TD[MT%)>(&EXJ($B6G/&?@W MPTNC;Q7^XKA1K3682)9"_#2;,.DYGB&$.<;:(#!Z/>,(\]P $8U?6TRG<6D, MV^L=^IV-G6)9,H4CD?_@BIZ#L25 MTJ+8&A.#@I?UF[UL\_ 1@V!K$%C>M2/+EV( TVH1F%C94:TWD>&F* M$FE)IYSL='\\B4;S(. '\"# M*'6F8%(FF/P;P*5HFI""74C#X"CB&.-SZ/AG$'A!YPA>ITE1Q^)U_M,4'!U;N'__AY3_/;3H-QW=8;EJ)*.,R14FH$4C:I=H)Z-N,?*6R@PE%PE,7NB# MK1!._--V/;>GIB<:HS_@^IO7V@7MS4G@G?ZF2<;!F\:^WS;V_0/&;8UO5VT> M9N4'MVV$KYW?$4Q$@R3AMF8F/SJCG.X2(_>Q;KL%:&9!+)$L(!=*H0(F$>)] M@I_Y&PQWW^-Z-'(EB76F4@(WK#D0BU1N3C@[<5;+DNI)X!BE_ M,0MU9JGN]2^_^![0*\6$OQC.9H?VFC3$A# MA%*#3?!5'7S.4\J9)%A9&(7<0!VJA]N:=@52* MO?[G>*";P.DNY9B2J7?^E1(MZSE>;[18V]FY%)HFL5UF].N#TBC0>2J$WFV, M@^9GJO\/4$L#!!0 ( #J"6U@&N8LD40( '0% 9 >&PO=V]R:W-H M965T]F+[?AV?FYOC9"?5BZX #'FMN= SKS*FF?J^ MSBJHJ1[(!@1&"JEJ:M!4I:\;!31W137WHR 8^S5EPDL3YUNJ-)&MX4S 4A'= MUC55O^? Y6[FA=[!L6)E9:S#3Y.&EK &\]0L%5I^CY*S&H1F4A %Q'Q M^8#^V?6.O6RHACO)?[#<5#-OXI$<"MIRLY*[+[#O9V3Q,LFU6\FNRXU''LE: M;62]+T8&-1/=3E_WW^&H8!*\41#M"R+'N[O(L;RGAJ:)DCNB;#:BV8-KU54C M.2;L4-9&891AG4E7B^?%MZ<%>?](-QSTA\0WB&IC?K9'F'<(T1L(840>I#"5 M)@N10_XO@(]T>D[1@=,\.HMX#]F Q.%'$@51? 8O[GN,'5Y\OL=3K76%P].% M5A!3W= ,9A[^\1K4%KST\B(?0%4W7X+3@7H#RDWH$+>3LDMT[ E[X_L6 M\PV*N?=FH$_I$2 M:E"ET[LFF6R%Z431>_LGY;93TM_T[CUZH*ID0A,.!98&@VM4L.HTWAE&-DY7 M&VE0I>Y8X;,(RB9@O)#2' Q[0?_0IG\ 4$L#!!0 ( #J"6UCHGG8M/P, M +\' 9 >&PO=V]R:W-H965TU M*%I B-XH64YL WEQL !-YR9NAWVDI;--5!)5DHJ3_?H=)5O16M?#@'V1>,>[ MYYY'IR,G.ZF^Z2VB@>>RJ/34V1I3GWN>SK98,N MGSJ^)80%9L8B<'H]X346A04B&M_WF$Y?TB8.UP?TVU8[:5EQC=>R^$/D9CMU M4@=R7/.F, ]R]QON]<06+Y.%;I^PZV)9Z$#6:"/+?3(Q*$75O?GS_CL,$E+_ M%PGA/B%L>7>%6I8WW/#91,D=*!M-:';12FVSB9RH;%,>C:)=07EFMGCX?3%_ M6/X)EY]N8/[YR]WB?OYI">^7?%6@_C#Q#!6QH5ZV![SJ ,-? 8AW,O*;#7, MJQSS?P)XQ*ZG&!XH7H4G$6\P.X,H<"'TP^@$7M1+CEJ\Z#])/J:TPV''<>RX MG.N:9SAU:!XTJB=T9N_>!(E_<8(EZUFR4^BS1QJ_O"D0Y!H6BH90F1<7%@6O M#/ JA_GW1M0T'>88\=/0[]ZDH1]=P/_UI@9AN4+5-NG@M,T:&B%.@(W#2.X%&NS8XK['=B-QXG RL:QW#;J$J81J$+:_%L%]IM M/]+/E:B,'PPLEC+XB#366UGD(,I:R2>T&;H/2EPVBH=6,H*/?"45-U*]M'6D MV1[5Q=QT' PL%@6P1&V.$8M=G[%7,W69'_6=_T&-J("(;DBG/O_W]MS>T9*E MX07H%VVP!*XU#@3V-4,W3=@Q=TB\K[_2OSUBKR"][A_@$G<\&@TZ%/CQ3YAI M0J6BH1DE8VJ$U7.994W9%-Q@3N'>"4T5>2F7$7YWCD/Z>C=TXC#\, M'(D;C,FQE(87@[\J&KE1E X^7=/4?R:,7X)[$ D.1+ MD9?B>+"0E7##B:B*@O+'$\C9ZGC@##8+'[+Y0JJ%T>1H2>=P"_*/Y0W' MV:B1DF8%E")C)>$P.QY,G<.32-%K@C\S6 GC/U&>W#/V24TNT^.!K0R"'!*I M)% <'N 4\EP)0C,^KV4.&I6*T?R_D?Y6^XZ^W%,!IRS_F*5R<3R(!R2%&:UR M^8&M?H>U/X&2E[!^#P1#;.QC<-8.K M[:X5:2O/J*23(\Y6A"MJE*;^:%7)U?G9'I[>WYW2_;OZ'T.XN!H)%&98ADE:\$GM6!WAV#')>]8 M*1>"G)U M_@ZHJ#@@,DFR!)ZQ%+'E (,X@BI18]YQ# MF3P2R6DI<>.BT*T+9T,D5G1N*4N6'A1U +$%C>/XX["FHH"FH MX+L+ZFU69A)>7Z'PU'1DJAVQR#7(;;76K^!7U=K/'I\'9=<7]QGOM&!<9E]I MI_@N.!/BFVIQS_\%QV:\J0MT,SVEG#\J,&D,3)*JJ+#$H(?HQ[B:ZE9@* [4 M7E18O)TM:==V?E+0PE%/EF+I9[-,-622-3DJ#O_W!/G6>*J/,9@F'&HL$XML M*8A#7A/'-@!E; 5V;,SW(\OS@@-CQ;6VSOVG;$5^I%! M[EGC."9WG&+8: $:R*2:X=GWDR!NUWG'"L:Q(0VQUW \,)Q^0CEVXI8NC&UR M@TF):1-VY>/&V;8I/XK=EL]SXMV4X3AL*7W;)]>L3%BQ!+GN=W,.NAD*TEH9 M^X:-.#GH)(79F#J406Q0NJ%-[IBD^<[$VB-^;$5HDI$!&!B[FP+8R4+7S#,_ MLE"1R>1BZGE>ARFV[" @=PML7_IDC[E#'X#C1850LTS7)P"\'M6G@)Y2W?1% MU0^#H:<[KMC5^89:]XSE>&U2J"*UL/KNE'T%L45NQR[X@OI8 MGJ4:LFXE#G7(4/4I!I/#0EVT'@"['P87R/X5(NX!V=?LK!*8ON+@L*?MADW; M#5_:=O/M;;<+A^>U/]O:<+_"7X5RWSKRMD==?<3M.(=[T22/@5!9F>25$EBA M6$X2)NJ(<82SL@)AY*MKN6'8G3M^9VY'X]U*GR>3OL*4*EL$+"G'A,D?.W8H M0%LG66N(8[EQ8,XB$^-<55&ZHNGW&]+ZX"$".YVY'_N=N>?Y/2D:-2D:_65Q+O =Z=JO^*7IIK"A4ZNK<\,F&#=?7&]2"VVD4&0C'0BMCGC6F-;)VAD M+$78$G$I?F:":_E^H#Z-Z\ZV YT)H&;X7:\=;AG]2YM!:BG0+TM@"/C@0,/ M$G/]C",P$=';^JVC66U>BJ;U TE+7C\SO:,<+Y2"Y#!#5GL8X2&>UT\W]42R MI7XNN6<23RWZ[P*P;W-%@-]GC,G-1"EHWL\F_P!02P,$% @ .H);6 (! MW5[9! &PT !D !X;"]W;W)K&ULM5=M<]HX M$/XK&C?M)#,4;(,=2(&9)$WG,I/<94JOG?LH[ 5K*EL^20[A?OWMRF ,H5SO M0[^ 5]8^^_Y('J^4_FXR ,M>B;)(.>FJTHH\,U"Z9Q;%/6R M9TH-/'5*N>R%OA_W=Q MS"PM]*;CDB]A!O;/\DFCU&M04I%#880JF(;%Q+L.KFYBVN\V?!6P,JUG1I', ME?I.PGTZ\7QR""0DEA X_CW#+4A)0.C&WQM,KS%)BNWG+?HG%SO&,N<&;I7\ M)E*;3;RAQU)8\$K:SVKU&VSBB0@O4=*X7[:J]T:1QY+*6)5OE-!3U/W_9 MY*&E,/1_H!!N%$+G=VW(>?F16SX=:[5BFG8C&CVX4)TV.B<**LK,:GPK4,]. M'^ZN9WFY E,/.QW M _H9O.F[-T'L?SCAU:#Q:G *?3K#\4HK"4PMV -@7[&[%YPT ^:8IZ>QWKT9 MAG[_ _O5_W\!UW69&18)\CEH5ZCM>RH8_83T$[ _2M#7#1 MJ)RQH!/U!WOR(+KQSV:9TO:]!9UOP'B1LF>N!?7M(7ZXPQ^A1]OGH./W MPT8:HIM?E.7R0'MG.3SP!.7A:$^.ASL\BNIW9%&LYQ+)$!DK4)[ZE9B3H$OGL%M;26CR[X>K^(& ME6$3"94:YF:P($=++? $7*-D2>RHG@2E>=D%<\E1D>1A<+%DF1<+\%T3PQL MU QL]-,#.ZO*4@*>3=0^NS:OY_B^J,]*+.FQ43YMY5>-[G_,ZS=W>F$B.58( M#V,L-J5Q-[NNMRIL2LW4_E@;=HZ-2TUK+EZ9'70'K]:B[FXD7]E-A4E456"K M8D^Z'C@PQR0VBY#8\6AY9V84L[=S4//[IFA^6^:'E!XW*([>5 M=N*QJI^V\W\)F+S8J^AU[I)&'(3UW*?3.'9%CEH\& D('P5X06K"=F^/EIM]>ZL.: #$W7W?;ZL^$1"5X4="0M4-7O7B*_ZOHJ7@M6E>[Z.U<6+]/N M,<.O%]"T =\OE+);@0PTWT/3?P%02P,$% @ .H);6)5H=+ZT!0 J10 M !D !X;"]W;W)K&ULS5AM;]LV$/XKA+<5*:#( M>K$E*TT,Q*FS=6A2(VY3]",CG6TADJB1E)W\^QTI699K17.'K>T76SP='][K M0U+G&\8?Q0I DJO:2:V'S>HE]KW]&7!RK@BB6?XTBN M+GJC'HE@08M$WK'-'U#Y,U1X(4N$_B6;2M?JD; 0DJ759+0@C;/RGSY5<3AF M@E--<+3=Y4+:RK=4TO$Y9QO"E3:BJ0?MJIZ-QL692LI<OWN(YF]O[R=DY./]"$!\?J\+W$1I=H/*\!)">B\ &@[Y(9EU MRYG(:0@7/>P' 7P-O?&K7VS/>M-AY:"V 'D),[(,RXH7A]HVZ8S/$ZX]_*>)9BO));/!^\'KNEYY+=#^%4PH'^T+2'+3".Z;>)+=.V45S'(XK7<019U.J>[;3G M]B5Y\_UGS:BX ET#QPV"+&C,R1H+6S=%OJT*KM0$67*::7L*'F=+(E= ECW]/#HGM:M?#I!!R)RQ5+<9$79KRJP MF8#69NV&_UY-^4^=ICM+=Y3NG"LF,#WH,HTT7;&,P:OID M(_R@Z;2-7KMV1WUY=7UY1]?7AT(*B3ZJ7OA0TC^Y1PI0_82>U^TKF1:W55OW M8M][*VASZ/]>LZ:@_PS@LN*R?POX]?P[4"=O%9-:8[GDL&SC^=M"MRH6QU8R M?0(>QHURO<*C&\>3PL/#E'R5AAF/PQW61^!I/;C7M+T=J>U3 MKE@A,)^XA2)/D_F*ZWBY6- OQ=O$MZ'G,OT%_S^L]IM5^NWM^#\W (0/3 M&C:$GATT>QX:/;]&\5&@=AMH%2=U1V@%\?=!D/Y<,V@*AT'0P7=^S7?^\7Q7 MU>(NA;NZU<77QG#=\#_I?KKSJSX+LHYA M.WLG);Q%!#7A^2/WP!B\1@R\+1^Y"=M^^N]VT][9Y"J?S#B MCN&//%47CN'YZL%V#<_VVY+0;WP^2H$O]4?:(I/EEZ1:6G^'NRP_/^W4 MRX]X-Y0OD9M( @N<:N$-LE?>S[8#R7+],>J!2&ULS5AM;]LV$/XKA%L4,J#$HM[5)@:2--TRI&V0I.WV MD9%HFZ@DNB25E_WZ'25;HF-%<8-NV!=;1XG'N^-SSQUY<,?%=[F@5*'[(B_E MX6BAU/+M9"+3!2V(W.=+6L*;&1<%42"*^40N!259/:G()Z[CA)."L'(T/:C' M+L3T@%D+S7"L",WZL=([:)?5$\WFM_4/M._AR0R0]X?DWEJG%X2@>H8S.2)6K M2W[W.UWY$VA]*<]E_8ONFF^#8(322BI>K":#!04KFW]ROXJ#,2%VGIC@KB:X MM=W-0K65[XDBTP/![Y#07X,V_5"[6L\&XUBI-^5*"7C+8)Z:GGTZ^?SQ%%T? M_7EZA:QK#H[V^=?,]OMGZ]1X*YX=!Y-V";W]KF#VF?7D&J955.$9^A$UXL>4E+);5T5J:\H.B:W*/3 M>TA$29%U3$LZ8ZIWEX;7>?,J=AWO'?JW__^B1#1 0+"-M+BAHM[*]7N]I?K' M-4?PEAKKK$1JP2M)RDR.T9?]J_T7FW12"0%!;>77R/(";VS(V':Q8[X/HS&8 M/Z,P,6O'O?8)&X^VAV,$+ $<4.YL@A]T&H(HZF+A1>@;4XL%SS-6SHU5HJ@S MT+4QQL:[(,';UEK82<:&Y'9"XJ)KKDB.6 ,Q!1"C*XB908E"WY ].TZ2#1E' M>" #@C8#@ITSX'0VHS57F^B_)(JB2YKR,F4Y(YK1^_ _O,K_#_\U[C_0C K8 M":F(JA07#T]NAH-#4W9,R8*]\0&R5TJ'2FM8"G[+ZNK9(B ,# 3XB8&Y!";R M]#N"B.MUZPAOV6 !'O0:K1PGL2'Y":!-[U8*(&3 8.T;#Y++-[YT[3B*-N0P M"L=M"H'U-BJI,O =!X:U-DX"XUT(F;2:N@>A!.AD &M%RCF#>K9&N/7A_=G9 M&$IV5C4=P1;?@"8S13HO/6=[5/]C%])Z >OH1= MR:LF;B2'9H>4:1>YP'9\ M(]UM;)!?;#N05%>K/@6'KE6,4X%09(:A:^!R@E90K8T(!>F?1I;0I\B-.96 M0-N.B>O8ON-MX]VQG3!!1VDJ*I++-74TG((R!H6JKNAZ"9YU:GW;\2+#X AZ MA7-*S)6AVXA=0PIA"VL"WM-GC&R3A@T6W)B4^/$JF[*!C0]C(,_.N1"H" CD MG$KY=I"RK-"W<6#PH14D0./!N ]F#5U#&@UI[.(3.=OM7F#'SC;G[)X9ADUY ME[-;'UX(C7[UT,#C1\5J\&Z6&VNC#EB!#_S_N'I_M52 \"CE4 M$C<,SBR#&/,-MK"D;O15D<#/!VU/!WMS-.ZG*5\7M:YKKEZ=1Z2Z)+GN>8131=] M5#V\QL\&YJC@%>3^;T(S:&4:9519R(L_2%D1X+'F*(O-T/BVYSBZRQ4-.;"& M_I9<,IU!4G,?2E?'A@?=5+8M R3T,_.6P$FBGF6P#CHG2UFS5]-LUA'M6@T# MCSZ&LOZL3N#FSN^I/NMK6S2.UD6C+X&' MU_C5O=;/_A^3O*YVI*LC<#800U@'(K70]\$ M4Q1*T:R^,UJ/GNIVK!/A\:+N4]J;).AK-(7)]?BCS6^JO3'@:S 8\CKANI&F M8]C,$E"$[2 VCZK0PKG)H*+5VH\(T]\\!KY&B1VYPQ8U:_&)[ 6%%_65[ W M7"E>U(\+2N"HJC^ ]S/.U5K0"[1W\M-_ %!+ P04 " Z@EM8W#T+=ZT# M "-"@ &0 'AL+W=OPRKV+ON[CKD_GUG;6.NILC;=4LXDL3,H%+A7H(LN8^GZ-J=Q-'=_97SSPS=;8"W**+=!B7F&0G,I0&$R=:[\B^N!Y2\9?N.XTZTS6$_64CY9XEL\ M=3QK$*88&8O Z/.,-YBF%HC,^+/&=!J55K!]WJ-_*7TG7]9,XXU,?^>QV4Z= MD0,Q)JQ(S8/LY$!7:R*P6)@LR+JHO>ZGC\","02T0 ME'97BDHK;YEALXF2.U"6F]#LH72UE";CN+!)61E%KYSDS&PQ?X1OBYO[NSET M?KE?KK![IX9.L4]=G$-:3)\KM1C7I=H0;OH/H!W$EAMAKF(L;X M-8!+)C9V!GL[KX.3B+<8]2#TNQ!X07@"+VS\#DN\\.-^'W.W NL?![.-F]D^ASU;4B'&1(L@$YDP)+C8:EJA@M64* MNW#--(^ B1AN>5J8OX>[?(.SZWJ!%=\)N/QBW.3J! MW^V/1F=DC9#47:=U58'>E8U.'K!G,FZ#H&T:--#$TX:R0.EI),)1U_,/)H3# M;NB-VZ0?CF">)#2B;'9CFS\:4D!M'SV!S.W@TETHQ#-JJY+T&,4C>ZQ8"L$- M,=CD[\U(@**1T<"K./ EQU+ 2%@C<*T+(@K*@0+,\E1^Q[V^O%#1EB81\,S#H?_$)Y_NP;?5DQ.H2BM?#_U'_U6I7(H-*_G MC5IDA^C7A>CU!K8,ZR!^5/#$E!DT4V;PPU/F2AC>U.(*HT)QPRF'\YV.J0VGR*28D*C7&U).5;7\ M5(21>;EPK*6A]:4\;FE?1&49Z#V1TNP)JZ#90&=_ 5!+ P04 " Z@EM8 M^/ZS"L\$ !,#P &0 'AL+W=O/PA:@KBRYDAS"O^^1#+;9$)KM M-'T!'^G<+Y^DWDK([VI)B$;/*>.JWUAJG9TUFRI>DA2K4Y$1#CMS(5.L@92+ MILHDP8D52EG3=]VHF6+*&X.>7;N7@Y[(-:.F<7D>&W#+]1LE*U;V0B MF0GQW1#CI-]PC4.$D5@;#1C^GLB(,&84@1M_;70V2I-&L/Z]U?[%Q@ZQS+ B M(\%^IXE>]AN=!DK('.=,3\3J*]G$TS+Z8L&4_46K#:_;0'&NM$@WPN!!2GGQ MCY\W>7B+@+\1\*W?A2'KY276>-"38H6DX09MYL.&:J7!.XFNK^ZN)\/[K^,1&M]^N9O<#!_&=[?H^ '/&%$GO:8&BT:N M&6^T7Q3:_5>T>SZZ$5PO%;KB"4EV%33!U=)??^OOA7]0XR6)3U'@." MOJ",/[#Z@G\?_[ZP"Z7A?J5FD,Y4AF/2;\"D*"*?2&/PZ8,7N><'7 Y+E\-# MV@=3&,PD9P2).9J0)\)S@F9K=(/_%!*-;,L0J8HVP) AGF13/%&:%L#7RW(\(/$J%M*[J M)4$CD6:8KS]]Z/A>^URA6' E&$U ($%::% KM_:L0C K& "'.D-&R W.W^W_ M#X)ET:8(FHRD,R)MHVTS:CNNY ;"KQ,>&I9DT$(?*\*K$5X;B(N2_%S?>T[_K[G?TR:'QO^MYNZ)C*$/X,+S MSJPE<%=]H=#13RT_W MY3I!.RP70H.1HR7EN$ICY(2=#O*BEZD/G;!;R>[A\$+'C]H5657J5PR(])+? M=<*H\O6EPDJ3TZW9Z[[.Z#ENM^:!6RN$TEN A"LJ2ZJS(7+<3HAJK53;:7E5 MQ+6T5H>,$]0$@^KSH7Z.UBK@12VG V>3Y^Y6Q@L[3BOLOEPW(45NL7X J*(2 MJ*(W ]4E53$3*C='!_\1LCKV36M+#EA-YW?I"Z+0#]T 3>4X0^34J#*--"S"3 M1&:3B&T2'<3AF5?3'3G=CK>[X+5?'X;7_DT(8WO',/>VHEX)R9A8&].ZO$H@ M14W$*RCT$NY^.40Q@P;(M:()L:$]GDY/][5:L_;" 44+^XXS]T>H>/'8*5?+ MI^*P>"%5[,4[\P;+!>7F')Z#J'O:AN-,%F^W@M BL^^EF=#@M?U&PO M=V]R:W-H965TY>C08R,S$7>*] 9TG"U.LEQG(U=-K.6O' %Y&Q"GFL-MI*9E,]6N V'3LLFA#$&QB(P M>BSQ"N/8 E$:WTI,IPII';?7:_2;O':J9<8T7LGX+QZ::.CT'0AQSK+8/,C5 M;UC6T[5X@8QU_A]6A6WWS($@TT8FI3-ED'!1/-E+N0];#OW6'@>O=/#RO(M M>9:?F6&C@9(K4-::T.PB+S7WIN2XL(1G1C?CVP=X&G^=7L/=]7@R M?;B^N_[]<0)'CVP6HSX>N(:B6%LW*!$O"T1O#V+;@SLI3*3A6H08O@5P*;TJ M1V^=XZ57B_@9@R;X[09X+<^OP?.KFOT56@!U=@/9ACG7*0MPZ%!' M:%1+=$:?/K1/6Q,*WAB<88-&&N-1L,=,ITI M#('N]@,&F5)<+."2::YW55(?Z].'OM?R+^#_>F[J6]=%C4]%3K4MZE"4/S-I M:$/>*\E[Q0/4P,6[11CG'%6)$[X0?,X#)LQ/0]\Q]6RO#?%XI?O#1*A^&ODV MI*.B).,-[LSV@B60@TJA_L9D1IG8'J^VHKCE51"19EOB5,A-C-+4L@,RJ[5WLT$PBJY1"4LZI8O'+4W[OYIH]OI[!/_F?I:?I1FZ]P_0MMK M-?QNIU:S?QM^L= O%OHWT0YBH#>4\1]04"ENR,?;23[OS#J];J/G]^L4^]OM M0&98/]N-L[/6@=JZCGYOPOM!XJL*.6MTN[U]XJ$$>-9K>/UNG6+_>=BL'B.$ M@"GU:AF')3*CQ.G[CUH$KF22,O&:6_EJ9(OG&88A+GEN&7. M<2']&6FQ2:4W)T)VI6<#F BM@4*(&''"#%& D$!WVH:E+@XB)A8%'P5:F^LF30TM.7+B*9D5-: ?I]+>BV4@@U0S=VCOP%02P,$% M @ .H);6+9 9*,A P =P< !D !X;"]W;W)K&ULM55M3]LP$/XKIPQ-("&2IB\4:"NUO&Q(HU04-NVCZUP;"\<.MM/"?OUL M)TT[*/VV+XE]ON>YYWSVN;>2ZEFGB 9>,RYT/TB-R<_#4-,4,Z)/9(["KLRE MRHBQ4[4(=:Z0)!Z4\3".HDZ8$2:"0<_;)FK0DX7A3.!$@2ZRC*BW$7*YZ@>- M8&UX8(O4.$,XZ.5D@5,T3_E$V5E8LR0L0Z&9%*!PW@^&C?-1R_E[AY\,5WIK M#"Z3F93/;G*;](/("4*.U#@&8G]+O$3.'9&5\5)Q!G5(!]P>K]EO?.XVEQG1 M>"GY+Y:8M!]T TAP3@IN'N3J.U;YM!T?E5S[+ZQ*WTX< "VTD5D%M@HR)LH_ M>:WV80O0C3X!Q!4@]KK+0%[E%3%DT%-R!05G2CDB[^A*X1PYT4 M)M5P+1),_B4(K;9:8+P6.(KW,EXA/8%FXQCB*&[NX6O6"3<]7_,3OK$TJ*%, M<%=^);JU&^VNR+G."<5^8.^ 1K7$8/#U2Z,37>S1UJJUM?:Q#Z;VRB4%1Y!S MF!2*IO:XP40QBC#D7%+B#S(3,"JTA6H-0_I2,,V\-]EDPWCIH7\+_^ MPTPJP_Z4J6P9"V%@@HK)! Y_(U'Z:#OG#QMROL%JC4;7TQO"%"P)+_PN&B(6 MS)8:2.EUR 3E1<+$ BC1J7,YB#OMHQI^ *UV](Z$B75SOW1)YMC ML*E2?!QUN[#KSH5;S=!N^L*W? U>?]D7:VO]J@S+9KIQ+Y^D.Z(63&C@.+?0 MZ.2T'8 JVWPY,3+WK74FC:VP'Z;V943E'.SZ7-IN4TU<@/JM'?P%4$L#!!0 M ( #J"6UB56D9OGP4 "LC 9 >&PO=V]R:W-H965T&UXH,N5BAM:@\LU6<(4U-/Z7NBS5H8RIR$P23E# A97 MC:%SX>&SV"#I\2>%K=P[1K$K,\Z?XY/Q_*K1CF<$ ?@JAB#Z;P,N!$&,I.?Q M-05M9&/&AOO'K^@WB?/:F1F1X/+@+SI7JZO&>0/-84&B0#WP[>^0.M2+\7P> MR.07;=.^[0;R(ZEXF!KK&824[?[)2TK$G@'&!PQP:H!/->BD!IV2@=,]8-!- M#;H),SM7$AX\HLC@4O M$G%OC18?)&0FUMI]RN+[/E5"7Z7:3@V\ZZG[,+Y_ M'-]-T-T-&CU-QY/KZ10-)QZ:/MW>#A_^CMNGXR^3\T=!U[YXFC^/) M%W1_]\?8'5]/T2G< M1KNYX0-SI:J2 M_1U:/T&+\\-FH&>QV:?!.%ZQ8P9K(N^ 1%5E+I&P[J$60(K$-;/".L;?;REC(916$6.T;"FCZY- M,,\26(&PLXRP,R-A8Z8(6])9 (A(J0L9$L;K[SM)0NYPJ)E1G234JH@SVM4E MSA)8@;CSC+ASHXLN65-% OH=YLCGX3I2.H%)OE!;(N CBB0LH@ %= %5])FQ M>X=7JM&P+G^6P K\?<[X^VQ>J>3ET$HU&M9=J3;!/$M@!<*<=EX+MM]DK1Z! M==J'P\UL6I<^6VA%_O9J:><-E^P1\+Z!1*-E;1(MH15)Q#F)V.CG _A -T0' MH40C8/Y*Z]'G2KZ,.'67L54TSQ9:D<-<"#AF)?#$9EIUZ2@4.9F5%.Y@>ONE M;K_9+56[5;TZS5ZQEV>>TL^ZG!?XCKG"OU,KO=@FG'WR(R&TY$'#.(55NVVS M?G>MHGFVT(HTYGK ,=?P59&#&%<(7M;@*WU!<30#G=Z"(#FOY+?W8\ TRQJJ MHE.[>5X.JK>H]9V\V'?,U;Z;O(#1<>5RYNN8$KLGX0.5S^A?='JFLBH-K*)Y MMM"*#.?JP#$7\KDP#\D_7*2OO*#R.3=*L?:5.2Y'U8]=.N68>HNJWLG+>N=( M75\_IG3[XY:C*5TRNJ ^TBP#&K@GT.7V--)[/] M._%>%[KQ*5E"U4N]43I"7&ON9:Y>.1"MZ@);:,6WIKDPP.8*_B=C=B4 3H]: M\QSJ1JU5-,\66I'_7%A@<^UO(6K-(]1FUZE< ^54:VO0(FVYE,!F*7$L;#? M(C _NLTCU*;-JLBPA59D-Q<9^-3/#2<\NO'QCPT577 YGDQ=BF[DP@&;A4/- M(-%M=ZPZJU7Z;55J6$7S;*$5B<^E!C[R[<%"4NM5I:%.^5ELGDAMVMY"D^!< MD^#_ITE^C-=:M:-Y]-H!:U6KV$(K,I]K%6S6*C8"UN;G"3=%*X5_UREGS-Y):( M)642!;#0D.WFF5Y*8KB^#K9JS#C2M.;'*Z S$'$'?3U!>?J]20>(-L? M,_@/4$L#!!0 ( #J"6UCI4!@D^0, #,3 9 >&PO=V]R:W-H965T M;!J^T"$B3M;*2!(E)VM5KM M!S>YD&B2F+$-M/OKUT[20#K!E"K2] /8SCW'/L?QY=;]':'?6 C T7,2IVR@ MA9RO;W6=^2$DF%V1-:3BR9+0!'/1I2N=K2G@( ,EL6X91E=/<)1JPWXV-J/# M/MGP.$IA1A';) FF+V.(R6Z@F=KKP#Q:A5P.Z,/^&J_ [Y8SZCHZ25+$"60 MLHBDB,)RH(W,6\=L2T 6\6<$.W;01E+*$R'?9,<-!IHA5P0Q^%Q28/&U!1OB M6#*)=7PO2+5R3@D\;+^RWV?BA9@GS, F\5]1P,.!=JVA )9X$_,YV?T!A:". MY/-)S+)/M"MB#0WY&\9)4H#%"I(HS;_Q-BG9(>HC!9LLI&9F:&%_"B5^^YQ*IY& L>'SIUGS]W9 MH_LP10_W:+SPW.F=YZ'1U$'>8C(9S?^6XY[[9>K>N_9H^HA&MOVPF#ZZTR]H M]O#5M=T[#WU&-F8APFF0-^Z^;Z(MCB'E+!OT0D+Y9PXT06ZZ!<:3[-$G!SB. M8G8A"!:>@S[]>M'7N9 E%Z?[A81Q+L$Z(L&TT(2D/&3H+@T@J!+HPH_2%.O5 ME+&E9'3 OT(M\Q)9AM6J69#]?KA5 W?>#S<5:EKE%K8T1%;Q MNEUZW5:Q#T>Q2*0X]0&)E(Q\"D'$44P8 X9$EHOV!M=YFG/W,FZ9L+=#HZ]O M#XTZ&>&H(BJ2.J6DCE+2'' <_0U]TKM/:5V-Q4900@4.GV2B->9D@3Y(H%< M9I\(WB1XML\B)YSI_?""=CJ&_'OCSX]Q9EV<4Q-7#:OHOR[U7ROU3Z(T2C9) MG0 E\-S,UR29TQ!9Q;";TK";G_ K<].DUTV2.0V15;PVC7W59BA?3Z_VN%TB M6"XAJZ1%C<@W-.(OB(=B 2&)@]K*2CW-C8$"_%)WC&TU\EPWFV*KVGE0!)OJ MTXZ?CYUV-?+<5[!1-J+:;#;'E;NH' MMPD)T%5V*\.03S8IS_^'+D?+FY]1=M_Q9GPL;X2R6XH]37Z=-,%T)0OJ&):" MTKCJB3*?YC8>3=79G\40X)TG6# $'0&6 >+XDA+]VY 3E/=GP?U!+ P04 M " Z@EM82WR;G6,# !Y"0 &0 'AL+W=O,G2G$^U6(C=6-=Y$&-&^#W= M82Y7(LHR(N24;76^8TC"$I2ENMGI#/2,)+DVFY2R)9M-:"'2),%HT_1'$HIXJHTT"#$B12I6]/ GUGSZREY 4UY^X5#K=C0("BYH M5H.E!UF25W_R4L?A"&!T+P#,&F"> @87 -T:T#T%]"X >C6@=RN@7P-*ZGK% MO0R<0P2931@] %/:TIH:E-$OT3)>2:[RQ!=,KB82)V:.Z]LK;_GL/2W@Z0'F M:]];N+X/UL(!?_WX:*W^4G+?^[KP'CS;6CR#9=M/Z\6SM_@*RZ=OGNVY/MR! MET[\/'# M)_@ 20[/,2TXR4,^T84DJUS6@YJ871$S+Q S3'BDN8@YN'F(X7L#NHQ2$RKS M-52V>=6B@\$]=(W/8';,;HM#SNUPLP7NW@XWKK#I-@??+>WU+MB;DU2=P&?8 MX#;)\R3?ML6XLC$L;:B2LY^-OG0F^OZ8]@TZ[KG.ET&WT7E'H-<0Z%TE8,>$ M;3$$0<%]D6638PN!^74;?QO_M+&N0(,C;\U3TNK6JOZ/^8X$.-5D M@>?(]JC-?O_-&'3^N'*Z_28X_:O$' R+LA)S'7ZP1. =C2(.-'J[D"L,,-F3 M3=H6-[M_QN_N+ 8M.F=!:-$97CCX0<-M<%OF8AY>2-O!#6E[@XY[7>>=]T/M M1#!JZ(Q^E8-@A;("JM-2V2QBE/VS/B76G!+465+6S*"JF:FLFD:&$JF;-H=RVNH2-M'D/S,LV>"*WY3O!:)%;P[$S M;)./QD[YKM#?MJT>)8^202)CD&(D7>C<#V7RL*K15Q-!=V4GVU A^V(YC.7; M")E2D.L1I>)UHC9H7ENS_P%02P,$% @ .H);6!>^:TGC @ (0L !D M !X;"]W;W)K&ULM99K;]HP%(;_BI5)TR9US85+ M+P,D"-!&*A<1V+2/!D[ :A*GME.HM!\_.Z&!3N!,3'Q);,?GS7/>V/%I;"A[ MYFL @;91&/.FL18BN3=-OEA#A/DU32"63P+*(BQDEZU,GC# RRPH"DW'LNIF MA$ELM!K9V)BU&C05(8EAS!!/HPBSMPZ$=-,T;.-]8$)6:Z$&S%8CP2OP0T57 A#I20Y7G:B1O%.%7C8?E?O9\G+9.:8@TO#GV0IUDWCUD!+"' : MB@G=/,(NH9K26]"09U>TV"'!V 4[& MG;\HH^QB@5L-1C>(J=E2336R5+-H"4=B]55\P>13(N-$J]OSW8DWGGJC(1KU M46?F>\.>[Z/VL(O\V6#0GOQ2X[[W,/3ZGML>3E';=4>SX=0;/J#QZ,ESO9Z/ MOJ$>%T2:!$LTXQ"D(7J2;G-$ S1F<@TQ\89PO$2]EY0D\JL*]*4+ I.0?VV8 M0B:B<,S%#KJ30SNGH&%QC2KV%7(LI_(QW)3Y%R8XA0E.IE<]H>?2*$D%L#W= M,2:MAMH]]SS!"V@: B%AVEN=4@".$:L MUZR@-\",:^BJ!5U5J^330&PP.\J@C3S3M5K!5;N :WK-AN_]]8O#UE MK%;\3&/O"O2["QBKU[2M4F=M:W]<6%JQ)SRG# O*'0 &0 'AL+W=O3B%]Z2%)@)V-=VII=FR.3Z6=@+ M:&);5!*0=N['5[+!QE@(R"@?@FUV'^\^^R(M&FPI>^-+ ('>TR3CP]92B-6# MX_!H"2GFMW0%F?QF3EF*A;QE"X>O&. X5TH3QW?=GI-BDK5&@_S9,QL-Z%HD M)(-GAO@Z33'[=PP)W0Y;7FO_8$H62Z$>.*/!"B_@!<3KZIG).Z=$B4D*&2]4BH?7>_2ON?/2F1GF,*')WR06RV'KKH5BF.-U(J9T^SOL'.HJ MO(@F//^/MH5LSV^A:,T%37?*TH*49,4G?M\1<:#@]T\H^#L%_UCAU!O:.X7V MI0J=G4+G4H7N3B%WW2E\SXD+L,"C :-;Q)2T1%,7.?NYMN2+9"I17@23WQ*I M)T;3\'OX]!JB3P$(3!+^>> (":N^=*(=Q+B \$] >#[Z1C.QY"C,8H@U *$9 MP.\8 !SI4.F5O_=J[!L1 XAN4=N[0;[KM]'K2X ^_?P9$0&IQKK)Y5C^'DL# M$UP.XQE@P@]X9F"L7>9!.\?MG,!]6JQ@5B M+T=4#6DS\@?.YI!9XSM5#WS@*QS!L"6;' >V@=;HEY^\GONKCE^;8*$EL!K7 MG9+KCI'K"5X1@1/R'\0HDHG/9+>4%US<()*N,&&R$0N44,YUK!NQKZ1A4H#U M#T+HUD,8G)4(31(U?KHE/UTC/],B V]D*JJECF0+M *6+XI9!(C.$K+ :IG1 MT=-M6./[]W>N^CM*3J,1UR:G3;"PVRRLA@\U9GLEL[U+F#U!)T=1BK)]H]B4Z6]IFJ&MKVRI: M8!4MM(56#\K!P.)9+? =W&%ZW.M25R-WG+5FRZ[F\:QA=8;\BB'?J&GN\,W//07'_2?",)$00T">2S0%D8A4ML(H6 MVD*KQZ0:CSSS?"1CL@])#'.05_%^*M7&I=-<=+1+N$Y0UPH"LWU7L]D>5 *]NSL]_5J+SHFB91;<+6%#]_E!,_55#^%B"ZRO"5,#53:'&,F M5M$"JVBA+;1ZY*HYS#LWB)7AV/_>,FPWX N&%XM280FLE> 6N+RGYVGA+^A M'V4YC"&+EBEF;UH&K0YC5M$"JVBA+;1ZM*J!S#-/9"]$9OJ<1%CV\^(7;;FI MCFIQ^[0"IF[Q O0_0!=O4#O/*C6/\_R\3'"!3&CVYJ-L5:.99Y[-KLYM^4QM M8EY?M,39'+0F5M$"JVBA+;3Z>4,U*OKF4=%"DN_>4$M.][;3.,C_G1VM'SL?<0%$>%%4QQ M\8?Q(9@$3/14[%Q,JD+&]L M6\09%%A_9.Q7=FRP@)F+/]!$IE-K&L+);#&FUPNV>XSU/8,-%_,X%\AS/[U!H]G*XUP&/7@YW>ZSQ&_?[AB\XP;< ;JXN MC0&Q54XJYXL+5 */@4IU\W0D>!4)T16 Z@#7,2?H6[X-E6;;0Y?\6R3J%3DR M+6A,"WI-^[8%CKZK)Z)+Z5ZH?NIN1(ECF%CJ+1/ MV"%;]^X0^=C5\3/21:= MB>S(98/&98/7SH;!WW%TKD;MA.B4&EY_./JU,J0;,^A.DF%C\;#?8D:HO"3T M4IY(E%[X_R;*.W5+MU+ /JE0! M/#757J"8;:BLWO]FM6DH;DT=;:U/5:-1]05_:*HNY0[SE%"!D ( )P& 9 >&PO=V]R:W-H965TL].% M(JU!@@](5>.7N_/SXEQ&E=(/9HUH85<(:<;!VMIR&(8F76/!3%>5*&DG5[I@ MEJ9Z%9I2(\M\4B'".(K.PH)Q&20COS;3R4AMK. 29QK,IBB8?KQ H:IQT N> M%N9\M;9N(4Q&)5OA NU=.=,T"YLJ&2]0&JXD:,S'P:0WO#AU\3[@GF-E#L;@ MF"R5>G"3ZVP<1 X0"DRMJ\#HL<5+%,(5(AC?]S6#YDB7>#A^JO[.QV(H[C_>WI(E!O><<,[]O4&QWCC%N4&.P3?75TN5S!#[6G+%.'34O"5 M%Z #TUU)5X@8WO+"Q:D<%K1EO2#'W!# M]8M-\1SI5I#NA1R:DJ4X#NB-,R0P!LG+%[VSZ&V+!/U&@GZK!+=KI)OT36EN M'QTI2W/=J%$>J*$:-Y2A_B?3VL]I,2T\:#:N;]\PO>+2@,"<2D7=&PO=V]R:W-H965T8:FF?&F+G ..#2A+ M;<]Q?#O#A%K!T,2F/!BR0J:$PI0C4609YB]C2%DYLEQK'9B192)UP Z&.5[" M+7,4CR]$; M@A0BJ1FP>JS@'-)4$ZEM/-6<5K.D!FZ.U^P71KO2\H %G+/TGL0R&5DG%HIA M@8M4SEAY";6>@>:+6"K,+RJKW&/'0E$A),MJL-I!1FCUQ,^U#QL U]\"\&J M]Q;0WP+HU8#>1P']&M WSE12C \AEC@8Z)F@_!(E)*@Y4].XV1/M[ M!V@/$8KF"2L$IK$8VE)M11/:4;WLN%K6V[*LZZ%K1F4BT(3&$+\FL)6&1HBW M%C+V.AE#B(Y0S_V&/,?KM6SH_.-PKP4>?ASN=JCI-67I&;[^%KY[3B0GV7G(H<1S"RU&4A@*_ "KY^ M<7WG>YMUNR0+*[)C0Z8OI570=')_U M9)=DX8[(7GDW:+P;='L'BC0BN+J&U?\*9XQ+\L<$VFPGD_ZS_Y)=DH7^^Y/SWBY[HQ=DP)>FIPH4 ML8+*ZC9MHDW;/C/=ZDU\K-IYU7W_T53? M>8+PD5*(6%HG2.CE4=>=5?JXED MN>DX#TRJ_F6&B?HD :X3U/L%8W(]T0LT'SG!7U!+ P04 " Z@EM80A6& MAP($ "I$@ &0 'AL+W=OU(VS:=9%KM1P]Q$E3 U#;)S/[ZM0GA$0S32'Q) M;+CW<(XOM@\>'PC]R788<_ 21PF;:#O.TQM=9\$.QXA=DQ0GXLZ&T!AQT:5; MG:44HW6>%$>Z:1BN'J,PT:;C_-J"3L MP^V.RPOZ=)RB+5YB_I0NJ.CI)S$Q#)N01WT-\8+4V MD%*>"?DI.P_KB69(1CC" 9<02/SM\0Q'D402/'X5H%KY3)E8;Y_0[W/Q0LPS M8GA&HA_AFN\FFJ^!-=Z@+.*/Y/ W+@0Y$B\@$GB\>OB[G'U+[C],@=WWYX>%I_OOJS 1["@XE6A_!6@9 WN M?F5A*HK'P?LYYBB,V <1\K2<@_?O/H!W($S :D"ET37@X+#IR,' MLX/#' ?7P()7P#1,2Y$^^_UTLYFNB]$HA\0LA\3,\>RN(:DKQR?E5V!+"5.J M.\)Y.9R<-ONI[_JN4+*OBU!%6>ZHC&IPM4JN5B_7?S!C-V(N!%F<18CCM7B% MQ70.0G2<)$(!B@GEX7_Y!17[XP/<&J^/]L@QG3/ZJC 7CAPU?[OD;_?R7Q&. M(I J1UQ%UFZQL#S+\L^XMJ-L WJVFJI34G5ZJ"57KY?KDFSX 5&LHM6;>6E!!@)KB/1+D?ZP!?%;0^TX(_>L'HH@JVM2CTJF MHUZF]QE-0IY1? 7NPQ?98,U=1,6V%_+2.@T$UE /C6I+-8:M5(%7KX+I&/"L M5*HHV^]8U6#- , WMA#A@G8D6H.'6"S$>RS)JFGV EU:HZ'0FK*K31X.O,L7 M>/7A=VWO?'U31KE>1Y&J;1Z^L<^C9T(1)_3(]RO?O;41]0->7*R!T)KR*Y< M^VW"Y<526 !_U)I1BBC;@AW%JHP"['<**\SX&\49U"8,A=:46QD%.+!3@&T3 M()8[VSZOCB+,MXT.KP KLP#[W<+\_@$L7QG',;AE#'>L=8/ZAJ'0FHHKYP ' MM@ZP;0M,TW=;%5*%F9T3J/(/L-] S+Z?"E0M=CVE&M0Z#(76_/2LO(,YL'[(\\X_/MM1#C3.?9Y>.T>0ASB?$=V&"0,1WH@TX]H3"PT]GHL<.YRD M^='",^&./*TH3Z>F_P-02P,$% @ .H);6-NB M1*+S P \1$ !D !X;"]W;W)K&ULM5AK<]HZ M$/TK&O=.IYUI8UM^0'*!&8H\&:+&$.\OOZFJLWLV:):0J9H"Q#'!9#8VQ?A#;. 87%?Q1VHO&, M5J:/0-%,.";!)YPW9?H'+(R_DBEHCB%^U*6]\Q4+01DJ456(T@ MI5GY3^XK(1H [+T P!4 /P/8[@L IP(XAP+<"N >"O J0.&Z6?I>"!<0248# MSG:(Y]:*+7\HU"_02B^:Y8DREUQ]I0HG1Y^_?0M^S"XOT?@J0+.KV_'5Y]GD M,D3C^3R\G:./Z(IP3O)@HGF5&/(F!K#_"C!Q/#L<:>' X MW-; P\/A5H<83AU.I^!S7PHG8_&.)HDN,"6R5R#S^K$=V9Z%SRU+=;QM"J8Q M=&WLM R#0PU#7=>]GMLTW'/7K=UU.]V=99)D2WJ7 ")"@!0([J-D$]-LB;JD M<#7C\55M;4E1&OI-P[[E>6TI.L>95_L+L281# U5S@7P+1BCMV]LW_I7ES,G M(MN3U*LE]8Z3] /:%=46XH]D"URM'HBDC$OZFQ2E?@V M0UUT_/8

K5NO MY:?C>79;-XV=VW?;NFGL'*=M%W9Z]DK=^K5N_>ZBD*X)Y6I_*%&T(GRIM")+ MM0L5\C#-^BT?GZOU1XO@CQ9AIP^O5.B\5NB\4Z$I$VKU4W&PK:<-K?47JV)%WDPSC'V_/;VUAK9F?NL,K5Y[VQ5V M^_5:W1H' ?N #"99C,)[=0P5^A3N)CDVAT_*%IR4+3P5VWXX\%,X\-],8WS@ MZJXUU"WO6D/=^M[MU[&ZF8VC;0IJY:\C+DJUK0U%*&$E@H2NNLI_9TO+Q?*%\D6Q<'Z#LFU7&\>%P!B8'G M!NK[@C'Y^))W4-_RC/X'4$L#!!0 ( #J"6U@D^<%P*P, )8* 9 M>&PO=V]R:W-H965TP5MSA"S3I/2?WG#2YM[MD_%E$ !*] M)C$5/2.2,CTW31%$D&!QRE*@ZLV4\01+->0S4Z0<<)B!DMAT+*ME)IA0P^MF M-J9)8L M(4F "L(HXC#M&7W[W._H^"S@-X&E6'M&6LF$L6<]&(4]P]()00R!U Q8_2U@ M"'&LB50:+P6G42ZI@>O/*_:?F7:E98(%#%G\1$(9]8R.@4*8XGDL[]GR%Q1Z MFIHO8+'(?M&RB+4,%,R%9$D!5ADDA.;_^+7P80U@MSX . 7 V0:X'P :!:"Q M*\ M &[F3"XE\\''$GM=SI:(ZVC%IA\R,S.TDD^HWO:QY.HM43CI7=[>^D^C MJRO4O_'1Z.:A?W,Y&EQ=H/YX?/$P1B=H&&$Z T0H&F+.WPB=H7["YE0B-D67 MC(5+$L?HT >)22R.%.)Q[*/#@R-TH$$/$9L+3$/1-:5*5R]J!D5J@SPUYX/4 M; ==,RHC@2YH".$F@:ETEF*=E=B!4\OH0W"*&O8QX4P'W=X?; M-6H:Y=8U,K[&?VU=E=\YGUO-IR^875/LG\ M/9%M^.B6/KIU[-[J(SY&$Y@12O4G/L$QI@%4F9B3M3,R?:DN/-NU]>>T6'=G MIRB_(JK9;KMEU(:>9JFG6:NG'X9$WZE5R>?(UMJ"G;/F5NJU[%_=V#V1;1C1 M*HUHU1IQ#5C,.:@B)5$*G+!0E9F7.1$D+SGA'W6_ZK=53K7>.65M^?1IA/\^ MXL1N->WJ[6V7JMJUJE2Y4\6,JN+ .=#@#4F.J8CQ#IK:[_*Q[2U1M6M_=?/W M1+9A4Z>TJ;/CJ08:?G*D.Q7'T'+.MJRIB*HXTI]%Y6+,M8J= )]EG8] @2ZL M>3TK9\OFJI_U%%OS ]5TY3W2/YJ\8[O&7-UF L4P5936:5L=19YW0?E LC3K M"R9,JBXC>XQ4XPA7/K M!0 MR0 !D !X;"]W;W)K&ULM5IK;]LV%/TK MA%<,+;!4(BG)4N<8<.RN"]"F09.NV$?%9FRADNA1=![#?OPD61'UH*XM0_F2 M6/:]Q^?R4CQ'-">/7/Q,-HQ)]!2%<7(^VDBY_6 8R7+#(C]YS[PQJ;Q&62EWG/_,+BY7YR,S8\1"MI09A)_^>V!S%H894LKCGP)T5'YG MEEA]_8+^1UY\6LR=G[ Y#W\$*[DY'[DCM&+W_BZ4W_CCGZPHR,[PECQ,\K_H ML8@U1VBY2R2/BN24013$^__^4S$0E03L="20(H$T$ZR.!%HDT+S0/;.\K(4O M_>E$\$G583Q%D;;Z1(/PW2/#G]]/7KXL?EY\]H=K5 EU>W MLZM/EQ>?/Z+9S-B3X-TT, $?>&QW"3H8[QBJSJ D=94 M%D9>"KL@(.*"+=\CBG]#Q"140VA^?#H!Z-!RG&F.9W6-L^!)@N:^$,]!O$:S MB.]BJ1NG/IY8Y-:V(\5,EKHL:VZY91-8Y6R=$".Q>T]'<(SD5 F>4FFZ3IR:,>#:E>J)V2=0&B5ZER]L10VFWOAS; M#C$;%#51KFG;>H9.R= !&<[S.Y<)](V%^1@FFV"KO2] G&P1_Y!L_24['Z6K M=,+$ QM-?_T%.^;ONCD]$%BMY'%9\GB8&3YN#;AGFVZC*YH@RQSKF^*6#-W! MYK?;GKAC2NT&2TV4XU1N@AI-KZ3I#3&[O=820/"8-@AZ+8)D3#KN/FPJS3!/ MF-WH/_0EB(-H%VG7?Q"R[T0?"JT^ !71Q/!,JLP>=,U$P%?H[=_,%\D[;>TP M&D;/::JV3##QU#*)*I.MSJXB7_S4/F_!4+T;_!K^A"A_0@;:52#M M#0-L>\V'KB+*Z8JJLU3F@@RWKT T.P;8),T'+UV8A[N8*D= !ME8(&T_8+<> MO4C;#3BNV<%0>0$">X&NJ0Z+%PS:>]*_QC8#40Z#P ZC[ZH&HQ%@50,S3ZU3 M>10">Q2HU8" #>I3AD*K#X'R*610GW( #7K^@E-/+)0JHT)AHW*=+HZQU H6 MG-FWH4.AU>M4CH3"'N+X;7"LV=XRFT]<1933%55GJ?P$A?U$'\$JH.J"-79) MDZDNS/&<#JJ5GQ5@!W"D8M&V_E/;1E,LA+G:T%8U&G0@UJ.89"JU>N+ <=U'(< M0*- AU_#<5C*<5BPXSA:B0N&P8(-PY$J#*/TO5$*M)I%QZ@<#8F86.^/]'SQQ3J($Q2R^S35?#].U4?L3\GL+R3?Y@=-[KB4/,I? M;ECZU"*R@/3S>\[ERT7V!>59I>G_4$L#!!0 ( #J"6UCI&QG6WP( +8) M 9 >&PO=V]R:W-H965TYM M&'\2"8!$SUE*1=](I%R=FZ:8)Y!A<<960-65F/$,2S7E2U.L..!%(#EQ3Y:)U"?,J+?"2YB M?%C=<34S:Y<%R8 *PBCB$/>-@7T^[.KUQ8*?!#9B:XQTDAEC3WHR7O0-2P-! M"G.I'; ZK&$(::J-%,:ORM.H;ZF%V^,7]V]%=I5EA@4,6?I(%C+I&QT#+2#& M>2KOV>8[5'E\[3=GJ2A^T:9::QEHG@O)LDJL"#)"RR-^KNJP);"]-P1.)7#> M*W K@5L$+WH\?Q M]34:W(S0^&8ZN+D:7UQ?HL%DB9TJ%KR', M>85Z4:(Z;Z".8'Z&7/LSNM\%;K8\$]VIP[Q"XWP1>JH)M<"MT=L!;K8\$]VMP_Q!XT 3N M[X$[7J<$[A\"[2'UAD4Q ]?58 F_*T=G+83OV[C^G]4Y'YNC6.;JM.:9, MJKX3YS+G@/!V^X%GM8<1T)2JN_<%LOW V?U?-:SJ6/Z_AUCRFEM=5>]H?F"^ M)%2@%&*EL\Y"]5[QW8G8B&O%"4,+@32!99 MAL7+%5"^&3F^LQVX)ZM4F0$W&N9X!7-0C_F=T#VW]I*0#)@DG"$!RY$S]B\G M V-O#7X1V,B=-C(D"\Z?3.=G,G(\DQ!0B)7Q@/5O#1.@U#C2:?RI?#IU2"/< M;6^]?[?LFF6!)4PX_4T2E8Z<@8,26.*"JGN^^0$53\_XBSF5]HLVI6V_ZZ"X MD(IGE5AGD!%6_O%SM0X[ C]\0Q!4@F!?\%:$3B7H6- R,XLUQ0I'0\$W2!AK M[:9''N=3='IR MADX08>@AY87$+)%#5^FP1NS&58BK,D3P1@@_0#>;\\:$FG4Z]AQ_KKM*YAT\*4NFZSSAS02YGC M&$:./H$2Q!JO$+LU8K?->W2;@\"*L!6:@3XTYVA&\()0 MHE[.T3CC!5/H'BA6D"#%T?6SJLXY7Y8"] B:UJA,FS?AC4WSCKR/<\;NNM= M\M;2]H\DGA1# 5!-7Z33H%7_>X>H?P73^HC5[E&];YAN_,E]J% M%^8>,_M0Z Z6$I34UUPL[.12\ P!%O2ELE9ZFPC#YH9MH@H/J'H'F]6:WI&; MU:_A^Q^"I]N].AZY?X <'B"W)G4D\J!&'K0BS_8AT$K7[B:20=-1VR-IC?51 M$G>G+&4@5K9:2Q2;ZZ*L4/5H_2 8VSKH_C,O7Q,W6*P(DWK+EEKJ7?3UT1%E MA2X[BN>VR"VXTB73-E/]J %A#/3\DG.U[9@ ]3,I^@M02P,$% @ .H); M6#HI*GB5 P FPL !D !X;"]W;W)K&ULK5;O M;^(X$/U7K-SJU$JWS4]"Z$&D%KJZE;IJ5;:WNH\F&8BU2[;',]YQ\5UF (J\%'DI)U:FU/K:MF6204'E%5]#B5^67!14 MX:M8V7(M@*8&5.2VYSBA75!66O'8C#V*>,PW*FLMY'PWL5QK M/_#$5IG2 W8\7M,5S$$]KQ\%OMD-2\H**"7C)1&PG%@W[O5LI.--P-\,=O+@ MF6@E"\Z_ZY?/Z<1R=$*00Z(T \6_+4PASS41IO%OS6DU4VK@X?.>_9/1CEH6 M5,*4Y]]8JK*)%5DDA27=Y.J)[_Z"6L] \R4\E^:7[.I8QR+)1BI>U&#,H&!E M]4]?:A\. -[@#,"K =Y[ 7X-\%L -S@#"&I 8)RII!@?9E31>"SXC@@=C6SZ MP9AIT"B?E7K9YTK@5X8X%=_?W_$JRV2\B._(K:/P*^MCCAS4(JEBY M(KG9N/""A5!"EX$5T= 0Z2JXC=V!'XSM[:$Q'4'!8'@<-.L(BD*G"3H2,FB$ M#'J%S#,NU$<%HJB5X/DB6RH87>3P8W$5>7B0TDB?AB-MIS&NXWLM;:=!D>=U M2PL;:6&OM*]"%T1D1PT;$L%?$-W-S0$KH M%G?<"O"NT[?IV\XS2[?!HB8(;S;ET\-S]5F2"RR0E+YVE>%I/].@9O+W3&YTCFG6R_23QSMJ7(_^G^LIDPG?E(J@ MP4"PW3DPNUJ''$\,RYEBT'D]5?.Y[L'F<*Z<8!2V-MJ9N*A="WKS_TEW1HT[ MHUYW3'-&'I;D&77?2 E*DH<%WMDE.O:Y)'3#J+0;9U$^Z!M*4"L3/LGB5GGJ@]H1IL.\\8T5JWQ M6^P\JT;QC:9J6[]0L6*EQ"VR1$KG:HAE3E2M8/6B^-HT1PNNL-4RCQEVSR!T M 'Y?&ULA95O;]HP$,:_RBFKIE9:FW\0"(-( M;6FU2E1#I=U>&[@0JTZ,M9 M(4=.IE0Y<%VYR# G\HJ76.B5E(N<*#T5*U>6 LFR%N7,#3PO>O9O*P'#F><80,%\J$(/JVQEMD MS$32/OYL@SHMTPAWQQ_1[^OD=3)S(O&6L]]TJ;*1TW=@B2FIF'KBFQ^X3:AK MXBTXD_45-MN]G@.+2BJ>;\7:04Z+YD[>MB]B1Q $!P3!5A#4OAM0[7),%$F& M@F] F-TZFAG4J=9J;8X6YJO,E-"K5.M4,KF[GMW-X!(>B:H$5>_ 4_A9HB"* M%BN8H,X8)I3,*:.*HH3S,2I"F;R ,Z %/&>\DJ18RJ&KM!T3U%ULT3<-.CB M'N/B"D+_&P1>$,++; SG9Q>?P[@ZFS:EH$TIJ..&1U.R^6ET';O._/\#69(% MCAS]@TL4:W22KU_\R/M^Q%78N@J/14]TDAV;IT;5JU6FA-:)'T7AT%U;6)V6 MU3G%ZMI8C2KZQ/)].ZO;LKJG6)&-U=UGA=VNG16UK.@4JV=C1?NL(.[86;V6 MU3O%ZMM8O3U6',1V5+]%]4^A8M U!"I#W5E3A<)&[N^1#_TG<0N.CX*?N2(, MTDI7/IKF0O,J!U:7?$G>=>]5UK*.]XW$_H%/ZWO_&I%WU,P$I1S 0Z&S1ZG@ M/+BPMA1O#W[9._0!_)TNZ!^%3TW!%PK6A%5H6N#1EP)5L40!O&V3S3+;;9.A MW;Z_5^Z1WX_^L^_N]'-S-CX2L:*%U)A4R[RKGBXNT1PWS43QLF[QD8.J)E]_P MF$_/X$6<2?N$LO(- @>B0BJ>'H.U@I1FU9N\'>MP%N#[[P3XQP#?ZJZ(K,H) M420<"%Z",-X:S2QLJC9:BZ.9N925$OJ4ZC@5CA_G\]EZ/EVL5W"_F,#X<;&> M+;Y.%^/9= 67$U2$,OD)+H!FL$YX(4D6RX&K-+=!<*,CSZCB\=_AZ?@PYYE* M)$RS&.._ 5PMNE;NGY2/_%;$"4;7T.U<@>_Y77A>3>#RXE,+;K>N2-?B=O^G M(DV)5W WS7"FJ>YD3B(<.KIK)(H].N''#YW ^](B]J86>].&'CX4JA (WU%_ MF)"3@VX7U7@[%4S?PIA&W8?!;:$-:D*_JF*'^AQ MUER6?BVAWRX!!>4Q\#T**!,:): 2U#W[DPNJ#J9@^4DDKT5*V&#$4X2XP":E M[90^')"(QOJY9[,A1;&S$U!"Q(M,56.BWJV'['TU6_ZX5Q-Z3L2.:J4,MSK4 MN^[K2Q75U*L,Q7,[:39&ULO9E_)-!GEQQ[(9(1W+ H3]$ W<6Q M3_Z^0Q$^C"4HO1YX##=;EAU0)J/4WZ E8D_I ^%[2D59A3%*:(@30-!Z+$WA MK0>U+" ?\7N(#K2V#;)3><;X)=OYL!I+:E81BE# ,H3/W_9HAJ(H(_$Z_BJA M4I4S"ZQOO]+=_.3YR3S[%,UP]$>X8MNQ-)# "JW]7<0>\<%#Y0F9&2_ $&V"5 =:Y)=EE@'UNP* ,&.17M[@<^;5T?.9/1@0? ,E&,2S#\_??CR)[AR$//#B%Z#]^!I MZ8"K=]?@'5 W?H$41 FX"D)&;WA!_GV?1A%W$(Z4ABO)Z,J09G[KLBMG<@- M-7"/$[:E8)ZLT*H#,.\':/!; +X_;[B%_WATY3( )X.]_K#?]TE,E"-/%SMN9)Z M]7/8-N:>H':"SQAPQ% M9(^DR<\_04O]I4L3D3!')&PN$N:*A"U$PCQ!L(9Z1J6>T:O>*>MNP'3'MIB$ M_Z 5F,9XE[ N$7OAEXHH$N:(A,U%PER1L(5(F%? [!R6=:+[B6:.E'V'7F:E ME]FK5TTLO 8!CF/>1-+K-=ZDD!&]8%L&2C9W*4"B(0Y(F%SD3!7)&PA$N8)@C74&U;J M#7]D1]P+OU1$D3!')&PN$N:*A"V&1TVLWKHQ>X+R-?2"ZMO?8.J/Z(E+:K./ MU8U6KSCK&&9#PU);XYS^(B_5H2NK;@[;U;E"LRZ$TCQ1M*86M7]'X?_:&Y?I MZGVC;L@#V/;E>)BFR[K5UJ6W^(MUZ4QJ#=NVB$RZ$$KS1-&:MFAOMFCBN^22 M66\B5=EN"W$\"%KM44Y_>1?[T)'3;O_V:)HA0Y*;94E1F23K[A1 M?EUYTU$L$%1'JU6]:;Z6U3I^!V^=8FWN#5,L%=[[9!,F%$1HS9%< S[YI%A] M*W883O.UG&?,&([SS2WR5XAD _CG:XS9ZTZ6H%H#G?P+4$L#!!0 ( #J" M6UA"L9C(QPD $E* 9 >&PO=V]R:W-H965TKAI>2D7GR)1/?\S7G!?F1Q&E^U5L7Q>9COY_/USQA M^7FVX:G\99F)A!7RJUCU\XW@;%%F2N*^YSC#?L*BM'=]65Z;B>O+;%O$4KGMM[O7 ?K=:%NM"_OMRP%7_@Q>-F)N2W_@YE$24\S:,L M)8(OKWH3]R,-QBI#F>+/B+_D>Y^):LI3EGU77SXMKGJ.JA&/^;Q0$$S^]\RG M/(X5DJS'?VK0WJY,E7'_\ROZ;=EXV9@GEO-I%G^+%L7ZJC?ND05?LFU?DO>:G3.CTRW^9%EM2990V2**W^9S]J(O8RN*,#&;PZ@]?, M$!S(X-<9_%,S!'6&X-0J#>H,9=/[5=M+XD)6L.M+D;T0H5)+-/6A9+_,+?F* M4M51'@HA?XUDON*:WLW^^/(7I>2&?J:WG[Z2V1^3SP_D _G,A&!*1/(NY 6+ MXOR]O/KX$))W_WQ_V2]DV0JA/Z_+N:G*\0Z4XWKD+DN+=4YHNN +"P"% ;R1 M R#T9;-W;?=>VW[C@9 AGY\3WSTCGN/YEAI-3\_N6;*'IV=W;7R\N?(&&?ZN M(_@E7G [Z'(YM])MBF'[S//BRA=D0T74683ZP8&"\A/SD1NXQ3,J,+BQWS# MYORJ)^->SL4S[UW_ZQ_NT/G-QC F&$4",]@/=NP',/O9LGAA@I.0/\O@O9&A MN+#1#J)T;/ 4$RS$!*-(8(84@YT4 UB*M=3A@YI\%F3&?BHER$3&PG3%U>- M; UW; U!MNYEI!#1O)!D51'D,8V*G+R[?WC,K=,$"->U!V."A9A@% G,T&2T MTV0$:O*8"C[/5JGJFF2:)7)1F3,5UVUZC%K=*Q@$MIX*EMF5:TPP>D(3#![' M.Q[';^.1W%?7R\^S@W,DC.Y5>]7)!/4*^E%=4:$EE#W[:5N%$JG)&:+*)LY]U5@O-3RD$F:;EELI,C58-H-H=W0LBHYL(V=87/L(#G06B%,-(J% M9BJD[;$+^^-?$]&&;57^S"_OB4=5?)O=H"W4^TTTP) M=EB=D6W,.$%3(%1#C8I&L=!,@;3O=F%K3']L(K';4?J4*LK52832*)=33W7] M=\%2:?18NB"3%R86-@=] Y?4>2I"->2H:!0+S=1,>W(7-N56K<[4MDDB1U>Y MJ9J3^ZK@!5EF@MQNBZW@Y%.>;YG,9E6O;<']@=7((#GK6AA,-'I"(\SC*VWH M/=C0'^)\FVSCZNRNY)W<9F+)(\6V_+4<7*Q:!ZBQ<\\W6S%?LYQ;!U!=A?W: M6Q6 J]I5 50TBH5FRJ1]O@?[_ ,R59>_5"=N500C7[9%7DA5Y,QC%<-MB='2 M =.IAZAH%*R^2:XV\QYLYCW'=?3BJ>)T5G?H@UM<,&;760$5+41%HUAHICK: MT'M'3I6KN*]BO(SZX5:H)=7A'7,8K;,N?CMT>8[?V-JRI'*=\=!KI*-8=3.9 MU";<@TWXM_*6%TGBY)D+Y1ET)Q>1??:$$3NS6:%=&+O[8^([+\B?ZGC.RCFF49VBHH6H:-2S[@.,!P?$T>[8.^*.'V:S MLUJ0+\LEWYM3U0Q[N+>C6F%4M! 5C1XAT NL1^ZF'-KX>K#QW9=#CX]2CIQ\ MBXIUE!+*YNNF5E:),(WG%!4M1$6C7ML4!_:!X6L[[,-V&% "'!@P;%?64=%" M5#1ZA$#[K2BF&MKU^K#KK=0P%E#D*Q?6 R,8JK,"J!88%8T>(4TN12UWSIH* M:&OL'[7&KG4/U2H!JB5&10M1T2@6FJG*WGW6L"5^W1%5NIR1:9SE:DZHH]8A M*U=C[MLJWSMWFV<*<-&=:<>]O?I8$TP^M3'V86-\L)>3OYMNKMIKL_*+:I51 MT4)4-(J%9JJEW;9_Y.[J_4U/O14-K(F. -HC9JT#JIM&1:-8:*8.VDW[L)ON M^K@'C 8][X'JGE'1*!::J8%VV3[LLD\X%]@_WJP./.WWM-8E00<#QY.$QY-0 MN$EOI4Q[7_^(=0."?8=38;B4SN$>U0JCHE$L-%,O;8[]_\.IL-_VCJX_MAU* MPK7KK RJ SZE%>:S9-H(!V\Z%U9;I"3D<\&5(8M23;Q*\*%60SHV17U!BFQW M*EFLN2!?UW*8O88EJ=3#Y-XZN.K*N=Y>RSZXYW[C0&4*-Z+S\V>H1AD+S110 M>^< MH&?M\F39#Q;$K98E(^9L)C,JT%3/>0PKYX^(WDEFM@?0LMJ"$7 $ K: M)[%NX-N&$%S3SBJAFFDL-%,E[:\#V%\?FK\K22;/+(J9VD3?"VOE[&05Q&O? M)&*]91^N4V<]4)WU"8TPJ=:F.8!-\]&S.2NGJ*?)J&@A*AK%0C/5V7MX&;;@ M'4_Y:S3SP2I_Z(R;7;V=SAU[SKAY@@_7KC.7O\(@!]H@!["??<,Y?XUHG,R/ MVIM#MF3#_6&BF1-HD![!)AA8@D*^J M88W[I2[DJO"BV?%1_2XJ&CW>AHK4_MXK&ULI5;;CM,P$/V5 M4<0#2-#<>@'45MINBD!B(=K"(AZ]R:2QUK&#[;:[?X_MI*$MV5*)E\1VSCF> M,[Y,ICLA'U2)J.&Q8ES-O%+K^KWOJZS$BJB!J)&;+X60%=&F*]>^JB62W)$J MYD=!,/8K0KDWG[JQ5,ZG8J,9Y9A*4)NJ(O)I@4SL9E[H[0=NZ;K4=L"?3VNR MQA7J[W4J3<_O5'):(5=4<)!8S+RK\'TRL7@'N*.X4P=ML$[NA7BPG4_YS ML M0,@PTU:!F-<6KY$Q*V3"^-5J>MV4EGC8WJM_<-Z-EWNB\%JP'S37Y?RR4LEE^6'SY]@_3SU9<5O($[PC;$+P*ZOIP> M]="3R^GA&3=QMX:QTQL^MX:/M3E%F .C!<)+RN$)B52O^C)]7BET3(BA%9Q3O!S#YF5#_UY:/AALWQL'?D=AX,AO%X//6WA[;[ M<6\G\3$N:7'!":Y#'5D8=19&9RW<4O7PII#F<%&NT9PA#9)H[/,SZHLS&(6C M$S_]N&AR@DOZ<4$8]CL:=X[&EVW9G&YICCSO\S+NR>6)C7]#DK.0H^ G7?"3 ML\'_<,7$!$^V*$UMA()0"5MS82*( NK]U2&*[04T.4:>V_Q8:'^HTQOV#PE&A7+L"K" 3&ZZ;V[0;[6K\ ME2MM)^,+4_N;4OU'IOEQN"%R34WE8%@8R6 P,3M*-L6XZ6A1N_)T+[0I=JY9 MFO\7E!9@OA="Z'W'3M#]$F6$\ MXP,7#S(#4.@QITQ.K$RIXL:V99)!CN4U+X#I-QLNT. M!H&=8\*LZ;@\6XGIF.\4)0Q6 LE=GF/Q:PZ4'R:68ST=W)%MILR!/1T7> MK M4-^*E= [NV%)20Y,$LZ0@,W$FCDW<63L2X-_"1SDT1H9)?>+Q^8G]?:M=:[K&$!:??2:JRB36R4 H; MO*/JCA_^@5K/T/ EG,KR%QUJVX&%DIU4/*_!VH.WJTY4_P) #G<[X/'+X/+PS_X(4)3S7G4%6 M"81'LX;.D%>484EI>L1^ZCK^R!_;^^,XG%LY4>!'IU9QAY4;>4YC=:+*;U3Y M%U55A5;6X![8KEO%10K3.F]D@1.86+HW2A![L*9_O7*"P=]=2>^3+.Z)["1T MPR9TP_X+HJ(,CI+H.T$KTXMS(S<*6T43=Q@- Z^[&H)&4G!1TIT.$A9)AG0+ M0;&N",H+?0NI+B47F?ZT*/HDBWLB.XE@V$0P[+\HPK-4AJ'CM(KBW"CRHI91 M?&XT'#K#[J(8-9)&ER7IL8&P[17ZH&\>@>E561VS5-^71"J!S6C1I>HBZY\6 M2)]D<4]D)]&,FFA&_1=(=-;ZHV#0OD7.C4*W?=7$YT;^:-CN&O;1Q).#V):3 MH]3N[IBJKO_FM!E.9^5,UCJ?ZZ&UFC'_IZDFWELLMD3/+Q0VFG)P'>IV)JHI MLMHH7I1SU3U7>DHKEYD>O$$8 _U^P[EZVI@/-*/\]#=02P,$% @ .H); M6.%BAP"N! -QD !D !X;"]W;W)K&ULM9EM M;^(X$,>_BI6K3KM22W!X[@$2%%97:;M%?5K=2S<9(&H2<[:!]MN?G82$/) F M7/JFQ,;SM^>7\=1CAGO*WO@:0*!WU_'X2%L+L;G6=6ZNP26\03?@R6^6E+E$ MR"9;Z7S#@%B^D>OH1K/9U5UB>]IXZ/N2]C'%!RZ'VE8 M.W0\V*NU4!WZ>+@A*W@$\;Q9,-G2(Q7+=L'C-O40@^5(F^#K&1XH W_$BPU[ M?O2,E"NOE+ZIQJTUTIIJ1>" *90$D1\[N ''44IR'?^&HEHTIS(\?CZH__"= ME\Z\$@XWU/EM6V(]TOH:LF!)MHYXH/N_(72HH_1,ZG#_+]J'8YL:,K=<4#>/5OPRZ..IS7=7,C MQWQ6WAP7>-.*7G/+UVN?T#N\Q_NMX$(BMKW5I7QM*]OSY".:$OGF3,CC'NAV M?5V51';C;G^H[XY)%$ZM$MC1SOEG+\!;@ "TG7951LY#\KV1#4[\YSO/NYXX7S5HV- MFL02B'H1HEZ5W4)>G=Q8Z&61]%)("N>IBJ0FL022?H2D7WV[_/;/'C)N)CM@ M\BP5I1>T8+8))?-P,/'@""/N-C!.D2Q<7E62-8DE2 XBDH-JJ?A3CGG0@CFP MD:36ZJ:H%2ZE*K6:Q!+4<#,^SC6_( (_S^CAM$F4G<; 2*$,QWT2I[-B+\ZE M='3HQ?\WNY\5;^&T&4KI;5J\O*H15Y=:$J81PS2J_A\X#YZ1#9U.H]].LRM< M365V-:DEV<7'QV=Z7.Y07VVO5T1>O(0RR&LM&>I22R*/BP9-:# _2:;?6NJ4NM22SN'+!Y4J7PIQ0C6&VS,EA6&NA M4Y=:DF%I22S*+BQI<7-7$4'8*"J)+1$., M4'3G%,HF=FCFTBEGD&'T>^F3=\ZH02\^Q@>>Z4:?ZI^I7 ?^F.I8)?E*X(TR6O1PYL)22S49/IE$6W-('#4$W_KWU M*Q6"NO[C&H@%3 V0WR\I%8>&FB#ZK63\'U!+ P04 " Z@EM8$AOX)[ # M #5#P &0 'AL+W=O^DF!JPF-F<;V/WV9SLA)0FDY,H;8CN> MOV=^=@9/?\?XJUAA+,'/)*9B8*VD7-\XC@A7.$'"9FM,U9L%XPF2JLN7CEAS MC")CE,0.=-VVDR!"K6'?C,WXL,\V,B84SS@0FR1!_-<8QVPWL#QK/_!(EBNI M!YQA?XV6>([ETWK&5<_)52*28"H(HX#CQ< :>3<3#VH#,^.9X)TX: ,=R@MC MK[KS)1I8KO8(QSB46@*IQQ;?XCC62LJ/?S-1*U]3&QZV]^IW)G@5S L2^);% M/T@D5P.K:X$(+] FEH]L]S?. FIIO9#%POR"73;7M4"X$9(EF;'R("$T?:*? M&8@# Z]]P@!F!K!L$)PP\#,#_UR#(#,(#)DT%,-A@B0:]CG; :YG*S7=,#"- MM0J?4+WO<\G56Z+LY'!Z/_OZ[9_I%(RG#].[+]_![.OH80ZNP0.C6RPDCL"C M>G 2ZN9+W?1K4%5^"; M2AB$+L$8Q8B&^!CQ5+%M%'7:V ZA!X.^LSVD4+NL3E8W8HU"/+!4-A*8;[$U M_.,WK^W^=8S)A<0*A(*<4%!+2&,!GSFBLGQ\4AI!A4:GZY=@U*[0%,:%Q HP M6CF,UOLPGLUY.<:B56%QW>W"$HS:%9K"N)!8 48[A]%^'X;ZKU6"5!U4C7=3&I=^Y^!=_/ MNTT"WZ?0*_##7"K4\&B+N;HDI6D$J/]A#.X0X> 9Q9NC8-(%>X68;=@KD:EU MJ^G1N9!8@6 O)]@[.\=^!%NZB@S@;58A M4L]]NT^YYZ;0CX2:K5+\+$IQUGO2](!<2JW([> >ZC7(MA]"YU6/">S8Y5-2 M[T]C>A=2*]*#;_1@HQR5YN8/4825[\-W;;=\]3DR[4@JF]2[WQ2/9M."]1WQ)J Q7BA)U^ZHFPA/ M:\BT(]G:5%4O3*H:S317JN[&7$]0[Q>,R7U'+Y!7\L/_ %!+ P04 " Z M@EM8D"TTX] $ P&@ &0 'AL+W=O$@W(HX(?F" ;Y($L==K M'-/=R(+6VX59M%P)=<$>#]=HB>=8/*T?F#RS"Y4P2C#A$26 X<7(FL K'_:5 M03KB9X1WO'0,E"O/E/Y2)[?AR'+4BG", Z$DD/S:XBF.8Z4DU_%O+FH5H$TL9G3W)\X=ZBJ]@,8\_02[?*QC M@6##!4UR8[F")"+9-WK)090,8.\= S?@&[A'C"$5.O#%PP)%,?\JKS[-/?#ETU?P"40$/*[HAB,2\J$MY *4C!WD MDUUGD[GO3 9=<$>)6''@DQ"'#0*^7J#=TPC8TO7"?_?-_VM7J^CAH 7:\ *X MCMMN6-#T='.WP=P[W1PVX?CPXBLPVD4RM%.]SGO)0 *:R-#_1;F,^X+1!$PE M[HAL(K($/]98Y08E'#QC6:(PR,<_HA?,+X GC[F(@J:\R.;MI_.JVK4=MV4I M&]K;,NKZH&^P-LIK&C7H'P[SM9ZJ\GO%URC (TO65X[9%EOCSW_ GO-=P[%3 M<.S\1HZR ,KR1IHP9M/V2K[#FN?34P9YG1I%V*DQU'KY08;=@F%7R]!?+'#Z M)U*B V9(8### 25!%$STTN@ /F 68B":JVH6< M[F9&WZ289U+,S\2@4XJYTU)E9]L0IEX1IIXV3!Y>8,9PF)*><(Z%S."?*-ZD MP0&36.Y$$ ED !ZI0'$3_EXM7WL=V'4/LKH^JCMP8?<@K;6+/1=8KW:/5!=6 M =8O@/6UP.[EYB]\@R8D-*2@-7'1ZIR;EOV&HG# SN1\OB&Q"N++ O&E%O$4 MQ9&LJR1"8/89)>OO7IJ=4TD\$HW;%JW>N:A-BGDFQ7Q#8I6@#(J@#'YWH1@T M%(KZ+F)0NVMEH:C]_VD7>R[78PNK (/.?FON:)$]M>:MQDVVUNS<=#6JYAE5 M\TVI50-0ZHV@-@#[J@&FLC%ZE45EAUAX 28)W33O)7+%33_QV=!- MJOE'7:C2=/W'[(1 M4>U));&YIOCFJN6LZ->+KW[NL[F;5/./>5#EN>_UH+[9R].ZM.FX8?*/;!7Q MK/VXII)L(U%#[55.WJ2:9U3--Z56C="^DX3Z5O*C&=^M[YG=AE)NM.,SJN8? M=:%*=-_T07W7I_IL#! ))='@'7HF6[&I437/J)IO2JT:BWT_"?4-Y4(+2/"08P74M)I]>4]Q[+7$]F)H.OT^?LS%8(FZ>$*HQ S M-4#^OJ!4O)VH"8J71./_ 5!+ P04 " Z@EM8&=#WJSD# !6"P &0 M 'AL+W=O// M(@.0Z+4LJ)@YF93;2]<5208E$0.V!:K>K!DOB51#OG'%E@-)#:DL7-_S0K&'O6@YMTYGC:$120 M2"U!U-\++*$HM)+R\;,6=9HU-?'P^4W]JPE>!?-$!"Q9\9BG,ILY8P>EL":[ M0OY@^V]0!S32>@DKA/E%^PH;31R4[(1D94U6#LJ<5O_DM4[$ 0&')PA^3?#; MA.$)0E 3@O<2AC5A:#)3A6+R$!-)YE/.]HAKM%+3#R:9AJW"SZFN^TIR]397 M/#F_^;[\Z_8:W5_]<[U"%^B&)JP$=$]>T?6KVEL"T-D"**QS>8[.8I D+\2Y M CZL8G3V^1Q]1CE%]QG;"4)3,76E\J25W:1>?U&M[Y]8'_OHEE&9"71-4TB/ M!5P53!.1_Q;1PN]5C"$9H !_0;[G!Q9#R_?3?0L]?C\=]T03-/4)C-[PA-X] MDZ10.39ED:HL4)7%ENE**3)*^GM_F>,H'$[=E\/HNZ!@/)D<@V(+"$>X 1U% M,FPB&?9&\C!8#6RN>UGZV+L46Y+ S%'GF@#^ L[\CT\X]/ZTU?8CQ>(/$CO* MUJC)UJ@W6\L=YT"E+6$5,3PHSD4P"EIE[H*PC[U6F2U*862O+4JCR8GC$WN_;FKOMS^MFGIX8E]@KW6L+ZTHOV7> IKX M+>_N0<-1 M^8QDV@A.VHK&[J9K9I#J],2]2:7^BFT30ROV2JCO.6\$U.!2I@ MK22]0:0.*UXU<=5 LJUI:YZ85$V2>&ULK5=M3^,X$/XK5FYU FDAL9/FA6LK00,ZI&,74=B[KR9Q6XO$[MEN MR]ZO/SL):4G<+%KME]9)GGD\S]@>SXQW7+S(%2$*O)8%DQ-GI=3ZPG5EMB(E MEN=\39C^LN"BQ$H_BJ4KUX+@O#(J"Q=Y7NB6F#)G.J[>W8OIF&]401FY%T!N MRA*+[U>DX+N) YVW%P]TN5+FA3L=K_&2S(EZ6M\+_>2V+#DM"9.4,R#(8N)< MPHL4!L:@0GRC9">;\Q3S<:2S'CQ-\W5:N+$#LC) F\*]O32 .#. Q ]08H*Y!<,3 ;PS\CQH$C4$5:K>6 M4L4AQ0I/QX+O@#!HS68&53 K:RV?,K/N@[. MP"W+>$G (WX%#R3C+*,%Q=4"G:1$85K(4XUZFJ?@Y-,I^ 0H X\KOI&8Y7+L M*NV0H76S9O*K>G)T9'*(P!UG:B7!-A-SA4:9$Q)=@Y\^!D@ M#_D6AV8?-T<6\_3CYG! C=\NCE_Q^1]8'%MT:^O ;FTRQH5M__'P^>!"WX;,;*C/@!%E$Q'W)H;QJ+-19GT0@DEGQZ46IG#D MVQ4DK8+D(PK.]#G714.N;R&%V9(^%T0/JPOLY":]O3W5!4"^J>H+F\;$LLU" MB#HB+:C8]SHB!]W]R70'O?T5[@V&8[;2ZHUTL,7%ICY>N- 5'6:9]8 U?(>B M1E[@=Y3;4!!UXI-:4+%W[(C!@[($#F>,IBZ$(3HI3\%?M*0*'UO)ANO0AP!U M3YP%E/3$##KULPN)]J+1H.@GIDOW@OZGM[3)]L^$D055H)D*9-4ZV^LLU!?7 M/:X6#/2[%Y@%= 9'\,AR[@L9.'CC3[^J%1%6QWU+NNQY;@$E/<_[(/]8HH'[ M6@(.%Q./7.E2HLDJ9E$&[BUHJ1"BL+K.[PZ+)642%&2A*;WS2)<'HFZF MZ@?%UU5[\&ULK5AM M;]LV$/XKA%8,"5!'HM[MV092I\4"K&V0I-N^,A)M$Y%$EZ3M9+]^I.1(MDBQ M"9 OMBC='9_GR+N'TG1/V2-?8RS 4UE4?.:LA=A,7)=G:UPB?D$WN))/EI25 M2,@A6[E\PS#*:Z>R<'W/B]T2D%BB1Q_#P$==HYE>/Q]4OT M+S5Y2>8!<;R@Q3\D%^N9DSH@QTNT+<0MW?^)#X0B%2^C!:]_P;ZQ33P'9%LN M:'EPE@A*4C7_Z.F0B",'& XX^ <'_[4.P<$AJ(DVR&I:5TB@^931/6#*6D93 M%W5N:F_)AE1J&>\$DT^)]!/SZV^+[U\_@_O+?S_?@1&XPDO,&,[!/7H"EYQC MP<'9%1:(%/Q6%,=LAYWY[[_!V/O#1/&=@IT0#EK"@2WZ_)ML$+(5,"1(M0(% MY1QDB+%G(!O#'K'<1+Z)F-0157?8S0//BZ;N[IB4P2B-86MT C9LP896L+>2 M/F+9&LB])DMT)WO/1G8248^I6&,&,KEX1/R:0S-1?,(A#H(>"=W*3[TP-K.( M6A:1E87L.K*G5/46>RW<2 .2Q!#VT.I&$"9Q:$8;MVAC*]H%VA"!"O*?+ IV MG'_\)+>-:N3R:3VH.#8V@%A/HA=Z_53K5E *T-@,/FG!)U;PEUG&MJC@$/1 "B((-HL[M$KF6]7]O:*=,N\D$]HU\X8I M>1?/3<_^N26U8M:+9^2N2]XHAMH^,UA%H3>P2ITP0KLR?N\.(JH' J:.WB.Z M'&WEP%+)NO"-H!_'?= FLS@8JHU.(*%=(:^E E:K6ELL&'5]&_GCQS M<]U:=?7-=?M.T4[3T"DNM$NN.0U&VM9 ;Z8]U@[N0]O/[X39MPNS1N9E+9^- M+U>>!F$$DWX/LD_YUO5QC]Z+KXBM2,5E(UK*\-Y%(IL':[X$- -!-_7+ M] ,5\M6\OEQCE&.F#.3S):7B9:#>S]OO,?/_ 5!+ P04 " Z@EM8N#3> MY4 # "J# &0 'AL+W=OBHFKIP) MP(EURJCK-QJ!FV'"G+!OUQY$V.>YHH3!@T RSS(L_@R!\L7 \9SUPB.93)59 M<,/^#$]@!.IY]B#TS"U5$I(!DX0S)" =.-?>5=0S]M;@.X&%W!@CD\F8\Q:3KFE<=PN2++[#*IVWT8DZE_4:+PC8('!3G4O%LY:PCR @K?O%RQ6'# MP7O+P5\Y^*\=6F\X-%<.S7T=6BN'EB53I&(Y1%CAL"_X @ECK=7,P,*TWCI] MPLQM'RFAKQ+MI\*[KS??[F_1T_7/VQ&Z0,],0,PGC/R%!#WA)1H"@Y0HB3ZZYTQ-);IE"23; JX.O8S? M7\<_]&L5(X@O4=,[1W[#;U8$=+._NU_A'NWO[M5DTRSO1M/J-?>X&U5T"^]6 MM;P7@3>CEE48=;M;9IMY1B4.0;'Y7B. M8!G3/"%L@@A3H/&JJB2#G22]=J^J+&KC.+0L3B2VA:Q3(NL<619JBI5^:.M0A"<2VT+8+1%VCZVZ=:W5'43= M75Y!%:_:( [E=2*Q+5Z]DE?OR)*3^?B7KC"D.$IS2E'T=(WFF.:X:!&I[E$Q MBRNKKK=SH'BMRK*KC>U0C"<2*S"Z&UUX\[7"J7R9 M& -]/>5Y:-0, !T* 9 M>&PO=V]R:W-H965T6U:6!N) M$K8AC0WQLNVKFUQ;B\3.;)?"?OUL)V1M:KI*\"6QG>S $D M>BP+*D;.7,KJQ'5%-H<2BR-6 55?IHR76*HIG[FBXH!S0RH+-_"\V"TQH4XR M-&M7/!FRA2P(A2N.Q*(L,7\:0\&6(\=WGA>NR6PN]8*;#"L\@QN0=]455S.W MM9*3$J@@C"(.TY%SZI^D XTW@!\$EF)EC+22"6/W>G*1CQQ/.P0%9%);P.KU M &=0%-J0#'+Q""AA!T"=$+A+ A MA+L2HH80F3BV]GW MRW-T>_KK_ 8=HCO*(6,S2OY CF[Q(QH#A2F1 EVK=9J1@F!S7OLI2$P*\4&3 M;E*TO_V<+02FN1BZ4OFG=W&SQI=Q[4OP@B]^@"X9E7.!SFD.^;H! M5PEKU07/ZL;!5HLI9$F!A9[N3O>WJ G;LPJ-O7"'L[)% MMV9'=K:N'R>BPAF,'%4@!/ '<)+W[_S8^VB+S%L:2]_(V%K4HC9JT3;KR6?. MA$"+U1];JA][TOS8!^H7GQ%*"9VA,2XPS< 6VWJ/OME#E]*'Q._YWO'0?5@- MF@45]:-P'97:4*'GM:@UF;U69F^KS N:J;(O0.@DU (K)HA.58'4Y:!*">= M)7H"S&WZ:N/QFD]Q5]XFZ'@PZ(C;Q QZH5U:W$J+7R.MXD0]M3!KS8DWG?8[ MNC8A7D?5)L*W:^JWFOI;-7W%E0"M1T@L%Q(0FZ*"E$2:\FH5TM_PX; ?!ATI M%E <=$"I!13Y+P@:M((&KTLS5=/_DV,#2XX=A_V.0AMJ(Q-3"VHM$VN-[LK% M60*?F09$H(PMJ*QOF7:U[7%.S=7>61^KWJ=N5?Z9J1NG2\Q5>1&H@*DRZ1WU M58+PNAFI)Y)5YGJ>,*DN>S.&PO=V]R:W-H965T67.18 MZ:E8N7(M *>6E%/7;[>[;HX) MX(["1>V-D MG"PX?S>3QW3@M$U 0"%11@'KSP=,@%(CI,/X4VDZ]9&&N#_>J7^QWK67!98P MX?0'254V<.X=E,(2%U0]\\U7J/S8 !-.I?U%FPK;=E!22,7SBJPCR DKOWA; MY6&/X'7/$/R*X!\3@C.$3D7H7$H(*D)@,U-:L7F(L<+#2/ -$@:MUG*/^/*\]&,,Y5)-&4II(<" MKDY1G2=_EZ>Q_ZEB#,D=ZG@MY+?]3D- D\OI?@,]OISN?>*F4U>]8_6",WIC M3,MR+&!%&"-LU93C4J-G-4S[^!B&?=\+(_=CWW@#R@OONX>H^!05>/=AOT8= MV AJ&\&G-B89%BM]EQ1'TZUNA!*:;)0:W?VC^YW>D8M34*_K]X],G(+Z/;_7 M["&L/827E0)8>J8.X4GNNH$7^D<.3E$-U8H;4 ?5*CVX>PTE!YUCTY@E2GC! M5/F?J5?KWC^R+>]H?:S?A+*%_Y!*-T$[S/2[!L( ]/Z2<[6;F /JEW+X#U!+ P04 " Z@EM87QWJ39 # M "3"P &0 'AL+W=O2K/I">[V+O-@D=<[H MG*$XG,%&R#>54*KA/4NY&CJ)UOF]ZZHHH1E1=R*G')\LA@BBPC\ON8IF(S='QGN_#,5HDV"^YH MD),575#]DL\ESMPF2LPRRA43'"1=#IT'_W[:-_@2\#>C&[4S!N/D58@W,_D2 M#QW/"*(IC;2)0/!O32D_+-;) MT.DY$-,E*5+]+#:?:>VG;>)%(E7E+VQJK.= 5"@MLIJ,"C+&JW_R7N=AA^!W M3A""FA <$EHG"&%-""\EM&I"J\Q,9:7,PY1H,AI(L0%IT!C-#,IDEFRTS[C9 M]H66^)0A3X^>9M_@R]/DZ^,,KO_ZNEC4.B27, MB.2,KQ3,J81%0B2%ZRG5A*7J!M$OBRE<7]W %;B@S%,%C,,+9UI]VEGXEHA" M$1[CXM7>?.!J=&1TN5&M?ERI#TZH]P-X%%PG"F8\IO%^ !=3T>0CV.9C')R- M.*71'83^)PB\(+0(FEQ.#RSTZ>5T_XR;L-G=L(P7_OSNVI)=!6O9@YD"=*]R M$M&A@Q5&4;FFSNCWW_R.]X[F3@&W8:MH+^/FEI0@=_J]1K8GOAV([Y]5OR8*!;!IBQ_ M- :RIA*K^?8TXCV@-!X]/-0V=U7HSJZ[GNY.NY)1N2K;/H5GK^"ZNJF;U::S?"@;JH/U,7:<58/X?YBJ77TD M/ M_@-02P,$% @ .H);6#LC\>8K P '0P !D !X;"]W;W)K&ULM5=K;]HP%/TK5B9-K;0V).'9 1(0IE9:"X)V^^PF%V(U ML3/;@?;?STY"RB-$(-$O^)%[CN^Y/K(NW37C;R( D.@]"JGH&8&4\9UI"B^ M"(M;%@-57Q:,1UBJ)5^:(N: _104A:9=JS7-"!-J]+OIWI3WNRR1(:$PY4@D M483YQQ!"MNX9EK'9F)%E(/6&V>_&> ESD"_QE*N56;#X) (J"*.(PZ)G#*P[ MMZ/CTX _!-9B:XZTDE?&WO3BP>\9-9T0A.!)S8#5L((1A*$F4FG\RSF-XD@- MW)YOV'^EVI665RQ@Q,*_Q)=!SV@;R(<%3D(Y8^M[R/4T-)_'0I'^HG4>6S.0 MEPC)HARL,H@(S4;\GM=A"V UCP#L'&#O ^I' $X.<$X%U'- /:U,)B6M@XLE M[G2JZ]$X63_:?R,'IY&D\9J*Q\(1<\!2P2F MONB:4J6H#S*]/)UAEHY])!W+1H^,RD"@,?7!WR4PE;9"H+T1.+0K&5WP;I%C M_4!VS79*$AJ=#K=+X.[I<*M"C5-\>V&B"H86G$5H M/)V7E3ZC;J;4^CE8]9V&2FJU78W#F([=VHUQ#V,LJ_5)M".L7@BK5PJ;)%)( MY1E"EV@2ZR>AU#V5)/J)O!,Q]J!GJ#=0 %^!T?_^S6K6?I;=_"7)W N1[12O M412O\76NJ*0^MZ2- VLTFGON.0RQ6K5R\S0+_RVSR89$FL=.[4'V/W[VDY(J<32JB^QQYYSYHR=X^@DU;/. 9"\%%SH MH9)( M'I S 6M%]*$HJ'H= Y>GH1=XYX4-RW*T"WX!3N58F\AN6E!4@-)." M*-@/O5$P&/=LODOXSN"D+^;$=K*3\MD&\W3HM:T@X)"@9:!F.,($.+=$1L;/ MFM-K2EK@Y?S,?N=Z-[WLJ(:)Y#]8BOG0^^J1%/;TP'$C3P]0]^,$)I)K]R6G M*K?7]4ART"B+&FP4%$Q4(WVIS^$"$/3? (0U('2ZJT).Y90BC2,E3T39;,-F M)ZY5AS;BF+"7LD5E=IG!83QYVCZN%K,-&2VGY'ZVNM^,U@_S"9DO[U:;Q>AQ MOEJ2SV2%.2CR80I(&=_/Y=T&]_NR&YVTCNWF*/EX=B9ZY%[HGQJ*+(1$8T9,8RJ*]IK=CZ MCLV:]1@'D7^\(J#7".C]HX -E%(AW7$@VQL*>G]5X%_\R@6HS!E6DT0>!%9_ M=;/:O FCR@J_TZL'94%5QH0F'/8&VFY],=559=(J0%DZ8^PD&INY:6[>-5 V MP>SOI<1S8 LT+V7\"U!+ P04 " Z@EM8U^2N-&T$ #F'P &0 'AL M+W=OYT*O5+=&;W8K47;C"0;1*SMH&.M#]^G1 2C%*W5*?BIDV"SV.?-S[&+^ZL MA'Q2,\XU>DZ33'6]F=;S<]]7T8RG3!V).<_,)Q,A4Z;-K9SZ:BXY&Q=!:>*3 M(&C[*8LSK]")670][FP>C>#K3^0._UYFS M*7_@^L?\7IH[OZ*,XY1G*A89DGS2]?KXG)(P#RA:_!'SE=JZ1GDJCT(\Y3=7 MXZX7Y"/B"8]TCF#FWY(/>9+D)#..?TNH5_69!VY?;^A?B^1-,H],\:%(_HS' M>M;U3CTTYA.V2/1(K+[Q,J'CG!>)1!5_T:IL&W@H6B@MTC+8C""-L_5_]EP* ML16 VR\$D#* [ :T7@@(RX#PK0&M,J!5*+-.I="!,LUZ'2E62.:M#2V_*,0L MHDWZ<9:_]PQB=.]X8^'[WW7^]&-_WO M5W>WZ L:\27/%AS=.KXV \^[]Z-RD(/U(,D+@\0$W8A,SQ2ZR,9\; -\DW&5-MFD M/2!.(N71$0KQ;X@$)&P8T/#MX:0AG+X]'#NR":N7&!:\U@N\S>L9\"R:F?)] M0O_5+Z#?I+>3EZ\UYVK.(M[US&*BN%QRK_?K+[@=_-ZD%22, L$L'5N5CJV" M'KIU5&@B18HNGC67&4NV9CC+QNA:9-,OUV:Q&J.^4EPK]->UX: KS5/U=Y/8 M+4BQ(6$4"&:)?5R)?>R78KG)LO[\P!TTI.7G[SA5(& 6" M63J>5#J>'*(P3R#%AH11()@E]FDE]NE'%Z:S@WV%/6VLS)WR!>K1$NRL$NSL M_55.F_1Q\O;5!Q)&@6"6CCBH-Z/!(>J\[!5(;U :A:+9BF]M__%'%[N[A[W5 MA:31DO;BXF&K1FK5R"L5'_%XR1X3,U7?ONEV0_<6"I)&H6BVH+6!P>%!"A_4 MYX#2*!3-5KRV.MBYN0;6D&[?K M;NC>$PR21J%HMJ"U]<'M@Y0TJ$,"I5$HFJUX;9*PTQ: E#2H)2IIN]^^9+?R M/\+MX-KN8+??>;7RAXU*@7H<4!J%HMF"UG8(GQVD\D%=$RB-0M'L'[-KWT2< M+@&B\MT][*MN27NM\J$ZM66KS0]QFY]7*_^R42E0OP-*HU T6]#:%Q%RB,HG MH,8)E$:A:+;BM7$B[J,?B,H/&VMUYQ>VH7L@>\L&ZG[\K0-0(\"T.$A61H=% MIM>'@M73ZK"Z7QS1[CP?X'.Z/G*N,>L3\!LFIW&F4,(G!ADT$ #I' &0 'AL+W=OE(^^/7"6E> M.-Y266H_E"2<>WSO3>[1"1[N"'UB(<81RE>$8!VR9)0'^> MX9CL1@8T7B_,HW7(LPOF>+@)UO@.\X?-C(HSLV191@E.64120/%J9$S@J8^< M+"!'_!GA':L=@ZR41T*>LI/+YXCC.F$0>_Q2D1KEF M%E@_?F7_EATY.'(Z!M@B5?!-N9SLON.BX+/MS=WUZ?S\'DQ@<7 MY[<7\\GL^^447-Y\NYU?3^XO;V_ 5S#'SSC=8@8>?X(+3-8TV(31 DS$DP8^ M^Y@'4CQ4E"3A_X9BF00RF^?."*0.B[>"*I.NO5V*JEF#"&.8,_'4E M>, EQPG[6W93]HLZ\D4S!3IEFV"!1X:0&(;I,S;&O_X"/>MW64-UDOF:R!K- M=LIF.RKVLMFRCNTC>WED)K'/8^BY?=L=FL_U7DA@3M]U!DV8+X%!:'E6"6OD M[Y;YN\K\:P,[)>D"IYP&N>;.(_8$_GT=;G"&TT4HQ/])5JARB6,?#9UDOB:R M1FN]LK7>1\RAI[/9.LE\362-9O?*9O?>/8>]M\VA!":;0PE,,8?],O^^,O\9 MIMGP"3<%R JHJMGS0*N>0*N2_X?X2DBC@D%9P4"ODHAK#VG$Q9-_QP,N+U:Y MY+$/NTXR7Q-9H]70JHR9]1':4JRJJ=]:V7Q=;,V.UZPP?+? %*%U31B@WJ#? M&DL)K&=[J*5#O@3F6G;/D8\G1%4%2)/$%$0-=;!.7,^J_[5%IR.H79P4Y;@= MQ56>%RI=WKO49QI&:2"M7ZO7U[;A7-?A/P.J#K*&4@QBM! M:9WTA)FD^WVU_0DGFWRGZ9%P,4?Y88B#):890'R_(H2_GF0+E+N;X_\ 4$L# M!!0 ( #J"6UA3+UL8\P( +\* 9 >&PO=V]R:W-H965T\Z<<^9"IK.C[(G[B *>HS#F7J![G82L<8IBEHR9G.D%RS*(,.8!C8'AJJOUS/-^ M6]6G!;\"W/'2&)23.:5/:C)<=C5#"<(0%T(Q$'G;8A_#4!%)&7]S3JU84@'+ MXU?VJ]2[]#(G'/LT? R6PN]J+0V6N"*;4$SH[@9S/PW%MZ A3Z^PRVL-#18; M+FB4@Z6"*(BS.WG. MAJ-[.(5;&J]/0YGW$GJ\HPLI62VL+W)Y%YD\ZQUY UR<@6V>@&58=@6\_W&XM0_7 M95!%6E:1EI7RV>_P37"+\08YK!B-X/)9((M)"/UTGY!QD"ZSL&[+8?V^E3PP M%!CQ/U499(LZU8NJ[_B<)V2!74U^J!S9%C7O^S?3-7Y6)5(3V5X^=I&/?8C= M*_4)2:V?0(RBRG+&TTQYU)]FZSENNV5V]&W92U65V72+JCV13B'2.2AR%@=" M"IP*(K"R)0_"/[L=-9'M.6T43AM?T:Z-.O.IB6PO'[?(QZVI73,>M]R(#==L MOVG7BBJG:1O5[=HL1#8/BIP@%T!7('R$1\K"996^@Q2?W9*:R/;Q3,4BP0 '\1 9 >&PO=V]R:W-H965TE].-V'Q0QX%=M+ M=]>02/?C;]9V# 3C)E?Z(<%>SSS[S#S,,N/>6LA'%2!J>(K"6/6M0.OEA6TK M/\"(J9I88DQ/YD)&3-.M7-AJ*9'-4J8QW M$E0214P^7V(HUGW+M5X6[ODBT&;!'O26;($3U _+.TEW=H$RXQ'&BHL8),[[ MUM"]&+DMXY!:?..X5EO78$*9"O%H;FYG?VC@5^HK2(2*V'-S& 0.]0/.-1SA_I;=VCD#HTT M,UDH:1Y&3+-!3XHU2&--:.8B36;J3>'SV.@^T9*>B;)OU6ZVZYUR M4=H%O?;_$P7^A>/77R67]ZIZ)+"=M'6*M'5^6M7.FU3=MZI0M5O0ZU;2>ZA- M:O!%K%#&U-UHF)@?/*XYEA*MQ'JO*D<"VPG;=39]@//3NE1#O#?>'&WG2.UV MG7+]W*V&QJT,9!((J<\URH@*;X5*&QVINMB*&A4V#?&??WXDAHN[G;M$YN=>_TID(X:CN4H[VQ$#:-CEO=Z1R[$!I[G6II(523.E0( M^^!5A6 :I]V535/A5G<51("&$P2?2?EL!AD6B81*1,Q!T_*5B)8L?O[TH>.Y M[<]J)W-4*J\+:Y,S8,NE%$^<1E'(4,898 %6?23R*E66RJ5P?4OZY%$LXRUX!11PN*+V(^ MI_(EACB?TXAMIC<3WA:Q+&"%.S$HLTP3%$93E,40EA(TXU2MK,+LK>DS0KE( MIW@%ODEK-K(4J]F;@DOWXBH=J%^M#]WFQ2B;T/>>M%Y>+MB;+;)7$W1L+7BL M(,0Y;>?4VM2SRFS:SVZT6*;S[U1HFJ;3RP#9#*4QH.=S0>=A?F,V*-ZY#/X# M4$L#!!0 ( #J"6U@;!9\@B0( +D& 9 >&PO=V]R:W-H965T!BWV^>AH$P&:>)]-SI-U-IR)N%&$[,6@NH_ M0^!JVP^B8.>8LF5IG2-,DQ5=P@SL?'6CT0H;EH()D(8I230L^L$@NLRZ+MX' MW#+8FKTU<9W<*77OC''1#]JN(."06\= \;6!*^#<$6$9#S5GT*1TP/WUCOW: M]XZ]W%$#5XK_9H4M^\&7@!2PH&MNIVK[#>I^>HXO5]SX)]E6L1>8,5\;JT0- M1ELP6;WI8SV'/4!T_@H@K@'Q"^C6 #_JL&K%SR&CEJ:)5ENB M732RN84?ID=C^TRZ8Y]9C;L,<3:]'HRGY';P?3XBD]%@-I^.)J,?OV;DC/RT M)6ARG(&EC)L3],QG&3D^.B%'A$DR89SCP9DDM%B&(POS.N6P2AF_DC**R41) M6QHRD@443PE"K+]I(MXU,8S?9,P@;Y%.=$KB=MPY4-#5^^'Q 7CV?GCT1C>= MYD@ZGJ_S?T=R:- 54?@-!^OE3=-[^>FA('TF6?1#9 MDP%VFP%VWV)/Q]("LEK\3',E@"RT$B2GICSU3P(/:[:A'*0UA,J"F%)I>X88 M@8@- H7;.C3O*F_/YW6"NDE[K5X2;O;'^#(F>AZ3O8QIMZ(FIFHZW+O4 O32 MBZ,AN5I+6UV-QMOH[\#+SC/_$'6YDM%_-)6H3ZA>,FD(AP52MEL76)&NA+(R MK%IYZ;A3%H7(+TO\MX!V ;B_4,KN#)>@^5NE?P%02P,$% @ .H);6#:O MP OT P N! !D !X;"]W;W)K&ULK9AK;Z,X M%(;_RA$[6LU(,^626]--(E%@IUE-LU'(S&@_.G"2H +.VB9I__W:0)BDH6PC MD0\)-GY?'S_'4)^.#I0]\2VB@.0A+DHB77+,/IZ0J)4FXSROCF;C&@FXBC%.0.>)0EA+_<8T\-8,[5C MQR+:;(7JT">C'=F@C^+[;LYD2Z]$!WYR M#6HI*TJ?5&,:CC5#180Q!D)9$/FS1P?C6#G)./XM3;5J3B4\O3ZZ_YDO7BYF M13@Z-/X9A6([UFXU"'%-LE@LZ.$!RP7UE%] 8YY_PZ$<:V@09%S0I!3+")(H M+7[)"_IO"#JEH/-:T'U#T"T%W?<*>J4@7[I>K#T'YQ)! M)B-&#\#4:.FF+G+ZN5KRBE*U47S!Y-U(ZL3$7R[LI?=UZL#<7BQGWL)_F,[! M_KKPO$=OMH2?T^4#V.X/>[;T_"78,Q<6WC0S3-/@1M[Y[KOP\<.GD2[D E08>E &>U\$:[T1 MK F/-!5;#EX:8EBC=_Y';S48Z))[**D==E MNM%*O1[O^(X$.-;D^X\CVZ,V^?TWLV_\44>Y,!OD9NK5N)_(9.Q/05Z.Z!CJ M-_OG ,SS]"D__"CSR;S$R M)IL-G!K]KN74OUC6L%O'Z7+U9XS[F\OGL9.Q^@/K>[Y+G,:Y[R6=9MF7DMF9ZR'%>MA(^LYHP%BR&'- M: )329FD 0)=0YD%7V6ACOOPXNGN]ZR:Q]MI#.!:\&V:>2V9G8$WC5_'?:,1 M_1)9HD ',\TH0R/%$ IRNQ4$^$[5G]N89 M>_""A-4=:IQFY;59:M7-:\NMR)-^4J'):FB3E\8< IJEHJ@VJMZJ_+;SHO-5 MOZ/*\KSR^V53U/2/A&VBE$.,:VEIW SD08 597+1$'27UX$K*F15F5]ND83( MU !Y?TVI.#;4!-4_*R;_ 5!+ P04 " Z@EM8Z< 0TV@" &!0 &0 M 'AL+W=O-N#3A-56\$E/F@P=5DRO1VC4)MAT WVAD>^*JPSA&E2L17.T3Y5#YI68:N2 M\Q*EX4J"QN4P&'6OQGUWWA_XR7%C#N;@,EDH]>P6TWP81 X(!6;6*3 :UCA! M(9P08;SL-(,VI',\G._5O_K<*9<%,SA1XA?/;3$,+@/(<<'J-EG%ASLAZRZ1%+>&.907IZ"V,)!-;RS-S#E.9=> $.&US(:CB)@DM M$;HX8;:C&3]W>6UG6 MABS&P"A[J;GA_D+\OB4;3"V6YL\QU$:R?US2-8Y!^_-"] MB+Z\ ]QK@7OOJ:H^BU5_UVJ"?U4GJ/V(<&J/5:+= Z2WA&UA(R9HH4^!M<$&ARR M=2[_HPL/KK5[(>Z87G%I0."2O*+.9W+73=&PO M=V]R:W-H965T.DZ<9K83\J>:4 M:O2\X(DZ:\VU3D_;;17/Z8*H8Y'2Q.R9"KD@VFS*65NEDI))7K3@[<#S^NT% M84EK/,K?NY7CD<@T9PF]E4AEBP61+Q>4B]59RV^]OG''9G-MWVB/1RF9T7NJ M']-;:;;:%67"%C113"1(TNE9Z]P_Q4%@"_(C?C"Z4ANOD?TH3T+\M!M7D[.6 M9WM$.8VU11#S;TDO*>>69/KQJX2VJC9MX>;K5SK./[SY,$]$T4O!_V$3/3]K M#5MH0J"7EG0V[6@7Q;T\[$O!BL?Z9!H,AY)L4+2 M'FUH]D6N*Z\V \P2^\VZU]+L9:9.CR\>[Z]NHOM[=/G]^N+JYOSAZOL-^@-A MPB3Z07A&D9BB()!/TC9$GQIEF5-G]V<*\?QA231A71X;P M>!^BPX,C=(!8@A[F(E.F2HW:VG3:-MV.RPY>%!T,WNE@2.-CU/&_H, +.@WE ME^[ROS-^C+S>N^7A[JT'#>71[N5^0SG>O=RKE[>-YTIV4,D.M_/)B.0L! 2%D'",!"L9K)3F>RX MZ..O0DQ6C/,FET7E(*^T"\MR[/>\X&347FY*W\VVSR6BGHW!3 M]P>#;G54;;RZU7AUG>/UC22:R@1=DWAN=LD7=)X0_J)9K+Z@JR0^;AI()W+? M20$)"R%A$20, \%JDGN5Y-XG3V\]2).0L! 2%D'",!"L9K)?F>P[I^LE47-$ MBJN*)I_.ZGU]]M^<<()^KWY2"B$;C"!A& A6TS2H- V_'J0I4%H( M2HM :1B*5K>Z$9SXSHD8TBF5-@W1Y!GQ#Q0[47LK]M_.QI/NUF0$;3("I6$H M6MW<.@7QG;?FX_,X%EEB3I\I>2'Y!4LR,:?26&;&)GU.::+>T0@:DY2T38V# MSK9%T/@#E(:A:'6+ZP3$=T<@Q4*X,?%<-PQNUM[F.F_,=?J#;76034:@- Q% MJZM;AS&^.XTIU*69C.=$491*%IM)R+F(B?VYH5$@:!A3TFIG4&\XW#8(&K. MTC 4K6YPG;3XSMO_C_,T]!\*Z9)RD9ISZ@.-YXG@8O;2J!8TG0&EA:"T")2& MH6CUK\ ZHO'[GTS;?-!X!I06@M(B4!J&HM6%KL,4ZC:=#:K(]!LYX-. M#M$+);+IZQ2"]B,"I6$H6EWM.O7QW;'/+@ON9?ZX )7HCO)@H9# MH+00E!:!TC 4K?[K_3I("MQ!DN/W>] ,"906@M(B4!J&HM6%KC.DP)TA?6+) M=1/W-NTW++G;*RYHDQ$H#4/1Z@(W'JAQ1TF?77'=V+TMNCO9?W_%!>U'!$K# M4+1";7OC&3G[S.0UD3.6*,3IU."]XX&YFY+%8XC%AA9I_MC&PO=V]R:W-H965TSG30K+*W0Q)?&9]][=_><7E_2 G?76_8O;G8SRSU1<"78+UKH,:)(F4FR0M-F&S2Z ,JIR)E0C 9VBNT6&CH].T!&B'/TH1:,(+U2"M:EM&7#>U9FU=<(] M=8(0W0BN2X4^\P**YP38--UW'FX[GX4'&3/(SU 4?$"A'T8##5V]'AX.P+/7 MPX,#TT3]/42.+_J?>QB2NZ6+A^FL65RHFN0P]8P;*)!K\-+W[X*Q_VE(JK MVUKB7YK6H&^(7%&N$(.EH?3/SHVER=;TVD"+VMG O=#&5-RR--\)D#;!G"^% MT-O %NB_/.D?4$L#!!0 ( #J"6UA.32 >1 ( (L& 9 >&PO=V]R M:W-H965T MNJY,2ZBPG/ :F'Z2B<&4M &>RL M_.5Z8>)MP"\"K3P9(U/)GO-G,]EDL>,9(:"0*D/ ^G: .Z#4@+3&GY[I#%N: MQ-/QD?[-UJYKV6,)=YS^)IDJ8^>3@S+(<4/5CK??H:]G9G@II])>4=O%AI\= ME#92\:I/U@858=T=O_3G<)+@SR\D!'U"8+V[C:SE/58XB01OD3#1FF8&ME2; MK>4(,R_E40G]E.@\E6ST\68@T)/ &6$%6@F!60'ZV)6,7*5W,'%NVM/6'2VX M0/,#],"9*B7ZRC+(_@6X6FWP"XY^ZV"4> _I!(7^#0J\(!SAA4.]H>6%%WCG MZKQ!^U>T81DYD*S!]%S9'71Z'FH^G*6L<0JQH[\,">( 3O+Q@S_WOHPH3P?E MZ1@]V344D._M9[?^J39:9;Q6_Q]RISL.S#&5,"(V&\1FHYP?G-U>(3<.?4]N M/LC-KSJU)Q#Z,\(7W,:9[[DM!K?%U0CGGC2("D1AVZ!$*6^8ZGK% ML#ITVE778/Z&=VWZ 8N",(DHY#K5FRSTZQ1=Z^LFBM>VW>RYTLW+#DO]MP!A M O3SG'-UG)@-AO]/\@902P,$% @ .H);6&%F)G Z P \!, T !X M;"]S='EL97,N>&ULW5C1;MHP%/V5R%VG5IH:(&M*5D#:D"I-VJ9*[*D,< ML.38F6,ZV-?/-PX)4%_$^K#!@DKL>WS./;9O&K>#TJP$>Y@S9H)E+F0Y)'-C MB@]A6$[G+*?EE2J8M$BF=$Z-[>I96!::T;0$4B["7J<3ASGEDHP&G9UUKCI/E[>[ MR$4-79+0*WQ]@# JBXG&![F%:X]CN+ $-X.2?>WI:OAYU;($<\Q6N*A MV2PM$SH5.:QW?#3(E&PW/B(N8-5ISH)G*H9D3 6?: ZLC.9%2/G+P5W7@V*L=7(NE:YRNPSN>U(/WP'6/3#(A6@,]H@+C 8%-89I M>6<[U> J^ (*ZO;CJK .9YJNNKUKTA*JFTTR43IENDG3)>O0:"!8!G8TG\WA M;E01 FB,RFTCY72F)*T\K!EUP\I.F1 /\*1^S[:TE]G&OG5@UV33M(;JII-Q M'=#?5'/:F[+1JW2#@C\K\VEAIR.K/A0HN]G12%6'P6? MR9RYR1^<<#2@:UXP5YK_LMF@5*8VP#0)GIDV?+H9^:EI\\RJ]V7+_:_H7GZM?*KF.OR>CF^#W6K_)C-QF?@LF3 MV.[^*9A,CM]D=)P>P_J0L7&2V3K'--$ SHM#\@U.GZ)-&DP67!@NZ]Z7*5NR=%QW]6Q2-0/;L%GK"PB[R%UU^1&,XS _ AB6!W. <1P+R_,_S:>/ MSL=AF+>^%^FCG#[*<2P?,JX^6!X_)[&7?Z9)$D5QC*WH>.QU,,;6+8[AQZ^& M>0,&E@_/]A3$D5)XD< \SN( M(@R!IQ%', ?@ 4.BJ'H/[KR/PO5[*FS_QS?Z#5!+ P04 " Z@EM8EXJ[ M', 3 @ "P %]R96QS+RYR96QSG9*Y;L,P#$!_Q=">, ?0(8@S9?$6 M!/D!5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+J1C]$%)I6M6X 4BV M)8]ISI%"KM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D5XA-/E_G;@2=&A(E@6FD7)TZ(= MI7\=Q_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0 ( M #J"6UCG@-;!$ 8 *HQ / >&PO=V]R:V)O;VLN>&ULQ9M--^%7^GV:L5JL\%9,J MW6Y$V>S:48JB!2SKA_RQ'K RV8BKP;X(L\N,\;)1C<3<5*MO>J?K7;K:[ MZT;A@C:47W-U0;I9!TX'Z?A>Y,_=B1WS";NQY[;G@60%H( MI$4+.>&1$[I![/I>"W:SC%R/1Q&S/<6\7 #(,0(YIH4,^1WWEAS ?$9@/M/" M!*$?\##^UC41_W/I!NUC!6Q?$+8OM&PSWY_\Y<[G'9OKQ;8WQZ,^XY;A\2,\>(6!WMJ/;' MK3^?\##ZK7OKXF^0#1/&B-@8?!',_6^ LU2NW4%1M MEYAQ?Q;:P:WK*.RI'RYLB(F)841LAJGMANS.GB\Y6ZA191GN' OQ,%6,B%T1 MQ:'2_DRU6V"'L:=.7^0UDF)G M:I)9B/H3Y,( &U"$FNKQ%;!HG=@\;V'/1#1)7O0[#>8:_6-6MM@YF^1ULEY+L>X*L6K%0O$$ M,3'KZ,36^85I9UG>7DX*L $ ,3'KZ,36.1)%GC,OD3)IX-HU9AV#V#I',0.I MJI40$[..06P=--CM.=S O&,0>P?'A-XQ,.\8Q-[!,:%W#'1CY90SG)YW#,P[ MQL?,<,Z9WSP(>7!<-S#A&,3">>.;BZ06S*GJYC D)A^#6#YOD(NDV9I&).<@D=M [S(E8"2E%UH':=>_=Q!QD$COH M'>:RE*H1UV6;P-:BPI03S$(6L850S-[,PL(L9!%;Z!WFSCWMY+P=WI_A\&YA M%K*(+80M"9\SF QE81:RB"V$8\(=90NSD$6=6H:N7,/II(59R*).+D,QX732 M0K/+3IE&T)M.6IB%+&(+X9AP&=/"+&016^C8=L5YZR !PV(+LY!%;*'CF-UL M'>848A8:4V<68,D9/0N-,0N-3['Y\RONA)B8A<;$%CJ".4URV9H38F(6&E,G M&B0_V%/- B&[KY>I:%?>TZ*JMU) 2,Q!8^J24'XIM$-!*LONVG(%]4 ]Z$G%&J$!<_@F?$/#X4@[-N&]/PV[?#8O/ MX^$TK*K=.':_ZGI8[\JQ&>[:KIS.1S9M?VS&\[+?UEVS?F^VI9;E,NK^=D;U M]'@[<_'ZU97_F=AN-OMU^=VN_QS+:?S'X/JC[=^'72ECM7AM^FT95U7]>;CN M'NK+)MV=)U>+Y[=5U3^_I:J>.T@@2.8/4@C2^8,,@FS^((<@GS\H("CF#\H0 ME.@^_F#'B#H8?Z@M$09EP1)$ZP)M$[(=2+P.B'8B4#LA&0G K,3HIT( MU$[(=B)P.R'@N!WH)Z M"X'>@GH+@=Z">@N!WH)Z"X'>@GH+@=Z">@N!WHIZ*X'>BGHK@=Z*>BN!WCIY M64*@MZ+>2J"WHMY*H+>BWDJ@MZ+>2J"WHMY*H+>BWDJ@MZ'>1J"WH=Y&H+>A MWD:@MZ'>1J"W35YV$^AMJ+<1Z&VHMQ'H;:BW$>AMJ+<1Z&VHMQ'H[:BW$^CM MJ+<3Z.VHMQ/H[:BW$^CMJ+<3Z.V3CY4$>COJ[01Z.^KM!'H[ZNT$>COJ[01Z M!^H=!'H'ZAT$>@?J'01Z!^H=!'H'ZAT$>@?J'01ZQ^1G$P*] _4. KT#]0X" MO0/U#@*],^J="?3.J'^TK=B>7OT M%&>'OAOBJMBEY+\S%NL=]3:6SM.05[8N]#;EK^&>>5OO[3TQL5@85KLAT9#F M::Q1K)<_:6L?NC3[=<@_Q]8-JR)0%XO9C]/&,6M56.^[MK8IK[/'H7F7,G]. M*//):4_Y0T%^S!A7/E[P/.YWX\40MO0;&-#NK%]WL4.'8OIV%$LSY?X MH$>WW;8U-:Y^Z/.1,OI MHD[HM1WY:GHU?GDE&^83I_\XORIS+G O',3G(]Y M8H$^'_)Q?VTSPBFQZ7W_'; M&;_6_V0? J0/"=*' NE#@_1A0/JH0/KX!M+'-4@??('2"(JH'(54CF(J1T&5 MHZC*45CE**YR%%@YBJP"15:!(JM D56@R"I09!4HL@H4606*K )%5H$BJT21 M5:+(*E%DE2BR2A19)8JL$D56B2*K1)%5HLBJ4&15*+(J%%D5BJP*15:%(JM" MD56AR*I09%4HLFH4636*K!I%5HTBJT:15:/(JE%DU2BR:A19-8JL!D56@R*K M09'5H,AJ4&0U*+(:%%D-BJP&15:#(FN%(FN%(FN%(FN%(FN%(FOUE;+>.;?_ MS_'3L^QM.[SDL^F?M>L_4$L! A0#% @ .H);6 =!36*! L0 ! M ( ! &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4 " Z M@EM8PXA1)N\ K @ $0 @ &O 9&]C4')O<',O8V]R M92YX;6Q02P$"% ,4 " Z@EM8F5R<(Q & "<)P $P M@ '- 0 >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0 ( #J"6UC1U0?F MH0< XR 8 " @0X( !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ .H); M6-=IU= 0 P [0L !@ ("!'Q< 'AL+W=O&PO=V]R:W-H M965T&UL4$L! A0#% @ .H);6-WW: *;"@ >#4 !@ M ("!]BH 'AL+W=O&PO=V]R:W-H965T&UL M4$L! A0#% @ .H);6#LC3=./! _@H !@ ("!?FP M 'AL+W=O&UL4$L! A0#% @ .H);6."(,I>,!0 @PX !D M ("!O7< 'AL+W=O&PO=V]R:W-H965T M& !X;"]W;W)K&UL4$L! A0# M% @ .H);6(3IY% D#@ 7B\ !D ("!HHH 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ .H);6*&PO=V]R:W-H965TX !X;"]W;W)K&UL4$L! A0#% @ .H);6(3-E.%"!0 ' P !D M ("!$KT 'AL+W=O &0 @(&+P@ >&PO M=V]R:W-H965T&UL4$L! A0#% @ .H);6 :YBR11 @ = 4 !D ("! M=ND 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ .H);6 (!W5[9! &PT !D ("!@?4 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ .H);6+9 9*,A P =P< !D M ("!U!0! 'AL+W=O&PO=V]R M:W-H965T 0!X;"]W;W)K&UL M4$L! A0#% @ .H);6$M\FYUC P >0D !D ("!,B(! M 'AL+W=O," A"P &0 @(',)0$ >&PO=V]R:W-H965T8H 0!X;"]W;W)K&UL4$L! A0#% @ M.H);6/7TR^^T @ B@D !D ("!7BX! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ .H);6-R*>7/K!0 MR0 !D M ("!UD(! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ .H);6#HI*GB5 P FPL !D ("!*D\! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ .H); M6//JAL^#! #QT !D ("!VU@! 'AL+W=O&PO=V]R:W-H965T\J&0, !T) 9 " @9-G 0!X;"]W;W)K M&UL4$L! A0#% @ .H);6'):Y,=: P U@L M !D ("!XVH! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ .H);6) M-./0! ,!H !D M ("!0'&PO=V]R:W-H965T M&UL4$L! A0# M% @ .H);6 H_B8.$! FQ$ !D ("!$X0! 'AL+W=O MY4 # "J M# &0 @('.B $ >&PO=V]R:W-H965TY:-0, !T* 9 " @46, M 0!X;"]W;W)K&UL4$L! A0#% @ .H);6'H! MF<&[ @ -0< !D ("!L8\! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ .H);6*YA+5P_ @ -04 !D M ("!S)D! 'AL+W=O&PO M=V]R:W-H965T:@ 0!X;"]W;W)K&UL4$L! A0#% @ .H);6%,O6QCS @ OPH !D ("! M"J8! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ .H);6#:OP OT P N! !D ("!MK ! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ .H);6!?^'15C M @ A08 !D ("!)KT! 'AL+W=O&PO=V]R:W-H965T7!E&UL4$L%!@ !3 %, O!8 ' (?1 0 $! end XML 94 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 95 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 97 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.0.1 html 270 416 1 true 84 0 false 5 false false R1.htm 00090 - Document - Document And Entity Information Sheet http://www.pdf.com/role/DocumentDocumentAndEntityInformation Document And Entity Information Cover 1 false false R2.htm 00100 - Statement - CONSOLIDATED BALANCE SHEETS Sheet http://www.pdf.com/role/StatementConsolidatedBalanceSheets CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals) Sheet http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals CONSOLIDATED BALANCE SHEETS (Parentheticals) Statements 3 false false R4.htm 00200 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS Statements 4 false false R5.htm 00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Statements 5 false false R6.htm 00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 6 false false R7.htm 10101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Notes 7 false false R8.htm 10201 - Disclosure - REVENUE Sheet http://www.pdf.com/role/DisclosureRevenue REVENUE Notes 8 false false R9.htm 10301 - Disclosure - PROPERTY AND EQUIPMENT Sheet http://www.pdf.com/role/DisclosurePropertyAndEquipment PROPERTY AND EQUIPMENT Notes 9 false false R10.htm 10401 - Disclosure - GOODWILL AND INTANGIBLE ASSETS Sheet http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssets GOODWILL AND INTANGIBLE ASSETS Notes 10 false false R11.htm 10501 - Disclosure - LEASES Sheet http://www.pdf.com/role/DisclosureLeases LEASES Notes 11 false false R12.htm 10601 - Disclosure - COMMITMENTS AND CONTINGENCIES Sheet http://www.pdf.com/role/DisclosureCommitmentsAndContingencies COMMITMENTS AND CONTINGENCIES Notes 12 false false R13.htm 10701 - Disclosure - STOCKHOLDERS' EQUITY Sheet http://www.pdf.com/role/DisclosureStockholdersEquity STOCKHOLDERS' EQUITY Notes 13 false false R14.htm 10801 - Disclosure - EMPLOYEE BENEFIT PLANS Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlans EMPLOYEE BENEFIT PLANS Notes 14 false false R15.htm 10901 - Disclosure - INCOME TAXES Sheet http://www.pdf.com/role/DisclosureIncomeTaxes INCOME TAXES Notes 15 false false R16.htm 11001 - Disclosure - NET INCOME (LOSS) PER SHARE Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShare NET INCOME (LOSS) PER SHARE Notes 16 false false R17.htm 11101 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation CUSTOMER AND GEOGRAPHIC INFORMATION Notes 17 false false R18.htm 11201 - Disclosure - FAIR VALUE MEASUREMENTS Sheet http://www.pdf.com/role/DisclosureFairValueMeasurements FAIR VALUE MEASUREMENTS Notes 18 false false R19.htm 11301 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Sheet http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Notes 19 false false R20.htm 11401 - Disclosure - BUSINESS COMBINATION Sheet http://www.pdf.com/role/DisclosureBusinessCombination BUSINESS COMBINATION Notes 20 false false R21.htm 20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) Sheet http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies SIGNIFICANT ACCOUNTING POLICIES (Policies) Policies 21 false false R22.htm 30103 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) Tables http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies 22 false false R23.htm 30203 - Disclosure - REVENUE (Tables) Sheet http://www.pdf.com/role/DisclosureRevenueTables REVENUE (Tables) Tables http://www.pdf.com/role/DisclosureRevenue 23 false false R24.htm 30303 - Disclosure - PROPERTY AND EQUIPMENT (Tables) Sheet http://www.pdf.com/role/DisclosurePropertyAndEquipmentTables PROPERTY AND EQUIPMENT (Tables) Tables http://www.pdf.com/role/DisclosurePropertyAndEquipment 24 false false R25.htm 30403 - Disclosure - GOODWILL AND INTANGIBLE ASSETS (Tables) Sheet http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsTables GOODWILL AND INTANGIBLE ASSETS (Tables) Tables http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssets 25 false false R26.htm 30503 - Disclosure - LEASES (Tables) Sheet http://www.pdf.com/role/DisclosureLeasesTables LEASES (Tables) Tables http://www.pdf.com/role/DisclosureLeases 26 false false R27.htm 30803 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables EMPLOYEE BENEFIT PLANS (Tables) Tables http://www.pdf.com/role/DisclosureEmployeeBenefitPlans 27 false false R28.htm 30903 - Disclosure - INCOME TAXES (Tables) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesTables INCOME TAXES (Tables) Tables http://www.pdf.com/role/DisclosureIncomeTaxes 28 false false R29.htm 31003 - Disclosure - NET INCOME (LOSS) PER SHARE (Tables) Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables NET INCOME (LOSS) PER SHARE (Tables) Tables http://www.pdf.com/role/DisclosureNetIncomeLossPerShare 29 false false R30.htm 31103 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Tables http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation 30 false false R31.htm 31203 - Disclosure - FAIR VALUE MEASUREMENTS (Tables) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsTables FAIR VALUE MEASUREMENTS (Tables) Tables http://www.pdf.com/role/DisclosureFairValueMeasurements 31 false false R32.htm 31403 - Disclosure - BUSINESS COMBINATION (Tables) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationTables BUSINESS COMBINATION (Tables) Tables http://www.pdf.com/role/DisclosureBusinessCombination 32 false false R33.htm 40101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) Details http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables 33 false false R34.htm 40102 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Cash and Cash Equivalents and Short-term Investments (Details) Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Cash and Cash Equivalents and Short-term Investments (Details) Details 34 false false R35.htm 40103 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) Details 35 false false R36.htm 40104 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details) Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details) Details 36 false false R37.htm 40201 - Disclosure - REVENUE (Details) Sheet http://www.pdf.com/role/DisclosureRevenueDetails REVENUE (Details) Details http://www.pdf.com/role/DisclosureRevenueTables 37 false false R38.htm 40202 - Disclosure - REVENUE - Disaggregation of Revenue (Details) Sheet http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails REVENUE - Disaggregation of Revenue (Details) Details 38 false false R39.htm 40203 - Disclosure - REVENUE - Additional Information (Details) Sheet http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails REVENUE - Additional Information (Details) Details 39 false false R40.htm 40301 - Disclosure - PROPERTY AND EQUIPMENT - Narrative (Details) Sheet http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails PROPERTY AND EQUIPMENT - Narrative (Details) Details 40 false false R41.htm 40302 - Disclosure - PROPERTY AND EQUIPMENT - Property and Equipment (Details) Sheet http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails PROPERTY AND EQUIPMENT - Property and Equipment (Details) Details 41 false false R42.htm 40401 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) Details 42 false false R43.htm 40402 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) Sheet http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) Details 43 false false R44.htm 40403 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) Details 44 false false R45.htm 40404 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) Details 45 false false R46.htm 40501 - Disclosure - LEASES - Other (Details) Sheet http://www.pdf.com/role/DisclosureLeasesOtherDetails LEASES - Other (Details) Details 46 false false R47.htm 40502 - Disclosure - LEASES - Lease Cost (Details) Sheet http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails LEASES - Lease Cost (Details) Details 47 false false R48.htm 40503 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details) Sheet http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails LEASES - Maturity of Operating Lease Liabilities (Details) Details 48 false false R49.htm 40601 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details) Sheet http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails COMMITMENTS AND CONTINGENCIES (Details) Details http://www.pdf.com/role/DisclosureCommitmentsAndContingencies 49 false false R50.htm 40701 - Disclosure - STOCKHOLDERS EQUITY (Details) Sheet http://www.pdf.com/role/DisclosureStockholdersEquityDetails STOCKHOLDERS EQUITY (Details) Details 50 false false R51.htm 40801 - Disclosure - EMPLOYEE BENEFIT PLANS - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails EMPLOYEE BENEFIT PLANS - Narrative (Details) Details 51 false false R52.htm 40802 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) Details 52 false false R53.htm 40803 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Details 53 false false R54.htm 40804 - Disclosure - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) Details 54 false false R55.htm 40805 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Details 55 false false R56.htm 40901 - Disclosure - INCOME TAXES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails INCOME TAXES - Narrative (Details) Details 56 false false R57.htm 40902 - Disclosure - INCOME TAXES - Income Tax Expense (Benefit) (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails INCOME TAXES - Income Tax Expense (Benefit) (Details) Details 57 false false R58.htm 40903 - Disclosure - INCOME TAXES - Income Tax Reconciliation (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails INCOME TAXES - Income Tax Reconciliation (Details) Details 58 false false R59.htm 40904 - Disclosure - INCOME TAXES - Deferred Tax Assets (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails INCOME TAXES - Deferred Tax Assets (Details) Details 59 false false R60.htm 40905 - Disclosure - INCOME TAXES - Unrecognized Tax Benefits (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails INCOME TAXES - Unrecognized Tax Benefits (Details) Details 60 false false R61.htm 40906 - Disclosure - INCOME TAXES - Unrecognized Tax Benefits Reconciliation (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsReconciliationDetails INCOME TAXES - Unrecognized Tax Benefits Reconciliation (Details) Details 61 false false R62.htm 40907 - Disclosure - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) Details 62 false false R63.htm 41001 - Disclosure - NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) Details http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables 63 false false R64.htm 41002 - Disclosure - NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) Details http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables 64 false false R65.htm 41101 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details) Details http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables 65 false false R66.htm 41102 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Details 66 false false R67.htm 41103 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Details 67 false false R68.htm 41104 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Details 68 false false R69.htm 41201 - Disclosure - FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) Details 69 false false R70.htm 41202 - Disclosure - FAIR VALUE MEASUREMENTS - Other (Details) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsOtherDetails FAIR VALUE MEASUREMENTS - Other (Details) Details 70 false false R71.htm 41301 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Sheet http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Details http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions 71 false false R72.htm 41401 - Disclosure - BUSINESS COMBINATION - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails BUSINESS COMBINATION - Narrative (Details) Details 72 false false R73.htm 41402 - Disclosure - BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) Details 73 false false R74.htm 995410 - Disclosure - Pay vs Performance Disclosure Sheet http://xbrl.sec.gov/ecd/role/PvpDisclosure Pay vs Performance Disclosure Uncategorized 74 false false R75.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Cover 75 false false All Reports Book All Reports pdfs-20231231.xsd pdfs-20231231_cal.xml pdfs-20231231_def.xml pdfs-20231231_lab.xml pdfs-20231231_pre.xml pdfs-20231231x10k.htm pdfs-20231231x10k003.jpg http://fasb.org/us-gaap/2023 http://xbrl.sec.gov/dei/2023 http://xbrl.sec.gov/ecd/2023 true true JSON 100 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "pdfs-20231231x10k.htm": { "nsprefix": "pdfs", "nsuri": "http://www.pdf.com/20231231", "dts": { "schema": { "local": [ "pdfs-20231231.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-sub-2023.xsd" ] }, "calculationLink": { "local": [ "pdfs-20231231_cal.xml" ] }, "definitionLink": { "local": [ "pdfs-20231231_def.xml" ] }, "labelLink": { "local": [ "pdfs-20231231_lab.xml" ] }, "presentationLink": { "local": [ "pdfs-20231231_pre.xml" ] }, "inline": { "local": [ "pdfs-20231231x10k.htm" ] } }, "keyStandard": 375, "keyCustom": 41, "axisStandard": 28, "axisCustom": 0, "memberStandard": 53, "memberCustom": 28, "hidden": { "total": 35, "http://fasb.org/us-gaap/2023": 24, "http://www.pdf.com/20231231": 5, "http://xbrl.sec.gov/dei/2023": 6 }, "contextCount": 270, "entityCount": 1, "segmentCount": 84, "elementCount": 686, "unitCount": 5, "baseTaxonomies": { "http://fasb.org/us-gaap/2023": 913, "http://xbrl.sec.gov/dei/2023": 37, "http://xbrl.sec.gov/ecd/2023": 4 }, "report": { "R1": { "role": "http://www.pdf.com/role/DocumentDocumentAndEntityInformation", "longName": "00090 - Document - Document And Entity Information", "shortName": "Document And Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.pdf.com/role/StatementConsolidatedBalanceSheets", "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS", "shortName": "CONSOLIDATED BALANCE SHEETS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R3": { "role": "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals", "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)", "shortName": "CONSOLIDATED BALANCE SHEETS (Parentheticals)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "Unit_Divide_USD_shares_nehtPnhXEEGCVhHl_jfPxg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "Unit_Divide_USD_shares_nehtPnhXEEGCVhHl_jfPxg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS", "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:CostOfRevenue", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R5": { "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity", "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_YYblpmrpnUKmn-gncYEJQw", "name": "us-gaap:StockholdersEquity", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_YYblpmrpnUKmn-gncYEJQw", "name": "us-gaap:StockholdersEquity", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R6": { "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows", "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS", "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R7": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies", "longName": "10101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R8": { "role": "http://www.pdf.com/role/DisclosureRevenue", "longName": "10201 - Disclosure - REVENUE", "shortName": "REVENUE", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.pdf.com/role/DisclosurePropertyAndEquipment", "longName": "10301 - Disclosure - PROPERTY AND EQUIPMENT", "shortName": "PROPERTY AND EQUIPMENT", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssets", "longName": "10401 - Disclosure - GOODWILL AND INTANGIBLE ASSETS", "shortName": "GOODWILL AND INTANGIBLE ASSETS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.pdf.com/role/DisclosureLeases", "longName": "10501 - Disclosure - LEASES", "shortName": "LEASES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.pdf.com/role/DisclosureCommitmentsAndContingencies", "longName": "10601 - Disclosure - COMMITMENTS AND CONTINGENCIES", "shortName": "COMMITMENTS AND CONTINGENCIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.pdf.com/role/DisclosureStockholdersEquity", "longName": "10701 - Disclosure - STOCKHOLDERS' EQUITY", "shortName": "STOCKHOLDERS' EQUITY", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlans", "longName": "10801 - Disclosure - EMPLOYEE BENEFIT PLANS", "shortName": "EMPLOYEE BENEFIT PLANS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxes", "longName": "10901 - Disclosure - INCOME TAXES", "shortName": "INCOME TAXES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShare", "longName": "11001 - Disclosure - NET INCOME (LOSS) PER SHARE", "shortName": "NET INCOME (LOSS) PER SHARE", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation", "longName": "11101 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurements", "longName": "11201 - Disclosure - FAIR VALUE MEASUREMENTS", "shortName": "FAIR VALUE MEASUREMENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions", "longName": "11301 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "shortName": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.pdf.com/role/DisclosureBusinessCombination", "longName": "11401 - Disclosure - BUSINESS COMBINATION", "shortName": "BUSINESS COMBINATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies", "longName": "20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies)", "shortName": "SIGNIFICANT ACCOUNTING POLICIES (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "21", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:DescriptionOfBusinessPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:DescriptionOfBusinessPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables", "longName": "30103 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "22", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.pdf.com/role/DisclosureRevenueTables", "longName": "30203 - Disclosure - REVENUE (Tables)", "shortName": "REVENUE (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "23", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.pdf.com/role/DisclosurePropertyAndEquipmentTables", "longName": "30303 - Disclosure - PROPERTY AND EQUIPMENT (Tables)", "shortName": "PROPERTY AND EQUIPMENT (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "24", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsTables", "longName": "30403 - Disclosure - GOODWILL AND INTANGIBLE ASSETS (Tables)", "shortName": "GOODWILL AND INTANGIBLE ASSETS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.pdf.com/role/DisclosureLeasesTables", "longName": "30503 - Disclosure - LEASES (Tables)", "shortName": "LEASES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables", "longName": "30803 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables)", "shortName": "EMPLOYEE BENEFIT PLANS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesTables", "longName": "30903 - Disclosure - INCOME TAXES (Tables)", "shortName": "INCOME TAXES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables", "longName": "31003 - Disclosure - NET INCOME (LOSS) PER SHARE (Tables)", "shortName": "NET INCOME (LOSS) PER SHARE (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables", "longName": "31103 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsTables", "longName": "31203 - Disclosure - FAIR VALUE MEASUREMENTS (Tables)", "shortName": "FAIR VALUE MEASUREMENTS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "31", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationTables", "longName": "31403 - Disclosure - BUSINESS COMBINATION (Tables)", "shortName": "BUSINESS COMBINATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "32", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "longName": "40101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:NumberOfOperatingSegments", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:NumberOfReportingUnits", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R34": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails", "longName": "40102 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Cash and Cash Equivalents and Short-term Investments (Details)", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Cash and Cash Equivalents and Short-term Investments (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:DebtSecuritiesAvailableForSaleAndHeldToMaturityAllowanceForCreditLoss", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:CashAndCashEquivalentsPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:DebtSecuritiesAvailableForSaleAndHeldToMaturityAllowanceForCreditLoss", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:CashAndCashEquivalentsPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "longName": "40103 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details)", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_AllowanceForCreditLossMember_eGun0jsYqEGfT-M5Ie0-ng", "name": "us-gaap:ValuationAllowancesAndReservesBalance", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2020_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_AllowanceForCreditLossMember_JRBhRgRBwE65qKhqVrJnag", "name": "us-gaap:ValuationAllowancesAndReservesBalance", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R36": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "longName": "40104 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details)", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_zGYPYcbfJUuYc2BL6KBgvg", "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfPublicUtilityPropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_zGYPYcbfJUuYc2BL6KBgvg", "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfPublicUtilityPropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R37": { "role": "http://www.pdf.com/role/DisclosureRevenueDetails", "longName": "40201 - Disclosure - REVENUE (Details)", "shortName": "REVENUE (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:NumberOfRevenueSources", "unitRef": "Unit_Standard_item_jFoVfsp9h0OV1jL31RzgQg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:NumberOfRevenueSources", "unitRef": "Unit_Standard_item_jFoVfsp9h0OV1jL31RzgQg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails", "longName": "40202 - Disclosure - REVENUE - Disaggregation of Revenue (Details)", "shortName": "REVENUE - Disaggregation of Revenue (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:PercentOfRevenue", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:PercentOfRevenue", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R39": { "role": "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "longName": "40203 - Disclosure - REVENUE - Additional Information (Details)", "shortName": "REVENUE - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": null, "uniqueAnchor": null }, "R40": { "role": "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "longName": "40301 - Disclosure - PROPERTY AND EQUIPMENT - Narrative (Details)", "shortName": "PROPERTY AND EQUIPMENT - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "Duration_1_1_2021_To_12_31_2021_pvnR0mr-PkWqrBMiVb299w", "name": "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_PropertyPlantAndEquipmentByTypeAxis_pdfs_DFITestEquipmentMember_IJKIWOTclkGZGENSqdhzcw", "name": "us-gaap:DepreciationAndAmortization", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R41": { "role": "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails", "longName": "40302 - Disclosure - PROPERTY AND EQUIPMENT - Property and Equipment (Details)", "shortName": "PROPERTY AND EQUIPMENT - Property and Equipment (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails", "longName": "40401 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details)", "shortName": "GOODWILL AND INTANGIBLE ASSETS - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R43": { "role": "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails", "longName": "40402 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details)", "shortName": "GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "As_Of_12_31_2022_FxrjEZIouEeTMDhhIIgXOA", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:GoodwillAcquiredDuringPeriod", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R44": { "role": "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "longName": "40403 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details)", "shortName": "GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R45": { "role": "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "longName": "40404 - Disclosure - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details)", "shortName": "GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.pdf.com/role/DisclosureLeasesOtherDetails", "longName": "40501 - Disclosure - LEASES - Other (Details)", "shortName": "LEASES - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "pdfs:OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "pdfs:OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R47": { "role": "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails", "longName": "40502 - Disclosure - LEASES - Lease Cost (Details)", "shortName": "LEASES - Lease Cost (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R48": { "role": "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails", "longName": "40503 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details)", "shortName": "LEASES - Maturity of Operating Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "longName": "40601 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details)", "shortName": "COMMITMENTS AND CONTINGENCIES (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:TermOfProductWarranty", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R50": { "role": "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "longName": "40701 - Disclosure - STOCKHOLDERS EQUITY (Details)", "shortName": "STOCKHOLDERS EQUITY (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "As_Of_6_4_2020_us-gaap_ShareRepurchaseProgramAxis_pdfs_The2020StockRepurchaseProgramMember_wZjYQq4nCk-r_ev9hxz19g", "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_4_2020_us-gaap_ShareRepurchaseProgramAxis_pdfs_The2020StockRepurchaseProgramMember_wZjYQq4nCk-r_ev9hxz19g", "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "longName": "40801 - Disclosure - EMPLOYEE BENEFIT PLANS - Narrative (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_SoftwareDevelopmentMember_SEXh-1T5dku_x1dZeBiqRQ", "name": "us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_SoftwareDevelopmentMember_SEXh-1T5dku_x1dZeBiqRQ", "name": "us-gaap:EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "longName": "40802 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_PlanNameAxis_pdfs_PurchasePlanYear2021Member_EFe3MUMffUifzJtJJ6Eydg", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_PlanNameAxis_pdfs_PurchasePlanYear2021Member_EFe3MUMffUifzJtJJ6Eydg", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R53": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "longName": "40803 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis_pdfs_EmployeeStockPurchasePlanMember_UJjVPZllHk-wW8oEFXvxGg", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis_pdfs_EmployeeStockPurchasePlanMember_UJjVPZllHk-wW8oEFXvxGg", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R54": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "longName": "40804 - Disclosure - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis_pdfs_EmployeeStockPurchasePlanMember_Eo-y3yTFVE-ZkLMlYKaXOw", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis_pdfs_EmployeeStockPurchasePlanMember_UJjVPZllHk-wW8oEFXvxGg", "name": "us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R55": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "longName": "40805 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_SB9gIjJXWUalPRMnj7G3HA", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_1rmGuD06KE6BG10OKceZuw", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R56": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails", "longName": "40901 - Disclosure - INCOME TAXES - Narrative (Details)", "shortName": "INCOME TAXES - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "56", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R57": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "longName": "40902 - Disclosure - INCOME TAXES - Income Tax Expense (Benefit) (Details)", "shortName": "INCOME TAXES - Income Tax Expense (Benefit) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "57", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeTaxExpenseBenefit", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_IncomeTaxAuthorityAxis_us-gaap_DomesticCountryMember_95D25otAUkm_cNn3nLjZhw", "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R58": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails", "longName": "40903 - Disclosure - INCOME TAXES - Income Tax Reconciliation (Details)", "shortName": "INCOME TAXES - Income Tax Reconciliation (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "58", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R59": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails", "longName": "40904 - Disclosure - INCOME TAXES - Deferred Tax Assets (Details)", "shortName": "INCOME TAXES - Deferred Tax Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "59", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R60": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails", "longName": "40905 - Disclosure - INCOME TAXES - Unrecognized Tax Benefits (Details)", "shortName": "INCOME TAXES - Unrecognized Tax Benefits (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "60", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R61": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsReconciliationDetails", "longName": "40906 - Disclosure - INCOME TAXES - Unrecognized Tax Benefits Reconciliation (Details)", "shortName": "INCOME TAXES - Unrecognized Tax Benefits Reconciliation (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "61", "firstAnchor": { "contextRef": "As_Of_12_31_2022_FxrjEZIouEeTMDhhIIgXOA", "name": "us-gaap:UnrecognizedTaxBenefits", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2020_jGBHAvywFUepRfOJu_kUwg", "name": "us-gaap:UnrecognizedTaxBenefits", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R62": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "longName": "40907 - Disclosure - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details)", "shortName": "INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "62", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_EPXfQftxSEW2OOez1xRA2Q", "name": "us-gaap:ValuationAllowancesAndReservesBalance", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:SummaryOfValuationAllowanceTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2020_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_K3mQ2gL9GkW5OezJilOolQ", "name": "us-gaap:ValuationAllowancesAndReservesBalance", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:SummaryOfValuationAllowanceTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R63": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "longName": "41001 - Disclosure - NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details)", "shortName": "NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "63", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R64": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "longName": "41002 - Disclosure - NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details)", "shortName": "NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "64", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_Yck6FMO1Kk2EJsKrzuI9Pg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R65": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails", "longName": "41101 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "65", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:NumberOfOperatingSegments", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": null }, "R66": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "longName": "41102 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "66", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_srt_MajorCustomersAxis_pdfs_CustomerAMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_IaBAnd35N0W6im0MwGLc9A", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_srt_MajorCustomersAxis_pdfs_CustomerAMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_IaBAnd35N0W6im0MwGLc9A", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R67": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "longName": "41103 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "67", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_GeographicConcentrationRiskMember_MrasB_fDkESN0UTwi6JWiQ", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R68": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "longName": "41104 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "68", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:NoncurrentAssets", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:NoncurrentAssets", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R69": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails", "longName": "41201 - Disclosure - FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details)", "shortName": "FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "69", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:OtherAssetsFairValueDisclosure", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:OtherAssetsFairValueDisclosure", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R70": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsOtherDetails", "longName": "41202 - Disclosure - FAIR VALUE MEASUREMENTS - Other (Details)", "shortName": "FAIR VALUE MEASUREMENTS - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "70", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "pdfs:InterestIncomeFromInvestments", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:CashAndCashEquivalentsPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": null }, "R71": { "role": "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "longName": "41301 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "shortName": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "71", "firstAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_srt_AffiliatedEntityMember_ODNdgrGCqk6QJtrq_Cjc1Q", "name": "us-gaap:OtherReceivables", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_srt_AffiliatedEntityMember_ODNdgrGCqk6QJtrq_Cjc1Q", "name": "us-gaap:OtherReceivables", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R72": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails", "longName": "41401 - Disclosure - BUSINESS COMBINATION - Narrative (Details)", "shortName": "BUSINESS COMBINATION - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "72", "firstAnchor": { "contextRef": "As_Of_7_5_2023_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_DQM-bkihuke6om2ItTwSOA", "name": "us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_7_5_2023_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_DQM-bkihuke6om2ItTwSOA", "name": "us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired", "unitRef": "Unit_Standard_pure_Ng3vqUcKRU-YJemM-K-8NA", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } }, "R73": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "longName": "41402 - Disclosure - BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details)", "shortName": "BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "73", "firstAnchor": { "contextRef": "As_Of_12_31_2023_JEfXD8V0bkGnUSNhitgECQ", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_7_5_2023_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_DQM-bkihuke6om2ItTwSOA", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "unique": true } }, "R74": { "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure", "longName": "995410 - Disclosure - Pay vs Performance Disclosure", "shortName": "Pay vs Performance Disclosure", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Uncategorized", "order": "74", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_QZ8-pcnz90qRmoxze8WX3A", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true }, "uniqueAnchor": null }, "R75": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Cover", "order": "75", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_12_31_2023_GlP_TbmiJEytKeWSqy51Yg", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20231231x10k.htm", "first": true, "unique": true } } }, "tag": { "us-gaap_AcceleratedShareRepurchasesFinalPricePaidPerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AcceleratedShareRepurchasesFinalPricePaidPerShare", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Accelerated Share Repurchases, Final Price Paid Per Share", "terseLabel": "Repurchase of common stock, weighted-average price per share", "documentation": "Final price paid per share for the purchase of the targeted number of shares, determined by an average market price over a fixed period of time." } } }, "auth_ref": [ "r136" ] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "label": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" } } }, "auth_ref": [] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts payable", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r21", "r720" ] }, "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]", "terseLabel": "Schedule of Accounts Receivable Reserves", "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r846" ] }, "us-gaap_AccountsReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable [Member]", "verboseLabel": "Receivables Benchmark", "documentation": "Due from customers or clients for goods or services that have been delivered or sold." } } }, "auth_ref": [ "r674" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Net, Current", "terseLabel": "Accounts receivable, net of allowance for credit losses", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current." } } }, "auth_ref": [ "r270", "r271" ] }, "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Accretion Amortization Of Discounts And Premiums Investments", "negatedLabel": "Net accretion of discounts on short-term investments", "documentation": "The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r123" ] }, "us-gaap_AccruedIncomeTaxesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedIncomeTaxesNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Long-term income taxes payable", "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent." } } }, "auth_ref": [ "r99", "r153" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued and other current liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r23" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "negatedLabel": "Less: accumulated depreciation and amortization", "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services." } } }, "auth_ref": [ "r62", "r183", "r565" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated other comprehensive loss", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r29", "r30", "r109", "r189", "r561", "r584", "r585" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income [Member]", "verboseLabel": "Accumulated Other Comprehensive Loss", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r5", "r15", "r30", "r493", "r496", "r523", "r580", "r581", "r823", "r824", "r825", "r835", "r836", "r837" ] }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Acquired Finite Lived Intangible Assets Weighted Average Useful Life", "verboseLabel": "Amortization Period (Years)", "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r127" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Additional 402(v) Disclosure [Text Block]", "terseLabel": "Additional 402(v) Disclosure" } } }, "auth_ref": [ "r773" ] }, "pdfs_AdditionalCommonStockCapitalSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "AdditionalCommonStockCapitalSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of additional common stock capital shares reserved for future issuance.", "label": "Additional Common Stock Capital Shares Reserved For Future Issuance", "terseLabel": "Number of additional common stock capital shares reserved for future issuance" } } }, "auth_ref": [] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapital", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Additional paid-in-capital", "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock." } } }, "auth_ref": [ "r104", "r720", "r925" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Additional Paid In Capital [Member]", "verboseLabel": "Additional Paid-in Capital", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r437", "r438", "r439", "r597", "r835", "r836", "r837", "r903", "r926" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation Amount", "terseLabel": "Adjustment to Compensation, Amount" } } }, "auth_ref": [ "r779" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation [Axis]", "terseLabel": "Adjustment to Compensation:" } } }, "auth_ref": [ "r779" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]", "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote" } } }, "auth_ref": [ "r779" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment To PEO Compensation, Footnote [Text Block]", "terseLabel": "Adjustment To PEO Compensation, Footnote" } } }, "auth_ref": [ "r779" ] }, "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income (loss) to net cash provided by (used in) operating activities:" } } }, "auth_ref": [] }, "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation", "negatedLabel": "Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock", "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Adjustments To Additional Paid In Capital Share Based Compensation, Stock Options, Requisite Service Period Recognition", "verboseLabel": "Stock-based compensation expense", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement." } } }, "auth_ref": [] }, "pdfs_AdjustmentsToGoodwillForForeignCurrencyTranslation": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "AdjustmentsToGoodwillForForeignCurrencyTranslation", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from adjustments to carrying amount of Goodwill for foreign currency translations.", "label": "Adjustments to Goodwill for foreign currency translation", "terseLabel": "Foreign currency translation adjustment" } } }, "auth_ref": [] }, "pdfs_AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents advances for purchase of fixed assets transferred from prepaid assets to property and equipment.", "label": "Advances For Purchase Of Fixed Assets Transferred From Prepaid Assets To Property And Equipment", "verboseLabel": "Advances for purchase of fixed assets transferred from prepaid assets to property and equipment" } } }, "auth_ref": [] }, "pdfs_AdvantestAmericaIncMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "AdvantestAmericaIncMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Advantest America, Inc.", "label": "Advantest America, Inc. [Member]", "verboseLabel": "Advantest America, Inc." } } }, "auth_ref": [] }, "pdfs_AdvantestAnalyticsRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "AdvantestAnalyticsRevenue", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized from the strategic partnership with Advantest.", "label": "Advantest Analytics Revenue", "terseLabel": "Related party revenue" } } }, "auth_ref": [] }, "srt_AffiliatedEntityMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "AffiliatedEntityMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Affiliated Entity [Member]", "terseLabel": "Advantest America, Inc." } } }, "auth_ref": [ "r632", "r685", "r726", "r869", "r908", "r909", "r910" ] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Amount", "terseLabel": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r743", "r755", "r765", "r791" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]", "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined" } } }, "auth_ref": [ "r746", "r758", "r768", "r794" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Adjustments to Compensation [Member]", "terseLabel": "All Adjustments to Compensation" } } }, "auth_ref": [ "r779" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Executive Categories [Member]", "terseLabel": "All Executive Categories" } } }, "auth_ref": [ "r786" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Individuals [Member]", "terseLabel": "All Individuals" } } }, "auth_ref": [ "r750", "r759", "r769", "r786", "r795", "r799", "r807" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "All Trading Arrangements [Member]", "terseLabel": "All Trading Arrangements" } } }, "auth_ref": [ "r805" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Stock-based compensation expenses", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r434", "r444" ] }, "us-gaap_AllowanceForCreditLossMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForCreditLossMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "lang": { "en-us": { "role": { "label": "SEC Schedule, 12-09, Allowance, Credit Loss [Member]", "verboseLabel": "Allowance for Credit Loss", "documentation": "Allowance for credit loss from right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r830", "r831", "r832", "r833", "r834" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AmendmentFlag", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AmortizationOfAcquisitionCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AmortizationOfAcquisitionCosts", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Amortization of Acquisition Costs", "verboseLabel": "Amortization of acquired intangible assets", "documentation": "The amount of expense recognized in the current period that reflects the allocation of capitalized costs associated with acquisition of business. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r9", "r55" ] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Amortization Of Intangible Assets", "terseLabel": "Amortization of acquired intangible assets", "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r9", "r55", "r59" ] }, "pdfs_AnalyticsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "AnalyticsMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to analytics.", "label": "Analytics [Member]", "verboseLabel": "Analytics" } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount", "terseLabel": "Antidilutive securities excluded from EPS", "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented." } } }, "auth_ref": [ "r238" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities [Axis]", "documentation": "Information by type of antidilutive security." } } }, "auth_ref": [ "r42" ] }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities, Name [Domain]", "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented." } } }, "auth_ref": [ "r42" ] }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ArrangementsAndNonarrangementTransactionsMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]", "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r484" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_Assets", "totalLabel": "Total assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r152", "r187", "r207", "r247", "r256", "r261", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r486", "r490", "r503", "r557", "r625", "r720", "r733", "r863", "r864", "r911" ] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current", "totalLabel": "Total current assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r179", "r190", "r207", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r486", "r490", "r503", "r720", "r863", "r864", "r911" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Current assets:" } } }, "auth_ref": [] }, "dei_AuditorFirmId": { "xbrltype": "nonemptySequenceNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AuditorFirmId", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Auditor Firm ID", "documentation": "PCAOB issued Audit Firm Identifier" } } }, "auth_ref": [ "r737", "r738", "r751" ] }, "dei_AuditorLocation": { "xbrltype": "internationalNameItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AuditorLocation", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Auditor Location" } } }, "auth_ref": [ "r737", "r738", "r751" ] }, "dei_AuditorName": { "xbrltype": "internationalNameItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AuditorName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Auditor Name" } } }, "auth_ref": [ "r737", "r738", "r751" ] }, "us-gaap_AvailableForSaleSecuritiesDebtSecurities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AvailableForSaleSecuritiesDebtSecurities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "us-gaap_OtherAssetsFairValueDisclosure", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_AvailableForSaleSecuritiesDebtSecurities", "verboseLabel": "Short-term investments (available-for-sale debt securities)", "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r275", "r279", "r552", "r840" ] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Exercise Price", "terseLabel": "Exercise Price" } } }, "auth_ref": [ "r802" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Grant Date Fair Value", "terseLabel": "Fair Value as of Grant Date" } } }, "auth_ref": [ "r803" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]", "terseLabel": "Award Timing Disclosures" } } }, "auth_ref": [ "r798" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing, How MNPI Considered [Text Block]", "terseLabel": "Award Timing, How MNPI Considered" } } }, "auth_ref": [ "r798" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Method [Text Block]", "terseLabel": "Award Timing Method" } } }, "auth_ref": [ "r798" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Considered [Flag]", "terseLabel": "Award Timing MNPI Considered" } } }, "auth_ref": [ "r798" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Disclosure [Text Block]", "terseLabel": "Award Timing MNPI Disclosure" } } }, "auth_ref": [ "r798" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Predetermined [Flag]", "terseLabel": "Award Timing Predetermined" } } }, "auth_ref": [ "r798" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AwardTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "terseLabel": "Award Type", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r405", "r406", "r407", "r409", "r410", "r411", "r412", "r413", "r414", "r415", "r416", "r417", "r418", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r429", "r430", "r431", "r432", "r433" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Underlying Securities Amount", "terseLabel": "Underlying Securities" } } }, "auth_ref": [ "r801" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r800" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table]", "terseLabel": "Awards Close in Time to MNPI Disclosures" } } }, "auth_ref": [ "r799" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]", "terseLabel": "Awards Close in Time to MNPI Disclosures, Table" } } }, "auth_ref": [ "r799" ] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Axis]", "documentation": "Information by location on balance sheet (statement of financial position)." } } }, "auth_ref": [] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Domain]", "documentation": "Location in the balance sheet (statement of financial position)." } } }, "auth_ref": [ "r88", "r89" ] }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BasisOfAccountingPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Presentation, Policy", "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)." } } }, "auth_ref": [] }, "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Presentation and Significant Accounting Policies [Text Block]", "terseLabel": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r124" ] }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionAcquireeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition, Acquiree [Domain]", "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree." } } }, "auth_ref": [ "r481", "r707", "r710" ] }, "us-gaap_BusinessAcquisitionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [Axis]", "documentation": "Information by business combination or series of individually immaterial business combinations." } } }, "auth_ref": [ "r77", "r79", "r481", "r707", "r710" ] }, "us-gaap_BusinessAcquisitionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r481" ] }, "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition, Percentage of Voting Interests Acquired", "terseLabel": "Equity interest acquired in business combination", "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination." } } }, "auth_ref": [ "r78" ] }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombination" ], "lang": { "en-us": { "role": { "label": "Business Combination Disclosure [Text Block]", "terseLabel": "BUSINESS COMBINATION", "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable)." } } }, "auth_ref": [ "r148", "r482" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets", "totalLabel": "Total assets acquired", "documentation": "Amount of assets acquired at the acquisition date." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets [Abstract]", "terseLabel": "Assets" } } }, "auth_ref": [] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "verboseLabel": "Cash assumed", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other", "terseLabel": "Fair value of tangible assets (including cash of $265)", "documentation": "Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable", "terseLabel": "Accounts payable and accrued expenses", "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "terseLabel": "Deferred tax liabilities", "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "terseLabel": "Fair value of intangible assets", "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date." } } }, "auth_ref": [ "r80", "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "totalLabel": "Total liabilities assumed", "documentation": "Amount of liabilities assumed at the acquisition date." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Liabilities [Abstract]", "terseLabel": "Liabilities" } } }, "auth_ref": [] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "totalLabel": "Total purchase price allocation", "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed." } } }, "auth_ref": [ "r81" ] }, "us-gaap_BusinessCombinationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationsAbstract", "lang": { "en-us": { "role": { "label": "BUSINESS COMBINATION" } } }, "auth_ref": [] }, "us-gaap_BusinessCombinationsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationsPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Business Combinations, Policy", "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy." } } }, "auth_ref": [ "r76" ] }, "country_CN": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "CN", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Country_CN", "verboseLabel": "China" } } }, "auth_ref": [] }, "us-gaap_CaliforniaFranchiseTaxBoardMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CaliforniaFranchiseTaxBoardMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "California Franchise Tax Board [Member]", "terseLabel": "California Franchise Tax Board", "documentation": "Designated tax department of the government of the state of California." } } }, "auth_ref": [] }, "pdfs_CaliforniaRDTaxCreditsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CaliforniaRDTaxCreditsMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents California R&D tax credits.", "label": "California R&D Tax Credits [Member]", "terseLabel": "California R&D Tax Credits" } } }, "auth_ref": [] }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalExpendituresIncurredButNotYetPaid", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Capital Expenditures Incurred But Not Yet Paid", "verboseLabel": "Property and equipment received and accrued in accounts payable and accrued and other liabilities", "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred." } } }, "auth_ref": [ "r39", "r40", "r41" ] }, "pdfs_CapitalizedComputerSoftwareUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CapitalizedComputerSoftwareUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "The useful life of capitalized internally developed computer software.", "label": "pdfs_CapitalizedComputerSoftwareUsefulLife", "terseLabel": "Capitalized computer software, useful life" } } }, "auth_ref": [] }, "us-gaap_CapitalizedContractCostAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalizedContractCostAmortization", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Capitalized Contract Cost Amortization", "verboseLabel": "Amortization of costs capitalized to obtain revenue contracts", "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r281" ] }, "us-gaap_CapitalizedContractCostImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalizedContractCostImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CapitalizedContractCostImpairmentLoss", "terseLabel": "Capitalized contract cost, impairment loss", "documentation": "Amount of impairment loss for asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r281" ] }, "us-gaap_CapitalizedContractCostNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalizedContractCostNet", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CapitalizedContractCostNet", "terseLabel": "Capitalized contract cost, net", "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r280" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Cash And Cash Equivalents, At Carrying Value", "terseLabel": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r36", "r181", "r690" ] }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "us-gaap_OtherAssetsFairValueDisclosure", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashAndCashEquivalentsFairValueDisclosure", "verboseLabel": "Cash equivalents", "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [] }, "us-gaap_CashAndCashEquivalentsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, and Short-term Investments [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash and Cash Equivalents, and Short-term Investments, Policy", "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value." } } }, "auth_ref": [ "r37" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations", "periodEndLabel": "Cash and cash equivalents at end of period", "periodStartLabel": "Cash and cash equivalents at beginning of period", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r36", "r121", "r205" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect", "totalLabel": "Net change in cash and cash equivalents", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r4", "r121" ] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Changed Peer Group, Footnote [Text Block]", "terseLabel": "Changed Peer Group, Footnote" } } }, "auth_ref": [ "r777" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CityAreaCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Amount", "terseLabel": "Company Selected Measure Amount" } } }, "auth_ref": [ "r778" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Name", "terseLabel": "Company Selected Measure Name" } } }, "auth_ref": [ "r778" ] }, "us-gaap_CollaborativeArrangementMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CollaborativeArrangementMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement [Member]", "terseLabel": "Securities Purchase Agreement", "documentation": "Contractual arrangement that involves two or more parties that both: (i) actively participate in a joint operating activity and (ii) are exposed to significant risks and rewards that depend on the commercial success of the joint operating activity." } } }, "auth_ref": [ "r484" ] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingencies", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Commitments and contingencies", "terseLabel": "Commitments and contingencies (Note 6)", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r26", "r95", "r558", "r611" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "COMMITMENTS AND CONTINGENCIES" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingencies" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "COMMITMENTS AND CONTINGENCIES", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r133", "r292", "r293", "r675", "r860" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockMember", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Common Stock [Member]", "verboseLabel": "Common Stock", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r723", "r724", "r725", "r727", "r728", "r729", "r730", "r835", "r836", "r903", "r924", "r926" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r103" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares authorized (in shares)", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r103", "r612" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares issued (in shares)", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r103" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares outstanding (in shares)", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r16", "r103", "r612", "r631", "r926", "r927" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 48,613 and 47,414, respectively; shares outstanding 37,431 and 37,411, respectively", "terseLabel": "Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 49,749 and 48,613, respectively; shares outstanding 38,289 and 37,431, respectively", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r103", "r560", "r720" ] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Company Selected Measure" } } }, "auth_ref": [ "r783" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Net Income [Text Block]", "terseLabel": "Compensation Actually Paid vs. Net Income" } } }, "auth_ref": [ "r782" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Other Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Other Measure" } } }, "auth_ref": [ "r784" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]", "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return" } } }, "auth_ref": [ "r781" ] }, "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CompensationAndEmployeeBenefitPlansTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlans" ], "lang": { "en-us": { "role": { "label": "Compensation and Employee Benefit Plans [Text Block]", "terseLabel": "EMPLOYEE BENEFIT PLANS", "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans." } } }, "auth_ref": [ "r137", "r138", "r139", "r140" ] }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CompensationAndRetirementDisclosureAbstract", "lang": { "en-us": { "role": { "label": "EMPLOYEE BENEFIT PLANS" } } }, "auth_ref": [] }, "us-gaap_ComponentsOfDeferredTaxAssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComponentsOfDeferredTaxAssetsAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Components of Deferred Tax Assets [Abstract]", "terseLabel": "Deferred tax assets:" } } }, "auth_ref": [] }, "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Components of Deferred Tax Assets and Liabilities [Abstract]", "terseLabel": "Net deferred tax assets (liabilities):" } } }, "auth_ref": [] }, "us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComponentsOfDeferredTaxLiabilitiesAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Components of Deferred Tax Liabilities [Abstract]", "terseLabel": "Deferred tax liabilities:" } } }, "auth_ref": [] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income, Net Of Tax", "terseLabel": "Comprehensive income (loss)", "totalLabel": "Comprehensive income (loss)", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r31", "r193", "r195", "r200", "r553", "r570" ] }, "us-gaap_ComputerEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComputerEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Computer Equipment [Member]", "verboseLabel": "Computer Equipment", "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems." } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Domain]", "documentation": "The denominator in a calculation of a disclosed concentration risk percentage." } } }, "auth_ref": [ "r44", "r47", "r93", "r94", "r269", "r674" ] }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Axis]", "documentation": "Information by benchmark of concentration risk." } } }, "auth_ref": [ "r44", "r47", "r93", "r94", "r269", "r586", "r674" ] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Axis]", "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender." } } }, "auth_ref": [ "r44", "r47", "r93", "r94", "r269", "r674", "r815" ] }, "us-gaap_ConcentrationRiskCreditRisk": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskCreditRisk", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Concentration of Credit Risk, Policy", "documentation": "Disclosure of accounting policy for credit risk." } } }, "auth_ref": [ "r96", "r166" ] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Percentage 1", "terseLabel": "Significant customer concentration (percentage)", "verboseLabel": "Percentage of Revenues", "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division." } } }, "auth_ref": [ "r44", "r47", "r93", "r94", "r269" ] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Domain]", "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration." } } }, "auth_ref": [ "r44", "r47", "r93", "r94", "r269", "r674" ] }, "us-gaap_ConstructionInProgressMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConstructionInProgressMember", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Construction in Progress [Member]", "verboseLabel": "Property and Equipment in Progress", "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service." } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerAssetNetCurrent", "terseLabel": "Revenue, net contract assets", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current." } } }, "auth_ref": [ "r323", "r325", "r337" ] }, "pdfs_ContractWithCustomerAssetUnbilledReceivablesNotBillableAmountExpectedToBeCollectedAfterNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ContractWithCustomerAssetUnbilledReceivablesNotBillableAmountExpectedToBeCollectedAfterNextTwelveMonths", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of right to consideration in exchange for good or service transferred to customer under long-term contracts that have not been billed and were not billable that are expected to be collected after the next fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "pdfs_ContractWithCustomerAssetUnbilledReceivablesNotBillableAmountExpectedToBeCollectedAfterNextTwelveMonths", "terseLabel": "Unbilled receivables not expected to be collected" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiability", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiability", "verboseLabel": "Related party deferred revenue", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r323", "r324", "r337" ] }, "pdfs_ContractWithCustomerLiabilityBillingsInExcessOfRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ContractWithCustomerLiabilityBillingsInExcessOfRevenueRecognized", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.", "label": "Billings in excess of recognized revenues" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityNoncurrent", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiabilityNoncurrent", "terseLabel": "Noncurrent deferred revenue", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent." } } }, "auth_ref": [ "r323", "r324", "r337" ] }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityRevenueRecognized", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiabilityRevenueRecognized", "terseLabel": "Recognized revenue from the beginning balance", "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due." } } }, "auth_ref": [ "r338" ] }, "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "terseLabel": "Revenue performance obligations satisfied in previous period", "documentation": "Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price." } } }, "auth_ref": [ "r332" ] }, "us-gaap_CostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfRevenue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Cost Of Revenue", "terseLabel": "Costs of revenues", "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period." } } }, "auth_ref": [ "r115", "r207", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r503", "r863" ] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfSalesMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Cost of Sales [Member]", "verboseLabel": "Costs of Revenues", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "us-gaap_CostOfSalesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfSalesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Cost of Revenues, Policy", "terseLabel": "Costs to obtain or fulfill a contract", "documentation": "Disclosure of accounting policy for cost of product sold and service rendered." } } }, "auth_ref": [ "r819" ] }, "us-gaap_CostsAndExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostsAndExpensesAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Costs and Expenses:" } } }, "auth_ref": [] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Document and Entity Information", "documentation": "Cover page." } } }, "auth_ref": [] }, "us-gaap_CurrentFederalTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CurrentFederalTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CurrentFederalTaxExpenseBenefit", "terseLabel": "Current", "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction." } } }, "auth_ref": [ "r818", "r829", "r902" ] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_CurrentForeignTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CurrentForeignTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CurrentForeignTaxExpenseBenefit", "terseLabel": "Current", "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r818", "r829" ] }, "pdfs_CustomerAMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CustomerAMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer A.", "label": "Customer A [Member]", "terseLabel": "Customer A" } } }, "auth_ref": [] }, "pdfs_CustomerBMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CustomerBMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer B.", "label": "Customer B [Member]", "terseLabel": "Customer B" } } }, "auth_ref": [] }, "pdfs_CustomerCMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CustomerCMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer C.", "label": "Customer C [Member]", "terseLabel": "Customer C" } } }, "auth_ref": [] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Customer Concentration Risk [Member]", "verboseLabel": "Customer Concentration Risk", "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer." } } }, "auth_ref": [ "r45", "r269" ] }, "pdfs_CustomerDMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CustomerDMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer D.", "label": "Customer D [Member]", "terseLabel": "Customer D" } } }, "auth_ref": [] }, "pdfs_CustomerGMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "CustomerGMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer G.", "label": "Customer G [Member]", "terseLabel": "Customer G" } } }, "auth_ref": [] }, "us-gaap_CustomerRelationshipsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerRelationshipsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Customer Relationships [Member]", "verboseLabel": "Customer Relationships", "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships." } } }, "auth_ref": [ "r84" ] }, "pdfs_DFITestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "DFITestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to DFI test equipment.", "label": "DFI Test Equipment [Member]", "terseLabel": "DFI System Assets", "verboseLabel": "DFI Test Equipment" } } }, "auth_ref": [] }, "us-gaap_DebtSecuritiesAvailableForSaleAndHeldToMaturityAllowanceForCreditLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtSecuritiesAvailableForSaleAndHeldToMaturityAllowanceForCreditLoss", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "label": "Debt Securities, Available-for-Sale and Held-to-Maturity, Allowance for Credit Loss", "terseLabel": "Allowance for credit losses on investments", "documentation": "Amount of allowance for credit loss on investment in debt security measured at amortized cost (held-to-maturity) and investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r841", "r844" ] }, "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtSecuritiesAvailableForSaleUnrealizedGainLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Debt Securities, Available-for-Sale, Unrealized Gain (Loss)", "terseLabel": "Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax", "documentation": "Amount of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r842", "r843" ] }, "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredFederalIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredFederalIncomeTaxExpenseBenefit", "terseLabel": "Deferred", "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction." } } }, "auth_ref": [ "r829", "r901", "r902" ] }, "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredForeignIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredForeignIncomeTaxExpenseBenefit", "terseLabel": "Deferred", "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r147", "r829", "r901" ] }, "us-gaap_DeferredIncomeTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredIncomeTaxAssetsNet", "terseLabel": "Deferred tax assets, net", "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting." } } }, "auth_ref": [ "r451", "r452" ] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 8.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Expense Benefit", "verboseLabel": "Deferred taxes", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r9", "r147", "r174", "r474", "r475", "r829" ] }, "us-gaap_DeferredIncomeTaxLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxLiabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredIncomeTaxLiabilities", "negatedTotalLabel": "Deferred tax liabilities", "documentation": "Amount of deferred tax liability attributable to taxable temporary differences." } } }, "auth_ref": [ "r100", "r101", "r154", "r464" ] }, "pdfs_DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing both Deferred Revenue and Billings in Excess of Recognized Revenue accounts.", "label": "Deferred Revenue and Billings in Excess of Recognized Revenue [Member]", "verboseLabel": "Deferred Revenue and Billings in Excess of Recognized Revenue" } } }, "auth_ref": [] }, "us-gaap_DeferredRevenueCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredRevenueCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, Current", "terseLabel": "Deferred revenues - current portion", "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r820" ] }, "us-gaap_DeferredTaxAssetDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetDomain", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Asset [Domain]", "documentation": "Identification of the deferred tax asset for which a valuation reserve exists." } } }, "auth_ref": [ "r73" ] }, "us-gaap_DeferredTaxAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsGross", "totalLabel": "Total deferred tax assets", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards." } } }, "auth_ref": [ "r465" ] }, "us-gaap_DeferredTaxAssetsLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsLiabilitiesNet", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsLiabilitiesNet", "terseLabel": "Net deferred tax asset", "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting." } } }, "auth_ref": [ "r899" ] }, "us-gaap_DeferredTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsNet", "totalLabel": "Deferred tax assets, net of valuation allowance", "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards." } } }, "auth_ref": [ "r899" ] }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsOperatingLossCarryforwards", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards", "terseLabel": "Net operating loss carry forward", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsTaxCreditCarryforwardsForeign", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign", "terseLabel": "Foreign tax credit carry forward", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign tax credit carryforwards." } } }, "auth_ref": [ "r74", "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsGeneralBusiness": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsTaxCreditCarryforwardsGeneralBusiness", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Assets, Tax Credit Carryforwards, General Business", "terseLabel": "Capitalized research and experimental expenses", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible general business tax credit carryforwards." } } }, "auth_ref": [ "r74", "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch", "terseLabel": "Research and development and other credit carry forward", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards." } } }, "auth_ref": [ "r74", "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "terseLabel": "Stock-based compensation", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsDeferredRent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsDeferredRent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Deferred Rent", "terseLabel": "Leases", "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred rent." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves", "terseLabel": "Accruals deductible in different periods", "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from reserves, classified as other." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsValuationAllowance", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsValuationAllowance", "negatedTerseLabel": "Less: valuation allowance", "terseLabel": "Deferred Tax Assets, Valuation Allowance, Total", "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized." } } }, "auth_ref": [ "r466" ] }, "us-gaap_DeferredTaxLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxLiabilities", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Liabilities, Net", "negatedLabel": "Net deferred tax liability", "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting." } } }, "auth_ref": [ "r72", "r899" ] }, "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Liabilities, Intangible Assets", "negatedLabel": "Intangible assets", "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DeferredTaxLiabilitiesLeasingArrangements": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxLiabilitiesLeasingArrangements", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Liabilities, Leasing Arrangements", "negatedLabel": "Operating lease right-of-use assets", "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from leasing arrangements." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails": { "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment", "negatedTerseLabel": "Property and equipment, net", "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment." } } }, "auth_ref": [ "r75", "r900" ] }, "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanEmployerDiscretionaryContributionAmount", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount", "terseLabel": "Defined Contribution Plan, Employer Discretionary Contribution Amount", "documentation": "Amount of discretionary contributions made by an employer to a defined contribution plan." } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanEmployerMatchingContributionPercent", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay", "terseLabel": "Defined Contribution Plan, Percentage of Employee Gross Pay Match", "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan." } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Match", "documentation": "Percentage employer matches of the employee's percentage contribution matched." } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "terseLabel": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent", "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan." } } }, "auth_ref": [] }, "us-gaap_DepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationAndAmortization", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DepreciationAndAmortization", "terseLabel": "Depreciation and amortization", "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production." } } }, "auth_ref": [ "r9", "r61" ] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization", "verboseLabel": "Depreciation and amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r9", "r251" ] }, "us-gaap_DerivativesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Derivative Financial Instruments, Policy", "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities." } } }, "auth_ref": [ "r17", "r85", "r86", "r87", "r90", "r210" ] }, "pdfs_DescriptionOfBusinessPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "DescriptionOfBusinessPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of the Company's description of primary business operations.", "label": "Description of Business [Policy Text Block]", "terseLabel": "Description of Business, Policy" } } }, "auth_ref": [] }, "us-gaap_DevelopedTechnologyRightsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DevelopedTechnologyRightsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Developed Technology Rights [Member]", "verboseLabel": "Developed Technology", "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property." } } }, "auth_ref": [ "r149" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Disaggregation of Revenue", "terseLabel": "Schedule of Disaggregated Revenues", "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r866" ] }, "dei_DocumentAnnualReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentAnnualReport", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Annual Report", "documentation": "Boolean flag that is true only for a form used as an annual report." } } }, "auth_ref": [ "r737", "r738", "r751" ] }, "dei_DocumentFinStmtErrorCorrectionFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFinStmtErrorCorrectionFlag", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Financial Statement Error Correction [Flag]", "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction." } } }, "auth_ref": [ "r737", "r738", "r751", "r787" ] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentTransitionReport", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r772" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentType", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "us-gaap_DomesticCountryMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DomesticCountryMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Domestic Country [Member]", "terseLabel": "U.S.", "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile." } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareAbstract", "lang": { "en-us": { "role": { "label": "NET INCOME (LOSS) PER SHARE" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic", "terseLabel": "Basic", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r201", "r222", "r223", "r224", "r225", "r226", "r231", "r233", "r235", "r236", "r237", "r241", "r500", "r501", "r554", "r571", "r691" ] }, "us-gaap_EarningsPerShareBasicAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasicAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic [Abstract]", "terseLabel": "Net income (loss) per share:" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r201", "r222", "r223", "r224", "r225", "r226", "r233", "r235", "r236", "r237", "r241", "r500", "r501", "r554", "r571", "r691" ] }, "us-gaap_EarningsPerSharePolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerSharePolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Per Share, Policy", "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements." } } }, "auth_ref": [ "r42", "r43" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShare" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "terseLabel": "NET INCOME (LOSS) PER SHARE", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r230", "r238", "r239", "r240" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "verboseLabel": "Effect of exchange rate changes on cash and cash equivalents", "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r905" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "terseLabel": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)." } } }, "auth_ref": [ "r209", "r454", "r477" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationFdiiAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectiveIncomeTaxRateReconciliationFdiiAmount", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, FDII, Amount", "negatedLabel": "Foreign-derived intangible income (FDII) deduction", "documentation": "Amount of reported income tax benefit from difference to expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to foreign-derived intangible income (FDII)." } } }, "auth_ref": [ "r896" ] }, "pdfs_EffectiveIncomeTaxRateReconciliationUnrealizedTaxBenefitReserveChanges": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "EffectiveIncomeTaxRateReconciliationUnrealizedTaxBenefitReserveChanges", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the unrealized tax benefit reserve changes.", "label": "Effective Income Tax Rate Reconciliation Unrealized Tax Benefit Reserve Changes", "terseLabel": "Unrealized tax benefit reserve changes" } } }, "auth_ref": [] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued compensation and related benefits", "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r23" ] }, "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Stock-based compensation capitalized as software development costs", "terseLabel": "Share-based Payment Arrangement, Amount Capitalized", "documentation": "Amount of cost capitalized for award under share-based payment arrangement." } } }, "auth_ref": [ "r435" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "terseLabel": "Unrecognized Compensation", "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement." } } }, "auth_ref": [ "r436" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Unrecognized Compensation Recognition Period", "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r436" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOptionMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "verboseLabel": "Outstanding Options", "label": "Employee Stock Option [Member]", "terseLabel": "Employee Stock Option", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [] }, "us-gaap_EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOwnershipPlanESOPDisclosuresByPlanAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP) Name [Axis]", "documentation": "Information by name of employee stock ownership plan." } } }, "auth_ref": [ "r69" ] }, "us-gaap_EmployeeStockOwnershipPlanESOPPlanDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOwnershipPlanESOPPlanDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP), Plan [Domain]", "documentation": "Entities identify multiple employee stock ownership plans by unique name." } } }, "auth_ref": [ "r70" ] }, "us-gaap_EmployeeStockOwnershipPlanESOPSharesInESOP": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOwnershipPlanESOPSharesInESOP", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP), Shares in ESOP", "terseLabel": "Shares Available for Future Issuance", "documentation": "Sum of the allocated, committed-to-be-released and suspense shares of the entity held by the plan." } } }, "auth_ref": [ "r71" ] }, "us-gaap_EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP), Weighted Average Purchase Price of Shares Purchased", "terseLabel": "Weighted Average Purchase Price", "documentation": "Weighted average purchase price of capital shares purchased through an employee stock ownership plan." } } }, "auth_ref": [] }, "pdfs_EmployeeStockPlansMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "EmployeeStockPlansMember", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Employee Stock Plans [Member]", "verboseLabel": "Employee Stock Purchase Plan" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPurchasePlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "EmployeeStockPurchasePlanMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "documentation": "Enables employees to purchase their company's common stock, often at a discount from the market price.", "label": "Employee Stock Purchase Plans [Member]", "terseLabel": "Employee Benefit Plans" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPurchasePlanTerm": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "EmployeeStockPurchasePlanTerm", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Duration of the Company's Employee Stock Purchase Plan, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Employee Stock Purchase Plan Term", "terseLabel": "ESPP, Purchase Plan Term" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPurchasePlansUnrecognizedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "EmployeeStockPurchasePlansUnrecognizedCompensation", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under employee stock purchase plan agreements.", "label": "Employee Stock Purchase Plans Unrecognized Compensation", "terseLabel": "ESPP, Unrecognized Compensation" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPurchasePlansUnrecognizedCompensationRecognitionPeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "EmployeeStockPurchasePlansUnrecognizedCompensationRecognitionPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under employee stock purchase plan agreements, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Employee Stock Purchase Plans Unrecognized Compensation Recognition Period", "terseLabel": "ESPP, Unrecognized Compensation Recognition Period" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r735" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r735" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFileNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFilerCategory", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r735" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r812" ] }, "dei_EntityPublicFloat": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityPublicFloat", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Public Float", "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter." } } }, "auth_ref": [] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityRegistrantName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r735" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityShellCompany", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r735" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntitySmallBusiness", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r735" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r735" ] }, "dei_EntityVoluntaryFilers": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityVoluntaryFilers", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Voluntary Filers", "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act." } } }, "auth_ref": [] }, "dei_EntityWellKnownSeasonedIssuer": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityWellKnownSeasonedIssuer", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Well-known Seasoned Issuer", "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A." } } }, "auth_ref": [ "r813" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityComponentDomain", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r16", "r177", "r197", "r198", "r199", "r217", "r218", "r219", "r221", "r227", "r229", "r242", "r277", "r278", "r322", "r437", "r438", "r439", "r470", "r471", "r492", "r493", "r494", "r495", "r496", "r497", "r499", "r505", "r506", "r507", "r508", "r509", "r510", "r523", "r580", "r581", "r582", "r597", "r653" ] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Valuation Assumption Difference, Footnote [Text Block]", "terseLabel": "Equity Valuation Assumption Difference, Footnote" } } }, "auth_ref": [ "r780" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneous Compensation Analysis [Text Block]", "terseLabel": "Erroneous Compensation Analysis" } } }, "auth_ref": [ "r743", "r755", "r765", "r791" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneously Awarded Compensation Recovery [Table]", "terseLabel": "Erroneously Awarded Compensation Recovery" } } }, "auth_ref": [ "r740", "r752", "r762", "r788" ] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Executive Category [Axis]", "terseLabel": "Executive Category:" } } }, "auth_ref": [ "r786" ] }, "pdfs_ExpiredStockPlansMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ExpiredStockPlansMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans that are no longer active.", "label": "Expired Stock Plans [Member]", "terseLabel": "Expired Stock Incentive Plans" } } }, "auth_ref": [] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Fair Value, Assets Measured on Recurring Basis", "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)." } } }, "auth_ref": [ "r91", "r151" ] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Asset Class [Domain]", "documentation": "Class of asset." } } }, "auth_ref": [ "r18" ] }, "us-gaap_FairValueByAssetClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueByAssetClassAxis", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Asset Class [Axis]", "documentation": "Information by class of asset." } } }, "auth_ref": [ "r91", "r92" ] }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueByFairValueHierarchyLevelAxis", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Axis]", "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient." } } }, "auth_ref": [ "r308", "r364", "r365", "r366", "r367", "r368", "r369", "r502", "r530", "r531", "r532", "r696", "r697", "r703", "r704", "r705" ] }, "us-gaap_FairValueDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "FAIR VALUE MEASUREMENTS" } } }, "auth_ref": [] }, "us-gaap_FairValueInputsLevel1Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueInputsLevel1Member", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Inputs Level 1 [Member]", "verboseLabel": "Quoted Prices in Active Markets for Identical Assets (level 1)", "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date." } } }, "auth_ref": [ "r308", "r364", "r369", "r502", "r530", "r703", "r704", "r705" ] }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueMeasurementsFairValueHierarchyDomain", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Domain]", "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value." } } }, "auth_ref": [ "r308", "r364", "r365", "r366", "r367", "r368", "r369", "r530", "r531", "r532", "r696", "r697", "r703", "r704", "r705" ] }, "us-gaap_FinancialInstrumentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinancialInstrumentsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurements" ], "lang": { "en-us": { "role": { "label": "Financial Instruments Disclosure [Text Block]", "terseLabel": "FAIR VALUE MEASUREMENTS", "documentation": "The entire disclosure for financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Finite-lived intangible assets, amortization period (Year)", "terseLabel": "Intangible asset amortization period", "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite Lived Intangible Assets Accumulated Amortization", "negatedLabel": "Accumulated Amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r185", "r288" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "terseLabel": "2029 and thereafter", "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "terseLabel": "2024", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r129" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-lived Intangible Assets Amortization Expense", "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "terseLabel": "2028", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r129" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "terseLabel": "2027", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r129" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "terseLabel": "2026", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r129" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "terseLabel": "2025", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r129" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r286", "r287", "r288", "r289", "r537", "r538" ] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite Lived Intangible Assets, Gross", "terseLabel": "Gross Carrying Amount", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r128", "r538" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r56", "r58" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite Lived Intangible Assets, Net", "totalLabel": "Total future amortization expense", "verboseLabel": "Net Carrying Amount", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r128", "r537" ] }, "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "terseLabel": "Intangible assets, weighted-average amortization period", "documentation": "Remaining amortization period of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r537" ] }, "us-gaap_ForeignCountryMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ForeignCountryMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails" ], "lang": { "en-us": { "role": { "label": "Foreign Country [Member]", "terseLabel": "Foreign", "documentation": "Designated tax departments of governments entitled to levy and collect income taxes from the entity outside the entity's country of domicile." } } }, "auth_ref": [] }, "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Foreign Currency Translation, Policy", "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy." } } }, "auth_ref": [ "r504" ] }, "pdfs_ForeignIncomeTaxWithholding": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ForeignIncomeTaxWithholding", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails" ], "lang": { "en-us": { "role": { "documentation": "Foreign income tax withholding.", "label": "pdfs_ForeignIncomeTaxWithholding", "terseLabel": "Withholding" } } }, "auth_ref": [] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r747", "r759", "r769", "r795" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Expense of Enforcement, Amount", "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r747", "r759", "r769", "r795" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Violation of Home Country Law, Amount", "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r747", "r759", "r769", "r795" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Explanation of Impracticability [Text Block]", "terseLabel": "Forgone Recovery, Explanation of Impracticability" } } }, "auth_ref": [ "r747", "r759", "r769", "r795" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r747", "r759", "r769", "r795" ] }, "us-gaap_FurnitureAndFixturesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FurnitureAndFixturesMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Furniture And Fixtures [Member]", "verboseLabel": "Furniture, Fixtures and Equipment", "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases." } } }, "auth_ref": [] }, "us-gaap_GeographicConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GeographicConcentrationRiskMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographic Concentration Risk [Member]", "verboseLabel": "Geographic Concentration Risk", "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa)." } } }, "auth_ref": [ "r46", "r674" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0, "order": 3.0 }, "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Goodwill", "periodEndLabel": "Goodwill, ending balance", "periodStartLabel": "Goodwill, beginning balance", "terseLabel": "Goodwill", "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r184", "r283", "r551", "r695", "r720", "r848", "r855" ] }, "us-gaap_GoodwillAcquiredDuringPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAcquiredDuringPeriod", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Addition", "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination." } } }, "auth_ref": [ "r284", "r695" ] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "lang": { "en-us": { "role": { "label": "GOODWILL AND INTANGIBLE ASSETS" } } }, "auth_ref": [] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssets" ], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "GOODWILL AND INTANGIBLE ASSETS", "documentation": "The entire disclosure for goodwill and intangible assets." } } }, "auth_ref": [ "r126" ] }, "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Goodwill, Policy", "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined." } } }, "auth_ref": [ "r282", "r285", "r695" ] }, "us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsIntangibleAssetsPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Intangible Assets, Policy", "documentation": "Disclosure of accounting policy for intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined." } } }, "auth_ref": [ "r11" ] }, "us-gaap_GoodwillPurchaseAccountingAdjustments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillPurchaseAccountingAdjustments", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_GoodwillPurchaseAccountingAdjustments", "terseLabel": "Measurement period acquisition adjustment", "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r1", "r854" ] }, "us-gaap_GrantMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GrantMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Grant [Member]", "terseLabel": "Stock Grants and Awards", "documentation": "Award of money not required to be repaid." } } }, "auth_ref": [ "r867" ] }, "pdfs_HighlyLiquidInvestmentsEffectiveMaturityThreshold": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "HighlyLiquidInvestmentsEffectiveMaturityThreshold", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Effective maturity threshold, as of the date of purchase, for which the Company considers highly liquid investments to be Cash and Cash Equivalents, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Highly Liquid Investments, Effective Maturity Threshold", "terseLabel": "Cash equivalents, effective maturity threshold" } } }, "auth_ref": [] }, "dei_IcfrAuditorAttestationFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "IcfrAuditorAttestationFlag", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "ICFR Auditor Attestation Flag" } } }, "auth_ref": [ "r737", "r738", "r751" ] }, "us-gaap_ImpairmentOfIntangibleAssetsFinitelived": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ImpairmentOfIntangibleAssetsFinitelived", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ImpairmentOfIntangibleAssetsFinitelived", "terseLabel": "Impairment charged against intangible assets", "documentation": "The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of a finite-lived intangible asset to fair value." } } }, "auth_ref": [ "r827", "r858" ] }, "us-gaap_ImpairmentOfLongLivedAssetsHeldForUse": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ImpairmentOfLongLivedAssetsHeldForUse", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 6.0 }, "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Impairment, Long-Lived Asset, Held-for-Use", "terseLabel": "Write-down in value of property and equipment", "documentation": "The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale)." } } }, "auth_ref": [ "r9", "r60", "r132" ] }, "pdfs_IncentivePlanYear2011Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "IncentivePlanYear2011Member", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Incentive Plan Year 2011 [Member]", "terseLabel": "2011 Stock Incentive Plan" } } }, "auth_ref": [] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "terseLabel": "Income (Loss) from Continuing Operations before Income Taxes, Domestic", "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations." } } }, "auth_ref": [ "r208", "r476" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Income (Loss) From Continuing Operations Before Income Taxes, Extraordinary Items, Non-controlling Interest", "totalLabel": "Income (loss) before income tax expense", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r0", "r111", "r158", "r247", "r255", "r260", "r263", "r555", "r567", "r693" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign", "terseLabel": "Income (Loss) from Continuing Operations before Income Taxes, Foreign", "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile." } } }, "auth_ref": [ "r208", "r476" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Axis]", "documentation": "Information by location in the income statement." } } }, "auth_ref": [ "r290", "r291", "r638" ] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Domain]", "documentation": "Location in the income statement." } } }, "auth_ref": [ "r291", "r638" ] }, "us-gaap_IncomeTaxAuthorityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxAuthorityAxis", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Authority [Axis]", "documentation": "Information by tax jurisdiction." } } }, "auth_ref": [ "r13" ] }, "us-gaap_IncomeTaxAuthorityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxAuthorityDomain", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Authority [Domain]", "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes." } } }, "auth_ref": [] }, "us-gaap_IncomeTaxAuthorityNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxAuthorityNameAxis", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Authority, Name [Axis]", "documentation": "Information by name of taxing authority." } } }, "auth_ref": [ "r13" ] }, "us-gaap_IncomeTaxAuthorityNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxAuthorityNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Authority, Name [Domain]", "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes." } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "INCOME TAXES" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "terseLabel": "INCOME TAXES", "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information." } } }, "auth_ref": [ "r209", "r447", "r455", "r462", "r468", "r472", "r478", "r479", "r480", "r592" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit)", "negatedLabel": "Income tax expense", "totalLabel": "Total income tax expense", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r163", "r175", "r228", "r229", "r252", "r453", "r473", "r572" ] }, "us-gaap_IncomeTaxPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Income Taxes, Policy", "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements." } } }, "auth_ref": [ "r196", "r449", "r450", "r462", "r463", "r467", "r469", "r588" ] }, "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance", "terseLabel": "Change in valuation allowance", "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential", "terseLabel": "Foreign tax, net", "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit)." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 8.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "terseLabel": "Federal statutory tax provision", "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations." } } }, "auth_ref": [ "r454" ] }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationNondeductibleExpenseOther", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount", "terseLabel": "Section 162(m) Limitation", "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost", "terseLabel": "Stock compensation expense", "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationOtherReconcilingItems", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationOtherReconcilingItems", "terseLabel": "Other", "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0, "order": 10.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes", "terseLabel": "State tax provision", "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit)." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxReconciliationTaxCredits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxReconciliationTaxCredits", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails": { "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": -1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeTaxReconciliationTaxCredits", "negatedTerseLabel": "Tax credits", "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits." } } }, "auth_ref": [ "r896" ] }, "us-gaap_IncomeTaxesPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxesPaid", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Income Taxes Paid", "verboseLabel": "Cash paid during the year for taxes", "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income." } } }, "auth_ref": [ "r35", "r38" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 14.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Accounts Payable", "verboseLabel": "Accounts payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r8" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 10.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Accounts Receivable", "negatedLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r8" ] }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccruedLiabilities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 16.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Accrued Liabilities", "verboseLabel": "Accrued and other liabilities", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid." } } }, "auth_ref": [ "r8" ] }, "pdfs_IncreaseDecreaseInBillingsInExcessOfRecognizedRevenues": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "IncreaseDecreaseInBillingsInExcessOfRecognizedRevenues", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 18.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the liability reflecting cash payments received before the related costs have been incurred.", "label": "Increase Decrease In Billings In Excess Of Recognized Revenues", "verboseLabel": "Billings in excess of recognized revenues" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInContractWithCustomerLiability", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 17.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Contract With Customer Liability", "verboseLabel": "Deferred revenues", "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r535", "r826" ] }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 15.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Employee Related Liabilities", "verboseLabel": "Accrued compensation and related benefits", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits." } } }, "auth_ref": [ "r8" ] }, "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOperatingLeaseLiability", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 19.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Lease Liability", "verboseLabel": "Operating lease liabilities", "documentation": "Amount of increase (decrease) in obligation for operating lease." } } }, "auth_ref": [ "r816", "r826" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherNoncurrentAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 13.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Other Noncurrent Assets", "negatedLabel": "Other non-current assets", "documentation": "Amount of increase (decrease) in noncurrent assets classified as other." } } }, "auth_ref": [ "r826" ] }, "us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities:" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 11.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase Decrease In Prepaid Deferred Expense And Other Assets", "negatedLabel": "Prepaid expenses and other current assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r8" ] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Individual [Axis]", "terseLabel": "Individual:" } } }, "auth_ref": [ "r750", "r759", "r769", "r786", "r795", "r799", "r807" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]", "terseLabel": "Insider Trading Arrangements:" } } }, "auth_ref": [ "r805" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]", "terseLabel": "Insider Trading Policies and Procedures:" } } }, "auth_ref": [ "r739", "r811" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Adopted [Flag]", "terseLabel": "Insider Trading Policies and Procedures Adopted" } } }, "auth_ref": [ "r739", "r811" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]", "terseLabel": "Insider Trading Policies and Procedures Not Adopted" } } }, "auth_ref": [ "r739", "r811" ] }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IntangibleAssetsNetExcludingGoodwill", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Intangible assets, net", "terseLabel": "Intangible assets excluding Goodwill", "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges." } } }, "auth_ref": [ "r54", "r57" ] }, "pdfs_IntegratedYieldRampMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "IntegratedYieldRampMember", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Integrated yield ramp.", "label": "Integrated Yield Ramp [Member]", "verboseLabel": "Integrated Yield Ramp" } } }, "auth_ref": [] }, "pdfs_InterestIncomeFromInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "InterestIncomeFromInvestments", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.", "label": "Interest income from investments", "verboseLabel": "Interest income from cash, cash equivalents and short-term investments" } } }, "auth_ref": [] }, "us-gaap_InternalRevenueServiceIRSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InternalRevenueServiceIRSMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Internal Revenue Service (IRS) [Member]", "terseLabel": "IRS", "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity." } } }, "auth_ref": [] }, "us-gaap_InvestmentIncomeInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InvestmentIncomeInterest", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Investment Income, Interest", "negatedLabel": "Interest and other expense (income), net", "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities." } } }, "auth_ref": [ "r117", "r250" ] }, "pdfs_InvestmentsEffectiveMaturityThreshold": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "InvestmentsEffectiveMaturityThreshold", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Effective maturity threshold, as of the date of purchase, for which the Company considers investments to be Short-Term Investments, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Investments, Effective Maturity Threshold", "terseLabel": "Short-term investments, effective maturity threshold" } } }, "auth_ref": [] }, "country_JP": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "JP", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Country_JP", "verboseLabel": "JAPAN" } } }, "auth_ref": [] }, "pdfs_LaboratoryAndTestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "LaboratoryAndTestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to laboratory and test equipment.", "label": "Laboratory and Other Equipment [Member]", "verboseLabel": "Laboratory and Other Equipment" } } }, "auth_ref": [] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LeaseCost", "totalLabel": "Total lease expense", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r516", "r719" ] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Lease Expenses", "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income." } } }, "auth_ref": [ "r906" ] }, "pdfs_LeaseTerminationGain": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "LeaseTerminationGain", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Gain realized from the termination of lease contract.", "label": "Lease termination gain" } } }, "auth_ref": [] }, "us-gaap_LeaseholdImprovementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseholdImprovementsMember", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Leasehold Improvements [Member]", "verboseLabel": "Leasehold Improvements", "documentation": "Additions or improvements to assets held under a lease arrangement." } } }, "auth_ref": [ "r131" ] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "LEASES" } } }, "auth_ref": [] }, "us-gaap_LegalCostsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LegalCostsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Litigation, Policy", "documentation": "Disclosure of accounting policy for legal costs incurred to protect or defend the entity's assets and rights, or to obtain assets, including monetary damages, or to obtain rights." } } }, "auth_ref": [ "r298" ] }, "us-gaap_LesseeLeasesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeLeasesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Leases, Policy", "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee." } } }, "auth_ref": [ "r515" ] }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Operating Lease Liabilities and Maturities", "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position." } } }, "auth_ref": [ "r907" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "terseLabel": "Future Lease payments", "totalLabel": "Total future minimum lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "terseLabel": "2029 and thereafter", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "terseLabel": "2024", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee Operating Lease Liability Payments Due Year Five", "terseLabel": "2028", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee Operating Lease Liability Payments Due Year Four", "terseLabel": "2027", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "terseLabel": "2026", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "terseLabel": "2025", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: Interest (2)", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r522" ] }, "us-gaap_LesseeOperatingLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeasesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeases" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "LEASES", "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability." } } }, "auth_ref": [ "r511" ] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_Liabilities", "totalLabel": "Total liabilities", "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future." } } }, "auth_ref": [ "r22", "r207", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r487", "r490", "r491", "r503", "r610", "r692", "r733", "r863", "r911", "r912" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesAndStockholdersEquity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r108", "r155", "r563", "r720", "r828", "r845", "r904" ] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesCurrent", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r24", "r180", "r207", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r487", "r490", "r491", "r503", "r720", "r863", "r911", "r912" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Current liabilities:" } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LocalPhoneNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongtermPurchaseCommitmentPeriod": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongtermPurchaseCommitmentPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Purchase Commitment, Period", "terseLabel": "Term of cloud-based subscription for Exensio analytics software", "documentation": "Period covered by the long-term purchase commitment, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MajorCustomersAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "auth_ref": [ "r269", "r701", "r866", "r922", "r923" ] }, "us-gaap_MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MarketableSecuritiesRealizedGainLossExcludingOtherThanTemporaryImpairments", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "label": "Marketable Security, Realized Gain (Loss)", "terseLabel": "Realized gains (losses) on investments", "documentation": "Amount of realized gain (loss) on investment in marketable security." } } }, "auth_ref": [] }, "us-gaap_MarketableSecuritiesUnrealizedGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MarketableSecuritiesUnrealizedGainLoss", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "label": "Marketable Security, Unrealized Gain (Loss)", "terseLabel": "Unrealized gains (losses) on investments", "documentation": "Amount of unrealized gain (loss) on investment in marketable security." } } }, "auth_ref": [ "r113" ] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MaximumMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "verboseLabel": "Maximum" } } }, "auth_ref": [ "r294", "r295", "r296", "r297", "r402", "r534", "r579", "r602", "r603", "r661", "r663", "r665", "r666", "r668", "r686", "r687", "r694", "r698", "r713", "r722", "r865", "r913", "r914", "r915", "r917", "r918", "r919" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure [Axis]", "terseLabel": "Measure:" } } }, "auth_ref": [ "r778" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure Name", "terseLabel": "Name" } } }, "auth_ref": [ "r778" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MinimumMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "verboseLabel": "Minimum" } } }, "auth_ref": [ "r294", "r295", "r296", "r297", "r402", "r534", "r579", "r602", "r603", "r661", "r663", "r665", "r666", "r668", "r686", "r687", "r694", "r698", "r713", "r722", "r865", "r913", "r914", "r915", "r917", "r918", "r919" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "MNPI Disclosure Timed for Compensation Value [Flag]", "terseLabel": "MNPI Disclosure Timed for Compensation Value" } } }, "auth_ref": [ "r798" ] }, "us-gaap_MoneyMarketFundsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MoneyMarketFundsMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Money Market Funds [Member]", "verboseLabel": "Money Market Mutual Funds", "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities." } } }, "auth_ref": [ "r868" ] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]", "terseLabel": "Material Terms of Trading Arrangement" } } }, "auth_ref": [ "r806" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "auth_ref": [ "r269", "r701", "r866", "r922", "r923" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Named Executive Officers, Footnote [Text Block]", "terseLabel": "Named Executive Officers, Footnote" } } }, "auth_ref": [ "r779" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided By Used In Financing Activities", "totalLabel": "Net cash used in financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r204" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash flows from financing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided By Used In Investing Activities", "totalLabel": "Net cash provided by (used in) investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r204" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash flows from investing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided By Used In Operating Activities", "totalLabel": "Net cash provided by operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r121", "r122", "r123" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash flows from operating activities:" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "totalLabel": "Net income (loss)", "verboseLabel": "Net loss", "label": "Net Income (Loss)", "terseLabel": "Net Income (Loss)", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r112", "r123", "r159", "r178", "r191", "r194", "r199", "r207", "r220", "r222", "r223", "r224", "r225", "r228", "r229", "r234", "r247", "r255", "r260", "r263", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r501", "r503", "r569", "r633", "r651", "r652", "r693", "r731", "r863" ] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounting Standards, Policy", "terseLabel": "Accounting Standards Adopted, Policy", "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact." } } }, "auth_ref": [] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-GAAP Measure Description [Text Block]", "terseLabel": "Non-GAAP Measure Description" } } }, "auth_ref": [ "r778" ] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-NEOs [Member]", "terseLabel": "Non-NEOs" } } }, "auth_ref": [ "r747", "r759", "r769", "r786", "r795" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Compensation Actually Paid Amount", "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r776" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Total Compensation Amount", "terseLabel": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r775" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO [Member]", "terseLabel": "Non-PEO NEO" } } }, "auth_ref": [ "r786" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r806" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r806" ] }, "us-gaap_NonUsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NonUsMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Non-US [Member]", "verboseLabel": "Non-US", "documentation": "Countries excluding the United States of America (US)." } } }, "auth_ref": [ "r928", "r929", "r930", "r931" ] }, "pdfs_NoncashFixedAssetsTransferredToSalesTypeLease": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "NoncashFixedAssetsTransferredToSalesTypeLease", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents the noncash fixed assets transferred to sales-type lease.", "label": "Noncash Fixed Assets Transferred To Sales Type Lease", "verboseLabel": "Property and equipment transferred to sales-type lease" } } }, "auth_ref": [] }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncashInvestingAndFinancingItemsAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental disclosure of noncash information:" } } }, "auth_ref": [] }, "us-gaap_NoncompeteAgreementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncompeteAgreementsMember", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Noncompete Agreements [Member]", "verboseLabel": "Noncompetition Agreements", "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party." } } }, "auth_ref": [ "r83" ] }, "us-gaap_NoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncurrentAssets", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NoncurrentAssets", "terseLabel": "Long-lived assets, net", "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets." } } }, "auth_ref": [ "r268" ] }, "pdfs_NumberOfMajorCustomers": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "NumberOfMajorCustomers", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.", "label": "pdfs_NumberOfMajorCustomers", "terseLabel": "Number of major customers" } } }, "auth_ref": [] }, "us-gaap_NumberOfOperatingSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfOperatingSegments", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfOperatingSegments", "terseLabel": "Number of operating segments", "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues." } } }, "auth_ref": [ "r839" ] }, "us-gaap_NumberOfReportableSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfReportableSegments", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfReportableSegments", "terseLabel": "Number of Reportable Segments", "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements." } } }, "auth_ref": [ "r839" ] }, "us-gaap_NumberOfReportingUnits": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfReportingUnits", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfReportingUnits", "terseLabel": "Number of reporting units", "documentation": "Number of reporting units tested for impairment of goodwill. A reporting unit is an operating segment or one level below an operating segment." } } }, "auth_ref": [] }, "pdfs_NumberOfRevenueSources": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "NumberOfRevenueSources", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to number of sources where the company is deriving revenue.", "label": "Number of Revenue Sources", "terseLabel": "Number of revenue sources" } } }, "auth_ref": [] }, "pdfs_NumberOfSixMonthPurchasePeriodsInEachOfferingPeriod": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "NumberOfSixMonthPurchasePeriodsInEachOfferingPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of six month purchase periods in each offering period under the employee stock plan.", "label": "Number of six month purchase periods in each offering period", "terseLabel": "ESPP, Share Purchase Periods Within Each Offering Period" } } }, "auth_ref": [] }, "pdfs_OneCustomerMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "OneCustomerMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information about one major customer", "label": "One Customer [Member]", "verboseLabel": "One Significant Customer" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "Operating lease expense", "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability." } } }, "auth_ref": [ "r517", "r719" ] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Present value of future minimum lease payments under operating lease liabilities (3)", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r513" ] }, "pdfs_OperatingLeaseLiabilityAdjustmentForEarlyLeaseTermination": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "OperatingLeaseLiabilityAdjustmentForEarlyLeaseTermination", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents operating lease liability adjustment for early lease termination.", "label": "Operating Lease Liability Adjustment For Early Lease Termination", "terseLabel": "Operating lease liability decrease from early lease termination" } } }, "auth_ref": [] }, "pdfs_OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of the operating lease liability related to an option to extend the lease term that is reasonably certain to be exercised.", "label": "pdfs_OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "terseLabel": "Operating Lease, Liability, Amount Related to Extension of Lease Term" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating lease liabilities - current portion", "terseLabel": "Operating Lease, Liability, Current", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r513" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Non-current operating lease liabilities", "terseLabel": "Non-current portion of operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r513" ] }, "us-gaap_OperatingLeasePayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeasePayments", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Operating Lease Payments", "verboseLabel": "Cash paid for amounts included in the measurement of operating lease liabilities", "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use." } } }, "auth_ref": [ "r514", "r518" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-Of-Use Asset", "terseLabel": "Operating lease right-of-use assets, net", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r512" ] }, "pdfs_OperatingLeaseRightOfUseAssetAdjustmentForEarlyTermination": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "OperatingLeaseRightOfUseAssetAdjustmentForEarlyTermination", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents operating lease right of use asset adjustment for early lease termination.", "label": "Operating Lease Right Of Use Asset Adjustment For Early Termination", "terseLabel": "Operating lease right of use assets decrease from early lease termination" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 12.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset, Periodic Reduction", "verboseLabel": "Operating lease right-of-use assets", "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease." } } }, "auth_ref": [ "r827" ] }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "Weighted average discount rate for operating lease liabilities", "documentation": "Weighted average discount rate for operating lease calculated at point in time." } } }, "auth_ref": [ "r521", "r719" ] }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "Weighted average remaining lease term under operating ROU leases (in years) (Year)", "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r520", "r719" ] }, "us-gaap_OperatingLossCarryforwards": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLossCarryforwards", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_OperatingLossCarryforwards", "terseLabel": "Operating Loss Carryforwards, Total", "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws." } } }, "auth_ref": [ "r74" ] }, "pdfs_OtherAssetsCvSystemsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "OtherAssetsCvSystemsMember", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to CV systems and other assets.", "label": "Other Assets CV Systems [Member]", "verboseLabel": "CV System and Other Assets" } } }, "auth_ref": [] }, "us-gaap_OtherAssetsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Other Assets, Fair Value Disclosure", "totalLabel": "Assets measured at fair value, total", "documentation": "Fair value portion of other assets." } } }, "auth_ref": [] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other non-current assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r186" ] }, "us-gaap_OtherCapitalizedPropertyPlantAndEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherCapitalizedPropertyPlantAndEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Other Capitalized Property Plant and Equipment [Member]", "verboseLabel": "Laboratory and Test Equipment", "documentation": "All other long term capitalized assets related to property plant and equipment not otherwise previously categorized." } } }, "auth_ref": [ "r131" ] }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent, Total", "terseLabel": "Foreign currency translation adjustments, net of tax", "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity." } } }, "auth_ref": [ "r7", "r14", "r150" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Other comprehensive income (loss):" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss) Net Of Tax Portion Attributable To Parent", "totalLabel": "Total other comprehensive loss", "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity." } } }, "auth_ref": [ "r7", "r14", "r150", "r192", "r195" ] }, "us-gaap_OtherExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherExpenseMember", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Other Expense [Member]", "verboseLabel": "Costs and Expenses", "documentation": "Primary financial statement caption encompassing other expense." } } }, "auth_ref": [ "r20" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherLiabilitiesNoncurrent", "terseLabel": "Other non-current liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r25" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 9.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Other Noncash Income (Expense)", "negatedLabel": "Other", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r123" ] }, "us-gaap_OtherNoncurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Other Non-current Assets [Member]", "verboseLabel": "Other Non-current Assets", "documentation": "Primary financial statement caption encompassing other noncurrent assets." } } }, "auth_ref": [] }, "us-gaap_OtherNoncurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentLiabilitiesMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Non-current Liabilities [Member]", "verboseLabel": "Non-current Liabilities", "documentation": "Primary financial statement caption encompassing other noncurrent liabilities." } } }, "auth_ref": [] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Other Performance Measure, Amount", "terseLabel": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r778" ] }, "us-gaap_OtherReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherReceivables", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_RelatedPartyTransactionDueFromToRelatedParty", "terseLabel": "Related party receivables", "documentation": "Amount due from parties in nontrade transactions, classified as other." } } }, "auth_ref": [ "r188", "r620" ] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Aggregate Erroneous Compensation Amount", "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r745", "r757", "r767", "r793" ] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery Compensation Amount", "terseLabel": "Compensation Amount" } } }, "auth_ref": [ "r748", "r760", "r770", "r796" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r748", "r760", "r770", "r796" ] }, "us-gaap_PatentsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PatentsMember", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Patents [Member]", "verboseLabel": "Patents", "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law." } } }, "auth_ref": [ "r149" ] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r774" ] }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsForRepurchaseOfCommonStock", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments For Repurchase Of Common Stock", "negatedLabel": "Repurchases of common stock", "documentation": "The cash outflow to reacquire common stock during the period." } } }, "auth_ref": [ "r34" ] }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments Related To Tax Withholding For Share Based Compensation", "negatedLabel": "Payments for taxes related to net share settlement of equity awards", "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [ "r202" ] }, "us-gaap_PaymentsToAcquireBusinessesGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireBusinessesGross", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Businesses, Gross", "negatedLabel": "Payment for business acquisition, net of cash acquired", "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price." } } }, "auth_ref": [ "r33", "r483" ] }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired", "terseLabel": "Consideration to acquire business, net of cash acquired", "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase." } } }, "auth_ref": [ "r33" ] }, "us-gaap_PaymentsToAcquireIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireIntangibleAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Intangible Assets", "negatedLabel": "Purchase of intangible assets", "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill." } } }, "auth_ref": [ "r120" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments To Acquire Property Plant And Equipment", "negatedLabel": "Purchases of property and equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r120" ] }, "us-gaap_PaymentsToAcquireShortTermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireShortTermInvestments", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments To Acquire Short Term Investments", "negatedLabel": "Purchases of short-term investments", "documentation": "The cash outflow for securities or other assets acquired, which qualify for treatment as an investing activity and are to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term." } } }, "auth_ref": [ "r119" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Issuers, Footnote [Text Block]", "terseLabel": "Peer Group Issuers, Footnote" } } }, "auth_ref": [ "r777" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Total Shareholder Return Amount", "terseLabel": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r777" ] }, "us-gaap_PensionPlansDefinedBenefitMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PensionPlansDefinedBenefitMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Pension Plan Defined Benefit [Member]", "terseLabel": "401(k) Savings Plan", "documentation": "Plan designed to provide participant with pension benefits. Includes, but is not limited to, defined benefit and defined contribution plans. Excludes other postretirement benefits." } } }, "auth_ref": [ "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r403", "r705", "r706", "r710", "r711", "r712" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Actually Paid Compensation Amount", "terseLabel": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r776" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO [Member]", "terseLabel": "PEO" } } }, "auth_ref": [ "r786" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Name", "terseLabel": "PEO Name" } } }, "auth_ref": [ "r779" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Total Compensation Amount", "terseLabel": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r775" ] }, "pdfs_PercentOfRevenue": { "xbrltype": "percentItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "PercentOfRevenue", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "The percent of revenue.", "label": "Percent of revenues", "terseLabel": "Performance obligations, percentage of revenues" } } }, "auth_ref": [] }, "us-gaap_PlanNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PlanNameAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Axis]", "documentation": "Information by plan name for share-based payment arrangement." } } }, "auth_ref": [ "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884", "r885", "r886", "r887", "r888", "r889", "r890", "r891", "r892", "r893", "r894", "r895" ] }, "us-gaap_PlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PlanNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Domain]", "documentation": "Plan name for share-based payment arrangement." } } }, "auth_ref": [ "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884", "r885", "r886", "r887", "r888", "r889", "r890", "r891", "r892", "r893", "r894", "r895" ] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r102", "r310" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares authorized (in shares)", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r102", "r612" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares issued (in shares)", "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt." } } }, "auth_ref": [ "r102", "r310" ] }, "us-gaap_PreferredStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares outstanding (in shares)", "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased." } } }, "auth_ref": [ "r102", "r612", "r631", "r926", "r927" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r102", "r559", "r720" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Prepaid Expenses And Other Current Assets", "terseLabel": "Prepaid expenses and other current assets", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r822" ] }, "us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpensesAndOtherCurrentAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expenses and Other Current Assets [Member]", "verboseLabel": "Prepaid Expenses and Other Current Assets", "documentation": "Primary financial statement caption encompassing prepaid expenses and other current assets." } } }, "auth_ref": [] }, "pdfs_PrepaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "PrepaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the prepayment for acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Prepayments To Acquire Property Plant And Equipment", "negatedLabel": "Prepayment for the purchase of property and equipment" } } }, "auth_ref": [] }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromIssuanceOfCommonStock", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ProceedsFromIssuanceOfCommonStock", "terseLabel": "Proceeds from Issuance of Common Stock", "documentation": "The cash inflow from the additional capital contribution to the entity." } } }, "auth_ref": [ "r6" ] }, "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from maturities of short-term investments", "verboseLabel": "Proceeds from maturities and sales of short-term investments", "documentation": "The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term." } } }, "auth_ref": [ "r32", "r119" ] }, "us-gaap_ProceedsFromSaleOfMachineryAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromSaleOfMachineryAndEquipment", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Sale of Machinery and Equipment", "verboseLabel": "Proceeds from sale of property and equipment", "documentation": "The cash inflow from sale of machinery and equipment." } } }, "auth_ref": [ "r118" ] }, "us-gaap_ProceedsFromStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockOptionsExercised", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds From Stock Options Exercised", "verboseLabel": "Proceeds from exercise of stock options", "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement." } } }, "auth_ref": [ "r6", "r19" ] }, "us-gaap_ProceedsFromStockPlans": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockPlans", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds From Stock Plans", "verboseLabel": "Proceeds from employee stock purchase plan", "documentation": "The cash inflow associated with the amount received from the stock plan during the period." } } }, "auth_ref": [ "r6" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductOrServiceAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]" } } }, "auth_ref": [ "r265", "r536", "r573", "r574", "r575", "r576", "r577", "r578", "r688", "r699", "r721", "r817", "r861", "r862", "r866", "r922" ] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductsAndServicesDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]" } } }, "auth_ref": [ "r265", "r536", "r573", "r574", "r575", "r576", "r577", "r578", "r688", "r699", "r721", "r817", "r861", "r862", "r866", "r922" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProfitLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "verboseLabel": "Net income (loss)", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r178", "r191", "r194", "r203", "r207", "r220", "r228", "r229", "r247", "r255", "r260", "r263", "r276", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r307", "r485", "r488", "r489", "r501", "r503", "r555", "r568", "r596", "r633", "r651", "r652", "r693", "r717", "r718", "r732", "r825", "r863" ] }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentAbstract", "lang": { "en-us": { "role": { "label": "PROPERTY AND EQUIPMENT" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Axis]", "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r10" ] }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipment" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "PROPERTY AND EQUIPMENT", "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections." } } }, "auth_ref": [ "r130", "r167", "r172", "r173" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property and equipment, gross", "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r131", "r182", "r566" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Property, Plant, And Equipment, Net", "terseLabel": "Property and equipment, net", "totalLabel": "Total property and equipment", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r10", "r556", "r566", "r720" ] }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Property and Equipment, Policy", "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections." } } }, "auth_ref": [ "r10", "r167", "r172", "r564" ] }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Property, Plant and Equipment", "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r10" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Domain]", "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software." } } }, "auth_ref": [ "r131" ] }, "us-gaap_PropertyPlantAndEquipmentUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, plant and equipment, useful life (Year)", "verboseLabel": "Property and equipment useful life", "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment." } } }, "auth_ref": [] }, "us-gaap_PurchaseObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PurchaseObligation", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_PurchaseObligation", "terseLabel": "Purchase Obligation, Total", "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier." } } }, "auth_ref": [] }, "pdfs_PurchasePlanYear2010And2021Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "PurchasePlanYear2010And2021Member", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Purchase Plan Year 2010 and 2021 [Member]", "terseLabel": "2010 and 2021 Employee Stock Purchase Plans" } } }, "auth_ref": [] }, "pdfs_PurchasePlanYear2010Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "PurchasePlanYear2010Member", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Purchase Plan Year 2010 [Member]", "terseLabel": "2010 Employee Stock Purchase Plan" } } }, "auth_ref": [] }, "pdfs_PurchasePlanYear2021Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "PurchasePlanYear2021Member", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Purchase Plan Year 2021 [Member]", "terseLabel": "2021 Employee Stock Purchase Plan" } } }, "auth_ref": [] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Table]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r774" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance [Table Text Block]", "terseLabel": "Pay vs Performance Disclosure, Table" } } }, "auth_ref": [ "r774" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "auth_ref": [ "r294", "r295", "r296", "r297", "r362", "r402", "r430", "r431", "r432", "r533", "r534", "r579", "r602", "r603", "r661", "r663", "r665", "r666", "r668", "r686", "r687", "r694", "r698", "r713", "r722", "r725", "r859", "r865", "r914", "r915", "r917", "r918", "r919" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "auth_ref": [ "r294", "r295", "r296", "r297", "r362", "r402", "r430", "r431", "r432", "r533", "r534", "r579", "r602", "r603", "r661", "r663", "r665", "r666", "r668", "r686", "r687", "r694", "r698", "r713", "r722", "r725", "r859", "r865", "r914", "r915", "r917", "r918", "r919" ] }, "pdfs_RecentlyIssuedAccountingPronouncementsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "RecentlyIssuedAccountingPronouncementsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "Recently Issued Accounting Pronouncements [Policy Text Block]", "terseLabel": "Recently Issued Accounting Pronouncements, Policy" } } }, "auth_ref": [] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]", "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure" } } }, "auth_ref": [ "r740", "r752", "r762", "r788" ] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyDomain", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Related Party [Domain]", "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests." } } }, "auth_ref": [ "r386", "r527", "r528", "r605", "r606", "r607", "r608", "r609", "r630", "r632", "r660" ] }, "us-gaap_RelatedPartyTransactionsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsAbstract", "lang": { "en-us": { "role": { "label": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS" } } }, "auth_ref": [] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Related Party [Axis]", "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests." } } }, "auth_ref": [ "r386", "r527", "r528", "r539", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r605", "r606", "r607", "r608", "r609", "r630", "r632", "r660", "r910" ] }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions" ], "lang": { "en-us": { "role": { "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates." } } }, "auth_ref": [ "r524", "r525", "r526", "r528", "r529", "r593", "r594", "r595", "r636", "r637", "r638", "r657", "r659" ] }, "pdfs_RepurchasesOfCommonStockCost": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "RepurchasesOfCommonStockCost", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "The cash value of reacquired common shares during the period.", "label": "Repurchases of common stock, cost" } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Research And Development Expense", "terseLabel": "Research and development", "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use." } } }, "auth_ref": [ "r98", "r446", "r920" ] }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpenseMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Research And Development Expense [Member]", "terseLabel": "Research and Development", "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included." } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpensePolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpensePolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Research and Development Expenses, Policy", "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process." } } }, "auth_ref": [ "r445" ] }, "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Software Development Costs, Policy", "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination." } } }, "auth_ref": [ "r2", "r3", "r98" ] }, "pdfs_RestOfTheWorldMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "RestOfTheWorldMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the rest of the world.", "label": "Rest Of The World [Member]", "verboseLabel": "Rest of the World" } } }, "auth_ref": [] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date [Axis]", "terseLabel": "Restatement Determination Date:" } } }, "auth_ref": [ "r741", "r753", "r763", "r789" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date", "terseLabel": "Restatement Determination Date" } } }, "auth_ref": [ "r742", "r754", "r764", "r790" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Does Not Require Recovery [Text Block]", "terseLabel": "Restatement does not require Recovery" } } }, "auth_ref": [ "r749", "r761", "r771", "r797" ] }, "us-gaap_RestrictedStockUnitsRSUMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedStockUnitsRSUMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units RSU [Member]", "terseLabel": "Restricted Stock Units (RSUs)", "verboseLabel": "Non-vested Restricted Stock Units", "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met." } } }, "auth_ref": [] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated deficit", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r105", "r135", "r562", "r583", "r585", "r591", "r613", "r720" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsMember", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "verboseLabel": "Accumulated Deficit", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r177", "r217", "r218", "r219", "r221", "r227", "r229", "r277", "r278", "r437", "r438", "r439", "r470", "r471", "r492", "r494", "r495", "r497", "r499", "r580", "r582", "r597", "r926" ] }, "us-gaap_RetirementPlanTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetirementPlanTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Retirement Plan Type [Axis]", "documentation": "Information by type of retirement benefit plan. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement." } } }, "auth_ref": [ "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r403", "r705", "r706", "r707", "r708", "r709", "r710", "r711", "r712" ] }, "us-gaap_RetirementPlanTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetirementPlanTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Retirement Plan Type [Domain]", "documentation": "Type of plan designed to provide participants with retirement benefits. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement." } } }, "auth_ref": [ "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r403", "r705", "r706", "r707", "r708", "r709", "r710", "r711", "r712" ] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "REVENUE" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Revenue From Contract With Customer Including Assessed Tax", "terseLabel": "Revenues", "totalLabel": "Total revenues", "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise." } } }, "auth_ref": [ "r248", "r249", "r254", "r258", "r259", "r265", "r267", "r269", "r335", "r336", "r536" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenue" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "REVENUE", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r176", "r326", "r327", "r328", "r329", "r330", "r331", "r333", "r334", "r339" ] }, "pdfs_RevenueRecognitionExpectedPeriodToRecognizeRemainingPerformanceObligations": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "RevenueRecognitionExpectedPeriodToRecognizeRemainingPerformanceObligations", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "The remainder of the remaining performance obligations" } } }, "auth_ref": [] }, "us-gaap_RevenueRemainingPerformanceObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRemainingPerformanceObligation", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligation", "terseLabel": "Revenue, remaining performance obligation", "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue." } } }, "auth_ref": [ "r170" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "terseLabel": "The majority of the remaining performance obligations", "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r171" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]", "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format." } } }, "auth_ref": [ "r171" ] }, "us-gaap_RevenuesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenuesAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Revenues:" } } }, "auth_ref": [] }, "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Revenues from External Customers and Long-Lived Assets [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Right Of Use Assets Obtained In Exchange For Operating Lease Liability", "verboseLabel": "Operating lease liabilities arising from obtaining right-of-use assets", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r519", "r719" ] }, "us-gaap_RisksAndUncertaintiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RisksAndUncertaintiesAbstract", "lang": { "en-us": { "role": { "label": "CUSTOMER AND GEOGRAPHIC INFORMATION" } } }, "auth_ref": [] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r806" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r806" ] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SalesRevenueNetMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Sales Revenue Net [Member]", "verboseLabel": "Revenue Benchmark", "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation." } } }, "auth_ref": [ "r269", "r814" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share", "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities." } } }, "auth_ref": [ "r42" ] }, "us-gaap_ScheduleOfAssumptionsForFairValueAsOfBalanceSheetDateOfInterestsContinuedToBeHeldByTransferorServicingAssetsOrServicingLiabilitiesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAssumptionsForFairValueAsOfBalanceSheetDateOfInterestsContinuedToBeHeldByTransferorServicingAssetsOrServicingLiabilitiesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Assumptions for Fair Value as of Balance Sheet Date of Assets or Liabilities that relate to Transferor's Continuing Involvement [Table Text Block]", "terseLabel": "Schedule of Supplemental Operating Lease Information", "documentation": "Tabular disclosure of all information related to the key inputs and assumptions (including, at a minimum, but not limited to, and if applicable, quantitative information about discount rates, expected prepayments including the expected weighted-average life of prepayable financial assets, and anticipated credit losses) used in measuring the fair value of assets or liabilities that relate to the transferor's continuing involvement with transferred financial assets, as of the balance sheet date." } } }, "auth_ref": [ "r916" ] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities." } } }, "auth_ref": [ "r77", "r79", "r481" ] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]", "terseLabel": "Schedule of Purchase Price Allocation in Business Acquisition", "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts." } } }, "auth_ref": [ "r77", "r79" ] }, "us-gaap_ScheduleOfCashAndCashEquivalentsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfCashAndCashEquivalentsTable", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsAndShortTermInvestmentsDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Cash and Cash Equivalents [Table]", "documentation": "Schedule of cash and cash equivalent balances. This table excludes restricted cash balances." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]", "terseLabel": "Schedule of Components of Income Tax Expense (Benefit)", "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years." } } }, "auth_ref": [ "r146" ] }, "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]", "terseLabel": "Schedule of Deferred Tax Assets and Liabilities", "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets." } } }, "auth_ref": [ "r145" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r838" ] }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]", "terseLabel": "Schedule of Effective Income Tax Rate Reconciliation", "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations." } } }, "auth_ref": [ "r144" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-based Payment Arrangement, Expensed and Capitalized Amounts", "terseLabel": "Schedule of Stock-Based Compensation Expenses", "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement." } } }, "auth_ref": [ "r67" ] }, "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country", "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area." } } }, "auth_ref": [ "r53" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets, Net", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r56", "r58" ] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill", "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule." } } }, "auth_ref": [ "r695", "r847", "r848", "r849", "r850", "r851", "r852", "r853", "r854", "r855", "r856", "r857" ] }, "us-gaap_ScheduleOfPublicUtilityPropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfPublicUtilityPropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables" ], "lang": { "en-us": { "role": { "label": "Public Utility Property, Plant, and Equipment [Table Text Block]", "terseLabel": "Schedule of Property, Plant and Equipment Estimated Useful Lives", "documentation": "Tabular disclosure of public utility physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation expense and method used, including composite depreciation, and accumulated depreciation." } } }, "auth_ref": [ "r97" ] }, "us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenue by Major Customers by Reporting Segments", "documentation": "Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area", "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries." } } }, "auth_ref": [ "r52", "r114" ] }, "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]", "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries." } } }, "auth_ref": [ "r51", "r110" ] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGrantDateIntrinsicValueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGrantDateIntrinsicValueTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Grant Date Intrinsic Value [Table Text Block]", "terseLabel": "Schedule of Options Exercised Intrinsic Value", "documentation": "Tabular disclosure of the total intrinsic value of options exercised (or share units converted), share-based liabilities paid, and the total fair value of shares vested during the year." } } }, "auth_ref": [ "r141" ] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding [Table Text Block]", "terseLabel": "Schedule of Outstanding Options Vested and Expected to Vest", "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding options that are fully vested and expected to vest. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r142" ] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockUnitsVestedAndExpectedToVestTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockUnitsVestedAndExpectedToVestTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Restricted Stock Units, Vested and Expected to Vest [Table Text Block]", "terseLabel": "Schedule of Vested Restricted Stock Unit Fair Value", "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding restricted stock units that are fully vested and expected to vest. Includes, but is not limited to, unvested restricted stock units for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r142" ] }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-based Payment Arrangement, Restricted Stock Unit Activity", "terseLabel": "Schedule of Restricted Stock Unit Activity", "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year." } } }, "auth_ref": [ "r66" ] }, "us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]", "terseLabel": "Schedule of Employee Stock Purchase Plan, Black-Scholes-Merton Valuation Assumptions", "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions." } } }, "auth_ref": [ "r143" ] }, "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]", "terseLabel": "Schedule of Unrecognized Tax Benefits Roll Forward", "documentation": "Tabular disclosure of the change in unrecognized tax benefits." } } }, "auth_ref": [ "r716", "r898" ] }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense", "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets." } } }, "auth_ref": [ "r58" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "Security12bTitle", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r734" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SecurityExchangeName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r736" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "SegmentGeographicalDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "auth_ref": [ "r267", "r268", "r599", "r600", "r601", "r662", "r664", "r667", "r669", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683", "r684", "r689", "r700", "r725", "r866", "r922" ] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "CUSTOMER AND GEOGRAPHIC INFORMATION", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r243", "r244", "r245", "r246", "r247", "r253", "r257", "r261", "r262", "r263", "r264", "r265", "r266", "r269" ] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Selling General And Administrative Expense", "terseLabel": "Selling, general, and administrative", "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc." } } }, "auth_ref": [ "r116" ] }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingGeneralAndAdministrativeExpensesMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Selling, General And Administrative Expense [Member]", "terseLabel": "Selling, General, and Administrative", "documentation": "Primary financial statement caption encompassing selling, general and administrative expense." } } }, "auth_ref": [] }, "us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingGeneralAndAdministrativeExpensesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Selling, General and Administrative Expenses, Policy", "documentation": "Disclosure of accounting policy for inclusion of significant items in the selling, general and administrative (or similar) expense report caption." } } }, "auth_ref": [ "r12" ] }, "us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Series of Individually Immaterial Business Acquisitions [Member]", "terseLabel": "Lantern Machinery Analytics, Inc.", "documentation": "Represents the aggregation and reporting of combined amounts of individually immaterial business combinations that were completed during the period." } } }, "auth_ref": [ "r79" ] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Share Based Compensation", "verboseLabel": "Stock-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r8" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "terseLabel": "Stock option vesting period", "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition." } } }, "auth_ref": [ "r714" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "negatedTerseLabel": "RSUs Forfeited", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period." } } }, "auth_ref": [ "r422" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "verboseLabel": "RSUs Forfeited, Weighted Average Grant Date Fair Value", "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event." } } }, "auth_ref": [ "r422" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "terseLabel": "RSUs Granted", "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r420" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "RSUs Granted, Weighted Average Grant Date Fair Value", "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r420" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "periodEndLabel": "Non-vested RSUs, Ending Balance", "periodStartLabel": "Non-vested RSUs, Opening Balance", "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date." } } }, "auth_ref": [ "r417", "r418" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "periodEndLabel": "Non-vested RSUs Ending, Weighted Average Grant Date Fair Value", "periodStartLabel": "Non-vested RSUs Opening, Weighted Average Grant Date Fair Value", "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r417", "r418" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "negatedTerseLabel": "RSUs Vested", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period." } } }, "auth_ref": [ "r421" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "RSUs Vested, Weighted Average Grant Date Fair Value", "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement." } } }, "auth_ref": [ "r421" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "terseLabel": "Expected dividend", "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term." } } }, "auth_ref": [ "r431" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "terseLabel": "Volatility", "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period." } } }, "auth_ref": [ "r430" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "terseLabel": "Risk-free interest rate", "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares." } } }, "auth_ref": [ "r432" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "terseLabel": "Eligible Employee Contribution Rate, Percentage of Compensation", "documentation": "The highest percentage of annual salary that an employee is permitted to utilize with respect to the plan." } } }, "auth_ref": [ "r65" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "terseLabel": "Stock Incentive Plans, Shares Available for Future Grant", "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable." } } }, "auth_ref": [ "r65" ] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award is offered, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Offering Period", "terseLabel": "ESPP, Share Offering Period Duration" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable (in shares)", "terseLabel": "Options Exercisable", "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan." } } }, "auth_ref": [ "r411" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable, weighted average exercise price (in dollars per share)", "terseLabel": "Options Exercisable, Weighted Average Exercise Price", "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan." } } }, "auth_ref": [ "r411" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "verboseLabel": "Intrinsic value of options exercised", "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares." } } }, "auth_ref": [ "r424" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "negatedLabel": "Options Canceled", "terseLabel": "Stock Incentive Plans, Cumulative Share Forfeitures, Expirations and Repurchases", "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan." } } }, "auth_ref": [ "r415" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Options Granted", "terseLabel": "Stock Incentive Plans, Stock Options and Awards Granted", "documentation": "Gross number of share options (or share units) granted during the period." } } }, "auth_ref": [ "r413" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "Weighted average fair value of purchase rights granted during the period", "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology." } } }, "auth_ref": [ "r423" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Outstanding, aggregate intrinsic value", "terseLabel": "Options Outstanding, Aggregate Intrinsic Value", "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding." } } }, "auth_ref": [ "r65" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "periodEndLabel": "Options Outstanding, Ending Balance", "periodStartLabel": "Options Outstanding, Beginning Balance", "terseLabel": "Stock Incentive Plans, Stock Option Awards Outstanding", "documentation": "Number of options outstanding, including both vested and non-vested options." } } }, "auth_ref": [ "r409", "r410" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "periodEndLabel": "Options Outstanding, Weighted Average Exercise Price, Ending Balance", "periodStartLabel": "Options Outstanding, Weighted Average Exercise Price, Beginning Balance", "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan." } } }, "auth_ref": [ "r409", "r410" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest, aggregate intrinsic value", "terseLabel": "Options Vested and Expected to Vest, Aggregate Intrinsic Value", "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r425" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest (in shares)", "terseLabel": "Options Vested and Expected to Vest", "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r425" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest, weighted average exercise price (in dollars per share)", "terseLabel": "Options Vested and Expected to Vest, Weighted Average Exercise Price", "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r425" ] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Length of purchase periods within each offering period under employee stock purchase plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "ESPP, Share Purchase Period Duration" } } }, "auth_ref": [] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "The reduction rate in the number of shares reserved under the option plan attributable to awards other than options or stock appreciation rights.", "label": "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "terseLabel": "Stock Incentive Plans, Rate Decrease in Reserved Plan-Shares Pursuant to Awards Other Than Options or SARs" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "All Award Types", "terseLabel": "All Award Types", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r405", "r406", "r407", "r409", "r410", "r411", "r412", "r413", "r414", "r415", "r416", "r417", "r418", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r429", "r430", "r431", "r432", "r433" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercised, weighted average exercise price (in dollars per share)", "terseLabel": "Options Exercised, Weighted Average Exercise Price", "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares." } } }, "auth_ref": [ "r414" ] }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Stock-Based Compensation, Policy", "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost." } } }, "auth_ref": [ "r404", "r408", "r427", "r428", "r429", "r430", "r433", "r440", "r441", "r442", "r443" ] }, "us-gaap_SharePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharePrice", "terseLabel": "Common Stock, Closing Share Price", "documentation": "Price of a single share of a number of saleable stocks of a company." } } }, "auth_ref": [] }, "us-gaap_ShareRepurchaseProgramAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareRepurchaseProgramAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Axis]", "documentation": "Information by share repurchase program." } } }, "auth_ref": [] }, "us-gaap_ShareRepurchaseProgramDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareRepurchaseProgramDomain", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Domain]", "documentation": "Name of the share repurchase program." } } }, "auth_ref": [] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "terseLabel": "Stock Option Expiration Period", "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r715" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "terseLabel": "Expected life (in years)", "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r429" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable, aggregate intrinsic value", "terseLabel": "Options Exercisable, Aggregate Intrinsic Value", "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable." } } }, "auth_ref": [ "r65" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable, weighted average remaining contractual term (Year)", "terseLabel": "Options Exercisable, Weighted Average Remaining Contractual Term", "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r65" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Outstanding, weighted average remaining contractual (Year)", "terseLabel": "Options Outstanding, Weighted Average Remaining Contractual Term", "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r142" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest, weighted average remaining contractual term (Year)", "terseLabel": "Options Vested and Expected to Vest, Weighted Average Remaining Contractual Term", "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r425" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "terseLabel": "Fair value of restricted stock units vested", "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock." } } }, "auth_ref": [ "r424" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "terseLabel": "Eligible Employee Share Purchase Price, Percentage of Fair Market Value", "documentation": "Purchase price of common stock expressed as a percentage of its fair value." } } }, "auth_ref": [] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Shares Outstanding", "periodEndLabel": "Ending Balances (shares)", "periodStartLabel": "Beginning Balances (shares)", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation", "verboseLabel": "Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock (shares)", "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [] }, "us-gaap_ShortTermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShortTermInvestments", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Short-term Investments", "terseLabel": "Short-term investments", "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current." } } }, "auth_ref": [ "r156", "r157", "r821" ] }, "pdfs_ShorttermAndVariableLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ShorttermAndVariableLeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less and amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Short-term lease and variable lease expense" } } }, "auth_ref": [] }, "us-gaap_SoftwareAndSoftwareDevelopmentCostsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SoftwareAndSoftwareDevelopmentCostsMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Software And Software Development Costs [Member]", "verboseLabel": "Software", "documentation": "Purchased software applications and internally developed software for sale, licensing or long-term internal use." } } }, "auth_ref": [] }, "us-gaap_SoftwareDevelopmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SoftwareDevelopmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Software Development [Member]", "terseLabel": "Software Development", "documentation": "Internally developed software for sale, licensing or long-term internal use." } } }, "auth_ref": [] }, "pdfs_SoftwareLicenseAndRelatedServicesAgreementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "SoftwareLicenseAndRelatedServicesAgreementMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to software license and related services.", "label": "Software License and Related Services Agreement [Member]", "verboseLabel": "Software License and Related Services Agreement" } } }, "auth_ref": [] }, "us-gaap_StateAndLocalJurisdictionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StateAndLocalJurisdictionMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "State And Local Jurisdiction [Member]", "terseLabel": "State and Local", "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity." } } }, "auth_ref": [] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r16", "r28", "r177", "r197", "r198", "r199", "r217", "r218", "r219", "r221", "r227", "r229", "r242", "r277", "r278", "r322", "r437", "r438", "r439", "r470", "r471", "r492", "r493", "r494", "r495", "r496", "r497", "r499", "r505", "r506", "r507", "r508", "r509", "r510", "r523", "r580", "r581", "r582", "r597", "r653" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "StatementGeographicalAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "auth_ref": [ "r267", "r268", "r599", "r600", "r601", "r662", "r664", "r667", "r669", "r673", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683", "r684", "r689", "r700", "r725", "r866", "r922" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueDetails", "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r217", "r218", "r219", "r242", "r536", "r587", "r598", "r604", "r605", "r606", "r607", "r608", "r609", "r612", "r615", "r616", "r617", "r618", "r619", "r621", "r622", "r623", "r624", "r626", "r627", "r628", "r629", "r630", "r632", "r634", "r635", "r639", "r640", "r641", "r642", "r643", "r644", "r645", "r646", "r647", "r648", "r649", "r650", "r653", "r726" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "CONSOLIDATED BALANCE SHEETS" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementTable", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueDetails", "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed." } } }, "auth_ref": [ "r217", "r218", "r219", "r242", "r536", "r587", "r598", "r604", "r605", "r606", "r607", "r608", "r609", "r612", "r615", "r616", "r617", "r618", "r619", "r621", "r622", "r623", "r624", "r626", "r627", "r628", "r629", "r630", "r632", "r634", "r635", "r639", "r640", "r641", "r642", "r643", "r644", "r645", "r646", "r647", "r648", "r649", "r650", "r653", "r726" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Price or TSR Estimation Method [Text Block]", "terseLabel": "Stock Price or TSR Estimation Method" } } }, "auth_ref": [ "r744", "r756", "r766", "r792" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Appreciation Rights (SARs) [Member]", "terseLabel": "Stock Appreciation Rights (SARs)", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [] }, "pdfs_StockIncentivePlansCommonSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "StockIncentivePlansCommonSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares reserved for future issuance.", "label": "Stock Incentive Plans, Common Shares Reserved for Future Issuance" } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Employee Stock Ownership Plan", "terseLabel": "Shares Issued During Period", "documentation": "Number of shares of capital stock issued (purchased by employees) in connection with an employee stock ownership plan." } } }, "auth_ref": [ "r16", "r68", "r102", "r103", "r135" ] }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans", "verboseLabel": "Issuance of common stock in connection with employee stock purchase plan (shares)", "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan." } } }, "auth_ref": [ "r16", "r102", "r103", "r135" ] }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesNewIssues", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockIssuedDuringPeriodSharesNewIssues", "terseLabel": "Common stock shares issued", "documentation": "Number of new stock issued during the period." } } }, "auth_ref": [ "r16", "r102", "r103", "r135", "r589", "r653", "r670" ] }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Restricted Stock Award Gross", "verboseLabel": "Vesting of restricted stock units (shares)", "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards." } } }, "auth_ref": [ "r16", "r135" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Stock Options Exercised", "negatedLabel": "Options Exercised", "verboseLabel": "Issuance of common stock in connection with exercise of options (shares)", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r16", "r102", "r103", "r135", "r414" ] }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan", "verboseLabel": "Issuance of common stock in connection with employee stock purchase plan", "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan." } } }, "auth_ref": [ "r16", "r102", "r103", "r135" ] }, "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Restricted Stock Award Gross", "verboseLabel": "Vesting of restricted stock units", "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period." } } }, "auth_ref": [ "r16", "r102", "r103", "r135" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Stock Options Exercised", "verboseLabel": "Issuance of common stock in connection with exercise of options", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r16", "r28", "r135" ] }, "pdfs_StockRepurchaseProgram2022Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "StockRepurchaseProgram2022Member", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Represent information pertaining to the 2022 Stock repurchase program.", "label": "Stock Repurchase Program 2022 [Member]", "terseLabel": "2022 Stock Repurchase Program" } } }, "auth_ref": [] }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchaseProgramAuthorizedAmount1", "terseLabel": "Stock Repurchase Program, Authorized Amount", "documentation": "Amount of stock repurchase plan authorized." } } }, "auth_ref": [] }, "us-gaap_StockRepurchasedDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedDuringPeriodShares", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased During Period, Shares", "verboseLabel": "Repurchase of common stock (shares)", "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r16", "r102", "r103", "r135", "r590", "r653", "r671" ] }, "us-gaap_StockRepurchasedDuringPeriodValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedDuringPeriodValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased During Period, Value", "negatedLabel": "Repurchase of common stock", "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r16", "r102", "r103", "r135", "r597", "r653", "r671", "r732" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Balance", "periodEndLabel": "Ending Balances", "periodStartLabel": "Beginning Balances", "totalLabel": "Total stockholders' equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r103", "r106", "r107", "r125", "r614", "r631", "r654", "r655", "r720", "r733", "r828", "r845", "r904", "r926" ] }, "us-gaap_StockholdersEquityNoteAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNoteAbstract", "lang": { "en-us": { "role": { "label": "STOCKHOLDERS EQUITY" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "STOCKHOLDERS' EQUITY", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r134", "r206", "r309", "r311", "r312", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r498", "r656", "r658", "r672" ] }, "us-gaap_StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Stockholders' equity:" } } }, "auth_ref": [] }, "us-gaap_SummaryOfValuationAllowanceTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SummaryOfValuationAllowanceTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesTables" ], "lang": { "en-us": { "role": { "label": "Summary of Valuation Allowance [Table Text Block]", "terseLabel": "Summary of Deferred Tax Assets Valuation Allowance", "documentation": "Tabular disclosure of valuation allowances to reduce deferred tax assets to net realizable value, including identification of the deferred tax asset more likely than not will not be fully realized and the corresponding amount of the valuation allowance." } } }, "auth_ref": [ "r73" ] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental disclosure of cash flow information:" } } }, "auth_ref": [] }, "pdfs_SupplierConcentrationPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "SupplierConcentrationPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for supplier concentration.", "label": "Supplier Concentration [Policy Text Block]", "terseLabel": "Supplier Concentration, Policy" } } }, "auth_ref": [] }, "us-gaap_TableTextBlock": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationTables" ], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "auth_ref": [] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Tabular List [Table Text Block]", "terseLabel": "Tabular List, Table" } } }, "auth_ref": [ "r785" ] }, "us-gaap_TaxCreditCarryforwardAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TaxCreditCarryforwardAmount", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_TaxCreditCarryforwardAmount", "terseLabel": "Tax Credit Carryforward, Amount", "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws." } } }, "auth_ref": [ "r74" ] }, "pdfs_TermOfProductWarranty": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "TermOfProductWarranty", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to product warranty period following initial delivery.", "label": "Term of Product Warranty", "terseLabel": "Term of Product Warranty" } } }, "auth_ref": [] }, "pdfs_TestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "TestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosurePropertyAndEquipmentPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Test equipment member.", "label": "Test Equipment [Member]", "verboseLabel": "Test Equipment" } } }, "auth_ref": [] }, "pdfs_The2020StockRepurchaseProgramMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "The2020StockRepurchaseProgramMember", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2020 Stock Repurchase Program.", "label": "The 2020 Stock Repurchase Program [Member]", "terseLabel": "2020 Stock Repurchase Program" } } }, "auth_ref": [] }, "pdfs_ThreeCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ThreeCustomersMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information about three major customers.", "label": "Three Customers [Member]", "verboseLabel": "Three Significant Customers" } } }, "auth_ref": [] }, "pdfs_ThresholdPaymentPeriodOfMajorityOfPurchaseObligation": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "ThresholdPaymentPeriodOfMajorityOfPurchaseObligation", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Threshold payment period for majority of purchase obligation.", "label": "Threshold Payment Period Of Majority Of Purchase Obligation", "terseLabel": "Period over which the majority of purchase obligations become due" } } }, "auth_ref": [] }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimingOfTransferOfGoodOrServiceAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Axis]", "documentation": "Information by timing of transfer of good or service to customer." } } }, "auth_ref": [ "r702", "r866" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimingOfTransferOfGoodOrServiceDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Domain]", "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time." } } }, "auth_ref": [ "r702", "r866" ] }, "pdfs_TotalAmortizationOfAcquiredIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "TotalAmortizationOfAcquiredIntangibleAssets", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Total Amortization Of Acquired Intangible Assets", "terseLabel": "Total amortization of acquired intangible assets" } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Amount", "terseLabel": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r777" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Vs Peer Group [Text Block]", "terseLabel": "Total Shareholder Return Vs Peer Group" } } }, "auth_ref": [ "r784" ] }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TradeAndOtherAccountsReceivablePolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Policy", "documentation": "Disclosure of accounting policy for accounts receivable." } } }, "auth_ref": [ "r160", "r161", "r162", "r272", "r273", "r274" ] }, "us-gaap_TrademarksAndTradeNamesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TrademarksAndTradeNamesMember", "presentation": [ "http://www.pdf.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Trademarks And Trade Names [Member]", "verboseLabel": "Tradename and Trademarks", "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style, or rights either acquired through registration of a business name to gain or protect exclusive use thereof." } } }, "auth_ref": [ "r82" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement [Axis]", "terseLabel": "Trading Arrangement:" } } }, "auth_ref": [ "r805" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangements, by Individual [Table]", "terseLabel": "Trading Arrangements, by Individual" } } }, "auth_ref": [ "r807" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "TradingSymbol", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "us-gaap_TransferredAtPointInTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TransferredAtPointInTimeMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time [Member]", "verboseLabel": "Point-in-time", "documentation": "Contract with customer in which good or service is transferred at point in time." } } }, "auth_ref": [ "r702" ] }, "us-gaap_TransferredOverTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TransferredOverTimeMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Transferred over Time [Member]", "verboseLabel": "Over Time", "documentation": "Contract with customer in which good or service is transferred over time." } } }, "auth_ref": [ "r702" ] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Adoption Date", "terseLabel": "Adoption Date" } } }, "auth_ref": [ "r808" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Duration", "terseLabel": "Arrangement Duration" } } }, "auth_ref": [ "r809" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r807" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Title", "terseLabel": "Title" } } }, "auth_ref": [ "r807" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Securities Aggregate Available Amount", "terseLabel": "Aggregate Available" } } }, "auth_ref": [ "r810" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Termination Date", "terseLabel": "Termination Date" } } }, "auth_ref": [ "r808" ] }, "us-gaap_TreasuryStockCommonMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonMember", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Treasury Stock Common [Member]", "verboseLabel": "Treasury Stock", "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r63" ] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonShares", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Treasury stock, shares (in shares)", "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r63" ] }, "us-gaap_TreasuryStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockValue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockValue", "negatedLabel": "Treasury stock at cost, 11,460 and 11,182 shares, respectively", "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury." } } }, "auth_ref": [ "r27", "r63", "r64" ] }, "pdfs_TwoCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "TwoCustomersMember", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information about two major customers.", "label": "Two Customers [Member]", "verboseLabel": "Two Significant Customers" } } }, "auth_ref": [] }, "us-gaap_TypeOfArrangementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TypeOfArrangementAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]", "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r484" ] }, "country_US": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "US", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Country_US", "verboseLabel": "United States" } } }, "auth_ref": [] }, "us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "USGovernmentCorporationsAndAgenciesSecuritiesMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "U.S. Government Corporations And Agencies Securities [Member]", "verboseLabel": "U.S. Government Securities", "documentation": "This category includes information about debt issued by US Government Corporations and Agencies. Investments in such US Government Corporations may include debt securities issued by the Government National Mortgage Association (Ginnie Mae) and by the Federal National Mortgage Association (Fannie Mae) and the Federal Home Loan Mortgage Corporation (Freddie Mac)." } } }, "auth_ref": [ "r921" ] }, "us-gaap_UnbilledReceivablesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnbilledReceivablesCurrent", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnbilledReceivablesCurrent", "terseLabel": "Unbilled receivables", "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Underlying Security Market Price Change, Percent", "terseLabel": "Underlying Security Market Price Change" } } }, "auth_ref": [ "r804" ] }, "us-gaap_UnrecognizedTaxBenefits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefits", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefits", "periodEndLabel": "Gross unrecognized tax benefits, Ending Balance", "periodStartLabel": "Gross unrecognized tax benefits, Beginning Balance", "documentation": "Amount of unrecognized tax benefits." } } }, "auth_ref": [ "r448", "r457" ] }, "pdfs_UnrecognizedTaxBenefitsExcludingInterestAndPenalties": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "UnrecognizedTaxBenefitsExcludingInterestAndPenalties", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of unrecognized tax benefits, excluding interest and penalties.", "label": "Unrecognized tax benefits, excluding interest" } } }, "auth_ref": [] }, "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssetSubjectToFullValuationAllowance": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20231231", "localname": "UnrecognizedTaxBenefitsInDeferredTaxAssetSubjectToFullValuationAllowance", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails" ], "lang": { "en-us": { "role": { "documentation": "Unrecognized tax benefits in deferred tax asset subject to full valuation allowance.", "label": "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssetSubjectToFullValuationAllowance", "terseLabel": "Unrecognized tax benefits subject to full DTA valuation allowance" } } }, "auth_ref": [] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits, Income Tax Penalties Accrued", "terseLabel": "Unrecognized tax benefits accrued", "documentation": "Amount of statutory penalties accrued for a tax position claimed or expected to be claimed by the entity, in its tax return." } } }, "auth_ref": [ "r897" ] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "terseLabel": "Unrecognized tax benefits, interest accrued", "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return." } } }, "auth_ref": [ "r456" ] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesExpense", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits, Income Tax Penalties Expense", "terseLabel": "Unrecognized tax benefits (expense reversal)", "documentation": "Amount of expense for penalties related to a tax position claimed or expected to be claimed in the tax return." } } }, "auth_ref": [ "r897" ] }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "terseLabel": "Increases in tax positions for current year", "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return." } } }, "auth_ref": [ "r459" ] }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions", "terseLabel": "Increases in tax positions for prior years", "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns." } } }, "auth_ref": [ "r458" ] }, "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsReconciliationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations", "negatedTerseLabel": "Lapse in statute of limitations", "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations." } } }, "auth_ref": [ "r460" ] }, "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "terseLabel": "Unrecognized tax benefits that would impact effective tax rate", "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate." } } }, "auth_ref": [ "r461" ] }, "us-gaap_UseOfEstimates": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UseOfEstimates", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Use of Estimates, Policy", "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles." } } }, "auth_ref": [ "r48", "r49", "r50", "r164", "r165", "r168", "r169" ] }, "us-gaap_ValuationAllowanceByDeferredTaxAssetAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowanceByDeferredTaxAssetAxis", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Valuation Allowance by Deferred Tax Asset [Axis]", "documentation": "Information by type of deferred tax consequences attributable to deductible temporary differences." } } }, "auth_ref": [ "r73" ] }, "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowanceOfDeferredTaxAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]", "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward." } } }, "auth_ref": [ "r830", "r831", "r832", "r833", "r834" ] }, "us-gaap_ValuationAllowancesAndReservesBalance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowancesAndReservesBalance", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Valuation allowances and reserves, balance", "periodEndLabel": "Balance, ending", "periodStartLabel": "Balance, beginning", "documentation": "Amount of valuation and qualifying accounts and reserves." } } }, "auth_ref": [ "r211", "r216" ] }, "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Charged to Expense", "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense." } } }, "auth_ref": [ "r214" ] }, "us-gaap_ValuationAllowancesAndReservesDeductions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowancesAndReservesDeductions", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "lang": { "en-us": { "role": { "label": "Valuation allowances and reserves, deductions", "negatedLabel": "Deductions/ Write-offs of Accounts Receivable", "documentation": "Amount of decrease in valuation and qualifying accounts and reserves." } } }, "auth_ref": [ "r215" ] }, "us-gaap_ValuationAllowancesAndReservesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowancesAndReservesDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]", "documentation": "Valuation and qualifying accounts and reserves." } } }, "auth_ref": [ "r211", "r212", "r213", "r215", "r216" ] }, "us-gaap_ValuationAllowancesAndReservesTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowancesAndReservesTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureIncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails" ], "lang": { "en-us": { "role": { "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]", "documentation": "Information by valuation and qualifying accounts and reserves." } } }, "auth_ref": [ "r211", "r212", "r213", "r215", "r216" ] }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "calculation": { "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment", "terseLabel": "Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under Employee Purchase Plan", "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation." } } }, "auth_ref": [ "r838" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number Of Diluted Shares Outstanding", "terseLabel": "Diluted", "verboseLabel": "Diluted weighted average shares outstanding", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r232", "r237" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number Of Shares Outstanding, Basic", "terseLabel": "Basic", "verboseLabel": "Basic weighted average shares outstanding", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r231", "r237" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasicAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasicAbstract", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic [Abstract]", "terseLabel": "Weighted average common shares used to calculate net income (loss) per share:" } } }, "auth_ref": [] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "SubTopic": "20", "Topic": "940", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "16", "SubTopic": "10", "Topic": "805", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479405/805-10-25-16" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "4", "SubTopic": "50", "Topic": "350", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482610/350-50-25-4" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "30", "Paragraph": "1", "SubTopic": "40", "Topic": "350", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482633/350-40-30-1" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-20" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "30", "Topic": "350", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "SubTopic": "35", "Topic": "720", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483406/720-35-50-1" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c),(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "820", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19-26)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.21)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.24)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.25)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29,30)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29-31)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-5" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "25", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-4" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-1" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-5" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-1" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "((a)(1),(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482130/360-10-45-4" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481549/505-30-45-1" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-4" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "40", "Section": "25", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480637/718-40-25-10" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "40", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480489/718-40-50-1" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "40", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480489/718-40-50-1" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "40", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480489/718-40-50-1" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "740", "SubTopic": "10", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "740", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "740", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-3" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "740", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-8" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "05", "Paragraph": "4", "Subparagraph": "(a)-(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479515/805-10-05-4" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-3" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "55", "Paragraph": "37", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479303/805-10-55-37" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B" }, "r90": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-7" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "820", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r92": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "820", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "210", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03.17)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "825", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480981/942-825-50-1" }, "r97": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "980", "SubTopic": "20", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481834/980-20-45-1" }, "r98": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "985", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481283/985-20-50-1" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r102": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11" }, "r110": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(7)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r116": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r117": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.7(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r118": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12" }, "r119": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r120": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r121": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24" }, "r122": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r123": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r124": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//235/tableOfContent" }, "r125": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-2" }, "r126": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//350/tableOfContent" }, "r127": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r128": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r129": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r130": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//360/tableOfContent" }, "r131": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r132": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-2" }, "r133": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//440/tableOfContent" }, "r134": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//505/tableOfContent" }, "r135": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1" }, "r136": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481138/505-30-25-5" }, "r137": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "710", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//710/tableOfContent" }, "r138": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "712", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//712/tableOfContent" }, "r139": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "715", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//715/tableOfContent" }, "r140": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//718/tableOfContent" }, "r141": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(d)(2)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r142": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(e)(1)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r143": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(f)(2)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r144": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Paragraph": "12", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12" }, "r145": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r146": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Paragraph": "9", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r147": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r148": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//805/tableOfContent" }, "r149": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-38" }, "r150": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19" }, "r151": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r152": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r153": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r154": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r155": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r156": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r157": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r158": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r159": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r160": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11B", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B" }, "r161": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15" }, "r162": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-6" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482659/740-20-45-2" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-1" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(1)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-6" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-7" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//606/tableOfContent" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-7" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-5" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-1" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-2" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(n))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column C(1)))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column C(2)))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column C)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//260/tableOfContent" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-10" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-16" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-2" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-7" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-15" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-1" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//280/tableOfContent" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-15" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-26" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-34" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-42" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-1" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-2" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-1" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aa)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479130/326-30-45-1" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//350-20/tableOfContent" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-2" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-16" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-3" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12A" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480535/715-20-45-2" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(10)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(8)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(9)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(8)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(C)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(q)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-2" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-8" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "70", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480794/715-70-50-1" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480606/715-80-35-1" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-9" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//718/tableOfContent" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.C.Q3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.1.Q5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.3.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483044/730-10-05-1" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482916/730-10-50-1" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//740/tableOfContent" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-10B" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-25" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-28" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-4" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-10" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-17" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-19" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-20" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB TOPIC 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "808", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-6" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//830/tableOfContent" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-17" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-1" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//842-20/tableOfContent" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-1" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//850/tableOfContent" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-6" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-11" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479941/924-10-S99-1" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483154/926-20-50-5" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(h)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-11" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-2" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-5" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-6" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-3" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-2" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(5)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r643": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r644": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r645": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r646": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r647": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r648": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r649": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r650": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r651": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r652": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r653": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r654": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r655": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r656": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r657": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r658": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r659": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r660": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r661": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r662": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r663": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r664": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r665": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r666": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r667": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r668": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r669": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r670": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2" }, "r671": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2" }, "r672": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-6" }, "r673": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1" }, "r674": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481027/954-310-50-2" }, "r675": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1" }, "r676": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r677": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r678": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r679": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r680": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r681": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r682": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r683": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r684": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r685": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r686": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1" }, "r687": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1" }, "r688": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r689": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(b)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r690": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r691": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52" }, "r692": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r693": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31" }, "r694": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A" }, "r695": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24" }, "r696": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B" }, "r697": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C" }, "r698": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r699": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r700": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r701": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r702": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r703": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r704": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r705": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17" }, "r706": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-18" }, "r707": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11" }, "r708": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11" }, "r709": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11" }, "r710": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6" }, "r711": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6" }, "r712": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6" }, "r713": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8" }, "r714": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r715": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r716": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "217", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482663/740-10-55-217" }, "r717": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4J", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4J" }, "r718": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4K", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4K" }, "r719": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53" }, "r720": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481372/852-10-55-10" }, "r721": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2" }, "r722": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F" }, "r723": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1" }, "r724": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r725": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1" }, "r726": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r727": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r728": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r729": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r730": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r731": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10" }, "r732": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11" }, "r733": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12" }, "r734": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r735": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r736": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r737": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-K", "Number": "249", "Section": "310" }, "r738": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Number": "249", "Section": "220", "Subsection": "f" }, "r739": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r740": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r741": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r742": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r743": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r744": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r745": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r746": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r747": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r748": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r749": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r750": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii", "Section": "6" }, "r751": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Number": "249", "Section": "240", "Subsection": "f" }, "r752": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r753": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r754": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r755": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r756": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r757": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r758": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r759": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r760": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r761": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r762": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r763": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r764": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r765": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r766": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r767": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r768": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r769": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r770": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r771": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r772": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r773": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r774": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r775": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r776": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r777": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r778": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r779": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r780": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r781": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r782": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r783": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r784": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r785": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r786": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r787": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w" }, "r788": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r789": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r790": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r791": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r792": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r793": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r794": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r795": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r796": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r797": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r798": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r799": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r800": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "A" }, "r801": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "C" }, "r802": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "D" }, "r803": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "E" }, "r804": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "F" }, "r805": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r806": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r807": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r808": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r809": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r810": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r811": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r812": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r813": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Securities Act", "Number": "230", "Section": "405" }, "r814": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r815": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "SubTopic": "825", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B" }, "r816": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r817": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4H", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H" }, "r818": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r819": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Topic": "705", "Publisher": "FASB", "URI": "https://asc.fasb.org//705/tableOfContent" }, "r820": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r821": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r822": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r823": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4" }, "r824": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5" }, "r825": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6" }, "r826": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r827": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r828": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r829": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r830": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r831": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column C(1)))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r832": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column C(2)))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r833": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r834": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SX 210.12-09(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4" }, "r835": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23" }, "r836": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24" }, "r837": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5" }, "r838": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r839": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18" }, "r840": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1" }, "r841": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aaa)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r842": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r843": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r844": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(aaa)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5" }, "r845": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r846": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13" }, "r847": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r848": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r849": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r850": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r851": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r852": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r853": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r854": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r855": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r856": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A" }, "r857": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r858": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-3" }, "r859": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10" }, "r860": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//450/tableOfContent" }, "r861": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r862": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r863": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r864": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r865": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r866": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5" }, "r867": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r868": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r869": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r870": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r871": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r872": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r873": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r874": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r875": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r876": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r877": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r878": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r879": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r880": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r881": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r882": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r883": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r884": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r885": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r886": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r887": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r888": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r889": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r890": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r891": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r892": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r893": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r894": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r895": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r896": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12" }, "r897": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r898": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r899": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r900": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-6" }, "r901": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r902": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r903": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r904": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r905": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r906": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r907": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r908": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r909": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r910": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3" }, "r911": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7" }, "r912": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7" }, "r913": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r914": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r915": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r916": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r917": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r918": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r919": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r920": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "912", "SubTopic": "730", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482517/912-730-25-1" }, "r921": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "942", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-2" }, "r922": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479432/944-30-50-2B" }, "r923": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r924": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r925": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r926": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r927": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r928": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r929": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r930": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r931": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" } } } ZIP 101 0001558370-24-001843-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-24-001843-xbrl.zip M4$L#!!0 ( #N"6UBUW1N+A!4 #O? 1 <&1FP$YM-O2?Z#C6W9AM!-[_K<>Z:#72I5Z5>22J62_/L_-RL+O1#&J6-_O&A= M7ET@8AN.2>W%QPO/G3=^N_CGI__XQ^__V6C\T1GWD>D8WHK8+C(8P2XQT2MU MEVCJK-?81D^$,6I9J,.HN2 (M:XN;RZO+G]#C<8GR:*#.11Q;"1YM2];X8MN MP,VQ[U"[V?[0;%^UWZ'W=ZW67>L]&CV%=$\@V9P6$6ZX><>-)5EAY&*V(.X MKPA?8X-\O%BZ[OJNV7Q]?;UN%UK&(T#]!$'L-S6GS.Q @4=/K]:7#%E#15:OYQU-_(F4+B4$, M7B"73VB2-2.&:*<$^6;&K)#];9,Y%FGN*,.RC,QS"[UOPMN0T.,-P6(GT1SS MF:0,WTBY0G+#8PP,9AN12\:<&)<+YZ49ODT4$12FFRP02'+3]%]&I%:NT-?- M/_K4_G=,;'>[SA%;ODG(P)F;IV;T*E' %M3) %QNM,.<2+!%<+-%!H M*%[/H,M$4E,CNYWA15(]=\UR*.%-JB5R6BYZE2A ;&_5SD*O?=4D&Y?8G,XL MTA!DA&$7QA7>:(MQ)3 8Q[-=EFW;F]OF_)M)(#+]MHS(32\;HK7@GV[<77=V'5OFRS*].V +()C M8RRSU1!O$EJ4&-W"X8L6#U\-:G,7VP:)]VNJL.9]>C"O3)M+R&PJ^YVYZW=R MX*"9H\I[?U2A49,99DZ+&6;2U VSP;U9+K%XZ1?X] ^$Y+2#;=MQI=6+1^'# M]9K:<\=_ L^$O=P),*=@"4C\\3SN94X!$O$),)233A?ZDF-14^#?P99HS,F2 M$)=?( HJE: +10B%,,F7:$&BKC W]WA8#+L]^ZUJ7Z/.EI?&W1U M-/FLZ]/)[\U]!GNL/9CJA_8G^3?,1APXRG81HW90."!1%#2P97A6]7([L7*+ M!0]#&-X4G.@A'\Z[S@K47XIQ\87T':X"2UU."5Y;#=YD"O\\Z8/I! T?X-73 M:*Q_U@>3WA<=]8>3&L[2<&*^?+"'7&K8 MGO* M#:;>I_>70M6C/KV3UQ,;4"% \OK@#UW=7U51N W#&''Z/Q M<*2/I]^0-KA'^O\\]T8"5?$BJ 1AVT11->B7H*)?:Z3WD7YT'/,5EIL 2P]T MM1?"[]0XAWE.LVWP:;25PUSZM]1F..^9T"+@YF"@VJ?/,883U*"T%_C?OKT\ M#H?W7WO]OK27WF"J#1Y[G;Z.M,D$)F$@\ 5!<4F0,T=Q6=!.&.1+4YM5OEGU M":RXN/QOU^%YXT0.E1+>F_1PT->UB2Y@E)R08%5C4X3-$W8]1MWM<#Y$1W_JFS6L ME$F'V"!0WJ1=OJ 2\-OT/-X;0$_7T53[0_=[NN".@#T*^*-?@AI^K8?\:LB. MB>'8!O0/J4(%9+,+%B";ZLKYR";YU["6@O6>S ECQ(0?RJ57F2(%4*;FZ#TH M0[X2S'I=5#@1$]<'1<0B1X1-EIB1[DZ!X5S'S(99+7J9 ^WAC%2 MZZN6JEI M&#RP /1?1)#S5S32Q^"9:6-=!-AV58I9.:P40:U(5EM;0[XU/&#*OF#+(T_@ MPL!O&>WT.U'P!&J'$=)C#!JU@SG-Z^E'<%+:0SMM#P]:;XR^:/UG'3V!8_8\ M#D*JC;#[AQ6*% 6,HDJ1K+4VAWQSZ'B;SPSEL1,\I1VZSO.D-] G$[&"Z_0&VK0W' @+@LJ1K%T, M&8'5A +(T&W"-J7WH/=*%>Q(WY3?D4:_)%G7 MO:WLGN;$=8Q_+QW+)(R+K2=W6W)S,Z.@$L_K*KN[P>3#M#1[1".#M]G31/0/.=<=,P7A/N,'HVE_^A$X/S$\3;[7" M; L]30795.SRI5!^$YX*([@&(TB%2^[U27?<&TEW"?IPY$:)[@G]1OV[@2))ZM71J4Q)I)X!L?A'.&.#P^X= M;^;./2N@.HVQEJFPP#9/Y0XU4"0*A4+[:#$]EACIWZ4JL>Y\Y@1;O MPXP%"]\*&:7?N_H"$TWMBKV9B4:B(E]6)(45<=(ZM[6JS8[)"[&]/!]P[ZT2 M\8QMD+'^11\\ZW7[%[<_Y7BQ8.+$E>R^Y6!1%RI *^7>A&C)QS'&HF,%K&LD M"Y'43%-6C*U8J%^-H[)( 8HI1V"'XHYM?->AAO!0".4QQH.03)1\!VYW"3]) MS^Y".VYAS:*MQ.)E. ^+5,>\+,<"4TCY4(6FX%>,J(W"JI%?M_"RPMIK,SG( M3(X_;'?@8;K4G%UH!O5!NV5!DE;K^E<=.? M1OWA-UU''7V@/_2F:-37!K4_>P2,(J%72B\3=F6HGC\X3.?K=05@2W I@#KE MM^9"'=6%8I7)K2%],AK5^%?#7VRN&5&TUG 6-OV;F"/"J&.*(_EY$^A1O IL M(>6\YMK"KD8_)!S6B?Q*Y:4"M2-;T23D-#OT^Y5FP*":/R-7+5X ?&J#+A=X M60D*:D%A-372%>=P1V9S$',,_V74D"G.T+#/(-PAT%?B5V +-^7G_K!6M*LV M,!!9<6T>U<0XY%_#>@RL5:\#J,2F /+W!T->WQ5P@ 7L%E1A\MMP?L#] 978 M%%C AP(+B*W+HH0]<,KKJP:.OVI LUUZ3RU/S(P3<3*;*B[Z.H"#"OG657IM MKKY<0-35,(/*T*ZV&G9%!-OC+D#&--M\),Z"X?62&K&4"M560Z6R2J@S#CUT MGR=3P'DL0]J/^O!QK(T^][H _\-P_!2>#:]W*([$-\C6@>YJB+98D,[V"?_I ML+!<[C[&6_$ML(O4$%#.+L(DO5W]:+9%4@(4B5#;S=%VPSO;W6N-$7R2R M*["25."NDI5P81N[>I&HN+:-PVVC[]@+D8=N^E[7&YE(2:X%EI**])6S%%%Y MPQ*UAZYD;3)'7UVD\BV*"RB!SLCISK^(J'8B"C?*&7;)@AHCS%P;9LXE76L+ M1B0J7ZF[U,P7;+N$BZMBQL02!U($Z7;*L,VQ(8/EN7OK;\A;:1,9.:B3Z5B; MZH_0W4?:>#K0QY//O1'2'L>Z- [TM3?]C+3[+]I@JD^F-7"$+ND+ZLQJ.JGG/-4K%V<[%::L>YU*:R$HB*E]+7N%0-[U<-W*O1.FSK MMT:M5(2]5%1=C4_Y*_UK3$X2-S])P%R-^:DCY;6EE(B/EXB'JU$L&?^NP<@) M:F9?\9M\J0#@6G6#37V3;Y5(9S82"DHE+-=I6'+NHJE1.B#\F0U6<0$E9M4O MEJBQ4\=$LV%*O%,BDO\AWKKEJ\1]LG%04"I1*7^&M4:I1# H&YPT@1*3H@]< MUDA4BA!E8Z(B5:'3NLKXDK#BE$$-UJ%AHVS<2I920GA@_F\-9:584C9^*E(E M:!F+H[P,S?\?0(G_S,#[&I,YVL@G+M!\O. 4? %R$3Q;,C+_> &X\4;[J@W- M>-WZ%ZAZN5E9(8E@GT!Y,V/6I<,6S38,=C[6^ZT35!RRP,Q(<7F]ECQ:M[>W M34D%3.0"C!+>#(6_0,VWT@IPJ*K5'G1GJ!08256EDG9UACI9>%95)RA"K).J MW/#S3N\7E-P L2CX(%M.[[T\IEX!(;I,!?9>$7X&AL[ MJY$&QXEQN7!>FL0PF\)4+Q WEF2%^\&]/3XUSR,7?T@3OX2J NM2UYHV=6IS M5YQ&SJXZLXCXU0C+-<2C1JO=N&X=)H7ILJ;HQ4*C=@-X7;?RFZ&HI/S-2PL2 MU^M&_C+=T@T1%A M<',P K=^![?%Y?W$+%>YQ5BBE)#@5F#0>E]:CCGF,\G, MXXT%QNLR]I=9IDF@FX=/JEECPJAE^C3;5ND'\2+ACVH21!IQYE9J@9#>UQY^ M':&Y26@5K4-R\<<1M8JQ@WNS@\<=*)M9.['\3[B*ZC]>[/;Y8/U$#0SKWR>R MFA'F3U)BDOZ7@L:?WJ&C-V3'OC/E[-)SR4H,QB"V-^,N=3TA]"-SO/7'"R$Q MO:- N$PD@-O4LH2;'O[V:=?R.K2I7Y7'@HVM7(UL;&U=:O"T M'OMOSE!ZD(H]V'!9&WZ9?-N!"JB]X#U;WQB$\^@3);N[XV+J'L_*;Q]? MC95C$Q>S;>G6R6Z-F?]%Z8\7!B,F=;,:R9^Y7$4;A(<"!C)U?Z MSAE+?__0F\)($.V5I93((SA#7<+XN$Q9'7G,6,(B0$3)4TH54IZA=CT8LAH7Y#(,9M=9K<%@_-NX&!/?W!!TG>V.9(2W MXI'VBIDIGW+0D[ 78MX3 %_$:,#V8LUP$NYQ$^:2[KLB+[\U*SXU"\/.%\RH MX"<[F+C+-Z&[DNZ4'=$DL^Q^6$([9^X" #"J0)?B9)<:. $DX!F/4@A3-E^] MZ!GV!_6<\[-,,S#PP+KP2OHR8[(.O1DF-LY6::W*4)^AEJ$S?9_K9M^?L?0# M3X@636L3!]H]W#>32N01Q$<.*KP[PK[S 'C@H#Z^'???X6T\0^QWC3 MA(I\U[813I;\!+#IP:I<7!=AA^?G@@$D\_T/ESOL,-WG2Q1><.LRD>WT_QIBO7Q&E]U&1GJ%?HC21O MY\QP5_8)?K2[DA4CEZ/SLST#]N);$ :A+S)U:."XG:!*/YJB;];$D.&4#JS; M@%K\T.:PK!N0C3M])=8+>8(*EKP@*G^2&G_(-%(U:?SDFB*Y2B_^'S1,YM]3U[_\+RB3?[$V";.@^>9:5O.(^I_G8LS],4 MP&'SQ7G"?AW-N; M0([B\IT"Z2E#J+HY9OX)3I2@$U]LQ,S:1OM9B2/0RKVQ$CQ^EIZ15'%,%TMW M. =/20Z?:47+M%,U)F?34.$ G;N;O(?Q(W3Z^ YRYNN?1KN#HZ91=L.;Q6'W M.7XW7[WTV!*N3B=T(U=/28E%CA0VEKD!ZH-*?Z^%;^DVB%WX$63)I7?;%30_ M3<<(%T^!Y.!19Z7"A>NN@"J=Y70,ES-T.'8.$@@>]Q:2V]9JLI_&!J3,X"K# M$_"9Y;GH0)G2OM7A+$[J6$6+[M+]/C>U;2^OJ(#N_ ;UI, "H(*TOCC)&791 M,#:9YQ+FN_3L$D-.?)%X*(.SZ=8%KF_F;?#RLG?P4#=NQP*0$T-X&?)]0W## M5S]X-22^-N*'1+HODRV'FM+FK2(Z0P/?+2SXU FO>A$#J!\!['HPX=J&?P.9 MM;]D.:3PSV+8.8%@Z+.6)^*@(HN7^5>UC0AX9BY-]/O#BI^XG^U:6^$5$C/V:1+FV/"GX=^ D*_\@>7/M#7" <@/7HL\ MF9[]0H+1?.^T@H+N;+IIT9#UF2Z6UK9/8;PQ8QI$0?PG[(J/SFZCE)E8&QQ0 M]OQ<\ZI*_[2*ZINUF%)42Y \BC,.KOF\$L_95ZRJED(KHI]"IW2JATX[H M#'5*A"4"#-)**:G.4*OD^511-LR&\6.J4R=:O(Z)D-:/MLI+H,2GXZ.L0IZ8 M2-^.Z8F'G^JAG:RN"$Y^21-/T9ZA3>0&I7A\T1/?KR@3T5(4/I=54<%*H+IJ ML1Z0VN!X$VX_='+VKW_Q[U#X]+]02P,$% @ .X);6 Y')PO<%0 T48! M !4 !P9&9S+3(P,C,Q,C,Q7V-A;"YX;6SM76USXCBV_GZK[G_PS?TR\R$= M($DGZ>K>+9*0;JH(<('TS'Z:-?8K&PG87_]/?(+V-BR)6/P 7IZJCNQ MI2,]YSS6RY%T]/7O'S-3>2/4,6SKVTGS4^-$(99FZX;U\NW$3OJ*;JM>3-BN8I&B>H277DWW%=E8L_GJJ4\$DH-TU1NJ:&_ M$$5I-CY=?FI\NE9.3T,9MZH#>6Q+\86U/C67;^Y">;;U16F=M:[.6HW6A?+Y M2[/YI?E9&3XN$SY"_:9&84K3L/[UA?WU#$4J -1ROGPXQK>35]>=?SD[>W]_ M__1^_LFF+Y"_T3S[\[$WUE[)3#TU+,=5+8V<*)#^B^,_[-F:ZOI:BF7_>*9F M).#\;%D6-P7[[31*=LH>G39;I^?-3Q^.?A)6D;T6*"1*SMX:.>EC6(+T*?FA M#IHW-S=G_ML3T)ZB?*6V249DJOC/OKB+.?EVXABSN*9E^.YGK4P>P MM,Z;K0#)_XY=,"3CR)UM.;9IZ,RNMZK)ZC%^)<1U3A0F_6G43=0$)'W2[-D9 M>WS:GY)58CO%&>K93&F.!4%285>?UP;3?J\&Z M$K9#C/>&HYFVXU$RI/:<4'?1MO3.OSUCSJJ5]>R>N*IABD#>0'8M&OANV_H[ M--]0HZX%K<:+\6R2MN/ M]:V+$\UVS.;NL9__(9P,.WJ4&-HB55(M9Z^C)*V M47PM>NP1D.CX?]_93BG"\$34B.=1=3UJN(O!= "\!2-8+_Z+'EC , W7(*6L M+B^\%AWT;9=%FB.U;M3W M9 I3'Z+#+^4[0"%Y]7SMQ TJQ\:@0T+'KRHE[#/SS+ W[JC4@B]R^;(,_@U* MJ44K#ZI!?ZJF1QZA'8+?_8%L8*[PB3ZP@+ >3(JM%YCY&J5HL4DQM>CEUG,, MBS@.]%_/AN6;;HEA, U'=!J,>:'F,-B+->#PSIL1O8R6JBM46F?:BJ(]>!?J MB=5OP^EMS ;DPR663O3E4\-EXAN-9J.AG"I+^M%,#3![E MGU)[MM)86(@M4V&;ZH1^.VF>*)X#];#GK S5/%'>B?'RZOIO=FP)YA* ;Y7] MPZ;(;ZKI-WWNG4KI MHZ_^/F6$@H+Q[+B=LI;=OR4!':?/P*D_P)H;.N]48< MU^_L.";.2GH8%A5&%AJPA,^:B N MU\S\+'CLRQ\C2=N;](V-6#4&TRU?K[8)U738(,E=K!FK.'E]]>?P*I8B:91+L,E-36P257N< M9T5 $/I\8'9,O5@#1HJ;@;PL>.PG:I-,AX$MSLQ =D M4PF U7N-TQL2V9._[FS+I:KF_F&XKW>>X\)L>CDZ7]P:ILFVDW:MSH=&'&

Z._D)\9BZC"M1$ _&$96N&T$M MAJJA=ZT[=6ZX*F\1CY,:C_$D#9(QFI) B' V-*'^1O>%CS]OUV=X6L-.7GLVLZU"\ZTG.R#C"4%#.(T9L6,1%M&CHSH1F\ MX6YQQJ0*KD %C7VU;DFP"*FB$-)W>%;7A&R@,RKR@ZA-,8U@,9P5D"=EH$)F_04A%+X^^)R,F!QZ1E M)C:RP,3[Y:]G:ZH,QWD.$&4TMIYO*35G'^GE!+S%D@4_@6W)=:CQ[+EO/FMA#M6B1 MO;Q4/)^W@%%3R^\5XT8X(>;!?+ IU,D*G'C:8D)5RU$U'ZVE^[^%9M/_Z07G MRJJGV%;JD#3,]?5-\W/-0XAM,$VE\N%0%*(:ETD47M.9OOV/+5+:_&M6U M7$*)P^O1ME@B'NJ(7!HBIWT@/]UOH^LA"1\ M+-HU([)[;UT@/&ZP&&'\34'VSZQ&URA/(F-7%S?=-J'CUWRBNN<#6R#@HM M0YL%&BNI8Q=[ MB"Q/7T@M3[?'/Y2'WN /Q,O2@'\M-B=,/%QJ:*"H,'9G\D$LY9!0PV9A -C> M3W)/@G^73HW.A_8*(P@R F5UIE.B\3Z275=B]ZY\5N'/_,$UL $'-@K6>*0P?S(-BW7+G-2R@ X:&%\#@; MVX02K0&R^@LT]@(YCX %9;6 \* "BQL1=%4)9K.+8OQP,-"##2F9&=[,*;YA MH)RP(R!,A8I!Z9OF/P.1RV$-CWZ!J_5/.L/3U+?RUB,*L1\"!TFJ(/$D-W'P( M[WF)6K?,^UZ$&2(B["@Y4UHQ$8OX#LD:6)1[24E\&%W0M4B*22JHB6 33O4] M3A4JB3B#R6V9_B26G6L0I4NRI+#D,T$]O? $6)#V8B1B*1O,= E=)ZP'C\ M/DY\%N1H,'U4M5?#(G01OQA>H&')R7T,K-A $PCWF*9(#OA@K.8NAJ9JN2+, M$!9P#.383!E;.$7/F2S'.CQIR\L+.&#+5Z0,C"?B4V06#*%0F"^I@?/KFV9= M=YOOKB$0T@'&C:,I)+>> [T="SWUG>8<)BO(=HP<$%%!X4[1&BC TA9[3(?Z-(=$E9 6DX6=,ZN "[\KMYO205 +& ML'[!0&DPC0^>!M9&P[3E@.S><.:VHYHP/O?F+(8F._WG1[LB^BK8%8=H]5<, M'Y'K'STCM8KXD?,* UNQ^IFVXZV\4W''5-:S>W8+H"D6Y^JB<=YH*:?*JA3X M93@:##NCR3^4=O]>Z?S?4W?( EVQ%V%IBFKIRK(\Y;>PQ-]/L :_XCKVH-%> M:QGRD]9W#:)((!39=8"JQ.-IPT0,S;DGL7H-%$[@ZEE2S$:0ZQC,S;2_UB^! M2WS"MI4^X+MMZ^^&R0(]KWNGVY;EJ>9:9%\=P!A3@QTH6$\OUTW G_5NXOM@ M]CI*>SSN3,:0(*B1$J^28D^5>*645:V4H%I[T)O MD!ZXYT<26%=JNC\I2KSC[S^G.AEGU/Y!5/H :3GM0CEAR>_J$KZK\YK:"S%# MQEN,"A$C=._)H6M/74(K94A"XO'0I!@V0C>A',0^="R3=V*^D4>8;+WR!AJ; M"3T>Q@@A1[B()-]\3M[MRCH?D'4\%,D#C#!V7@EP4')U Q-?VI&Q@PL984"] M$@,OVZ/5C5M!V'&Q@XNX<,/3=F? _F$DQ_^;!8>4F\5>IIV=O4Y[W&&S55^D MPF3NP11TB7^-X;'GE>PY79ZG:%OZ3Y7ZV<49\'Q!*0S+?:'R !!.Y))' M]S)LQ4^(W$:2%:_971?X3NI*XB;K('CWW^E MZ!&VX*+X\N?(DE*.BQIYH!$ZW*1@Y4<(2NXL!'ZU&2 YT'6%I'>0, M*NIGET MM'-P3@V;>7K\X2@>FN1M)"S*EE3&U:%1@(^Q9C\E:YFO9)V5,KW! M5=ICZ?<&5QNY+O%W"25]F/+9,0TEGRP]O(&+79? HDQ"@^=Q=Z&7DH6OI=C: MD%)*!0A=F7(Q.86B3NZ[O65 UMPU+._,(@[G^BRYM:N;]!)\MP]3@(XR:?_9 M":8 K!@%RE'"@I3?PJ)^WX-E*['+V;BI=GUG:7#UQ ,!DJFFZ)5R!;GP?*P% MQDCKW%6!^9GWTKP;0$.X&!21-0 C^]ER@.69NGR8O;R"ZX$),+1+P?7G1]&I&M%#1_;XKSMQ>A.]/ M%B6JR>Y6@]>A.D;$(?2-!%UHYEUVU4C>*UYL&[?X3JNZ&Q9X< $K9K";O[D_A_(?* %&H M"+W.V8!RHKP*WN>VL=Q#YV"3!RM<)-Z,&:&0XR1&'OA]&*QDH_I. M+.:NC6Y?W8P?:\*.DR.+GH6N@/#Y3^'W=6B:=1332=Z),$;<:%' MP)\-E8$P]DDYE%&*D9 7KJ3@7WP240C"%7P!I/$M*X V7+EPI'<*;:.HX^-= M-2HJW'2 @(G"^YIE=_#BY(FHLT407.%\ZG2[*X )_!R,L_ D 37 -^M1 ZF M'95:AO6R?"FU+MAL-)JI:!R=2;0V^%MO,![_K@P[(V7\HSWJP-M8V2PX1U2Z M L4K?OE[L&CXAV\[HK??8!S\0OK>[)G0P?3>,#UXZJ-P!I[KN*J5<3Y/.O>. M6P!._5(5@V;.T#AM@92,Y(?3A _GLJ96H:1AXPW%YL@1>N#:E#6&Y)'HK+?_573H),,G^@#:T0TC]*0]W)[3YJM M=!_ST.Z.E)_MWE-'>>RTQT^CSF,8]2_<>1*5K$ WHRK+TA6_^#WH8OQ-9@&6 MI7Y7&N!\6$69=AU9(+A(>^WZ;'$XPOGQM QRYDL$']@(+,(^H_T&7QB[\N3! MIF- ,V;?8!CT[=E=_<8QOFCV0[#]1EAK;OTC+S#,=Y\-*SB:%:$>3*-XE(7(B=U']NMDK9!>IO'UDK9 M<2M4$D=F_7.W255?$)Z6;%.U(CPOZR2N1A)*-POZ MIMFLN6_>$;VVRVM!11\XQU=[+'?1),=*^\7J6C2,<&=2U,%Q^!>]_D48,94@ MW&-4I:**3Q9MJ30\_-O3@621+B46^?:2N=GG'W9 XNR"\?"Y#K)ME^H2&C_P M\64XRHZ_T/S0^OPZU/8^C1+4OF;N6._G@64"EV+?_M_4$L# M!!0 ( #N"6U@;@"UH0CL "8 ! 5 <&1F&UL[7U=<^,VLNC[J;K_@7?NR]F'R8PGR6Z22O:49,LS.L>6?"0YV3RE:!*2 MN$,1"DAZK/SZ"X"D1$GX(L6/IH=5J8DE-8#^ M!H-+I__J^7C6\](Q)Z./CE MS=4W[]]8*'"PZP6K7][$T?+M#V_^ZY__YS]^_K]OW_YK.+NS7.S$&Q1$ED.0 M'2'7^N)%:VN!MUL[L.X1(9[O6T/BN2MD65?OO_G^F_??_&"]??M/WL70#FD3 M'%B\KP_?7&4_7*>]X> GZ\.[#_]X]^']A^^LO_]T=?73U=^MA_L,[IYBMO1T M@+X7?/Z)_?-$Q[,HA4'XTTOH_?)F'47;G]Z]^_+ERS=?OOT&DQ5M_O[JW;_N M[^;.&FWLMUX01G;@H#<6A?\IY%_>8<>..'MRS5^>B)]U\.V[_5A2"/;I;0;V MEGWU]NK#VV^OOGD)W3C\N_6!"U_>;-U MER&E^L.W5Q\2FO_?/*("9YITC8,0^Y[+Y+__,IPNK_%F2] :!:'WC.YP&+ZQ MV&B/L_$1#;3G;QR\><=^>U>F4TZQ$=O?U4WR/,+.YS7V73H?1W_&7K2K@F91 MK\T1?>.%CH_#F* ;%#K$V[*I-%T.X] +4!@. G<>;S8VV5%$O55 9[=C!]' M<7 <1'05>J D.1X*)S8A=!H^TVXBV_--M*&^H;O'OFL[7%-@]C^F \^VSY2# M-5]C$BT0V8R#9Q1&7&>:9W$Y]+HGAH'OXR]L4;[%Y ;'3]$R]E.H%KANA$WW MF#P*(V_#5L''$%&*[NC,IH2F"(T#>GI;>4\^&H0A MBBXS@ OU"XSPT\\5TR_MO@TVG)_5RE"KZ*4-HD84'.\0&J( +;WHP;>#R[39 MK$,HI/YJ^S'?3*A^Q1MN.(;4X!Z%VVU5Q)L, 84=[-#A[,TG!U-C^2_D/B#B M8?<:A^7F]V4#06$-G[?31'P#ARISR?E?N&\H#)A@?LI'[HS^2SR'>[(HWH^! M%U7.D6*#M<&B<4!)00O[Y4+WE[*?E@G;_SEZV:(@S"1T(9FZ7ELF^K!>9QZ8 MZ9(>-1 AR*4 Y>VKLOSM4W0((B\&\^/F8[.D1,3>BA# MI7A1IOLVV' =AQ'%DE#;]"/"*V)OUYZ3.X.FYU-*@4./)_8*#7?W]K\QR=J5 M8DYU@P)F63C<'7X>$&37R"GY6! 9=(>#%?,]NLDRT 2?3(=L@UVWMD?8>HGN MDJ4FW27#M',:I;8"6GG.@TVB@$[ZM;<= MK CBB/_F1>N!^VP'$36?J-!GR&=^;0:Z6Q!J7]D.-S;+'6"K'+@-UF47 ]=X M\^0%? )<9,(9]0>$T+V:3Y>)<@^Z.3&&]O+?,SAFPOGJL$ .1ILXF1DI'^>4H+" MC?T-B@G>LO_QL(]W*$3+=RG\NR^>B\C;@*HA_H*('GT1DWU"]OVQ =^F'RB9 M5S^\O;IZ^R$A]'0L8TKV(WE!],[U-OO1;-\OAW(N"(8%\GS/\>.]78Z4RP7V M=H,V3V4Y*D3OI-\*$/4V+(@&!V^3KJO$]:SKR]%=4[2($S^AM_O>*\18V'NE M/$YF<#U,SOK.(4R_\P)^&W9'/QZ-BEXB%+C(S<9EF%:U #($,A1\[!R-RWUY MF)R3&V8L#)'SS0H_OW.1QZ("OV5_\-4R(1AY?]RAE>V/Z DPVK'1L[Y\^PGY MO[R1_$H_,PK/?GU7-[;)8#='TRM%5?13BN?Q3T=('J0Z(,?H4HW+NDF5[P+M M7!*\D7,3*[$_H/B3==*#%6'KN&4')M># M+"P6!_PT>J[#1K IBS2P+5!Z@HAX.57!9.NJ&*8]K383"S:C+J_:RH[Y*BSN M$))^7^. ^2U)XJ'SPL_#W8(.)]!N \B41TI("#0R;(3Z;0 IHS$/V9ZNFP@) M%Z$SK^^*SIFV*SL%KO-#%#CKC4T^FRF^$%RN_2?@($C.4#*;!Q)P*L8Z;>J@[;7J>/(PP$VBP'2+D@ F@(^8F] M0=/E$0)"I=7"I:0HX-I3684 L#EI>5T][Y%IJ:(G2(NP[.IYN,O_(E#DX@U3 MUA5IV#)#A-HO!Q 0V+Z^EY 3-B R/P',AV 30]0UI!FQ?Q#);M]#3V:5J*&R M75L&!82N),! ['(QAE?0>@+?HJ&B$1/3 %1)9/N[B8&4<"%"CUR@TLZY#U39*22=9]L:HMZ^?0OYB#?I'%DRN VZJG#2$I&>#+S9Q)3:\\+=L_SW^K:U% MDR=>9!$;5*").SBWT0UW!Y@'>\?W0X;V ?? 52ILG4/D%^G*AVAO\HAU!C?" MR_P MD1_$34#/R!2!MC>?C"2%"Y&:GR:J[MFL47<+2?N3)]'[&W#%U;$!9,HI)20< M&H6Z;P2KIK-][3<1%2Y&:U[[%=TSY==TV_:M\HSM7*([N-/OLQNHP_=-8BAT M_@A^R6/9OM/FG(E8A?71Q5?6E-]KY9M 6B\7WL8+5M,E=_XL$9DN62XQU9N/ M BTR5Z5)"WBT"]?30FW,Z&]_?2TB4ER.!T?N2?UP;,X8#@-I-MTR&A%/ W&: M=R]+,.+;H2CTIT3+E+.%6L+BR0$[Z=F[9&L];\2MVYN#910 7\J?_*PL@ "; MG84'AC1/QT%*>:FY6K+UWLHNV!H>?PSF[04]F/$)VOPMJQ2X"EX=GV8*(9*< M<$H@ &D^L[1G[EG:L]&+X\=B!%C-(B\D^U1(EBZU_ M4I-=!Y<9H7*X-JE3)V9[#/!32 ]:-MT%Q@$5/4LQ'#B>[W$=R),BMMMK'N:4 MMY4/T^))0*M7N#'^'AT09'CQXT!M^ !=&O9_?O(0H9)=[^[0,Q(]NRS6Z'S1 M4#9JDPGY-(_G2*J7A2)M3UEBUA;$!#81.+Z,+9(IJACY:+Z:C0AI$O)\YK$3 MQ6Q583?QP@=("IC]4QPA# 2*)&^+E% RJMJ?#VIA8%/*CE\5";I,'A!)N@*K MP:Q6 T_SRO9%X46>&;1(_B+HUF+>CS 37Z[HX(YBWX5P0+1<(29L3J=4X\^[ MYQ06A!Y2*OM47$F)T#'5;<6>F H6DXZ*7%04(5>MZ_M6% MNE-(.G^^XPQWIQ6-C"PC=3.I:2!KUDIP]S$BDK!N%= ^H%L,!,GFT<@+&Y*J MMG/$@R3!W>+.(?P4HC]CEK7U.7W<+9@*&N@_KDXX9@ /@U:A_FOAB]![ M:%%\9B1Z;Z=TAAQ92IH"_9&W3,Q0;C M-[H92!#.=@,EHFV_U*"G(L_V#P]>%Y='/2:P6N#_G&=S0IM?DMK6HJ6UTC1INMCW<(S2/L M?)Y^20NULKUZ-)\^'&J_A<.=) SE@IZDLZ!D7^#X)XUS*=J\)*>..[AT+;A, MPK@;C7T?6W70^?V->L3=3V&8+JBU8Y*[, M$7D"].YR%"\O42@'R]"KUOLO+)9Z4&6AQU3(W,S8%R-_,O4;8[6VE*(&MAZF MG]?4%7-<%KMDW?PQH3[O(<\0)4L4@-?&1$[FOHZQEHJ*F M))9A7@,#QT&$5H0MX;][R'=G]F8K9Z4"N$FF?KB$J0H:JE\8RFP3="-&8_JG M](9. %@/]WGE$D=P*=@+4R9)U'[SHG56_V46]+3,[N#I?^PZ7BV@8CVUN&'H]$\@P6*TP1$R M"\QFZ_?HA>66U$XU.7B3XOKVDBDG)P&65%A@/%_/,"_.D)(D7=^4;0#L1D5$HZ$&CJCFR*?=K3ZB !';I^@. MW UE<,A+GSXCMP6"DA("238,,^:^SPX47A"S&\DM2NIY MAT.TQ 3M'PFPI#>48LHE+[#)CEN]$QRP4SWE)ML*M.*M<<0F->0?56A(C;R MIF04_90G0VHL+#VU@@B@FQ3N#U4)5T '',%,4'1008DX3F":%,*/EPOA!'LX MK)]&:T2.[E />%*DITOVV"2*B/<41\R=NL /-F$1)6I_R>7= K!DS?PJEY,* M7QNH,8>\57 =$XJYDR\/3/6??_*31TSNO^/$U,@H?V &/OU!P(""JE,3#@#\ M1U7-01.MK(F+<%3X!CU%N<2&S[;G,U0IW7/;1X\!0;;O_87#< MO%UU*%)Q1L#1!1-^5+= &?<*P+76Y))CS!BNA: ' EJE#X$J: MX0CS+ FN'7J.QG[5M '@JC,S3C5T !=2$>& L.2,5$TK'\ARN6'9H0_AM!K) M[*$!&$<7RV9/#!SI_$9M^37%:?",B+U"DY@Q8KKDZ(;3. HC.W#3E+ZZ):]D M7P"W@N );MNVCV=P:_>_C M>/'[F_Z%R\4H)@)CYR0<,'&J4B&IVW3@#8PA)>V:L\N:Z7C/Q@>^XXN+:W7F3[ M2A%HV@ P%HS%H2&E5=$L"*_RL./*DNB-4BP*> !>9F.1*,AH.2@ZHA@C-W,% M*&4A P;@_346A(R&=MK?&O9O#:72 MD9TOSZ1S#@A@VS>5TSGR<#P\ICZ%&GRQB?N1R(.R2_8%X#7>Y7-=01]X82>J6I&TM9T!G_=:-AC/_4ZH MQ.$A"<67.RL7>&&_L%Q!S!]#26)/"=* /.0R)R8*0OX&17H5=4&/ !YOFJT% M%U$)1_R)IK*+-HKN97(OUQ6 U:""*7#N22O*!S@JD6/' DLN8\54Y(V=&?HS M]D(O0FD&QF1AG"$'KQ(QZU>/>D<'\$*Y\$I3+T?@J&"'W_=?A+JO0))VGBA8="J)4TM'RVGF"V:$> MEJE,\BU@A%,:*)I2.GF*VI5.FG_U#$-U@*6N%0 KVD#OCD2D(PG6)!KNABAP MUG33^UQL=3MIUOP2IXO+*++$G1 #3$09:KY!F/Z6%#*1,)+( XLS(" MD5#3>$F8>_O?F&0;HN@1D@RH^=U$%V,FK+PC0KUQ)K.*R=/E$2K2NCL*V/;K M[LBU)>.W OT:BL9, Y2-(B\6(P!JN?*.5A_V16($N-? QL47O!>JG(\BJ):K M[9@S4H1\'9RDOR(37@KA6HS8+DR2$P%.%,J#D:H!C".13KMT4M'L@2V>)O3"ZL Y@C]R8EFF>>[* M*$DUKSQ-*%L .%,4$XN2FL;-W9D=K&1E/'._-;_0Z@*MA2>(',;M<%*HQV>_ MMG\X.!/[$0?;.^%2=FSBC92+)[^W?#002'Q_E#U&M 57P8N:D<>_MWPT4#'R M&-'^!>QK?0$K.:1E.9Z.O1FB8YH,$H"!H!:!$GM(P38GGM,'NG?3+^P5NI+, M W63SKQY59,!1T*/P9/G^\@]&/QADB!>EBM2U: S#UY51%0F&\GJ)"J9R@UZ M 5(3' WI=^SOP88=S%C!$8='D0[1-:;0[,-@&='3 5UC%U^0_XSNZ0!KX7+7 MV-#@7UFTG)?<>0[2,_3MO*0L',VO:F<=U9N3 D5RVV:>% MN8+5/+&CI$63Y/"=>12EH &>8&9HRRH&!#"3N^,UN'N /)@[]A7 M_#$;_^=7%$;[AV^R T.U0W0GGK]:NCOW .#:#EFY;O8_EM7IV?9Y"E3:?$T7 MI@4BFT/QT[#H(X$/M3T28/A:=N F?^0PYU]RW-_26;VQX4+D>[J0]NJM7L00WJ. MS#*S51G*71=#-F1RCY1(Y["WCO1VQ^H\[%A$6LJ?FHC-6B4X MW+ 4$&Y9*NL^%9>6&$ I2:Y;BDJI:R)J=U. =O3A^S/*!\)"Q MQ=H.%FBSQ80>J,>;K>T1E<^XR@$ 7 &5T)DJ.0!;<8S+89LV!G#S4Y' :ZUL M+=W)(T0WIR@MU4[)RFUDXAU<\E/D-Y0;'3]$R]K/XZJ(. MR6]K-!31"^/GO8H M">N#I%]KD'3-"V'ZD*G42KAO"\ ;:"9-0WK@'/W4"%^O;;)B,8S7.(SH]RRH M,0C+"5/:%P G8A7"E=+7%6'?(#=VV*_E+,U\

I<\?+41AY&Y91 M.(O\H@1-EP\$4X,]VC$%I8?N+>-0TPQ M[T^?%:"8L9;5@(GR>J'-J&G4LD/G3B-Z6EW!I1AJ,VT:M81QY"R@D$;2@Y.! M,XW)W6.F*VTNA@9PR"R@AZ5X^G(\;:][72_'T[&Z+Q46XH%2]V4_ MZ0_KK^U+?'@*V(Y4@5%0T#SGD_-N'A-I,1@%;/O^/ZT*[;DOIZ+=S%PX>%3? M#1U!M.PIU.K-41JN/.+@BD'T=3G B**OR]'^.O1 T-;VLH!1%N&7W/D9%[,H MT@$ NZE8;8LBQ+5_L]T7(6FJ"$EYR=QY]I/G\Z>\1<0C: 8@/N0B&0E(JN'M M\@U:(CJ437">8L]#C0UX=1:(:P[8 $A,9BLZ,'D#"$^A: M9H'N#D9I@7DG; T@T5#YN2>DJ",B3/?C@T%:1I*"3@#D*JI H +"X,AUCQSC M29+W?8G)AIU3ID^^M^+;N42 MCL,DP7^!B5JT8_"%,ZHD%I!.B(T#:M45LXYX@^X4O5!1T6*\JA?:JQ5!B?[L M#ZY%PUC/JDYD8:S\Z]P([,%\.D8?XEH!B@MOP])Y+A?$#L(EEI=^#08*N\[#=O"N/HLH)0%) CB0C3#C2!W^HP(15E\ M'6 #^"ZLY!&'HE*3A84\0RB!TR9,PZ*R$C8"(#KN0I!"6GK;V*^LIN8U.F] MM_1$=S#G, "F@,'MRSG>[1G6 ]?UDI'& 3^H\;O4@F;U6>[D@UE]Z-_*#=#; MU"5#7Q\(9@G55(:S'*P#5K(<^<:CC%,T>+JX!!%Q2F(-;/M1QBJ=.>&YB( : MPEFR]#=W=)P@1#Q?H,^2UF5C#^A!'$E3F)3LH^7H8ZT^[?>'XJ2UD-G@WYAD M/KY0L@J)@#KP9DN&>N-,GM@;-%T>H2)=@12P[:] +N\(#U K&[1=T4-\+.$ M'5(#/!O-L@/7VH_76^.]-=Y;X[TUWHPU7D$>LLTVCA Q*^$NA>Z>\:XEJ5T# M/@T#80$CZ9\WZ!GYF*/(TF.IT^ 7: _ ?"PIN@)$MBK,VYA0QL8[L M)TP8-+/8#=U'^C8 DD&7<23I":M! H9,;YW/DIS-9?@,SUMWC8,P(C&_Q&3Y M2?&*KHSJ!4C=!$#RY=+6F(JNWF\M9K:) M7JL)8PEUQ/Q=1OY2 M@_[M(\'MAI0PB42KZQ[ :=%,]M61#$=+I$C*,[JKFP X65XXD]M*ZLZ2PG[Q M?)_B,@XB.UAY=(=(]N>2H5K?G8=J?9Q.;WX;W]WQFZ+Q9#&8?!P/[T;68#X? M+>9]R%;5][0!%30Z**2^4+6R180VD:0/C LA V0PD!.3* M)XQ8Y+2O\4(+X "<=8TT[-BE<$9&^X6-T\K8^E+&)X ;/G" A#1T9^!^S.P M1#J9J2:1R>%G '/!3"8'E.&<3ZM,V?1TA3"$7D>O>GRE J9$TG3", UJ:%K2$-( MW<_]%CBR_6,D!LZ?L4?.%4IX=UJD.8 [58,'>X5(@C.-\L',IW@FJX3/5@G9 MMF?:&L#M:_'@;B5%L!QVIY^+^NW.,M=I_7:'$:UDR-Y_5Z\A,]PEF6U\.Q0E MF"K50X?\>X7H@FJ,'O!DN8J4'L#"O<#P"9908$,IBZENUVN89IGBZ>C86_NU MM]7X#U4M '@22^KND6]116*KXDH#H9&[0,XZP#Y>[6;>:JV):]6V N!SJ4!L M6C+;+M7ITH,I^!!J4 H M)T2U*H0)9G<36Q2A?994M414#0#X1RH0CXK"/OWC17EB^_2/??K'9BS6/OUC MG_ZQOZ2&=$F=N;L5._1OB!TID#MX1L1>H<<0+6/_SEO*G'&7=0G@8&8:Z'L) MF7 N$Q3XJX+U]6Z0B:E,1P .>A=+5$I<)V0L#[C7 M-0)P"KQ8=FT%W<\C['QFS\D1"=D+@&A7[*KN'^Z.X>E,UZ-!-FXJ,=LU_(6+*6S1U$QA7 M9GH]TTNGQBRFBS6B7[[G"]?9N(KT"";- -QXF2C5(B]$U+IB)1G$$=K:@+^Q2WX.(AD(<'&K2',*4.)&E($ MYS!S@K)[$Y.DZH&'7;Z0R">*UGX92V_T \ M!SW8'BMKP0&DGL#"_73&Q5""MOK+N>Q1F"ZO\6:# ZYW[.&@R-A0PX-W&!C0 M &=*<:3&81B+YOX$?>$_*9="@\;@@^Z+$@1'?G2K=1!RPUM*+<..U^O)*YPL M5$;?KC-A]@:TM."<&VVV/MXA-$0![29BF3K*IL+XX=Q/-[I_N)O^/AI9P]%D M=#M>6 ]W@TF? J/RZ46EQN)_5 G1CT ZY)H[1KS=52Q%19W-_ 0(AL--I"$B M+M?H5!N];-F%+U_J^#(C]^-(00$XS\1*L+>HI*C7P-&'["!+Q_D=V>3#^ZOW M4B MJH 'L'K6.1'RBJ#@0JO2_$@)56^"1Q 3O!-2>R([I:MR3 BGA.E_IY'ROAP M-G]42DW3!H"SH"DY:CC1]H75ZZH\JKNM[RN/]I5'VS%XSTLV*M=/!3P J^7" M$I8"HOK7^:9A+OWK_/YU?O\ZOW^=W\>_]_'O9@<9V3DF5;&]:R!^"AWB<=)G ME"EE_6FEAX-PN#?3F=I8 ">6D1/PI*?QZ93&_8:U9-3*@[LKSTK)@NE^@0WRNZJZ^L:P"A$P;QZI616[?()S&C>+J<>R_W M=(=<[[60CQ^.@Y'MK/7B+=4-@!@- U&6(@WL3#W&OM*9>MHU^&<*U9);M\B/ M[G_RP4,+1#8B06H:@'^/8$($(&M+]=;E^.[N2X (R[S,R) >PTKVUJ14?[CL MU%:20C@BEV,YFD\?3K*"G9AW"9W9E[(:'I6.T*1J_'B):E1*=6O+;.?WED)KM:*71EV([ZM?P16DP1/:+/F6_2DWG2KIME&QEG*\54ZD(BMP@D.GE'(UAYF (:\K%3^=_8:>8*CWU$TVW- M[)7/UZC"G21%ZY& M)GP%FI5,HEM,@M3OS!'8X9"JK6(*=EM',4$9<_UA7Z=TGTU*KORCKKR M!(+UUAUC?H,<@BB(X&JOOF$:%7X+;CP5[7#6ZM*W2OR9MYVWN:N]NCOOOU&% MN2C1285$ ].4,A.!__,KM7+VOCAIPKU*AVA47RYS659*=]V;SL!UO:2_?+XL M>^M1V[6$^7!1=XW*N)3O\7(:7\$2L+_JY+0.GFW/9R%5E%C^E*7JY4 [7*/A M1*4\G/7SX!6H5?)8+:0T+9'')@T]/^FMD:I':E29+@MHK(/\UZ-'TS@*(SMP MZ6::S)Z:M$@P3J,ZU$Z HYSXUZ-!?&G=SPU5^:-:1FI4BRX/9JR:?#AZ9.3[ M'?A\#].W'( ABYB$X_!A28K*E3?U$HI*>&U66BSRLE9 + M7B]2C,F]'3EK:C ?_5Y&'8PZ;%0++O*;7D+E:Q#^=,E_K%P']OTVJ@H7A796 M0&QG-((EF">(HT9V>2#E*>'23AM]*'>1S_122H$4(6#F2V(#A6&\V7O@1N%V M6[0LP0?CL@3[0:W1P*3)RMY)NU,V-5ZIV,R_\?$L0&M,EG* P:DKIQ.."3^_1("]> MJ<)E\^O&>_9<>A1N>I4['A=\$I(&>?$*%$X8>'#R9)S_>$,IWG.FD>@/ RS MITQIC3- G'W:V(2B+K]OC5U^AZ$MO+0.@UO)Z!8?OO?\U?XP\B"M<,C3)RL< MA*5ZZI ?L11],$*^A!BS_RL=D>;-8;@H+U!EB+JNN"0!O9U%- MU&?> .$,'0=T*T4'*R+=LQ2+I+)%A^H(*NF *!/E2J=I V-Y,U V PF!*"_! MS+?IYPI'AP*$SGZ)4U%WU MG;&[BH]FI<-9V7B]?ZKW3_7^J=X_U?NG>O]4;V#V!F:?&Z)#M:_ZU!"O*C5$ MGQFB9#6/_$%J]$*M5D]>P:%,1]V)@2M!'" 9]_FL8 >N?1WIK)*$"*P$=Q;E MCME735DRYL-_-<%IYBQY/5J8KM#LW%"KN@G& 5^(K$;:7X\"Y6;'23AGMOEK MDR(U,7IWZJ,UQ9$.J6!H-L&0++"X$DVL&(G.5&5KFC$=TLN+[8D65LQ+D8)? M?0X*IUZ/(N<,F!8TUGAT^!7T&F<),!V\('^@?-K-$!-0ECW*=J+8]MF+\0\J M?6P:D^X4YVN%/:]'3POO&C*NU)N,M!H$NU/N#Q+77H^RR_>AIK6Z%";=*4[8 M"GN Z6DU3I$Q2R@8A)Y3YP-PQ7CPBRHVP(37HUGZ?6&P6A&TH@QO1/,NP =^ MQ4< 3 *FN=5L"<=$-K!%GPWX%12/-. ",.6ZW$%Q\/GRTMF-K(!F0W\%U2<+ M\0/(6Y5]P?49_9=X;&WF\42/=)32CU>^-WZ\LA_>.HR?OFCA&/3O6:I$D6OI M@@Z@>*ER M.A-R@GF,->SJ5W> R*DGX*_X^*__!4UQGKR"HZ"6Z..W((WKX>GPK_\-3F&6? U:>%R8 ML'$M/!V^.X^ &F/)UZ"%Z6.7%A51@,'K?VI4ABM?@SKN[9'&4VA7BMKK?[I4 M*;N^!LUN.4-\]?B]_F=4U?/L:U#T8RL*GJ(7QN_U/^&JGF=?@Z+GWHG#T_)B MR+V>1V$-,:R%:^LD#>O"?D'AQ"9)*M5B-](_OK\ZO9$>3ZZG]R-K,?C7B-]# M9QWW]\R5I4&G$AO$T9JKBS8K_3EPAVZ>920 R$6?1\H@#;T(',95L%JGU-( M<:]+D:#&A.=\SY7 KC'U6G54=UY,17MW\$. IZ'H. M0T6=NUS7"L"-6A'):.D!MG)IRL.K&G2NKHF8#( "*;B=P(LNTNN97CH@MA9> MS92..T//*(C1')%GST'CV5RYJ&E;@=QNU.$_6IK:+3UC^]X2D\"S;^G1REE[ M(2-MB.DQ35V*1M\.Y :DEI4!5:U*BYUXDU.V[^,O%$,TW-V@)2($N8S*,$21 M8E,R;][\%J6+AI!N4>9$M6MKGZ"DW*IDP# VJ:):>&2 2RBK(3?[83+/;NAP MUW14+Q(7!#* ![#SJ%5HGX-=34?[1YT^W!1HN&FR6][A,+RE]+.WX%X0>\%J M2E=M/M_#(:**E?=^9N=II/@3MNQ,Q)<1-8#%=N?93W3ECCP43I!L9FE; M=29N24M)N]$6^S_3 IMIWH"BL1MU]AGZ4%%5\A*)+7ZT\Z=L=/EF0NPJ'?M'QKOVGY0:S^JA9=6-BYWNR4C M][ZV6H(&PT' DJLB\HQ"3>Y-T\8=\L69D@0LTC./I-)/9]84AL^NF&Z:2Q&$ M/\]H<54ZF KU ,#W5T1KU<)4T-F[IGK75*E5$& 21=^/Y M,8N4FR,G)CR^H- YX^K]^2W^9+3(SAK_>3>=S_]F/8QFUOS38#:BO[)!J1V9 MC&H=ANT/&57D\:?,=<\D.GIQ_)@*+PF-W6SCB"OM=#FR":LWME>(X4[<@:HJ M0)TC=N@X4RL?6MT0Q(AIW_GJF\$X^S0P9?1Z N;!<%8)AN?(3_( *8]&"G@ M!R%3U3V*'9=3U%=_J-R(+B.A&BLY2.Z?CG2"5T>2OU^4PP(P:XNP6T--?_[O MS__U6*'*UQ,5]0U@Z3/3AHKH;>'(>1V'$3UP$GKR_8CPBMC;M>>,@R4F&XYL MFHF#8NI0)M@K:DK=V__&)&M7\"!Z=7X0O7Z<+^@I=&8-)C?6Q]'TXVSP\&E\ M30^GM]/9_6 QGDXH5(J'=4#$>MI9'!5KCTL'3J?.&KFQCZ;+E"#^$G+TDJ0] MV1/"9B_LM.$X'1PP"28//F=>^'FX&Z+ 66]L\EEQA-4W M@W,.K43(1[$]6N+;#;TZ0R]#3GGXU#>#YX8%L#)T53OC@PW,37M.F\<]L$5 *1 X.P& J(Q,Y0<"6M9TF M D39 DXJPR;V)R"Q(6>8,;R*[4KY%F W)%7XAY*BEF.V$UT[PU"=3T_7"N+6 M=*YWQ\';&I*J%U-(HIR(Z*>#>.B'/XY/>8(U3P8$)QU>9Y010I[TY!6EQEC'3AD.3N%/,:&3C4,W ( MP%HMQ\!A PR\UC/P&L!=13D&[C&O^RW2'A\]-V_:X.9W57#SIFEN?M1S\V,; MW/R^"FY^!''F+&BJZ&[6RG?7VOW;I1PX$&07O7?[]J)[MY#=MAT0L!@&_6U;-V_;NN7#;/.. MK?=A]CY,K70.JV(Q+Z9!N^[Y,0V(@C65NAM\T.;E3A]\T $^F-CP*V_1L?KVN1TIE5A2*V$[%8=$[+%[K0;&LMZ(_*/8'Q==X4)Q0VS>I1=3\:S!]GH_O19,$RI:=&?3:RA0/+MO:C6WSX#MCW\-,7[L4^W'&> M7_MVJ$H^J("'8X]K4P2-@VT<'=?9SA.E#)NH M;S@8X19:Y1;J1.7,:%6E[G& =OKV[H^:JR,56M#&[R2)!A"RUO=Y^B:[>)F?8#;F@VT52A7 M,W)AB)>O0R&GZTI=65?5 M(V7$1AA>(3$=AG..TSG,HNDNUP33=?]K_1G['W M;/M'FG?P*\ANE>@KE&+47O%)*8CI 7_[9S%D*"5YSS8) H0 M"=?>=K BB!/#(H8&[K--EW=>%V>&? KL,M#=@MA!:#O\=%/,H_OMN4=WOI@- M%J./XVOK83!;3$:S^:?Q@S7X.!MQUZ[UVWCQR1K<_#J8+$;S!8_QF(WN:),; MWN!WB[:?S ?7+,QCWCMX*[FD$XMZN,O_HC@:%NF@0R[@(F2U?,MZ0$=Y#A0! MPCCL%==!F:3J.]5I(F$&RR5W("%W%- %<"<\Q*D 9S=Y)J41;_(D&]U K!' MRM/E@%#%6?$YK5BL)+ =.8;#65C6\^#P2[L1--R1R1 M9\\1)7R1@\%YURM=^^3(M\5JICHI(N(K= UL^Q&O*ITYX;F(@!H"-0>TIUWD M.8I*7F<@+<>W:K5A'YYYAGGORNY=V5+I8.?S. QCY-[$[-KZ 1$/N[QZ5#A! M7_A/Z,$]N4(#B^3[HJ. BY//:38<>J4$^7UWBSP0&G1B(Z@W:=\5D; MT )'8"P8-T)D\Q 39VV'B*'I18S&1-?93YY/ MT9.>OY5MFI3+/RZZN%;3T<+UV3 .*<)A2!?&)R_@L7X3YCA@+H!BMV+?G=^* M#1_GX\EH/K>NI_?#\21[Q+P?H ,77?O'21FC!LZ?L1=ZJ1\_]\GL;;)I-\W. M20%6"F>S%!K.-5A)L>7GJI3*5E=/$5;L3X+4R70-VL%P.VM442>A$YK:]490 M$Q.%T^4X<+UGSXUMW]^--QNZ41#/]D6:J;!W_'IM@5/L,I*8ORZ:+GE8JEK>Q;H X!4K*N5B!,(X\.Q# M&:?+)+8Q0Y"]9T]/9W0?HK_%&^06/15],#P5,2PLCH:%E]E#\ P3RPY<*X>+ ME2+3GZ" G*!NF48BGOF KF%VL/(H$EFJL*2"E^Z%>9$>7M5)JQ#E[;YKDF-Z MP)-5;5,_7"O:"XR360D5-Y2RF.I6)7W#WF?A+7(7R%D'V,>KW]LE6H;6W58M-V0* J5V!R)0D0CLM=\/W*+O][WV/ MO>^Q]?VK]SWVOL?>]_A:?8\YYP5+\K(*O+^H:>!2-+VE9^^- Z4?(P5Y"OF- MM$8WZA@0@&%5UH=9!SO@^#FKI#)]JI][IM^ IHD&!;0/U3=[Z])5$4-?J;[F M$Y+R,*HF]%4P**#5L8/Z*F#HZ]37@S^@B87U:#1 MU/=T] C3L)13;FGZ3%$ MR]B_\Y:R&QJSI@ BQYM5&C.VP-& CQB[7SQV/!-*^? S@(#T9B5Y(!V.M*KG M0&,'01#A]-W=0(Q3YG=2%_/?-.>A$(X*R,QIPTTAY,GK5+H;M$3TW,!*">9^ M;$#O9 ._,I^%8E+7I;TRSKY.!4Z/O?D?'%Z%*GRP=XK@JH9Q>&6NC1;4VH#) MKU/#FUV76UN,&W!WM*"UKVL%SHZ#0E(GJ&)[53\:(,]*S7:JGAX/A'JV[S!O\V]_.$3KB[_\X7_^^__Y?_SK M_W5Q\;\O'^^(X]N''?4B8@?4BJA#7EFT)2M_O[<\\ID& 7-=7/>WY\!-"/SP;0N;Q5ZOMC@5;<26BC9:)OQU)GQ6.'MM(IWQ.C8GYDN>T4R_5LJI@,7>A[ MQW\JZ$??(NHYU$DT!)85E(5$(@B ,)#V[0(]%^+:#\X-%B8A$E+[FXW_\JU# M&>#,#_##!?P@[,1_^=N5S[%S_AQ&@65'"24A_K_]H>SS9M8 H8'6/"A*;@5V MPHO_6&.'N,6WML]Q;1]=N/$7([JO W]7+JEDYY=\^#?WN?D7FZA2T".@H7\( M;-KH&\V+K[)T*B)O 0,9]2Z^/#60^=^ODV'.\ARR\"(6'R/.AO17:AGA7SS23GEF9X5CIFVG8QSGDOF-?C MU.O@,]Q>5I"PLU52MK9 MTR15(LF.YW(/-&"^L_"<:[Z"JE#ZM!U^IRO5[-3K"HUPNUVYJ)W]3I+E:PV' M .$1A\O \D(&XW4MX)4TQ>]_*OW.AM23=KB]4"EM]Z$VI3P:",H%]@USZ?UA M]TR#$KU+FN!U/94^B!\%*!))J0;!CM#7G1O[[]6P_X/ I5L)/$1_2K_R#%P7' M*]]1>V!=+^P.J:5UT3\KNV!V5SW!.WIO@[^>.PXT6QO_ +N1' MI2W*VV+WT H-B]Y9TA"S9U:)V]$K8YJSY 7WFCX&?.]XC\N@Y7_ZM59 MH=!R(AYYKEVI/V;-)N"-)<+VY8M &L9S(#ZR'XJYQ#)X"/P7YMGJ.:FR^40\ M4J%GJ5N>M)V ;ZHD[LM!TQEGPF%D+WWPP\AR_S^VKUPW*1I/Q$-+=2SUST++ M"7AGN;Q]^::D3CCYD=9!@-;S@%H*7SSY&*_WE>F1WO7*?8;3PTHE;.M38@ & M:B.Y$-PF=A^VOJ?>ZRYI@M>55/HD[G3Z.4Z74DK9UJT$02(HCK;V?:+V(>#N M_/'[YQ6+2N\*EC3!ZUHJ?1+7.OT_;+-#W]'*]GE6J2N%7A0YP^52YB:X>2U(@D-QY.+=[L+9>8*L[D M%,WP>E657J>8E6^#T\6BL8XW5)/Y(XK3"!_\3O0)PD#(CF,Y:H_^^[!BZQ W+\( MRF[9J]IA=TV%9D67/&F$V155HG9TP90LD73'U_ MRN;8W;!:SZ(WEK?%[)0U$G?TS9@Z26Y$5BZ,TAK(Y M=A^MUO/T&DU96\P^6B-QYXLS*76X4&TE3COF;=;@RHKHQ@^.2AN\ M?JJO\^DS/'4/G'[;0.[.3_,X#\NSF>7*6UGB;X(AR3B2WX#G".D6XGG-EKIN MW1S@I!%>MU7K=#+MS+7 Z985#5UR^_?O3UN)F6AXB2 4)!^/J7=;J M3MA=4$?GDXWPBAZ8G51+[JZ;XH('$4QF1+(A.3ZC>3*?%026>^LY].T_J'I0 M/F^'WE_+-3MQT6(CU%ZI$+6K(TJR1- EG/#PGC?G4U%'S(++5S.GG^/UM%)- M$@\K?(C3L\I%;.M1*;61ELKQ&UA M*T:X9)RU2Q ?VR,A'/3\,=]R*MYXIEVY+Z;-IN")Y\+VY8<"&D?RPG@G77%K MN_@I7F\KT2*=YF4?X?2J,@%;3_'B_!E=DQ%U8^&77'Z9!O] MP5F;],/GQ:VD;[VV7=X_+>]NK^>KQ36YG-_-[Z\6Y.FGQ6+U9-33RZJ,*!M- MQ'O/*HN4MYB 1_93322[/=!3"9%.'G>G*"52V7 BGG>F6ZGWW>$M'*(A:P]> M>-=?G9 VKC@/0QJ%\6YCS;BN:HO;(2LUS/MD:4.\;EDM;M=]9TM0_ZL)E[RR MPNW<<^"?Q=\/[,5RN4#A/+JR@N#(O,W/EGM0#=.Z?7&[;",+Y%U8JR->EVXF M?FL7Y^0)9T/$#SE&,S*/2,*+"&8G_M^+!:)\\4O#9H :?S;\0#-&1F9$6S^( M5C38W7HO-(Q@:%3.B1N4OBC6[X Y"'7T+$\**]GB#4DOJUCN3 M,7&249\13G^F>&,\3IR.HW*04]FC$:0ALUS7?X6BZ63M!U 7WF$1<7T^=S82 MT \!W5O,6;SMJ1=2/H581EL:%!8*"@OJ]<0=W@VTST>Y1C>\P=Y$^+8!$/,@ M,9-0S)T%GS0;AF1H)/;'M !-+ #39E]8P"ZLEXWOX.CL%: /Y-J0G4AP]NN$ MDMJP ZT?66[E0-NK1BM@AR""'@)_3X/H^,#UB#B"P*)[#[-R/HM0HDYE%]SQ MI:-O<814M\<;?5I2MQ\1)/$9$>1G8DQ,.8@IL:'1< 2EQ?!',V6]@92M0Z-! ME97@M"]5V01(+;D<%B0VV4;+]1<^XP'85!BHK@]NF-+2.(]3E1WP M I6>V&W].*5.!/D9$0PNENL+SD).W(T@U5A:NT">!$)I?WUQX+]8\4SJ'+=& MB>1/ON^\,E=EF-S'N./S5(]\*":?X8VZ,PG;NEI":(@HVB<%UZLBJ7=-9H2* M9[ODV7*M\[)'/6KV%%E!-+)NSW3#/&]@]6KA;VCW&P7);KV("\V>78G:(9]W M+=YL]P#.4X-RFEUQ(V 3_?/HJ-,/+W(VDKYUXJJ42<5P/4ZHFM&7T(0',1GB MUW1-@X Z4(QY1U?66VH#A;4J.^ .YWI=\T&L;HTW=#5D;NO ]2R,!.^ &B>D M262]F5Y3Y X][KFC5QX&J-KB#LY*#0N[ &4-\89DM;BMU[_B<,KSO0OSV^M2 MN5]3A_"P*KW^=R-<5W@<\Z=4[?.II8]=<.-PQZYFY+&)4\]I]90?< M85.O:SZ4U*WQAI>&S%VOXKL9"R/W\9,+4 _6$2X_Z5T0/&N,VU&K=2R[%%AL MB==!:^3M?"MN+^F:<,S%;N_Z1TH?J6M%U#D/185)=/KA=E=MS?.>6]L)KQ/K MB][!GX,#7\OQ52+<\9))TN'0-Y LR3/UZ)H9NZ@-PFD[>%5[W(Y=J^D)%)#SJXFY^8/YBPN)YL=J#Z[MA-N-]716WUTX[8'7H37E[NLP"6^]Q9M-PW"YCE5]I+:_\=@_Z&F:N;YHXHS;7BT& MX=T+0;,HX,3),LLRQ?6K7MMX2ID1*XH"]GR(8#N!1#[YP+XFS[$$A'EP(,YE M@&=WMA]&(3EX#I_E\JDNX6.D#4INJ/R4KQ:I6,#9L7;$DML5,([N:+3U(7SW MW*!4_@V(.&S-(YO"8[YG&KU2FG4_6*Y[A->Z/K-ABKV36Q\?$NF^CE>*PC;P M3C V#@$5G9EX'$C?+!!K1H18(#^3IST.Z$K#B.W$.C.2CR)$"RLB\IX47,@B MG,@'QFVB+U6)T5*F(#&WRF%WD.O;S)JQ_<1B6&F^:,N%LP(JWD394G!N-ZZ\ MY0K57[E#%G/YW/V$<;S/&Z9?:66RX@+"2N[VUHP W& UK( M$J1EEATNY3=##"1E R6.T+@L=?Z<>R5#$(YC#.T=&=\ VPX MJ$D;.1T<0,/B^S3#VRCQ_DYZCX767_2HZ8([!G7T+=D,+&V/-RZUI&X]M>*C M:9)H!.C#125J],1&L5E2?V5)HQ]N=];67&-3< J.K2]Z6^^^SUUN\M7;A)@V M!0?2/MYV@,FAOB'&NY:8&YGU[B:J.B"/\%I=SVXIEK9&'-/U,G>=3*I9F(GC MX30^OZ%I.%9S:M9/L=%'8XDVBK4;WG@K$[+'U9KI95I/ZS/#80.U3YG,X0,-.1^C6=SHSVC+W:IZZF62SIK0E'^[] MB)(_?VTF []O_[[U78>;!]*&\+GY8?=,@^5:5B]^L *193?))W;-0MOUPP/_ MJ+;X21^4<:- C]8K%@7H3!8OJO2I7/NR YD,7XET-M'1R)7RAR ^11<2525T M+V^).SPJM#M)/'G:#*_[5@G;(:UB?)&? MP@D[>Z'N,6V>\W/R V_XPT?1!W[\^+'8Q]BL$JN)?YS]RQ]_E"86UM8Q\5]F MW__EQ]3$/U2;>)SS0,<15=DL]\%BSJUW9>T97PZKSIF4K7$#3XV6A0/ \J9X M8:A.X-8O 5*Z!+(67S#OPI:D3?CI*J 6G\4>:P?%TH:XO5.M6]XQSUOA]"$VKHX)23D^P;T]N&TW(WPL_N.?OQ/C!O_QXU^^ MCP<7\\/'(XTLYE%G8060"RV<9U#^/Z7GC#NH'L M'=Z?I7=)'4G3T#6I1 RQC<+GC?N ;JD7\E"3UVSN_!#R_RS7*^M--30WIH+; MXUM:Y>1^51,2>&.AK2)]!$;\,#//492+P;$%KKUSB=[?U;I5[S?C]=H*6?O9 M#99$R>70*5]KDMD.H.="KN%CS08Y9=/,9CN (1UX,5+ -1I]T1>P0/-! 'M5KG8Q6=<8=[,QNH3S-5/?&&?D/Y>SOS3$\P MR ?F$<=W72L(X=FGW"HR'JAH&;"DTY0\7Z6SVN-/>TS%TY5R M]^;A9R=RPM/E7]&X]ZTX'&Q@L;3#]-RZJ&N=2\O6TW+G$YG[=N7X)!FA&R^S M0^L&YBKVFIY#EVA=Y]6Y+M-R[3+!^_;O_-4'PTZ>NTC2<$:NUQ.WLS?07G$5 M:WH3\2;"]W.;".,4/&<%S?EW=8_)^+G.S+NB^23\NO-ZD?NYRIAZL6'/E?=RQ%)@5U\Q M1]T:M]?6:%DL(5K:%*_'U@G<&G.7]T_+N]OK^6IQ39Y6_)_/B_O5$UG>D*OE MYX?'Q4^+^Z?;GQ?D;OGTU)OKAD&4_/02^<[ COGBEP0NSZ?R- MG6)L13.<3EJG%WBGJ@T^MZR5M/V>FB J3K9CNN0WH/R?(SN?.,.7 H37_LYB MI_E_Z]JB=T.UAB>^>-X0M4-6B-NK5TK:;?Q2D:Y\[EGN,6)V^)G"T_83#15- M<+I9E3YI;O"3SY&G^E9)V]:G;KVU'^QDI:0]#>"%@N0W2?$T5'I1YX4&SW[Y:]IAM>HO[F^]B&X"V*;_E5'7>;1V>S4"5#5&C 6U M.J:HH&R)'!_JY>X?*3*>Y A,2<"YCHL:0ZJ=*B=($Z!M%$M&UM7,PT:9$[]F MBZ"D&4[PJ=.K^$2QV ;?++=6TK;^EQ TDLXH9G[#O["RHA&WGNT>8/\7*ECS M_QSUP\-VE";AN6VL4^+<3K9:WQ8MGM1*W M/U(-X^2A"6DC(SR(D99XJK!!O@U^?SS3Z-0)TP:X/>]#@:&)Z2@JPYCG9/2-I BAH@#A)^K1P'*YOG-GQSP&0SMD MKJJ.7^W.N .YF0T*Z46T>N(-[8;RMTY#(MF0F(\(]2(GH]$^KA5F9",9S62! MU@(O(_FT=E!(M)S4CFEAR^%K!#QSF6<'Q-J([4;(23I-\L;ZH#?0A.6+'BL&M??Z 8Q!V MF!%K>*7;(X&HD?X!I/LZ.R27 I),0B)%C)&1""%GI" F$7+.B"C2G(DZ#(CJ M'B]/P?:NL/VS-'!6M#Z!9',@S,T1[_1<4H^NE=GQU:VG 'Y*+<^!ZZPI=M!1 M"]S1:3GA9(.2?(AIG[Z1'&^:-*BJZE <$\+Z5T_>@L&!-_UK>-Q:HG;R;%OY$OAPVEEJJJ!3DF'>10%[/D06<\N M7?D/5E#_HKP'LKB#M"^[Y>.Z*TV\4XK>-&L;8LN20B(%(#%R2TYEEAL^G6<; M[^H0<"/8QU5@>2&W E]SS#U'_.:*%B@P&#"# ]P!C6#-W0I2!NLMTAMT=F)!:<))*3G.AB+S4G/,FDGQ&8 M'/AK6#7-2*P#R2L!KP*E&C,BYN5&SHFF]7TE7X:=?!E1SOA6*DHH=K+!^M'9 MFXY1QH=K^AP]42ZEK#'Q8C$7[,#%?[)<^L4+J.5"OL)/%O,JEC\MR.!&Z;9V MR0-M4QIXL;*U)FW#!QB2C..,I#S%635PG9&,+P'&,1 : :?1#72UY?U@@DD. MF14VP@IRQS:@LKX=Y'XHV"[D A$'[!OF[&L6A70F[_W-._6IXL:HGJS6='WX MKF9[314;;/XF9F%+,0LKGX2MDDF8D7U>T_:3^\&8BG66&*.FA&UU#]Q8HZ'M M229:57.\&*$C=(<\M&>1/\O%O*%G;6,I//B.>BV X=!U%&1*2HHGM1DNK9#9 M-;OI=7UPHY.6QGE\JNR %Z'TQ&[KQ@EUPLD307]&! ?R6\)CD!1)M3@UK-IG M)WY9G1$C6_:EVC:QS#3#53M,)Q:>PX4EGECL7C.[1!\CP7;-W$.DK(.B;CVM M@#O1LBKDXJ;3";I3@?L,NY@VBL#K2\]RG48)OE\HVVPY[_D+#:P-O3] WL/E M^JP*B,X$MBTMW(';R4+YL&Y%"&_0=U.G]2.RF"N)V1+)%S;.)6>28XUD[FS8 M4E9L*3NNPR/-= CER81MN?8!SBG$^0.F27@CL_5A^O<%19TAZ)U SV"0LZR M'/PX,\AZ8:R;N08T):^G>'I>R0P12L932MT:?F4+4#A>28+=5D#15W6H<[8PD8'4EA7+< 0.I.?4W7S&9&XC;HCSM2&UNB,/75[8PWGINKT(?K5SR1-#T]1F./ M.T./'76/\J=W6*]U'#^A _?^CU+'.2_?TX#YSL*K3*;9OW(+089<6KR_S;7\ M(,^'!WFC*%5\BJP@&E?)2[IAGJ>CYTA'?WR5\4CWW'Y;+I]S?0BX; _".C]# M90;EP5)]/^1@HZMY\1BPIA-B,-(6O34XB05ZC@61/(AD,B."C:'V9:]I!O>)[(-%M^1C:%DP@@'4\6U^ M!+\-PT,)IBUV>]<_4BK:/,32/W#]JZS8@M8$X*"MA)+Z/;"AC"&N$,<)C'?_<\*A.*OK)H2VAB--DBQ:K] MN=%,XI($8Z7)*F35$&9T#&;!77RB% M=AHE/EON116HQ1L-;!8JTU*TH3-)B*JWC.[4J93(Y&!)0Y4!ITRR2!.CJZ##D/&@-W&F[R MCFLDY) [I.H=,1?M=.^1AE' ;'@+"ZWFKU;@? K4!1?:TIHD!.M92'?JIR0T M.2#65&? *6#&/$9EP9X(_KA :6!;_^;T?T-'59\@9X'1@9VAKU>*.T1E/5G.+FT#<:ESY*^OM%SX[@[P' M7'"HD!.GD:4.W'6D7BB*9"G,W(TB;BCJP5K%-WBMR>$%I3Z4ZG01\D+0)0_6 M$80@\R" 0DRRD-XUM>$E#25K/Q"%7')BD>6SRS9"$$,+59.F2S;_0U%D*GEN MI%RY0<'OUTPNWLLC+VJD,W MAJ.N,"5\-)E@F3#Z=\/+&01?:+!"[.I MG/4^4MO?>$QO'CA:WMG!2$OL'/IV\.QDXK>66% MVQO7?PWULTF6=<&-GCKZ*G)'GK7'BU-:4@^0*?)J_O03N;E;_O)DPI?O:03: M/@3^"W.HW(H3;[]O;)A\-S:G@C9$. MNK2.',Z/K"$8"7P[Q$]X$2ME9J1V!3?"FD5WZJ.<0@/F:) MC&T]#BH5%HI&S^!7]R 6Z*5%HR.?W',C^U[$Y72AV:T745B'&IK=]6P-X[56 M<[-5,#2'A%L^5O.9*TPU/9NY4&4V*Y6]\OL9TT9@BQL7QK*[8L$\"$^\&#:: MYGTLD3GF!8E8)76E^,?P1U""[&,1R?.1?!!%J9CW-9Z!_)KNN29,+"OYSRZ% M'^:>,]\!UO^CZDQ!LRON(&^B?SY0=?KA#;9&TK>NCY%C @>7,1MB>0[),S(T M31C=!D)Q2ZWX>&>*C4X-)WHNJ'_R-[6SO8%.[TKV=$T>PPV@)<+=U#S8+-=S M6^XH\U^N_#!2K:UK.^$.3SV="[/BRAYXPU53[M8STAQY./O-,2""@ZGCE7'5 MMH!!(";6$:?(8%/""D-JYD)T?'S$_@'HY8FE!ZBM,9_6ZXD[MAMH7ZBD4=\- M;Y0W$;[]1G#*@R1,1(QCF$F/88#3H+,U"VS] I2K/>0CHCAUVX:T'%WC$SH(*4=L2PXT6W6QT MDA&Y!26\F-)1GPZY@27; JS(RJ8Q9\)9DX0WR3$W=>78C*7@9,!*K<4!R4D- M)&K0"<&LW9D%B'L9V\$;2/++>SC) CA*](C][Y-:9&D0._YAT>G8?4^\WR;C^J#RPNB9B MD:LA7EXE+[!N/2%*=N0HMASX=...6<_,%4=Z?)90<\K>G2KNN.[):OGH[T@2 M+T;TI5CK388MO-<)X=5)[GQ:,!5G5V[&ULA9];E]^.1?S+D?J4W9"UQ'TC9M M:=>IQ9):_^J .>\WI:BHD+YUSI^82?:^]I:O@6,^)&-D:#@=Q0:INH%*74-1 MSM?O>XLYR70\GDEP'!3P*%%1VW":Q*:&!$UL5(T-.I2FA!:-].D5/V+.)%U' M)LMFV$*3T_9YV3F5.509Q5:)6>)C=SFW\(4Y[ -GZT4&C^_2R=8=6.21;;;1 MD@1=E6FO2/AUC,A\7'&=$\+SPUQ=? M $^ [2Q^7\EL/E]Q#K;! T&#YG$%^ :)=0ZAR;L B@4=[(M(H&LX=U'UQ@T= M#:V@L=0_[8H7*)HJT.O\(]L9C(=59+.-84PAM?9\[\+\;$*];GNPCJVV*[)^ M4PMZA>9Z&Q5QIRD%NDKT8;8H8BZ&!OSAM4\5W9(KW"1/J( 'B2 MA&F*&D8_XE=NE'"B0D]6 =PH0,9L]C@^/8![H.7O07K0ZFVL;#:4LAC M(2'B@Q,S_YHXLD "'UQYE.QA\Y[_MI>Y')DG_IZ,N4?>8NU"NEK>1*:_D,F MDTL%8C*^]@,:DY/S<_F89VN]4/XI]4 *V+ISOAD"ALM[9$ MS8%/>>_J5.B,'!^N4[#FL7%R5HQP3C>404Z/@0TO!?431BHLUX@ ;E1H M;HMV:43QXD(+';H\3A2I0Q-FY/)(@)TX%4Z#).,X!#)$?F2Y5;@PLD'.LK&5 MY6!#!!/RM6H/68BK"4T2-C1LHP$?%50F!R,ZNO25A9@EO$PG+^1&L"EUPALN MU64V,-DXT!6;9>7/9?HJ8965 M'D!I]D4.0TTL4 ;G8Z((:61^*WC(=EWA6H^D@\1C AP0I"W920SY(NK(8K^ M'%H^<7!:KC];]I9Y-#ARG%QP>^Q!-@VLK>Z-' &:64$UX:CHBA@%&BK0S[@( MG" 24EYB>$RY(9@[C&>+,+;%/H"-@$B:@BI,869.\!"+]L 5CG2 H0D!Y-C0 MV!:54P1E;\0(T5R'/B<+"3D,(Q4V1W"JI<>BW M(H S]-O;(KT.TJ@W\EL@[73I>X(05]HT81 M;B(\/AX'D$\4;]/,YY4OBG7ZX1P;&FM>.1L\[32A2:!2],YSORB#@8R)V2?# M(VB?BV\4Y0/.5+Z,AT0:?@HJRFW6=YM88"OTKHSKDSX3"FN5Y'U&=<9C1@07 M+%$]D/)B$$]GE+G)ZDQ4YX,B C!#3,J'X+[ZT?DV 'H$:&Z+=E<\\*)""QT& MN2&6,D1Z0VPH@U34ZRR[\H((,&Z89WEV#W?%J@E-$D T;*,!)!54)@:& S;A>=PRE%/]QQH:VY\H"UK!->K]<7O?-! MXHTX5 4>)&9"4BX8#E.'U5X$.(WIBHU480E?,D01Y+!)J'//L]!X8N%UXO0_*W]EO<&3_JWO M.GQV<.,'C2I3=R"'/+H[VJEL?ZPI+<0(T56CSOMI28JME2\*8>68$\Z=C%)) MN_E6FSE[B8,T*)^5/O:/?+']%@I+A32*7"IVZ_C\ 0[5X'SMU0H^%'$PW9.\\H0Z8;[4 81 M&^[)C;"RG4(3$+%8KZD=+=>+-UO40WOD*+KTP"SP/[AM]&*Y]Q!5BKV(>0?JQ._>?>5^!0K!<$,: M"A.=0:5YJ?!","+;M$4RJ0+,;A(E"&@!=U3=*DV\T@&_4C@MD\F_63KXV\0/-9#4Q9'4R MKJP:=)ZD*39Y_FN4=E%\[Z,+@7LH,O.=Y(>=<27 .\08LD.G$_33$>!L=)A7 MCQAQ+3!2EEPR&4F*HY64WLBJ8V)?D%BY2,NQ]S00]+-*^>_U2%^#0 \KC_]> M8QBS@EGX5ZX7YN.N%V2:Z(57N0T]O>^G#.^)%1$*52C6<7+LX>SY%%E!],]A MT6>Z89X'CJRRZR@#Z]-AOY?GE)8+\MZX_NNMMX8'K&"$FLNV^KUQ#V<-K9 ? MB32[XAU$FBK0-AKR?(C#(\[UPT- T^WI[F=@_(8RBRGMO6F81*7*, M[&39USBK1YH[9,=Y\F$QN3F6Y?+&D?F?>S]7(WNHYCGI&?IM1'>UK[,:],<= MY(TM4;ACHML9+Q0T5V& B:,GA3 ^;;RR]HQ+MWC;\X4RB[ATL-@4I9XN#]&] M'_U*HXKY9(/NN(.BJ1V*6WIZ??&&1&,-VH\D@A').A-'U15I<-_FS%U53Y(&N=%%PO?-Y7M55%0KRY\\(1DL*]U(?T5NH->Z.. M3/NR"BPOE(4;X1&-R-O$DL_\1-&ZK'F#<,$)/ -;-0A-G8@D;O<_Y.[V M"['BW%DD)YA\@AB+EG[N9WGWALNXIUG;$;.5A_%B$Q/A1[;91LOUEU#F,5L^ M1Q;SX*9UP0YI"Q;P[WJPH MA_N5#[GYPQ6G*LQ0-GHT)8 3=]K;(IT(-^J-?([;3I<>IJ\R1[3.:YZ8FWJ&R6>3@B4!GA)C3<^*FO:WY:IFZ-=]:E(7-;E[Y>/%T]WCZL;I?W9'E#+K\\ MW=XOGI[(_/Z:/'WY_'G^^"O\_>GVT_WMS>W5_'Y%YE=7RR_WJ]O[3^1A>7=[ M=;MX,N'BEU;(PN7Z0<*XO!WC.4]LX[$ULR%I^YG55O0MNG35Z14ZDL0=)GW8 M*Q](7>CA#;5>M&H;C((Y;#GDV8O!)B< R20@B0CD-Q""""G^R1OE#O0&&/Z\KW!*1#XIRK0QCY.QK4#-KZO7%#4T,K%'99]+KB!9RF M"K1>\"Q^7MQ_62!T\KI1N4'W2;MYY6BKVW>RCM[?:! SDEM:"2M972IA9GZ\ M',\:YN)>64*I9EC3Z8<[TK4U/\FC6MT);VSKB]YZZ^5Q^;!X7/TJYG2+__7E M]N'SXGZ%RJNOT\MP=2-:0Q(3]?4*>VBY?4G_"49 E19=]R%G<0&]0G5EDG$T M/\R-:Q8T&/')]YU7YKIWFW(/.GI\7*R(:'EOYUXV=C(N\@-BK'T&84)AX= M_0T8"3LQ@)Y5HT0UD(YM&73 (4YPZTXQSQKA#OQRG?*!76R!-W 5>&M9VPNZ&.SD6WK.J!V4VUY&[MMH+\[/3R(8+CN:$5 M-Q:OD$2>1>)),!\:KT3>F WUX'Q1>Z75E ;N:&YED<+3OR8$\,9Z.S5:/P)< M?OY\NX+]!GGL?+44A\N+>U,GRUKJUPULC8F\@]"H'/B:49AXY_05D;P@ M[P-%-;J-:(\<%'QE$ ORY09%-M*(R71.35:'#2C@QH,6UCB9_>IVQXL);91H M7>'C\\/=\M?%@EPN[A_-[4#N2_%^MQY40RQP97"?5[(_?I9E8HN+=>5\2>WE"!UDZ?\"$Y1J@& ML=$L@2?\'ZEK1=1YL(+H*))L%V]B]EZJOO@#7%MR=M? M#'JKG\C\^N?Y_6KQM!(3N,?% M'>]R+3K\2GC_^Z?Y%[RHH"5UZTRQ28K3 MJ^7GR]M[8SL:)4KJCX/:G2?GSIJCGU[/2;GX$ "?L"$Y/JA&N['LT$_0*ZJR M7-/0#M@>A%^N$XU$KN:C*I";],,9PXTU3TNOZ'1"7G&ED0JMDWB/RVWS@7/<6BOC&*:H? IROTE&Q!2H&;? M3*:U/ZW4-691B9-D]<=J&&S<&2<6MK-!24F(FIZ(YS/-Y.^US(-)K_\"U3<7 M8<3A-Z*APCAGC7![<;E.>6\MML#KE0HYVWK?%UG5-"5HTO&NX'N$[.<0 7 # MZ"J@#HO@)X4QJGO@=DD-;8M/S)3-\3JKCM#M'Y#E:(,/2]H$B'?P8L5ZZ.FP MW[N,!@6N&NLAS7XX7;6QYNEZ2*<3\O50(Q7Z60]962VGO9SV0_7I,!:$V'E) MQET#C6*,A DIAC:*)9!! Q@=DJUP"YF/^#^0(>+%XC"?UL_B"ZXK#MRZ[W04*8F M,PD0J\!R*+?+,MK2(%XJAX_4IESP9Y=*P10FU>V+&R :62 /$%H=\0)$,_'; M!D1"F&243;J[LH*)WI#8H#MNIV]J!ZT2/Y,9&QMKT+6T3[&FC\D J*@\I*BZ!V[?UM#VO%)&:7.\_JLC=/L:&4#5I+\^ MTI#R+WQ[35^HZ\LRI9#J>[<_\'7VD[^.7JV ZGER6UJX?;R3A8K7^UL0PAL7 MW=1IO4<S-61N?VH; M1G#4%5<\5SGM2'NZP^H9DL@G_C.D+R%^0-8'=RW*"\)!GKCX;W*\XU"50Y#% M&^0XK=ZNU>N).W8;:%\VI;FJ9[,\% K5[0SV7[T(/=S!TME0A[UE;8G@#J+M*K3."2_=6M\?JWALSM7_TFI$EIGC^CSW]+6*XX@=*]@J-OC]MM:38O7+Q2-\7IM MO_Q'6Q3@#"L3#9R8J049W'[=UBYY=V]* V\4 MM-:DX[,#>(GY%%F>8P6.V:-J%!8@<\??1]3I_WDUO.[P(O=X&X8'ZE1K6OG> MNBTAG&C0W3;IB^Q65) _T>ZFTU!OMO>R8@W\)?*)1U\+;0JBD6AK161G'0G; M[2T[$AFQX/0C@H18ZW1!%"3E,;Z!C33WX,"6\/,A(BPDGA\1E^T8Y(&-_!GY M^\'B!-;,3A,C"*)O>VI#$S_@XD0'3E2R'/<=N9EO+.%*)%N2P[8B8^.O3:=@ M))/3Q?-WAG/7]5]YF- ;/Y 90&"+>04?U4T:6Q/#.5CT8Z/\!+(=);S3R([Z M]/J&->4LY>L SW<&-394H7;+VV)X46B[BJU?E(L^)&8(4DX M\D$=>,Z*+XVQ8)$Y<^7AZ,16)Z9*4N@YY$M(UP>7W#%#,,47*-9F$U"YN[=< MQW?MM>9$NGUQPT\C"Q1.YW0ZXH659N+W$1-%CKF7'49PPJC^//*35RVH4I.T M3DHRG7AO-Z^8\@0"T]!G=BJ>/'K7GVR7]<#MWQK:ED^8SYKC]6@=H?MPY82Z M6:^]81Z+*$P1SY)":,W3VE&:BIFCVB17"\$6U*28.>> M&H'_"F/,=W!4\@\Q XP?2&E%5$>2N$.K#WN=%"]N30]OL/6B58]1YY9''7E@LGET];2J-K*^*->0!2;O HO/+AEL.!.BO_DOY$7>=2ON!9 MT\ /GFCPPFSF;620+K,_W#'K&4XA& WU%VL8),0=C[AL5;&X-"X>7MS!:*1> M[B-DVHA;&Z /$0H12Y1PBW4B0BD"6L7=8-;..^0DE%?_ E$9'>X)9@I^!>]( MA '@[M6M]^*[+Q3G:>S[^GI%^15A: LR\ .($".>QKN&,_!$?< M\3F"M4LS,/0 MS8EP6[_:Q)>N9?]^P=MSG<.+SS2(N+5+[6X6LU-KBKDA+<\H!M>5[?0BD.UO M//8/_J70@/F.>%&KC]C]\YL*7@]DZ7*T[IG9%+!Z*)7[0^KG(E('?*6VH;(, M4;SKY\05Z_:,+YQ ,MC"AGO[AI$8M6T5"0F1[*0J;)5]^9?'\G%.IG$,?^;K M?.K O;3XW>'*AS\M#U$(CXGYJJ#UG'DT@:8"T::^J[H9]SC23 'DC=FD-5+E MYN@%=,K)')+G8]5D/I:=S]N%]/+*:/(*.?+%GWFK3 ?,4_FI?&_Y_9><96-Y MJKZ*:8\WGWA#J"LGQVWQ&VPZWWI1P+R0V6);>N0AIYU,_RRC3H=O;)B!IX5 M_PQC3Q>S]+U=I!J*=$0RH Y;U/? H MN$ 8E]J)ST@NJ4?7K.F@T8;B5#"_M;7*(;LQN2D@;GNE^@BZC#O\EM5X2L[] MR(=8AJ_QX=U4+&?X;LIZ36'"3E,3/5H1A:-ESV8N$V-$0\AJ17(JF-7>7HI+ M)(WI30&U.FC5R[6QA'T^\$ "4A0!'VA-Q'!F,>N:KFD0\#FG]18_=_><_'.+ M9G#5E-I4D*J5E!3.X5ZR< 6%S&>%(7/OJN>^,'L'QN"$%>MF=B#GG"[(+[F))$/,WG-/'BY@#@K 7^D3M M^,GXXDU4P7)NN+O!QO ABI_PG-JR06J>_AA-)2C[MJTB44Y/7*80RKWKVDO: MFIQ0)).*)&(1\ ^2$ZP<&LSB0)Q:__+XV?HO/[@ZA)&_X_.5R^-C4AOOB6[$ MU8.&(VX'PE.)\ZZV*X_KME2G$,>==>OG-J 0 J[2"#%(*@?\*96$)**@"%# MN,4;7TIXEIO*.X^B@#V+R8S/%_"4;;PK>"$<^4XL9#NW]J5L=X?NPF!P !*]XD.8O!.Y,M!1"8AW*"+922ID AF9@$Y#2\ MCA9E;W]A#LT*["Z]HB7#.Q_RP+U01^X&W'JWGL->F'.PW/-O0?Y86SM^9!&F M@C#C?1^*9?[@_*> 02-:H:=R6&EM;.\47\(9 4GC!-CQ?A[S2"9M.4S%$ANI M,Y&EM 1I/W,EN&[.TGN$953 9U^P75*;2:@%&=PPT=8NA1H2#6G@#=?6FO22 M53Z]J3U+8BH1 &(P%4%L[!E9(V@MR">VN*Y?*$]ET=OS K:'D'DT#.?VWP\L9.)9]>4Q]YO^E+<1*=PAV<4^Y5-0?3IXP[N3 M-GV,3PE;DN<[@WE=[@]H3KA-6RM+R!DPFY(L.QU,E,M,:0*)KB 8^91^7QQ5G-W]CH<*NU3UPXXJ&MGGXJ&B.%R5TA&[KW@7:!(@3H$U^ ^JG86[& M?T&>:W]G,4_7/H4>$_/?Z;W9[I[IH'* M2K6]D'NRGM8%;Z[N@MBC-05O[=4Q?5+BWK])'H-,P5YH\.Q73\(,JHYB-+H\ M7E+/WNZLX/=F4ZK3;LBC65/OFLE5H0_B>-:5O,=A*F6 ::Z5"M5LPG7>;6K> M7:YWM7<7^TS)NQ62#^/=!F=B<]L6N>X?J4W9"VQB5$[!*IKC]N,8)@%IY&=F&*TS4=@L.HF2C8?^R%092+._Y;%G/\E[\5+\F6K%F4 MC7!&6;5.$%[E+?#%58V2TIEJ8"TZC.QGOU#1'R/DIUXC6''7(>80Y3%T4#: MC5/\&)\)M1D6( A3G)W ,3DU@QD')E8-'FKI\*+?BG5 080FE!% MZ#*=@7PC2>0_TTG(A-\[3EM+H M+KY#6'&:7-$<)^SHZIG?#%6UQ;=FUI:XK;?&A(F@3!+2!L^)RS2M/"&N[# ] MGU6?"JM;3\MO>]KP47FNP3/@9;2EP3W_W@]! #4^XE=@%:=.U3UP>Z^&MGGW MK6B.UW]UA&Z]*P&T"2=^$5-/GNT9/I0RH?-8)P>/4))'<3"5_PQGY)5JD)P$ MI!_@BZ9R\5J?XL(R+8SXW-I-7KB*DE+CGD$)?4JQ_?Q3Y-YTCMDG'R'VJ+YN M!JA\JN_91-T).O/8[K!3^M7IYW@]JU23],@\_R%.[RH7L:U_Q=1,#>V#*33> MS9*WZK@X^1QQ7)1IDETE>4,?%Z4BMG8C2VJS-:,.L0O7Z@.X5O^$>2)-++S9/T3$\R/B MLAV3>>5F)!1W*P-Y]7"6,(>_))>!9X1&]K@G& -]!16T1\U6,*2.]RJ_0O%X MZ($&\ =K0S\J=C%JNN#$Q";Z5CX8RK7'-XUH)'6/#X4R\N2CD:PB@RJ_H6K5ZI^T(_*QQXH$)^Z)T%Q261[B_^5QF8!/L^44XPM0RPPC5R#0[:Z-0OA M].!(K>";I*0*7.SCC=A.,+$\#W(;\TD8\YV0KZJIEWZ>_!$X!J*B@TS;:A'^ MS;NPAK?V^\"W[.U,9GIWK8B&7-[X%D0H;D$X_(_CKK"GXG%C"CO^'L!4OH6R ML5^$G2K(C.3Z9AZ+J$A.?LNQUMLP,)6P9DC7!_>.K:EBVJ39%>?XW4;_0AYO MC7YXY_B-I&_K_Y+)A2L2W[.4#;'$)9@9L790RNN M D:QR>V)&@LU[$L-(LM\<>E0MZ^ M@K)(WFA$]JQI%HY!6@3P4*)DE_TT:\\BRV7_H(XL#$J#)W\=O?)UJG(VW*@C MSN!KKGNV$Z73"_L^4B,=VK^4H^0@R!&7TP,_MC/&+J[-($U OE>[P@@/U* M"*S+8];DP3K"G^9<\CJXK>/N)KL*M9^*O3UN^K)='V;<> /Y. MNCP(0(0$/>8Y_(EMMN[QCG$AG!RWQ7I-[8B]T,]6= A8=(0,)^'6=YVR]4$; M(CC=O9M-TOV QA20[PVTUZ=MC*2DR2ZF+;(C">(\3,+D.0/",H3E(DR>0U=$)_/(5P_>K]YG[WKE_<3_ M>?J*R!Q.DBU]LW9[>/3PU,/UU_!+EW^Z49ZSV-MV>(R#.24A/LC MG(+05ARZ2R"(MHPWI1Y7\CAR&JCQOW#)D4B6>>";D]MG$*4I!,C!E)!;G@ MN'\!H@C$!F$N(O\B$6=&4H'$ "%%(B"3D7UJ'-8LVL26-G$Y91H2<:T_14(3 M6/?9"GZG$9@EL]0CE<>,GRSF@0GDS7WF;42JLM76\E9TQP=V*SC>\ND%"ZKN M /;* #?J]6_+//3U1QTO_@V@8_NL)8DH"11R?$MD(2 ,^0#BF+F&C,A0J4TV MG&](/DAH^QHIMGWQ@A,S-;!P:>?I89+:!G5X<]YS6EA2(7^O.)'Q08D4 Y@A MIW'?.*#R=K2//=GF@M7MVJ@[L75>L*5AC0V+;"[4S\?_[802R)P](M+A.3 MGY\M]R#O927KSY"O>!\I/!>GX8ISKBAYH=T9)V:VLT%^\J/7$^_DIZ'\K7=T M%U6?;03(X$O8$^!NLIU%MG,K*&II=IQP6ZFH;.OVF M&A(]5>!H&1 F*W24;WM6ENBHZ8+;^W7TS7M]57N\WJXE=:]>GG*6$[N%/3FC+\U5A('PX5A*8*CW7JM+Z5*NG"';N8)+ZHN>8S M.!L^;;OJY]EJ>GG6;H*>7"#^ IQOICEB;]<4=K8TL4\H+H M=L8;TBPY"S1OV!C]51WQE M!]PA7J]K(3&ZLC7>(-:0N742](2T"-N$N.D@'4/A6:8M[!,9':_%.XE.-= M7_2V'IYQ("7UF@V/\(;5[RVVPR#*Q37_+8MI_LO?GB(K$HF,,VDLM^0XM*XM MSMC5TA#BM;(AOAC5$[>[8UINWR>9=>XHRPGE)2@]LZQKB]@=ZS1,W5'5$*D[ MUHK;CSL:/&Z\][TOU9N:Q18XG;!"FT(YJ>QC? Y7)63KA?(S.[ M W1OL>2"*5PZDQLFLHB\N#A0'4B-".".L^:V*&X9Z/;&&Z4M=&B_:!:LDGO( M,'#AAM8NP@@@.5+26Y8]8S!3*QS-O$]YZBS>; MAB'4M;3]C0?'('&KTM#M@1S.D.[+3FE2HPZTD*<\ZD.S]L,@VUG!D:R99WDV MXVO),-E!@<*38N>-0NJ;O16&D-CHV8^V))&8Q,*(P3,1&O*&2['AJ4,F>-8X M?OTP;F8DDU;N9B]#<#UMJ_4']EFA8D'X2=BX-,&?'II'6JI6$A>^:R'BJH(=ER4@87$H0%[ M@2Z!E'%<3!S(0%D-[B1R8\KC%S887,/X>TN^93,//N"0S(Y^8='VZA!&_HX& M8NUZ3Z-X+:N8B>OUQ(E>+;0O/@JI[89WY=A$^+8NWH"7D;RV8]@@1HT9\6@$ M)70$0V(9VQHJ\B:/@2*KR3NY=/=! M;&EQ<9;/+MN4;:XU[8L;-1I9( \66AWQ8D0S\;M"@Q8W(X@PCAW2K80@X0,; MQ@DCXJML8&PR46J&)_[_X9I1Y]9[X'C&_$/X(%*5-D#;QH1QPT=_MJN;B#2C MBA=X>M1MB E+,U'03&)&MF!RLE,.8B$)$\YP4+N/>9-]F4^4^254' MY)!4JZO&SBAOC1A"ZF4>: ^4L\"T\=F'QA6[G=Z9MJ,$ZXKMH&SI>A587KB& M\]M/ON\L@R<:O#"[*C&I7D_#&KZO\&WA(E< 766+S3@ I?? MFM9IC]S3ZS0M>+>J,6*/KA6YM1=GE(G/21.@;?I)PW#J+A,5#DV"LKS39"*S0F=%>);TF$2,5LG=1Z!:$1$,8#, 6;P.H;J@>,&\BZA=X"IN MHC_0 !*BI+=93Y13M<$9;Y4:I??.3QL@OW&N%+=U$&W%%AL0S=TV'O>6>.]* M/9PI9.!F^!!:E>V$SI+OS]K0"HT[P$*2X?B.3]^]D(IB-BY4P8FG].%\$U"J MS%O:E@9B6&EKD11VFA) #DNMU6D;"[?*=S%ADI+"NV,HM+HVJ*]F@?Y:VP.C],<*+?L#9M?"M0FP/>W:.!].Q\ORX5B.079)E( M,Y((1;(#D;Q<,R(D(R":P=/ SO:5%WT^#O7U9>3?><2?V+'76(]IO^,H/]5P ME'O$&@+AO6H\AC5A6W%G_9HN)O>X8U5\9Y%76BJX\M-W$]6V M*DW#TBMUG. VD!73U5]_I)$O%P=0M,/^,6<()V2O6V9O:^,1TL?09"K#5Z'/ M$,+I:R,K3'::9T#RJP?O5^^S=[WR?N+_/'U%Y%IV!O]R*M9N[_*&7SU\_/5/ MGS_^$_^@$P 1 "M/ ]2H[4"GAO]L*!Q/>B;3@3&S71EO&FU".. M=1QY&P_15[E*X=21EVQ&QM?KFULHAE1=KZRZ)6+ M%6=(Q'9'6DQGY+1\PR@,:A7K@0VZ7U5]U#B@CD_',**[\E3%H^S$C?;]F5B# M7\,@:#,1-W//F>_X.,C^4?4DMKH'3E!MH&U^\5O1'.]Z5D?HKDO4"AY&5IU# MZIRG+2: EEK;44+VCG*YMK[KW.[V@?\BS@BKLZ97]\ =LAK:YD.VHCG>D-41 MNJW[IK1)GKCIVXGC:]S?TN,NKZ*NLK2),9+/6/0O3^PTL2GR4&2#@I-#WB&\+15 4+(3E = M%TD&4PL'6 ROGJ&,.6$4',2A'.36\#?<=M7KC)HN..&DB;XG^6N4[?$N-;2D M;IUF(4<W13Y2*\A>/^+BZN?22A9"6?UQ:13YGH?=T(PH/9R)AT7>^0*Q]2-3A & M5#?5,+>,,%?5,<'"!ZY-Q%=.*1Q^"M1I^VL[X82J9CH7:[M6]< [=]"4NY>! M-%VPS,@F,)2%?FYS$#^(9SGY0P#^LTM+3AJ4YE&8LT?RN".D;SOF8ZDOVGBC MKG<-NQ[^]250KR/QC]*0'MV 7%6+ 33VO.-+@[]"JK,XL5]EA3O<7JO4K+CE>M(( MKW>J16V_N1I&\B&?:[[ _3#JA;F"JD96?&+_!.[4>V%U!KC2AK@C3*U;/L3. M6^&-L0I9N^T>QC1-!]D ^LDH$R<5DJZ1,+MA'HOH'7N!K/T1UX0]NU3N6J;O M5@IKL,IWONVIX0[8CE;*1W5+4GA#OZM"7?= 6O(WN;33I\CK2VFP"L1LIGK#"=,+>6L$&'JYN>-#!I2PK@-@+X6C61Z?Z7#.D+?MWH ;EQ9E<4[]NJ4>X_#;L>L+)M* #-[69Z'&$ M7.V)0K#Y&M?;.83B&)N+RSR'?VTV7&:+MKXS\F6V,?T(>)$\,[)\4].F"G2=BFKR,S+U',L6&9^S018%*D %DE?FN@DT7A\"F9I!75>R MI@ON^-?1-Q_T5>WQ1KJ6U.VS-#K,U+%OHM@#M]:62S.W;?_@P5QM[OS7(8S$ M@[H:H]3UG88#:UF@S),K.^)W:3WQNPY=6MR,#%SCV.$SM<)#(%=,<@DF9[,A MDS= 4E9]IH!.Q5_YB98W?L#_HVSC71V"@'KV450/<2M2$+>@@C/B.UHEETVZ M*0GD^R4=%&H]YNT@R.3.AQW ,V[RP:'RIZ_E1D06$V+;Q+:"X C; E;:-1%5 MY/U:2V&)'4M+HDS^\F[!GT5C:EAE_&\& <6XJ#- ->H<\'[L\?H:DEEPAN;9UVEWO/.R-DJT#@S!ZT(P.]]BA/U9P9 (C@:O]E78 M)+/(O;6K+BO;G,IDHZ7**IH14T9BDE%3J<@PD3,KQ VP-7N7D ]P_HX&HO , M3(>V;%]SJ["R!^ZPT-"V<--0W1RON^L(W?KB4$R;%(B;OB$UOL9F(-73^S6EQY2ZH23 M)^)7,7DT'KDCZ.W!)-E*U!:\C*0UL*+:'*NG;7#'9JE&A1P%^09X8Z]AQM_>QK1M)AI=1!5=L =4?6ZYL-+W1IOK&G(W-9',])9 MV5OC83B&OO*@-Z-O)LV)O+Y2L5OV2WQO?RZO[7\)Z?K@WK$U59BN(TGFH[5A&!0(S\JDDP=@XU\P&5UU0 M(5?)+1EYP099*.<2,FF4'VI%:++A7F,;30!04)DD)-3I,@Q(D!S;PGLL0TG, M#!A(TP*FT>2>JO(MUG::+$KD=-9$!-YCDM&?EWNHZ0#G,%?A:5AUN, EI$ M)XMX#6RF.T>JISA)Q&RBUX!9433$P+8"&\-R'"?^B!^.8 =H]>KW8L*,UGL" MGQ,+M<>/\+?EB9K[G]>L664XKO"6!*K=4>90KDW@O4E"LU+MX49)@ Z/1K,PX) M/XIG*Y# GUI N\<:P#(CKK>Y@[0X=\QZ9BZ+CO)H2[Q5I<[*7[Q%7"^1CU6T M6]%@=V*I[M1P(DM/5LIJ#+AH21OF>]>P>B2T+(,N$UKP;#6P6TI%3 M1ALT=$?^XV>",FBKE#41-&/(I>KK^$ M>9K WI#89H&]C)070-R$U*:!OI5C;F'J$DJ:A>,YU MBO(!R '!V4=SE89U-'))!MQE:G/C4R3I]J]ND\8V15 M.\3H6J59"IQEC9!C8J7(K=_+P5X!]SN7_8.O\H3KP1Y#SN5@.B']D!L^"BP[ M&A?7!E'[[C2P"%1/,5*!MP!%4*Y4L;];VA!G&-;K5JC >]8*[\%$A:Q]C0CE MCU,Z(/W3U@\BRF+,6?6" MEUCV$NK)@'0R4YKQ\^'34>*L7IQDD:G+26=3I#5A6,;T$&=^"UM8MZVEE/ V\8M]:D M;72D6:22JN9!PB1_.'WP'!KD!MK'Y9=XL"4?^*+S*+(LR6Q+1I(M59KMFH6B M -JC%=$'RK\L3V]=ID5FPL%581?MX"JA,='@JM*DM^!R8B90RUQ.LU4;TXP: MR:=XQV?UE"KV5!_D9#R\/N@^\N] #G=@=;53<7;9CA;>0.NL4?>Y:SL!C-SV M-&8M4P_X=16N?KK?G,K[@)2*Y_H-24P?0/I^HM^0+VJXF/JS_$9Z5CS(;T/G M'2&%ZA%^8R+O!"UZ?7C?F#-^Q)CT8_LFFE8\LV]!YOT@ANII?5,:[P,O>GDD M+AD2]>6JA"GA7 FP)<;>T8]N'%,OZ!LIJG[?VH+,.\(*Q4O6IC3>"5;T\?ZR M#5:8>JRONJ*$$XV/WT>"E MH^W>#8ATP8WI0\7HZ( :$+JGU)=9Y>4T*[YO.,Q!4/V=IY%4+J33WS&/[0[) M_4*% H5\)G66%$/GR/X)98JK76;:%\:]P84:.E^FI7VA1OG-<)W-8_ M'^0[8?)BN0<*3QDJQ\:SZY!G5[?(AQ_:>+CBU0_<]%RN'P+?.=C1+U806-Z9 MUU8VQ.FP];JEKWM*6R%_U5,M #G7Y.CHXCOMF9AC3K.)G2C%=DA >_TVZ4?U&&4H? MN,&V7*IE^EQ+@=BE#7'B4;UN^;'SO!7>8;-"UJYSWW/21G8+!M P(4DRFC,B M5LX]CNS\TW#KNTZ\NI=EJY?KS]9_^0&?V' 0J0NT+G1PQF%GRV33AA9$L,\J MNJC4>N1)F*;O<=,)14!V,6<8FO9)S&3/>$>>69@U3\PU*3^_7).$,?Q<@B@& MYB8F+!3;P^=33?*Z9?969":I\9R0/%/;WU'BG&U!CS+'>=I: >7S[5@R/NW: M!-9N_L94KUTJ.^#$6GU=\W,?=6N\D24:;Q,3);T#^/_'X[K6_ M.T\-I=EEBOY;U+?>@V7[J?GPB=3]>[%DT,:/E=->RO_XW5/DV[^?J?.9[I[I MZL^AJT==Y;Y5X83#2 /1'\2_Q[[ GJ\,98U:E, M?I.<3D-ZE.GG\/I7ZMYC,JY2'7B[[]40IM$',7[I:IQEY:KI@!RYM,7OO)M? ML9D? ]CWL4<'F4?O30#8X#91@I8P@CGD&ESQW)?<"VQU7T24:CP_1%N^;/\' M=>3E %6F(OW>.!&OI14*JPR]KH@7' T5Z'J:H,G/R!'#6+90(<",9+Q(Z1VB M44!A;MO4A8L/U#E9CH8WS+/MX*X3;,#Q0YUK87A[T";0*[^FK^$AY7*;;&6>$M[/!V?*@MB?> ;ZA M_+TL#FK9F5L;#&^)JUS0)YC'!%_EI GRV"W1IQ"FN<\11V29E*V=C_-IN%JZFLHQ1;X MW:VGJR8YA^O];LGB;0\K0X&7P"=4'\:JF^+T*QW]TNT$13OD.PEU4@]S/X2/ ML7O+.WX5BM(Z_B&,I]CI;AFD")%_8AYDAF#2@@=)7%&(6(1+@ 76#L#2@LD*SQ6[O^D=* M$Q3.&V!8=)I[#F_XL1E(G7::&%:5ZEP)684>$T2NE5@6W5SQ*BFH6>*9Q5MD2.9CN3_W!@VK(7RBZ04 MODRBUI#J"M7*EH=#SK^:3;RF.N-J,-6:[!SKOR=78QFH=%:%;#+5XRRJ9O)D MXB3GD48LH"*U )=@Q3E5'!TJ&^.$,#T=\R<\Y2WQGO34R-O^]EI"5@8F$#9X MVGBN9>6Y8T7SJ?FI^BQ2U79*OMK3^62YM[8_JNQ^.DZ]D _Y8CU\3=?,H\XE M]?@/4>D,L4$WW/ZKJW?A3+VF#UY_UI:\?1H>P4 Z=9],<:VH?5^-[W+EXX M!ZYQN?)&WO/YZX@C)KVF+]3U][ "K@2LJO:XP:I6T\)#/55CO"!5+W+K,3:F M3'*DS4+3N+H:2^=YR45RX(B'KY7%"= <\O]OQ#[5Y3%K$B?V%5.?S]8;%#!) M5RF'Y] .F%A-/%J1*C?'@.R0H\+ =CY+03H +\28-+3&G5\8#R2@&53$:NV% MRS;LV:79R>65[_$)T/-!'&L#CQFD9H$#:DA$(A]!IAH8P]_G>EL^G]HR/?R% M9"J%)Z.Q@E5?WE ,)X#!@]KZ#(4'X88R7Y?+M MAR[RNWM]:]G^J%86V(%T$!NQ2>_P>5'\W-0C].\'%ATO!%X0"_@3!GFAN S4 MF1'FD:\>O%^]S][URON)__/T%9$7!V>B9@]]LWBT\ZC^ZN'CKW_Z_/&'ZZ\@ ML7!261#N$O)?_0"VI-:6'4'(^QXE1VH%G )<&^0X%&W#F=AEC[:,-Z4>E_$X M\E5"+-^78!)_'WE)2$X4\GPD^79)M2 ASXPD$L75@PQD.$9BR\73P\,L'H9. MC$*N#T';58!BO+D_P%;11SK8)1TS M6M! /CYTT:CU48'@"1@MQF6[8'>57;^ZVIX<39 MGJRDG>M<30KQ(5I'A;I=<9:,B>0_8RT@&8*6O)).EE MYC+__">OZ>)I^?!+7()E+BNPG)S]2562/YZN=H?A@!N>!K"F^E%2)_)X86P( M)7N:$15ABWP @;Z>D40F$@MU)LO6V&R$A6CXQ0NH[6\\ M*%^77YHWFH=64<&)51VM4K^.59*8ZN*V7J&V42"+)LKJ26%$/#_BB\Z(9-S$ M^M7SO?A=ACQ7K]]@(]8FH&)S"Z06JUAUPE,5IU2;J7[_%?RNF7V5HGI M+"3T;4_%\[K()\_T%/!;P'SG7="I[X".^-6W''%(3A)C-ZI0V*]Z5*JWT[@[ M(S1XX2N2\F.\^V1J)I_UK_S(S_ZE4:/J;)UJ[,!^.$< 4>S=.D> M2M_,)K"C,IC*71]7#":AV7T6=/;N_#?#.3F6>7GDK(K5)K.W\Q6)<")>*G:.;0W0(:%H# MNL=K]N(.1KY(1AB_)Q9B/-*00RP%1)0B)!*4;6QTH(43$WJQ4'9SOB4AY#O! MG=5J?7*WV01T P]@O?0]CRT+HX\W8:#FK:WL(OVNB:V@'E34I250W(!C- #6?7[J]^U#RPP]J &K<-YI6X M)N\<;+%>" #Z^*0(+L]G"'@*?=E33W\O*P2)4ZM(YE82$XS(E\==(?%Y.VC, M6\C6_$]!?.QE[?=\%IO.(9\!L92K )O?,?T+J*P0MHDX011$ Z M?D&#B^RB'XQ@$;BWW $@2^'>*W#O9>;>3_-',WE5V^;_$97)+>6UC2'HXQS^ M!K-D+\G 3HGC7?'WKZ*Q5%^G$DTKLU?O]HSW5>3(GU'O_;7^W''$)J;884VR MD5U9>Q99;HN=A&[D<()57W9*Y^0=:"&?>_>A6??<(%8J1;JM(*+)EH+@VV0P M:;:,=[JW((P5LS_;:;BIW6D88<[[;OQL4NG'TWPV0J]TGYN;6-1HJ1I3AV&' M<[P8R\Z]I!^OX85\ZCNDQL;2C]<(.*WTXT-;6['34'465V9%W, ;[WEPHZTI M QW"6XT=A-XYO5.XK;=N+TBK9O,.059#66/XJI:M5VC]49K7$R>=SB#@.J"5 MDVW6*YBENH8N V,TC.I<]K [N);XBQ")Y'C/(IG;P.Y@UUPQ M4SF^#_3]E?%YWX.0TK)]#D%G3-[O *16U?3P8/7))CYXSY M%(=I63DYF?E\"OPP'.A;*N?TOH?J"NOV.5B7L'F_PW65LEW!4=">Z$)F"+MH MX&"^ZKK"?GA>.\Y=P9S_M%R?O@N"%T-A?#X$?Y6Y@Q1?UG#<< /BP%9N_%"Q M.2N\P#BTPIU ("Y@9.??M]D9*V*%)$Q*)SNY,M&0H^5T_P+1,T(3Y@1!3NM! M92@_(W'2LAQG8Q-+D2NP:KQ*&N!&K7-=SF9?XE.\V% B8R^;$V7)($><[O2C M4?Y.RHQR'%G2(V-W26N$7!:5XN'MK8H_OL"M.!.&]<]XK *R>SD9;:#QZ*0 MR'P,)K#VFJZ9!T;+BLK#2C4N:S_WO -< LP^#+F!DNEA=57V?BCC1M >K9<' MRQ[(XL7%/I7K"H$]R&($[3#8,):!Y/G$58]B.8@4I- BA"<6:)/P+C=+P@ZE) M$I/A5T3L@,,."R9P,VS)F 6D4\X9*S.5M/"T<&RY%A_V_CUD=-\KJIU8KA]P MBXF^1XP[5][]7K,,2- M@\/;NI?]^EIN>/%S!)V-[=G7BCBM7?OA+9Y0(RY;4_*!>:+B3/CUI&ZJ5IGI M9Q\>U+@L.I9D#!R7\P2 =QSK]W*S59\M27EC3U7T99W6K=H1OX.,W.1Q M^9&%O]\$E-YZ_)NA8306*BOX_A-AC%FE,E+"8K$O%.'I:3@>N:O3"'>L[8D^43OO]$L%QE^<$GRGFF_R2P7*DZ M*E@NDW3ZL#R(_=-M#">F.BE +GV?EY0WGLOJQN+#:VZKU*9]?UFMI7BG8-WM M6QGN]6ZM".\0R#L:PG2:CH9R#P'RG->S/^;[XN&_G80#20K KPN7T--"[;): M!=G(I\?$.01P;0)J8NR1UMR#4U#7#R'MT^41_CA_8ZJL"^THX<;L#M;1+\=7 M2@8O=G919L@"?>3>VE'R&_#[3WR1!/]>^SN+G68:;]%]RC%S;@?]0,GZ3C4Z M2C08MF:E^.4WR;)-5"CJ+!2T?(C'-_$D@I8DT-/L@M.MF^B;UD2H:8^\[H&N M]*U=UX,DQB&AR15XJ(V4SI+X?(C/GB!]@^4=OPH+R>AG?#X54:@;1BR^Q YM MD7\ OB@QC=I9P>\T(GMX23UNS8/!35:,]H2#3'-#?I-<3@-\V$V9E ;NN&]ED<*68Q,">+&@G1JM$R]);C,2\Q/H4.2( R#,FF4F$_H56)J MC3@U%W7*-RYC*RA,J-T9-U TLT$>(?1ZXH6&AO+WGMN.QD$VQ9-&F0:&XT9Z MF=R'/XV5D;\!>]S1-_;WT.>AHBYOO @PN@5:7]\5C,2H29.+"I$OTB&))Q*.!S4+8F1L4<\OXO&]P55JV3Q0] M8_)^X5*M:OM;6RG%R>-@_]9) "]'>8H EQL)3JZ$Q(K5YQ >A?O[!L.&W\) MA:*J6+]?X&QJ -.WU33E?0^EI@;]/DH+*J67UF*6";S'B:C?9X4JA&:N*VR% M8VP-]68=5'7KLIMOY+B1_WY_!3\<[F: GKG;!2Y 6$8^6!118X] /4A;-\-_HO/"/';1L!MP6C,' M[,_ L9]PDG-+(YUH8!+AYW[:LX7@5]"T97&>^"]J 7;&V<%['/9MV.#!"YB MOX[;\U4XD?:$Z06CLA:YXZ:9$]"ZD#\/?=G9);$ RM)2ISE1F+ S7WH*X R@YLS7+7VZ*4Q\ M5V>QRB%^%J"Y3DMK.L+;9@8\BG1YC3A>[I)M&2DSDM MJ#=G9*Y,"[RI0MMM:4##G@!AR>]>JL)+4!$&]A6JTS M40$/0*>?2*KO*+Q$J1/,$D9SLK8 5&>ROX:CCH-\@0/M7-J;OG3,(ZRE[V+, M\AUNVW,V M!-!3-T>"_XF"N.R74(+DHLQ/$,ZE36 ,TT4EMJ^4Q.S?A-#[E!-$3\]?DU.H M$V'>A@]$7.@E(*2MUWZ.:_:/=\3^7&?'[N\PS^38YGV.!.C6V![=H; MF/MK4!1'-_F[?J<%WOGFAC'P/F)_KN#=_1WF >\V[W,$[QX+P 7OML!*P?OW M^8<(65+>>S&'X8H_"L/PG.9I0?AU%*^Q;Q+%NR0X5R#O_1KS8/D1^W.$\WXC MP$7T(YE/$]35?QJ&ZQ79TX+V*C$U^LBYN9P9CVCG.AF(?[^9]S)&Y3K'Z4/" M.G#G%7YE3GES1/^7/,CY%]LF'1>Q&&]$F2/*O?.PTXEMJ\QO_6+#1=+\ED<- M[>0GO-!!7+YSC1\DOZ2)/9]_1A(*300WG!#4R+:3=."^:'/GZ3QGLW8:&-YL M)B[?N>DUF1I\[(2($WDPD* M=Z[3F,PWG'7SCTNR?DIJY9OV5[CQ'RU'4;NM$6OS@_EEFZ MB6)BP^4//^GY.KV-84/[L(Y-J.UN"1?Z1N25O[-'R2)"%U6$T3=*^O]@C-'+ MB!:GXS9*U=RV<=K6. : M:%];V"-U4,/F,.UL"'>,#HLK.T!+JJ@@B[[EA \'YSR7*/3H^/7S\V#Z)*_@LB.7T4>$ 6(< M4).%64^=1W.GU!Q&:'?O;+'0$J31 ;;3CNLZ'."5K>&Z*H?,*H.\!:+D02U, MJ$""BY-6%QM'L,@BI6YOVRC6N%@IQ['!)\#L.,_R,XW??Q;=/ MSX-AU'@OZ..92^OVD![L GE4\PD^HW0='C>OG#]7E@#Z0+Q)2-4<4*O>U3RRN-5RLW@:NM0\<%U5F]CV,-]6,=6 M9KVS)=RA/"*O=&Z]8X3*KZ-VWCIA ^\G\A\;?/0WC0GHZ9+P61%^?IITQE@\ M[6$.06Y-Z2@<;6QV('J1RTZ!,$@3_4+33W_@'1&:'D)!C<#BZ=^<[>Z_+U%* M!JJ;\SO<,='FA/IU[E"4>F3!Q$S\:%IK''8Z9 M-R07F$B,JR073LH-P<%TF"Q%F%BGT%K'^4XI/B(YW5 N :@G0*Q,!U1EIG"Q0C]F@8MBNG M;WMBL -LR!K7M8E$_:WA @R'S%-QHY^%$3C0J'%%&E':J$5\@=B#6R8\MLJ$ M-05:;NF1\!X;#?> [;,X-A\83JY8=T(#>:63TZ,'#N5BPH^+)"W/I>B>IK ]=DB_ MIIMVM8/KFX/2R@[*@BB,^] Z-31R*R COAZ6R4N"*U<_:"$=?(%#O/;[YLOQ M7K"]CU/KUGV X2YP?9)7\*GSY0@?,WT#<9Z!:Z5;L-7/[+W1FV&XO9 MH"OZ'>X)UZD%Y5<5"P^S,QH2:[9$R<;D')U'":)S='\OV,[-J777'-W3!:X[ M\PJN:H[NX6-TCM:EN_PG+VA"Y7M-?M[['#KU'&,P_ST.G=KV*S9OX'^@HEC@/]89 M)B[)V: S\!_L"3=2$)1?6> _R,YLX*_7$B8#__H(8>N,7X^J<@>'5?. #1Q: M+-I9Q$H% [@PI$=--3,+"5ZTV2:O&0L5-.ZCT,->YJ;^ M:X +9.U^4F05)7TK*E6TK008.0MRP(X88>O 2%(]31 E)@TDX)K9CL]IY/X= MN0VR".=, :%:=X*DF71 H5FCE?S7&F_]GQ_\)*G,!'8N")G$]%*$C4%N"@BJ8?^V@;7E[>W M/7Z4IPH^4*-\1,4Z"%2"9;6A#['> MAO)74940A@T[ZFS'$=D(4(4+3PIUTQ3O"(@"*?29TX(Y+P)B'#=HH26)V6O1 MTS-5)1DK\6G4+I)97D;#.NP9UT1_<-22 15"+! 30TO0I"%YJ\9FSSA_C_&G MW_W\8?L1W?E;/S\ JNX0,$\8^#6,L1/X_V! 6FS9/^$$Q^\X1[_##*U:RC!A M18/UJE/(:L@"/["L6$E9'\OQ!$5K1%P6>46"A#X$@M/O&(5@? M+>27KTD:.V[OG5'.OK Q0,@"K?NC/!WA>KV8^-*)FXH+#?XZ2H*A;R4O0P] MSF*&2O&T+).4_ %$P3/A\LIB%&"[OH0U!HNBV5B1648)Y<72@-5LGM,FM(A: M5!5R#F@A9Y)F1$/W]F*?;7(&Y4:? MD*;4C'?8@1MD-2_J$P,4 M9W@2X5H? RL:6 5A+QT$(8BTM I&VO,IA@)'7XLCT.3\A1U:C*7M&L.-%,AB! MC,![@E8^(LC[@-U]MC3(_E MI?M'HF)*UA)7OV4^.UN9^'A)PH4)6$841 P]?(&^HSV*B MDG*^1UR2-58BJUM]FD?UP[=E'-,K?U1 CM7X:'\;<6/ $N.(T='9-JP84D') M9D>#UP(5W%"3G:$*6/.9XZ$^14^W+U#LOVW23]'Z4T9^ )$(:!C@)HJ\[WX0 M$$R\K8ITY8NQPY^%#"M&UT8DD;#<.,(($+4->6144X](-:MB6Q84',UIHX8E MS(-2=A# M V(^ LJ)"@55X*%B6,?Q10-SQDGK.H D\.DT RP@*9$@.3 +E) 4M X 2 Y MU&0N(+GJ?$"EIB>I-+VP=-;G)@N$2Q'H@SA,!I9\V)52 MS%OMV8B=>D&DRSJ (I.7C9/^&F6!=[O=.6Y:57A^R6L[BV'T.#&8L*/&1ARQ MR@@EZR(67GVF[HG(L8<4ONBV5'\0DQ+.Z#MEC7S&&^&J#CUM&!];"M92*=\T MSB%;4?JEBZ*5T"1B+;FDS!$YZT!*2"E-2,4C R2XFL5F S%3'4=*YW+$UEW' MSZP]9Z]_(S#Y$EUG03#Z1*)JVC#12(L%Q]9LPH3M7,?)JZD^9J#U=8ZV35&2 MRX/2"*V)1%VWSD"L].:WI%)IYG_7!XP=^T?DX=B[?%E"N?788SVQ"1E+RLS,)0H)'+1/-B%$^@"NES_Y]2)4Y 6 MN,!O?ACV&\'PTCMFA:F><)(%]*;'-8& 51;3,GN/S+!T11 E/@5=08 3)VXE M'DK:D&]M+D+9.K25U4_?BEU$'&"+]UDM6?&CZP8*=[N2-"UHCMR<,=ICQ\@3 M;$)6>B36B?5@73_I$T*Z$?M)XUP/W1-!N3'M9L6X'F'@(YPN*X[@VXZR9>AF MY+I*CXF>\FK)1,B6C>Z<78(?ULO=+O!=YS7 )%1.LY3\JGZ771#M)G*R$OQ4 M6)<#"Z>PL0X:E2BK"2FGR&:R:@A$4S,N%$J3G#H]7!3TFFL6##U.97;<4?J" MMZ\X[C&T& 78F"=AC2:6"72'BU$R2DB7N+U:H6=W0WPRP OTT\^?_O/W"U0) M@"H)%AW7_-"W7(C#.WVSN,VOF)8 P=[R' MSK)^2^]O69(.%/B2IP;;G29:J>E:DJ3@NME4A:9.]Y+\C:R%3-DJ/ZM&9VF/ M,J/GQA):E!M%.S9A+U 6ON,DS1^62F/?I?_,FV0ARWK3T\ )$Y&2<:/M-@J+ M%O2(/>N01NB5A 5)DI$?LM##,;K:[H)HCS%Z),;5A?.3'-\2=D,9J71M]W$UC^\/L66WHYPD;, M&:S=1%6-[. B[QQ*2U\Z:)!&-6WTC5(W$NET*WOO;/%EM'7\OJ=T.;K9Z(G' M>H^[4]W'-I_HD%SQP%X@R@-]R[G(#/">PX[E!,H>T:!S9_UUU&\S5>8M- K&7CT5 *)PM(-1A3[G7#_[PEZ=V(_RI(B M6MN5@1B+Z-BO?/*!0C:@=U2\>4\ :C-/%7HRRBSN3/K6VDI4)$']:S1P1F\V M32T/M?,+BWJ"GHHV3$#48D&%@7).V+;I7U8]U<%O*0>B@J"&).AAC4I9$!$& M,6E0+HZ13 5 0R:U(7%I2.HUZ.KQV03*Y=F;A_43WD5D\J5[+?AMJ(#Y8 ?8 M>#2N:Q-D^EO#10X.F:=F*OM9&'%QC1KGI&FBL":.>I2=Q5?+O1FJ[3L.,YQ0 M"+OZ08P4.L$J(W'PEMB+UC",PK<[ C=>^7XB$;W'@).)PO9Y-39KXL(TBG"Q M0Y%>TIN/!?O;,*JC5<57IH32$,7_+3IY1ZQ[\8=_P+ MFQS_8L3Q+ZQR_$-I-3K^A1G'5Z5AY2,7 !Q?O5+J'7\U[O@KFQQ_->+X*ZL< M_U!:C8Z_,N/XJC2L?&0%P/'5*Z7>\2_''?_2)L>_'''\2ZL<_U!:C8Y_:<;Q M56E8^<@E ,=7KY1ZQ[\9=_P;FQS_9L3Q;ZQR_$-I-3K^C1G'5Z5AY2,W !Q? MO5(F\NZ"^= [/\2W*=[V[:!-( <3=U39J9EEEZ4%-[\^62-9YY'-IE,)$!-A M\E'7!+N?WZ)W,HBR,(WWN=,5/]3^5OSBKTR]I@E;?X#I \>RT]%<_Q;>N.R0 M31J>*U(SGTA3J,/7T*>W/^A-T^G//8J-]]5]CUKL#[#'>RU[<[RO[N&.]X9L M4\?[ZM[0>%>AP\8/G7G'^2^//>JP/\ >Y[7LS7'^RR/<<=Z0;>HX_^71T#A7 MH,,OR\?EH9M.2!<\X21]6+]L\*]1''C].8.>=C '^:AF5?:@JQ'P%,*@R'IN M+;"*X=&:_?L[Y3IO2D&+QI0H/>%+R")&U^@M!'TJ%I^-T35R()>X:5ZH+E^' M]:PF.YK!Q)8QO5I';@_:P)M<1R6=?+SV@+"90[6JM6/9A8!E%_*7KQ!;WNG;\F)8TH1>'J22K@ @TH4D)N'&A9/XR=

DUP_$Z/OMZ&NRPE?R:#PP]\ M%ITTC3-X15PC.TO\1).=.]U,,2\+O%27QDJ<7/["^V0W_Q*%>/_%B?^.T^LL M](:KN_4VANUBPSHV':2[)=SA/2*O[.!D9%%.%S'"IE9;O^ M4Y21WJCZ_/P9U6Q1DR\BC%')N56QR"QZ0+!3S<#PNK/ZY__X."8.N-G?X7?B MQUR+T.'.L!%$S 8]R].!GG!Q0E!^V2%/:;."K1A5U-GICOOEGR&L9(OHGUV@ M/K8#W_*4DX8EGB!BD4Z'X"%@@5\(J:''/0RN 2N-V=(W88#PTV" .=S#DL'? MKVWG4#]N;L' 'A!:P3#.J2-&'OUD.LK3J?3_9A$]GO48^V[^_LDR?SD^7SKF M#Z#<>K0 G$N6D,41Q@]!;IB/)IQZY20;$M_2_UW]EOGO3M "MTL_<8.(@EZ/ M-47ZPW9X84LTW9^[,UPP$%=AZBXB-T=#2#&?12@+A&L>1BH)OCM^0#/;UU'\ M[ 2-4F27^#6M?^HQED!WV#@@:H=6R3_.OG!10%B#J2# R] 0!LQFC^=-%*>? M4AQO2=Q 'PA@JPSTP2D%^$2"AT\)$0%YA'.C1)^1N.$AW> X#V#X@X713K"1 M@4_G)AX,]X"+ IQRRXYU1KX(?Q>HL5+0.^6G4>H$0\ZN6>TBWM\6N\O(2=&: MZOY.^2P0$\_,S<& /H_VZ,3I_B5VPL3)7SN[V#?_,I#Y%2( V\?%;=&^#\C; M&Z[O2^@@?Y25$42,HL'4;U.QP?QN9T-[!G1_IO:XE1T#5%'.]6 @JDZR)G': M&(;DIWH(DA_^NEROV1$B[%V%J9_N.W.J@PUA#L%QW>@0[&\%;PARR"H='%1D M44[73&$$G1IZ[TZ8TML+RRV.?==9H-O0/;QT,@O@OQ#:#^ME3*:W-[:=,Q#< M]+6%Z7-<&C:1O[,A/,_C$U?^"F% ^+#S'N\8-:BSC;?FS_G2)=TX(6IW,OC: M5BT>/:IR'X5._9MF!#>X5R=.!;8#2%JEEE.!C>Z6Y(TI!WT MG]%.L-V%3^?6EM=@#[C.P"FW^K%O))Z;2>O&(<[J2:SE6XQQQ_N_L_@PO)_LY#2?::N+'/7K)FAUFN?N P\2,RKSO!/O7= M!"71.OWN'"7P)Q2SJ-:-RY))42OLP#*CC6%Z+I^.56V+WI; "UR,RRV=5V / MH-&A&N<4R?_=Z"WT_U&^6D9+)20IF?OPF^^BG1.G(7&OC;]#W_UT@RK1YBV MH=$B=::E\LN"]OQ5-O6I669M=RQK&W &"[V23CW"TK-C=IEA6D7S)6K^W4BLH%SS0\^K*)M9KH<$V]WT5X+E M9;G0.]]Y]0,_W?1)7Z(DV3I_I;YB5\<>2Y:HR7.!7O?-7TQXW7&R#W789&!;L[\U;(\8T;(Y\'N:PAW? M8P++#N.NH6MPP[)+3?K/&./!TU<\_>P;O)V:CPWC5B>[!G2WZ"J']@*53(QN M(S[CV,?)P_HV]/QWW\N<(-C?;K0@^T44^W4BG4D:<%U MH?4=FUJH]7$3@DEIMJ'BG[I$=1>/X$1.+AJGS1A:#?XY2/WR[ MI0Z(DS0I)O^^+7YI8M:-?0$;C7@%!R6K_$5$'[61:(,#4"([-:945">-_#>:5&^K)) M@1X5]B[W$2(CXUM%.4]?5#-\@\ MFM]EJ0?2Y%]__MU_&:G6I]*0MV&IZ1R!<9O;^0!SAY5U(7*#U7E <9?"D(+? MAGS6PZY*6[?QU@\/$-=V8!U\25D+H_.!T_[7G-5S.0\05?3FLM9%JATLSP-BAQ0'AK?-7Y[0!IF.+]"@ M:3L$7Q8W1U^<'XT_SO!=>AF?#Q /VUX7%G=S/0\X'M$=4@:A6U3KX5C3%RC) MHM3Y@8+3@>&UL[;U;<^,XMB;Z/A'S'W3J/)SNAZKR)2]V1_>> MD&79J=VVI"W)55WSDD&3D(0JBE3QXDS5KS\ +Y(H$B! @@1 .69/5]H&0*SU M?;@M+*SUS__S?6/WWH#G0]?YUP^7/UW\T ..Z5K06?WKAS!8_GCSP__YK__] MO_[Y__SXXW_N9D\]RS7##7""GND!(P!6[QL,UKV%N]T:3N\9>!ZT[=Z=!ZT5 MZ/4N+W[Z^-/%3S>]'W_\KZB).\-'55RG%[5U]=-E^H=!TIKK_*-W]?/5YY^O M+JX^]#[]X_+R'Y>?>M/GM-PSZMD2EA6TH?/'/_#_O*+O]9"$CO^/[S[\UP_K M(-C^X^>?OWW[]M.WZY]<;X6J7US^_)_GI[FY!AOC1^CX@>&8X(<>*O\//_KE MDVL:0:2>H^K?7ST[;>#ZY_VWB"7P3S^FQ7[$O_KQ\NK'Z\N?OOO6#TD7\9\9 M/I(6QW^%E/)'LL3E<^TG.KB\O;W].?KK#__UOWJ]?WJN#69@V8M^]8]@MP7_ M^L&'FZV-FXI^M_; \E\_;*VECT2YNKZ\B@7Y?^\3=J3_[3O6T E@L!LY2]?; M1&K\H8?;?YF-,EU!;?UDNIN?\=]^9FLFDHI)7S_7%&L>('+BC@QN >^*8'MW@VG"SO0A\ZP/?17#D/-QO#VR$LX,I!RZ5IH"G4 M--T0S:'.:HHD,2%@48"X3\E0SPR\ 2<$7'+NZ\CH\-1SM\ +=GBY0R-GBUG& MU?OB!F2(\NBZUC>T%40]&3EH%[*"KS;H^S[;4LG8C@S!G@!JD$^&M(J,[J(5 M: .#:+I"*D3S&!Z6:(//._ZI[<@0K-+B1:\N0XPA*N[N +@##EC"8(HV2WS M%#<@0Y01.C9NP,+XSDFM3#T9'1^#(.X#WJ%-@3=?HVTJEPB$%J0,^- /4$<\ M-$H?@;ORC.T:FIRG+X[&9(CX8$#O%\,.P3.:6-'/T:S$)1>A!3GSF(?VDRMH MHK-1X*#9: VW_94'HC[]"H-UWWI#>RK@XT/P#-AX"XJ+[A8>&NF&B6'@$U[0 M%V4H*]UXHM7H%3K\?"ZL+P5UVFZYT@:=L47]CBD+ ^WXVCRLI!^4>&2I(/-) M356.+Q4DH36CV%&F@G0,K3E>0IJ"V,EOK"N)0 MVU%QFUU!1M8FE=ER5Y"1VHXB.\H*8E%:T6_#-38\=$" ;ZB9P(!,-S_-?5H_ M]>$[ 6PB0__!VY[=\/78!G:22D)6F?JC7Y*'OH!W&#[P(L/D$1/:.3ZDV71!KY]E5?HF\03 M7Q7]G%:5V7WH&ZN5!U9&C)8 J4I:E"ALW[(@[I1A'^W.:HA*;T^5DWRM;0%; M@ZJ(*FH"XVY;,?-&+#,=_>$)T0C::(L"*E&7 MOW'%'&6J",W2G!IN,U6DH[2BR@U K;T+6X.JB(H-JM&\C^;W="T\TU8:S_4^I(IJHG$[B>'KFXC, M%<<_=]NJ*&#L1L9-8,W0_WK0C/RY4;]?'!@(UPC?QR3?,=::+ZGM2!9L_\_A M]RUP_!2AFF*6M:J*T'A>0KL.&U8V4G&T*EGH>[ $G@Y(%?7&\ M_7*#?I%PKZZX9:VJ*;10@O-]0[)"#GNR]')ILA0]!/B^H8R'R<"PS=!.MF9# MPW/0X6O_QRHJJ?$599321V?0>VB'>'&> Q.?QBL>;JLTKZ*33F4S%%_#*HJ> M7#TA\$S@!,8*W.V>C=]=+ZU7S>@A[*,*J\R_VQW^W/> T:"FR-]244%/KK/" MU^Q6O"RTH2?63RKC,Q?W,_F--4% HYG20PO'G>'#2H.NSF>444OEF9BA-6U? M]52SS(K\L"(>F;5L$TSM*2+HGLV397*W9_X90C2"$5A'%R61$198@K11\:-- MJ0PWZ*,6H]9\8/ZT'*^HC4)T5Z35@ MKKE(,;06> 6,9$BE+(+DN/IM_'T'^S?J=]G-S#L%OI\])FXSUL/^'BC&^U4T#>2+^&V M*&.5+?;1D1S@>P <"UC[W\( ?^ "]?*B]V,O;>CXGZC17MQJK]IS7BP?1L4U M,UV)+D1IJ@5H\Z<7IG[]^NK[Y\.'3QP]7GS]<7US>W%Y='?IV3(*^E^VGX9EIT^B? M.5YD=9^4^'D;!5'ZT5Q#>P_YTG,W.>TD7W(9.^QZ:";\UP^7/_1"'_7#W<8^ MB3_TD 2QQ> +9E3Z0Q;>C M0\>Z1U,F!;-,.:U *^]Y@MJU/JA%AP,8&R9*!MMI4:VP8^I\ M\']>&+5_@' M:(-QN'D%7@%LIT6R$E_=W%Y>JP<74Z<3F#[J M,,G=JQN-@Q?E,T-185TP@N MAHXGD'W2!3)\">*A>2+2(TQY)$C0O-$%S;YE>?@!8?P?=!X'ET0D"\IJA")K[Q,$;S5# M<(#=R+V%^\TIP^]04C_T2OJ>GM8O- ,O6B@FWM1SWV L'AOU_X9:ZWRDJK!^.Y=U/4=3 &H/G%GP_3L#M^,]:(%7:X10; M#6PN.-N$/5V[#OG0?EI$"XR8.IWBI(%Q)?%QVUU>O2[PA4L!3J=%M,")J=,I M3AI85Y*[W?EN\^K:!2!E_JX%0N4]3N'1P)*2TFWXW8Q>P1.,7T7%LJ)?W]Q> M7:H'%G/'4\RTL8[\"FS[WPXZG\R!X:-IW1KY?DBQCA#*:X$BOP0IG-J81WYQ M[1!IVHOLZIY/A/&DG$;PL?0\A4T;F\@@]+!*XOLJO"H@;8=D](J+:P0BAP#I M[;@V)I*1$P L.?9,- (C$95RD5!47",L.01(L=3&1!+-,0/LB^MZ.^K%Z[Z4 M1LB5]SL%3 -K2"S2?&/8=NH>2P0L4THCP,K[G0*F@8DD%FFX =X*K0"/GOLM M6.-4>X9#'FF%I34"D+W_*9 :V%!&YM+KAQ9$[?0#_"@A=DBWC54!CN3"6L#( MV?T410TL+*GWU -TYL$F&'J>ZPUD;O3\( I^W&%E[R*9Y222,PN<5(T=7'.H.4X^&XSA;X_F] GCE/ MRNF$(4//4X=W#0PQ?;286]&"7KQMR?Q="YC*>YS"HX%M)3$1/4#?-.S?@.&1 M7Y*0BFH!&E?G4_PT,+4I]"J('Q)2L8YB8; M@/N2605\5/..G:?O*7@:&%P2 P3ADOWHKUJ 5-;?%!@-;"B)* _0VXPL,C3Q MWW4"A]+C%!X-C""),$])O%\R0&D)G2"B]CD%2:3MXY\_GT9&J!XN(?*OQC/U MP'5\UX86#L5P9]@X5N%\#4"P7YE*@B5<7N!@"?OFT+\'D_%\\C2Z[R^&][V[ M_E-_/!CVYE^&P\7\AQ8B)2P-_S5J+_1_7!G&-@F 8@=^^IL#1Y-??-UW?[)\ M@ [2 41[#S=^TDH(JJG_2H1[PNH4J12%3$&7FGNJ/\ FRW/>0*JF!>]U.C1TV7K(9=;.%54&[(GIDFRZ#F#I?^:5Y;3 M@A=R<()8OG-< NK2CX @=O.3>]DONM@2TG-7Y1VF1T*I>@C6E IU-HM.TBY%R:&^B"DJJ0HBF M 'QA8&!LEADE#Z M?$G"HQ"=%Y:%AX[PH;+[TJ:@;59)95S2TIR)&RL.15CVP!HX/ MWT!L7GYR?>RD/%DNC.]DVSM/*^?+,!&*4B41MYCS.?-Q^WQ)PZ@+[2_]CNQ= M2&G,5"FKEE76IYO;BYLS(4XES8AZGG9*HW;C2DTC&-8@@*9ALT>9^L@>9:KW MM^PW_O[#>]BI]BQM2/<3+^JF%0V6*?"BT<-D?"-55F6FJ&J@K2&ESH:VK-CQ M)-H/@[7K%;B?L57J%A.8I-/9.;U(W"C](P_Z<84N(D^13&<369&HY 0-C+6Z MB'^9>#H[H!]=&G#N"1AJZDZ&JB+J;-'*Y2TIW0I0:G2( #R; "UM2SE9J3L M0NG. 5Z^]DM/G"4$[/*%GSFA41=@9USRM?0'S]SR)9)'0K/!;$D:KWA4]=OQ\@?[S/!POYKW) _K3\W0V_#(_ M#'M/D[FRT>3CVZ*]6 1+'K%4V_<^20<6.'X"\<[GN%"6PY]O;G&V:@F#LT3/ MV8N:4@&4L[/Y7G $(/KI ![Z 8>OM$(S0$<'X+U!$_2_P]-IEE1,%0 YT#E MRB44$=36\(GN=^)>^O?NQH"G65"H955!BDOIA5@QRB8&,,)[Z3YJ:1= TW\& M^%KO!(BB(@KJGU&1!Q"8Y1(T [X![]6MYL))P&WD!&#EX5W';Q#8ULS8;,D( M$@MW!DL^"07='M1 5=P>!6U9P0C]DYC&(E=0%= K+76<8NE\3Y1$3BA[ZW-: M3%EXZ4CE(6823+DM*C_ #TA=14$UT%X^CKV+XS:B_[/(+HT56E*-)DQH$TE2 M6W)1F8TD/B[UH[4SR==1-FN0BJM&B\JS!Y> .B\36-!]F!T*VOLRJD',A50Q MT'39M,]:-D.8('WBI&WW2$[;C7)R)/HB+@F4.AVC +^LVC_,FX,HT-8C<(!G MV$CPOK6!#L1J"^ ;H'.#K7)6<3?2HQW6)$D-H;5/>M;?N%X _XK0FBQ/\SP0 M6$*OU#%V5!"V@41G$@/7C39; WKQO=Z3ZZR>T)BP8NF_ -MZ<+T7XGS"5+=C MA*DNLU)A- 7<[*790^.[)VR)0V"2SAVDXEUC!X^8=?V8"E_X2J5$^C0P/99# M)T1+;Q+PS77\.[!T/7 4$'#X'6D7Z0$ZAK>+CGDX]!<^T+O1JEW*JL:^V#EB MMJLI[=_Y[161*/P.[1^7Q ?KA-*=)!&;E'5]MQ0(7S &P6'8$(#/E.D8W.6R MB0K**6V4L[QO[P>!!U_# -]2+=SX/66)E;5NLZH1J;(UMA%%Z/P#4BROHOC31IW+CT;>V=X4.SY#Q#K:,:<2H?5OBE[-954*'\/(Q0C0G\ M@#*2@D8&D1MNA\']>1HO??E T1L!1 M8(F\;LIC?]+JZ!4_X.I"6C8O+@P8HPFDXNC\5&LO7JP);"QR'3R."T(,,-51 M!7 ._"B@,TO89/ !/H-I&H&H\-4TL9RRL#$C4&CY9!!2_DOX^E[PQ=EXJ R@ MUNDB&_@%[L!K^H+85%16$,MWD1%\P@JZ3)/)AM/,.E0J%!?N(@\X)!5T'R)U ML2A/?D-?.%CK=Y$J]8079,N4R9X3W15&N:*6[2(KV 4EOHC1,\B.2OA5.M_1 MQ=(Y>H*H'%\J04Q'JPAF)M$$G0"WP(,NMH1Z@9R7\XP&?;I=6FN\F203-*KS M<$N\ZHF8/@/;T#/7A@^L^]!#XD^C+M+2UI;6RVKP$FGPHZ;4ZH SD<O^K,1$*D[X U@J",>& 1M4&=I?A;4X]:HAC"S+Y**CJG.2[ZVR22T!]^ M!YX)?:*S*'<[ZA&P@;F-7?(.V,FHPTP ER@-J4]H(1NRDYH@GA5TIAZQ!+%#\[)K1+Y M.C/!'2('($5$5W$+=V%\Q]&QL:T7Z0J_Z4Y>OP +7\L QX^(0?2%J=RB>IRL M.-F)UD'=^%C*6ZM&M2E.J\4PT74C&? %:ZO#\MW )7FW%ZCG> M%,_ GR'T80"2G#3Q^C(#IKMR(-M37LTA>20]2(F)>;5U?@M*+RMQV-A]"R&7WT)$3IU*09X/.<#-)EJ(MQI/E M@/9AK*?9--I-.6SXZP?;_<:::O@#5ZKA_OQ+[^%I\JNR*8:/GJ[M-5'^:K"@ M:.O!97$?II[[!A%*=[L7M+\9.4D\9F?5-P/X%L=BHT=2X&](E6'/@MQ)/%H1 MDNK\'A')OH0!)=KAH8 J* M&+T^+$I$;/M]^D'B^Q?'8D4JCE7+AXN..8T(; M9.(V+UPQTTS3GU6%KKR3DA2]Z.QY?0]0)TT888G^;8,D^.UQ)AX"!UFJJL(C MJ?S(T[2RZCKP_I??^EQB.;V^N;U4QKXLDU4^L["^[@1Y^BERTW:?])DO5UQ)K7?.$0ZP_%H3E(10F74YBJF1@A#I M@9[OFUC^G6/D)"/,^FHDPZ%$PS*2&$=\ O<@_B_2*-;'0:W1!(]V&$_0>(5V MI& $2XG=N&:KJC"5URSJJL/?/R8X./FA;:J4;A63J1CJ.5!]KG)EB+(V]DZZFKNK:A!6@X5ZY M3U@7,QSP?+)$^Y%(ZN-#>LE.C;.9\Z2>$"UUS5!,4#W>QD9)1@/.F:^P]GGR MK8YRZMJ$%9C;R-N+J;&KM&%+ZF45]@$=QV[.DDTL:NG 8_^\X&D@C>1MU)%: MF2E%;N*=794TU(%'V(4CS NK$2Q?]9U87)IIQ/HJFU#IO3!^;CD(_<#= "]5 M!.F=#6]/ELEK MQ;^ -0-OP ES4U6-ELZ+4J(5)>AYH,HGQLS!FG\^(]0_+]J)48^H)XG*L(W] MW4?M!T[GR;>:^A'U*E)>1GN" F('* %/Z2@-J<(X04_I>"45Y/@HZRF="8#E M/R %/AM!Z$7B1G<9N\@3 8W+@6';.&7GVO6" 'B;"IRC21?N%&3N\>B(1?L%&/I6Y6<1]O;C_*->0W1[#*VNC K>3QZ)H;-I@L MGPT$@@.\'1I7."#&%LO/,(=1:I\/E6KHHVNWC;EAA92#-IK!#H?!#EC(Q=S M^?"KGDKDWS02K%Y'JSDW7?@;Z#Q=!*FDD79,GH4IIO:RF/DD/M2T(ZY)C/[,F MNF"$/!60)\-FVJJ1- .6][A;+A< A,=2X;? MT3AR5F"&V#UQL$KP_\>6V#?#CJ?P-"D5_D/?L;*_."HYL@4$!+@MZ/R%L;%%@%Y,U:GV]N+_7PA92N(T$6ZC@M"9+> M"][I+@7*RW>^,RE)T(,:R5F7PNW6CO1NV*G>1\[2]38QZ/2[&,;:NLZI=<03 M]0)&5IRK.#QAG)N3_(+JN)0J*(M +\\%%F$[<&N2?>256MD(!"@NW&T><,C< M@:N2?1C)U$O!L?9&L2BX9=EE/6M]54C#?4=?2T!1K]:D+!))G/DH2I4%@Q"! M-(I#"EEW83!V@]] 0%D]6*MG%7>#3M57YO9Q[@]S3"]L(S'#_N(;YT3H+O)7]S4U_@,M=J\5_I*MO:5%.,RW1H/^>-'K#P:3 ME_%B-'[L32=/H\%HJ&QZYKRFRA*-$BM\_=SV^G5G^-"?+*?' QL1@L:#!8+^ MSB9[(M5I,COF;N-LZ#+3-E"ARJ]0PF47M(FGIY-I9K9)(DXQ3AM7^6EC-OQE M.'X9JCKN$_GP;K@HD%O)),!+WZ(]P?!_7D;3Y^%XH>K0)[Y'+AGT#/5:?PA1W*$#.&5# MGJ<)U88],XXG#R+J":SQH']T7>L;M&TD-ND1>LG8_Y ?^X^3R?VOHZ>G:.R/ MQHO^^'%T]S3L]>?SX4+9;3]%%0?I2N8#KC:^?FQ[=F#J7MG\P->(:C,$-T+Y M^4* C2>,2)3"NOD\#$_.3P-^W-US_ZQ="6C_+10NX/X"0%N,(G,<\.QRK8YBB:8%VFN-KZVGC*5J7MEXYVO$=7&/S="!3?M]16@ M\801/8K$3V[1M_%QYG Y63)/?,[/$_/%9/#O+Y.G^^%L_O]%1_G%;ZI.#WFY MQVY0-A^456K92;>P-^PCG[F^:H.>#;N,RVXM434>WFF>I"23>";81ZQE/"DT@9-H7/+%A%TWA\CD$0B_OD^OBU<10% MAVVD7E[D1^IXN$A'Z]^>)O/YWWO3X:PW_]*?*7N]/C0\!R>S2H4O&;6DXNU; MS4][4C9BB>55&ZXT%>='*Y]8&@_5O9. 8ST"=^49VS4TCQX1,8[: K^YP0LZ M3#^C@8KM;8_#R>.L/_TR&J"1_#"9/?>Q/YVJHW<&_3^P)>7%,8&'W709HG>6 MU&GY7 U6>"A_WYRVP8F=95'<][Z0]"E UG6I6OK3_4 M2)SODH"Z$$7KL8YJQ=I;S5XCSUU+'=1D$^8%=1U"-!_<2 :Y=B=+WH>%0 _B.P,4:Q*7'07O1] VCP.V5$R&11XO\T7L_YB M^(B6]FE_MA@/9_,OHVFO_S@;1K-"[]?1XDNO?_]+?[P8SA?1=F V?$)5[J,* MO_50_?&\/\ [ F6G$)+:2AUEZ=7:GTI(/6*?3CA:4&U*88$C/ZW4%5CCJ25] M9S-P-Z]H!9[PCK;P M]6/TL1UI,#/74VT_&/H!W*!]*RG&5;905@T02%/:@"/&$UCR*W0>!E)&%8S5GJZ8IN/0%%92J0MIHG MD5U/0W4S+>9,=77E17TA!87FE\>-A6=8 ,D^"=; 2_3FSX )D!9>;1#K@, - MIKJZ5FRB*;;HA%=>= M"UQRI8!K:4P]??'%AGM)+=WAKR)>R@(M3:8/K@?@RAG@+#6.F?41=JSH1SMV M+&3C1^7V=&>.6,%33FEI2[T''GR+]E^,I"%7T)T5G)*E/EA:FD>+O)&I6TUR M!=UAYY0LA5U+V^@36!DVMN8PV\0)Y74'G4^P%',M[9AC\.U(.Y[KH'^:\1M; M'I]5/B2+.$$ES\L/>)$]B[D>^'P*++2?7YJ]105E4?;VYO]#" M"I8X)4==>VB.'"JFN%I@5R>V=SO7%Y<7U\TDNNK]+>['63SN:3U>;MZWK6_; M[C><_!*=N&(_:!QT*<*@;+VIUIA&4TMAL%R!4FO_A&ANKH$5VF"RG(:O2'DO M091ODN@Q5WKK4K4]W4DE5G!!;X]:6K62'%),:TXL%>45!!(]UN=Y!3')JYQOJ'_%BG MITI3?LRWGS/MD[SS0-I1]AU_KH9JHY];][1M/INT34\!$HCQ !T8@"?X!HKG M!W;",+?4:2+5TX+8*!42"4910W^#P[3^%2&<># R,:U.DQVDG'!UB(VGH<#D MYM(&XT,88!57Y*+(3W20FXVK1VP(D';3CW)MNS_FM]UQ$E+EM]<5LI%^O6G? MNP-]'SLU,(UZ0FG5!G!>J47>'.RB='#7BV:@ZE:A'NK(:M75U\!%D,3A5)3'.%7%[ME JSOZ+^/$RMU25K^? M;VZOY#I+L4VZ8L1L>J?>7N)'KKW037XO5)S^4?F]4:MY(+]>7LM;: ^/SZ;& M+C+-?S.\?7;#* GJ-/3,-2J!"8$GZ5BFP_S-:882_D759AI>Z&G+9#O*:N6. M5 *Y]WJ*-@*@^*$E]D8R]]?*IKMRX%](W0 )8$7NU.S4%OR]+A.[#55U:S=7 M-"EDE.6AG? JPN-N5SQOQ&^*_5_05AI8^&+U^Q:8 =Y-XU]-PL /#,=".Y_* M4WH['>KRP%!"EX(VL)T;.8^H((Y)%T]!T4_XA(K.IQYT?&A&9]B6!T^%/KV/ MG^;5*<@"KLD0FJ$IQH-XNHGVI"\.#/Q(JWTS@&^L9@;!7SD_FHM04 .1O14F M+L/$4*14PBK;UM1?N4OG-R1:UV8#T<_;L@#NH\]P7H+>Y@U_2?[X1?\_&ER% M[N5F-N]1:GR]E3?'8>*[#GZMB2]-DBXFM_:)69=SBN)N,3LF;FYN+VZDSC E M2-$F%#&R=]:XMEP"O*LXS!HSM$_&9AK'A#:,,.8D&W^3'6*;(.&[:O2Z3WJ/ M])(XT3G6\;TN'].X6NL0R>K+W573T(OC[2W,2#O)_.[/7-M^<#V\3>2D&&^# M'6*9$-$[9D!)0TH/6& 2QGG#X@S3D(\_! MZ_(B?_ :#Q?IX>MO3Y/Y_.^]Z7#6FW_IS]1_ZGT:_K+D$$8J+O,=UVF?<$94 M$X<5AW:(K0B<&V*>UE2; VCP4#?"M87NHD.L$T +*P =$.; Q)YH:+\V_&[: M(9H8XD?U.)M%P@L!8@Y?Y JU?L^C=\N-P\CCK3[^,!FA9>YC,GOM1P"S5ES*< M'![9^-WU4OS]N]T,;/'S(&UX>QHNKVYO9([NY1#1YMCA&JA@XO?4>B8(9I'/"3.7DG](/#@ M:[0Q<-,@V#B4E(< N-L=YJ>^!PQN7HK[8B<)V[!Z.O/8^FAOB_0<['Z%%CBL M>!,GJQ3_R<5/5MZ E:; '#D6?(-6:-AYA<;_+,_/TV(7NL5U2?K2\PW)_B'7 M,U)*&%_E<]TE7Q9$JGOHCV:]7_I/+\/>\[ _?YD-<[T5B/ V!1#H:2P4^KTKY-D^DDI_:IK$RA^8';WOE*A2#$ M^Y#GYI\A]&&DG[O=T4_LNTKVIE0C"0/DM.UA3<&;8I.* ?/'AA?GQ;P':!=N MLZT('RXN+RX;"IW_8V_?I=[?DDXINZ"(C*/?_H-C1#FPCU]+FDTRA3+#YVUW/@6='463!'ETHC=X;6=2SS*2^K%[P[0"?MNMT"?ZW^'/@%>2@W5L&; M+@\XKWQ$]"4#B3M][VX,Z+ ">:BA&I"\F#"@6B*L*J@FYMA<]Y_!YA5X)&3I MM91'MP2; G0K""QHUGX#WJLKZ0A0,"SN@&.NT2;N#[X9/%---7Z(FL;+A21> M5TYWX1^4DTU7"M!Q((T@]B*S._YK$K4B9U47'UD&2#)(\LE;@?F\[EA M S^YE!V#@$J%PK(=Y0&[K(+NFH63P/>"(P*@GP[@HQ^^9AU&"I;NXD*JP&+U^J,_@QBB9_'2,!B/X*6" L*-<=$%F% M$^3](W-/>AS&^2D)XT>Q+9"*9]5S*3UB226; I=PQ(>/\O&C6A'(%53#D L. M-C0I@G;98J FEA0PJMH*RK#49UZ>!&O@C='Y.O2P;E,/-0H5*#4ZQP9>6>7O MMRJ=3F:KS*,MF,R@ M S?AAJC]S-^5TS^E6R<6LE(Q5%W+2DV>W^GX'?]=8_Q*Q5!UZ:GB%O8$'3!" M_R2=#O,%54&VUKF042Q!(26K^(D1K#GC$-/RQ YR"AZEI++HT8$X,>=PR*:] MUWCN1FX*//P+8P4N6=T*CJIDE72%E/1)+P)4%K*! 'WM,N'%>86V#:S#@=D? MQ*40*/D.#%Q4&O_07Z(^CL'W8/$-V&_@&7U@7;A,M/1I[0DG75D-A.53)?/Y MBP^6H?T$EZ0'"BQ5M6=8;6$;B,C7+D/2;=T^$60:?85 "V+YSG"!3\(&(N#+ M(< ^_$Z4$J $_6SASD'/(%Z"^V?5=C7&%@:&C8/1QJ':@#=WE\$WI#/BC,]> M47N@:XJ:@'ZC[6"OG#8D^A^<% 0_"8RR19$.PB(_H3W?6E-*PLS;.%9 MX:Y?/B[5-=!22U5,!>Y;M817((EYPMW=$T2=L8Y.!/O, M:<]&@./S[_ S"W_M'G1T;-7A;D0UB*O K(4Y2 YU5]*AAL3:[5)3W >Z2=2&]=-H]L,K%=B*DT1FU<7!Q'SE\V$9H^RM)$:LO3M# MS:/M1IP&$:<3.=I^%._**!6R:OAP5O#X>I=@QYN! M>S=\#9:AG;[NY+WSR@6A%W;GM>]E;^EZO;2?O;2C9W6]U7Y*B]J!B.5/*W1U M%EQ:E4NCG%F= ]%\PF \8\P0+!Z:*4MB$K-55HT!#(CF:5!#5$4B&- EH,:F M8*FJ&LHU .-%GZ( 1; O/NC3(UA0JNB%-06>/-+<8JMZ-2?C':E\)E2:VQG% M$IM04:7)/XG[46GV3^HJ2P0ZIKQ3/4U:03/!-G+*1/WW BFS 5T!@[7AK?#S MIX'K!^CW^#V4XU>C#J&M,Z$2C_3=G7KN@16:^*_5SAB'ZF?"FA*!ZU[3W,9$ M<< *]=Y29T^B '*6BRG'HN MDB#8X>GWSQ!N,0B\MLX/C=DZ]WWNQ9WN1;WNNVN_(T7_?\_,R?G[4SOCY M\>;V4FZV1KHZ^8R?B30Z&S_3832U\9QQ- >49F-CJ*D:]@Q8Y@E054Y%[%[$ M[I=F:6.HJ1K 5;'B0+U$>$503]_@[KM-S]I67%H;=$LPR:/+(W 7K)O)2VR\ M54S^>0_>@.U&LN/#-]T0SER_NXRIIX(./'YX"#T'!F&D@0?X'?^+3AIRA>ZR MA%/F#B1IB!P3CX(_$'59'B":X31;DD368!;>9E ML#P(RK59H/DJ^SRE'_DJH']*M[((E(NAZEZ[N4>^6N%7*D8']KG"/$$^W=Q> M:+0X<8HE:.NJELVS-'XG0TUE24#'D\,"5B)K8?AW%6/OK)^WNIN2/50[=\EU4B1V:4B;M?$+O ML@LJ2@W5@&? KLB(S2>?,E<3)]TNO8BBU% -2%Y,&% M$5815!^!N_*,[1J: M.0&HEK_2>LHC7()/'N%J(JMZ-*XWA=\!QUQO#.\/OGD\4TTUAHB:S,N%;-)< M6 O7M.=\T_I)-=5PK001"](,8BLRR^,0*GZR2QT#^IU.85GU,64 HV#OS2RK MJM-XB85S/Z<=%B_#)ES6$,NJ!C[71,TO&=%$U@)<<7:-XVX63L74LJK Q:_Y M$]2X!%1DIAV[S@O=O^*H1%:0SS>W5U?RD.+2=GXJ+1-+U0F4 ]NB'..4_2^I MN"JHU]KW<@E']&R0CQ]UI\N:5%X^AEQPL*%)$521N7;J@:T!T]>'^$%-[(83 MYU^,,I;1IV+V!G3 FP)8T2U1+=$[,)M'\J)5RV2F"Z5&Y_C!*VL'/ A.1'Z" MQBNTH\![/*S(5>LZ-=@$EN\R2XA$>)]\/K$"H(D09TV%SLH?.G0@3D8TAVQ*)0@0?T\R!1[^A;$"I,2/M"K:LZ&RD TD M"FB="<7YU\<@2(Y.9$*4US'QH3U.FKUTO0T^U4]>;;B*@*3[B]/K=H8MU:5- M2/)96Y(4#91"\>?H?_TE!-;(F7K@#;JA'V=AYYAX^!KN#+T:4D7"O1M]N5>\ M#43G!+Y=,JK0':[PB9APX%8T!YI]M 5]8[7R0$SZO4F)]RW7%>DM5_3KHR_@ MP(/)-][?><5OD6ZD6;^KOO.Z1837XYT7W?I-%DWG=UX+N,'Y[I8+SW#\);83 M/[JN-?'FP'N#)NV]%T--U8C @&6> %7E5,3;IJ3[5$*K M@GW2<30#3=Z A^0IO@(O+:\9QA1D"E#F$KH#'E1' O>#J0N=8.3P4*.@TIGP M@U7R#GA5"7-ZD$^&2JL^HU@2TV00G!Z2R]S]X:S(W>&TC+*(T95_XNC )%4# M+@[-G[O[E@7C?HZ-CX?7[D;NQ(_=U M5X[<)2\$IYZ+L^C0SM6D8JI!R[6<<@DE,21DTLN6A@?]W?72E<8GS+3Y0JI@7WF>911)8M#CL;$!DV6FG\19EE@V(]3'BYO; MZVMI8Y11Y5F<^"1K=([M6V^&$P _Z*-.0-,8.29Y,B465@D1/N6>S)I\$JHZ M/8KV-,*/34VT=*1&M=C9P8AR0D9)8^_11$6Y*!+[$57(5LNZU()*E(L8+#P? M@6[@ETO29,"%1O(12)[LZ=HLT'R5V5SE? 0JZ)_2K9/]::D8JJZHC>4CT N_ M4C'>[[U40+;)>Z\3I&4\]I6_Z8U=>TEO2$4UKRR=Z,QH8+-+4TA3]WDU#];9 MERK' L;"+-S](Q:Z7@J?JXMK77N2M:$/L9?\^1?QS=P=%V6:'QL>?O;]QNFR M?9U/OS&=3:;#V>*W*,?\\']>1M/GX7B!_K#_A/K7Q\24*R47QZ7UOE[I=F7\ M\1)M"#Y*'?I,6N6Z+$Z%4NZR6 1'A2>,5X "#%CF"5!53D5\=-M+&*\ P%6Q MXD"]1/A&KU/N'T8+X ?T)+R4DMK 5:+DD^T9A["J6H!D6!#DXU]I/F842Z+G M;&V([P'JI EC*!RKOW&] /Y%>Y9/J:$LZ'3\\L#SRBC[Z%Z;!H>P-Y/ED^NL MGM"IQXI#KGX!MO7@>B\^:2_.5+P(M^QWL6SSV?)I[%TZ_U M#,?J[;]WS@=S[7RY%1CU3%I]/YB_'\S?#^;O!W/)!W,!894VVQ#M%NAG^)+2 MVJ#+?(ZO(G 7SO*)&SWVP4_^>0_>@.U&LN/X/O0D \SULPJ\NKF]_- 1QM13 M00<\2AY"SX%!&&G@ 7['_Z*3AERANRSAE%E^6HK:M'@"Z%BU=FT+G8T]]RW: M7=%Y0:G176+P"BT_WP3A;@ UY7JX-#[[,]X2E-7I'NS5Q1;DD28>>$:LSP=> M3D3KQO&5G(+=#[PP\F+#H4'=%4*-/LO3JG2/$)6E%A2_MX'$5$+O@.5CS(U, MA_D:M]L4BK M9=9_],A)8.B5E(6>CB*':95)6F:F)''>?5J4SO.$64E3",CHI<2$;C17_\.+I[&O;Z\_EP M,=?K60=%80>92SQ).-O0S*?D&HV#"ZF#O1)&K-XEB7@Z[SU&#IH)P&%*3/(X M4[Q**#54 Y\!NSS@O/)U$'VJTPFUCFH,X 63F0X4<74F!+XFQV^B[9*KXUPY M38"GP%9D*V81L@/>)Y&!#;]D=GQZ KK?6,8NEL9TPW MP"7G#V7AI".3AY0JD.R+'P$;MI.#.0B&WTT[M*"S*D&:I6IG6%!9V :> ;7L M!0@=&(#HW=.I$O8A23+636J,H8JM=89'(N4790V41JUC02?+4WV0;A^HE3I# ME IB"O(@%.V%L,#6YJPX??//$'KY(5#H7L9>/:N5#S>W5[=Z@2]$8$'^A/2' MIU*>*I^*'T^F-IY,27L4MMK:$T>$O(*\%EM*,$6QPP_6.#KHR!D8GK>+U],0 M*R2MPGOGE'NV7'KG%/>@!YU>VH=>W F<%SKMQOM]5*Z-KZU/+Y5.L_(G"&ZM MLIYKLW-!W7/M-MJ]1B'?I6PP]VI*UL_[T(L#**)>E?&UH$J'6< L;A=,5]/0 M,]=H-NV;)IZ4\1)A_1[Z0?1$IX07U+H=)@B_W+*/I\3,,?MN+]Q4N@?70_\' MX,H9A*AGCKF+DN?:19&1*K;2(6Z(U(#L0ZO$'<2EKOBSR2;H'!KO(8:.)?5, MD5,1YQDBE\.V] QQ^&(O_N3[>2%/2_W"%>LV\7.'+A9[@I"R3Z08Z>]V<88V MV_"+$C16:$$U>C!@RW6MP22O(C%T*&(?5P$=\']+X@0!:P',M>/: M[FHW@ZMU29B4DEKGP98J2NB XQPZ)EM@8WA_X*S9T0]87"@767Z(I=K8CUWLC[P% >BO/, 0>XMQ OJG="N+0+D8JIZ; MFLM!K!5^I6)TX!0C[/F/9HL3IUB"SB"28LO$CB*4W=JO !_8@=5'5#16X,4' MR]!^@DO2=4F=)I6E#9T!>>H(5X*JRX$8,NX0<%QYUZ=QMB<6II/9D:;;X]0C.)$3%& MK%E\ _8;>':=8%UAG\/0J&JS%#>"?*M:185H_\"?3R>_ <-;?'.%$"YIZ^QY M1M-#IS?C!%6@+Y,L 15;>Z<851.R'V)((-F#&Q*35%5J[)UB-$5H_XBC@BY0 M67$,0V7?&4931 -!#51F6'^)>BJ49ID6SYYKY=IH*AJ""H3KBF&K6=J4F+CJ M)G!J*0A[E(;0CR)0\AFH/N9CK3\-^_,A-D1%S:EO6(IE+[$<90M]_<@Y3DFI ME[8 1YUW5E'S3]!XA38,=G$4D,@3'E@+=XB5[T>6Q:C< GB;DV[6;"W+X,\W MMY=R$SKGM7T8DTV(JKW]AJ"/^'DUB=/T2CIQHH9$LFTK3#-#]+9ALGSQXT7G M\*C^P?6&AF?O,+.A0XQ#4+TUG5C0A*BRK2*<"T=.OOV\Q\P.CL8T)T==267; M,TB9F$_Z_IA_@THLIQVBS$((,@W8+6W%H__%F0!XM^.Y,'3[[7C49 ^WVYFRZL6*:-%BZH^#C[5+ZY(DHA,:0#84*Y %!@JR\ M@D[0591&Y^AM96-12QS9.M]4WC])$^J)(_,^\/E^R2=%C^=M1D3.=XPJKC WLGUOCRHD58/**-K\.-N4/OYM1 M#&9T[",<#0FTJ=%B5KLW-[<7?2PYO1Q_LYAGN<_O;141H0.#NU-A%D0#N0U9GVZK- M*3XI?"[>C J45?L;&%9MT'UG.5OI,FUH(LJ^M&F7+1176.YV.L\8HI"R;W): MY0S%LY6WF:XSABBC[.N==@E#]B#D;:;SA"')J+WW*:L66/Q.*[759>J4"ZJ] M,RFK*FI2ILLLH1%#N"^I&L1X<:S$!@FLX7<3%8W=^*JPA-16YRC#)6C"GQN- M S#PF6?U-+T6LJ""6?56>;/JP-UL8)P5J.]8 S?*% 4A4@83,:+T?AQ.!Z,AG/UK:8TU;"&.>!L0Z&UH*E-PNW-[;73"W8&8DX1M;=^IED")Z\V M7!6Y)9,+=@9S3A%E6R]) QC]U5^[MI5,0'%*T,DR"L4=W9B68EVYGN^0<6&WUN^&>(!.7; '[.;P#GB\G@WU\F3_?#V;PW_)^7T>(W M];=]>3V,W:!LGT>OI&':._F#N%RE^2F<02*=\]S-UTAK,[!-IA^T0UEYQH:2 MUHY<03VT2Y$K@)M//$52DA7WFIJACE9%.23Y0&%%E2*L&%R)^RJ ?GD1S4:Y M3A4&P6>MI@=P%+WG]DW51%;T1%PL!RIW14:]K$[7(*\DK_:'9F%9$Q0@0*5E METTLG=\N%1.['P9K= 3\*XJT'3H!Z=D+8^V,UCY=W-Q>?5"##'1=56PTB.97\NQ05K&K!&$5M9$,.UOT46S&B3C7=BX6$]CXU@!8 M)RNO_P"18%,/FF!J0 MI)BI 8 YW.YTADAC)&S#A5F<58?MY)-EDB0V:KA.- M(M)+:5IY[>&O)J'81Y42YXU(S)'OAT4SYQA\B_Y$769**VM/$0'B:N\UBC9> M)@"6_X!4B>4T'!-DA@KI]N.!X^C!:]Z5-_C%]+[C^A_A7/ "<8 M=OR8L8XU P'T(CKQ^/6PMO!5PG)1[_+G$PZ<>B'[!I='OUPW0:EX.M\$X4&- M4VM3[GZ.BZ@&+P,Z!7-WF4"*W.^D_:3>Z&0+J89/J:K)Z% $:O2>9OA]B]-Q M1HMXM.21K?2$HJJ"0-'HR0F)1S#9=C<"C*EK#>X^?J)S=7%Y04:27%I_,#EE MDWVKPH$G6M!1P4L^6#.5NHENN8B*^AZ.'!RL"&W]CZ2AP$LIKC^PO,+)?MO, M/&[Y!FR71RK+$-77B'0X:V&)%^A+E$-&<6'50*]TW. 03>>;[KR8U',+J;AJ MD'.@QP)]E5.-!N!/XZ00[Q MZ4C[1>41OZ6EDN:HQ#M-F+4BV_HGX!CB!QXT@\1Z_>+ P)_-7ZA4H=9Y)T\- M/ M##558T55@#FH4B*\(MO6N;L,T!0*[L$;L-VHX]1EA5A>&X1+<"DXR7")K.8N MU/>"(S:@GPY,0#]\G>%UMF#>S_Q--82Y9O9R293+',*"6>%8/?FK*KB50U M5Y61UKSNGZ$#-V'Q"^?4;4H-G9.&'\\GT)!WZR,-V5@^/4'6\&N)9"8BO:DTBDW(*2(BE&E%G\6_Q/\NY;0+/G2B4V M1:0FU LER"5NI03>&YJ(B\\K8]=Y SZ>N_'1Q%_@I(+'?\>!T<9N\!L(9GO- MEJV;HK^G/6OE:"BEN!!I37CPC/+C>T2Q!BLK;;B?>B2].;>EH4.,^H>%C M4+SE'D7_KG3*.6Z@>RRL)G+*(*5O"F+#P7'\"#^Y;XO$FR&TO#> 1\Q#&(0> M2 ,8%II[*[:E/6'$2Y]R1WH<6=&7!EEEW /3PYDL"[Q&FOI,1\C6DF)2'NH; M6J2R%T(4V,P@'K&%MY_1_V?EX]TVX/?!I)&4D<(#XZKO=A?]SR]HR[NW[Q.3 M@0C\1+=XV:124FJ*O#D1L5CW+0O&/3F.8&]L(3HP5=CFU6A.>RXUHH"4-VK< M9LB;W_9>-Y$.^V\&M+'#-E)B]!1=]%Q7\CGMN2I%02F715ZX:$+?.)*&C]2S M!! />G_$L'44^Z5WTG+J)O4:%GF'HQ=?)V'@!X9CHL^$;Z#\Y&!PR$E9YZJ0_VN=X6V;^DFYJV\PHD@]D4,=;8J,"G2& M(24BI:!*"WLNSY:=3-V_1-?EZ=3]8$#O%\,. =6*V,#GND6XMA24TE??JY@D MCO' =0(/OH:1H=\VG.3U&E$WI(N5?1]Z? M$-24:,)[-@($CK/*_+T*!QD:[#KUJJH@95Q'7J)4U\YD&?U1./&2=K/*O[JY MO;X\-_[1-)'2L.[U3&U?G*89B/-<>B 2SML=%Z*>6^LU>B[\P=F\ME>Z MY0U68,K@U&_!,;)8,;272H$!04O9ZX4G'*IF84Z"K+W7Y[6;;D%>]#%0"[TKS(*);. MR0TK&X7W]M^CC>KP^Q;@)!HX*(QP,WWI!Y6E')T] @WUU52D_S15U4> IJ]? M7!LU8Z/#9Q-!8MF_W"U62]"5]HF?A"IN!OT_'CP 1@X2"/A!6^0N^NX[M6MI M2OL45(W,"/?P#5K L=J>M8^_^T[L6IIJ( ZI)L0N=%H\B3\6_?$>Z6ZOXU;< M2DM[\4YZ@7H3%"*U("5'>QSD M%JN*Z-K;B$<.VK6"PYD@V1Y2%AQ*#=7846EAX96/:$=5 DCJ D"MHQJ8O+@P M(TL15Q'_#GPLFRSGA@U\:O[I7#E-,*0@D$>134A5J0P'U=29G2[JI^]2D:^Q5:?MYIM1E5(V@%R+Q!G3H M6%IN/^.0M'W'VK]R=_&OVF(QZ^??IV41"DL8WY&(KG55F>S*L/6E48[GOO-. M9B[-)*SM2%18@8O;RUPU#J[R!S&>;)0#I0; 0 MW@OMQ/G0OWFU):/@?/,+:CCA?[JYO?[44<8WJ*_T1J1N;L*NGT@E#(-ZG7H? M''!VI) P3QJ^_CP8XEEJ2@IO-%BBB@^^CIQV5 MIH-*9%A!C5<<\N+=]E"JT)/W,2-8=^G@$)FN4_;@$&,'&>'D5XX/S29#;1*_ MURVBMZ:AE,XB[XKU8G#Y8MI?K;S(;:D5AE?NS_L(:$2#Z0@1>2^M[08HJZ\6 M]CDG'^P6Q]M344KBNI?,^D[SN1O*A1L8=BLS.LNGLZA]OKF]4CI7=..F4GYE MI12O>X.<#? E,Z_JV'7>HJ5LAO[7@W@EBUX;O#@PJ!R&XR-S&([]YWN'[R>Q M.:(>O$?F*&[AZT?M(G/(GV\X]5OT2*=4/)UC*D13Y )]@!)S(U-&-8 9\,F# M6BZ1(O$XJSM0'41T+*:LK4U\2C6RE.,NTH>-4R^*4*YH4S";OY2% 27748T$ MK0&:YQ*_GMXC;BA$G"I+#:-89QEQ8_AGB+;Y(P<-BC :>)-@#;S%VG"20]O^ MJ-#, QO>[RM+2#JW!!ZFA6CLW"-WE"HQ&TVB==9G/_].>A$*:R#RMXZWNZ6J MC.]8I%$_^_EWZHM0F-CX)(NNCX D<(;$09#KP?LX$*0SL<%..C\4E-[^WR!( M+]Z' ;_&SCMN"KL*6\\Z+;!K[T.E:64*BL5R+H=H]093K23E[R.J(8T*"A8C M,YM;6X<]]8849__>AU0K&A44AZ:;0^HH3*9ZXXFG<^^#J7EU"HIET\V1U-5S MD]JAGW0[.%TV'":G&2_>..OHPO@._+'AQ6E"^1QT;R\N3QUT1^/!Y'G86_3_ M,XS<[W:N#VVQSK[3[J.]>G[(*"L]:S5 M52-,I96_EK!$!]Z63W@G_:7N (H+JX9E+5@*SGSL0HO9 Q 2L1\FI-D]ZLL M=0D&/CD+.ZV\:I!QZ/@ 4#4IM5_$A;W]E ][I5F74:RZ7N'R#=]/KN\_('WA M2)?0":&SFFR!%^'CWP%$^N,;K-0R13V[56I16=+0\2<=Z<3I0/N9I()"'M"/ M<$6W$%1I,*/@FPNDX)NS(1E-!=J?)X;+)<"1IPX"SY!F9\!T'1/:,,8T> !( M3,/&6@]1'W:9P@2R"6BY,ZQK2A=U7QE*IU\R[)P5'I$#P_-V:/!AAQC2IHE< MH3-DX111T$9*'@?VQX)C6?L;?(5'( &E1F=8P"NCH =F\FAP>L;T\W8"1K-' M0WY%-_/S=WT6O=W$45&,PE^J18SLCBO+N+ M*@4Q V(LK@M$T;H%=WT?4P4@YT"/!7J*D#J#+]8Q]>;RYO;Z@V*P4Y KV)\Q MRZB]U3HQE[(@7U2T8\ SBZB])5G4O:<"F%=:UAG%TCGF[2#TL.H2.W7N $;R M3J/74A9\.HYY E214_O9/C4\)%(3CN8EUAEZY"(ET/>J8-0 MJS/,J"*G[+L_@AM<(L.>W+_"8+UV;9PHL,@+CE)<>W0K":C]==Y^ECL1G&]% MH%;6GAD"Q-7^OH^/&%UG0@7H:]_EX5R :,Q;6A_1"6H*/,X_&B2XJ,=J96L*J]N;B_E MYE8612PN>;4_M1*4,';QRA2: 7RU03+"BD-_#5R_=.*NTW97:29 "[+/QTV1 M[_"*BH]8AWI=)4V)A,WEH5""%Z=G2+R@W\,ED@RI'V(Y>=A2UEI7.51);NW/ MXBSO$QXL"*E>V7R-:$\@ >+6/BMG!6]*JBB@1M.]2E&#S+%U\@[P:B::. 2 M4WU^/:*#@&?8=Z$/'> S+Y),C;WSC4DC#7@A*\:[]'?)X3.Q5/E]Q^J;IA<: MMI_^BH-_[(V>&P]K:J:!&U;M^)B6F 'B%6S]AM]YR:V=!D(KJ\ U\:DSYZ\8?35P0ZP2HQ\]EWU7&14^*U:1)19U]WMDA%>)%\T%'.PX M8QC%KWO52W; 5(E%',$( MB%54[5^8%,L\]=PM\(+=U#:< .WC<'KX[8;IW,?2BFJLJ4D"ZLQ361]U;X]4 M7ZV.%/,$#!\ZJ[[G83\MK!&&[3&]?E:E'VYN/]R> \58-5%WWBKT_%:.5X^N M:WV#MHW&V@C![:RPAVF\%3C]F8MO'.V>*0_K:JCNO9.J_-SO3XYT54*]HBIG MPRIFX04_KE-Z(Y\UI)J'!/L L8NL_8/>5M(72"?'J+09C C,"BB MLZY?[.N6EBN66+HP+EI-[\(;]S''3V],=^5D']]P>YI_+/$T/_Y,Y&V>?NC< M_,UOVIX " #O^S@%B+;16,&7U@=P3V3B;4:U2:,$D_Q<($1@[1W2F;607"+7 M94_2S/FPAR:P; LUX;TL0;;A=],.<6S2D8.^"'QL)MV+><*+RNUD]?3QYO92 M;L9B9F*(E5C0N49*)'B"$A9K(_C5#6UKM-DB[>V?#2^H$?VJ-:8MBQH06_N@ MP>P+=630C >8H+U.KL6N,JNR[++C&_&M8?G(*//P]7N00=H+? @ZXU M#PPO4&R/X@$TB/ #EM#&KY,?D&J3C![3J,]XR75]B,7FY EGXUVEE0@UR#Z( MM\N_*;9"-\,^0M/GQ3T>)6A_@4G<\$11XY#8&=4\&5L?3);][=:&)DZ@%P>; M1[]Z@AL8"M=)5^(C-[5!N^P$;8H%$W3"C[=H0\=J]3R6/V\6 MW"GSGL<^EYS']A_M[;_:'Y(8UME^CI[@;Z,LZX3H&:KK!H%&!#-TZ"&J-VE1YR@NQ(YBG)[ MRZ=[Y*4-10+<(4[!%H.:JYVA!+_I0$&580F;4=N ^@*&*P-;X7?L> 8*_BI*=6SKE); M9T(E'NG?IQZ^P2C7HM7ZW',IS!3?HIUK#(+8.(!C'D^!%X5R&ABV&=IQWH3E MT/ 7%R>6KK&PT5J[?K;TV0^_WMO.ISUYE_ZLR'ZZ]&WL<$K M_7H/?;X7?5]]>]>IQDJ,7>3B[4X1&2H0^IHIH]H24:;WXT%>+HB@C<0;\%Y= M25<5OP*X6@? ZJ-.&"LP#O'!:;*,E.-/PL /# ?[%-\9/C0)B'.UH3,CZ@LJ M:'^@'&/NH1VBW^4TT;=^#_V $C>F8FN=8U%%D;6_V"<,*9(Z^&8@4BM957Z6 MGMM$P!S$):H@9WV9L]"IRFCK4V%9G3G +I!LOWGA."<\9T0Z*=TEK&DBZ>7/ M7GBN[#L!C$2$;V .S-"+WL[S'BBO^ Z4^*,_6LE7>X?/GLTY\FOK 25J>TRH M.XJQ,OG<);+#5\NK*3R$K-RXC9^D BORE78WVS @6(SN=L4-4'PL&ORB:DQC MX$Z><&WKA\A>%8@X-C: ZI115DTU2K2-+BN_2C2F"$F&FZWM[@"8!Z[YQR3J M!-7U@EA>#UJ4@%*PZ>22MP-FT!E :S5]2R'4.97U9!]D>90U^84Y5\^"OM$QG%TMFSH>9FJ;]Q M0^(%AI"VE242G1/"#QT4;305 ZT9V]8@] -W [R^8ST"=^49VS4T1\[2]3:Q MZ,$:>'Q6KV;#/5^@0^(S"-1480<[]WUHJ[T]GTYQW6A_>>A MYAI8H0WP@(@P\?%.:(@0]Q#-]UC@H-.NLWI">RDTSQ U3Q M"E#$/#EP'3QBO7@Z09JYV]T!QUQO#.\/RHU(6375,&\ P#Q+*BE%61ZD/:?> M99154XT'E2!B09I!;$60GALV#N\3C8(Q"*AVY\*RZF/* $;!',\L:P= MYEOP#S6R@MY*MRSS8L* :HFPBJSP*:=SW:?.\26UE$>W!)L"="L(K.K2[WO! M$3/03P=6H!^^9HU"!?-Z<2'5,&]T*N=0 ?$JNGDD\07[9)GI9^%\32VK"JX< M*L_BQ">9F&F9X-NQ-]&273I.BJBD?3Y%GKAOL,@E^[:E!+6[\%U/MWNT.?^Y[P.!U;+FNY=CB8W>60P=ZN ?GZ,[2>BYHU=U9;B]N;J\O M%'9G*4R9V( "5#%]-W:3I0#2#"%W60I #PO)M5OLA1#];#D\MUE ME=93'N$2?/((5Q-9U?LLQ3P8%6"(K,F_7"FJ^C(TX,&H \J0<2"-(/8BJP* M8CT8E<24 8R";3VSK*I.^R67W_NWHH?%SK )W@S$LJJ!W^C$SJ\)B;X-R<.M MXVX2?1N(956!EU_S)ZAQ"=C S.P#\Z>5^_9SY KK[6+@DA\.N"6_^/HR/P'I M\ >E$.'2Z@&1$FD4FT_YH!N,"= -QEV"CB!-(^[;U>]<:^#XWU,"CO\]S4I^ M>7-[>:LMC@1IY(>'(5R7XSA&D^5B#7YU/=LBWYD7E>L";GS"=2!>M(KWYQ*Y MTZH!0ZBR%+D_3V2*(]HXT;7.KS!8IV*-'!SQ!L?O1R*A_\.I">E4XFE)-18) M!9C(G]H:DNWVJK331O=IQ*V*YAX1RG';.-%?7>^-#]6\-W O?K1Q-]+L].]N M'-@IX+9UBZWJ;AP*S$AEB#7KQE&V;FEIW)6/:@,053+N*@"O>..NY/,PE^8K M&7>;0ZTAXZX6%HH<(B72R#?NOEN6"G&K9%G2.4Z'DI:EJYO;*\FYE9M<9!M1 MEB(N,V-T3 T]K-ZXTP2>G!93#7^AT.219Q)?KU<7#P;T<&)Q\ P,_',4+S66 M+OF--7%F.*BVE^28Y8PD>I6/(/W0'\UZO_2?7H:]YV%__C(;/@_'BSG.B1:? MS=,O]URG9_3V7^]%GU?_F+[7Z4'JLE,ZK#>\/$#R$CE6 M6%D:M %CGD4<2I)OAJC-GY?YHXN^[^!Y>^!Z6S>^(,-[]/X*('4"_Y#)A4JN M"BV],R_#/%$:[(!9Y6@IV/_S"P0>PG*]>T*'RZ)K"+[*JI&O[O:)5U1%#!Z% MY]Z\+&P;))8V5,.]!H04/E36A"+[FGV?HPG6C_1P25U_*#64A;PR2A3D&<7O MP-Y%5.Y&!1A1:?)G%$N0&[848\G \-=H^X/_,_PSA&^&G1DJ!YL2R0&.M7Y6 M<]?RO138L,V3HI[$'9@5^F\&M/$H>G ]_/SRL&6^!Z_!X2<"8UBK=X8PM03N MP%$C2I 9'_C8YQ5ZINH%A$Y]NM7@%5R%7ZU4^9Q_YIDV3_*RB MK]*NQ?C;C)P H&:#D8/PC-X(C)PW]'-1[LWR"JJ-VS(-GOC=\,O6W'+?S B= M8_]]L(+FU/ "!WC^&F[[*P]$0Q6_"NE;;P;2@A^@+= ,V*BPA8ON%I[A^$AK MV)S&-YBO\]?F\\6LOQ@^C@:]:7^V& ]G\R^C::__.!M&H[KWZVCQI=>__Z4_ M7@SGB\@??C9\0E7NHPJ_]5#]\;P_P"[Q<_6'/DF/9?[N)=4TO$V7/R.P*)7O M1EWL3"#ED$A2RMWN^"\4@S%[ ZKQ@0'9/!UJBJN(A?"XKU3K<+Z@:BC6!(2. M,$5DB6\/^LME=%\&K*&#UMI=H6F77# KSH>;VP^?E4&0HO #4IRB:?]X%0=/ MG"S['F+W*IJP*--Q85G5$*\T\[)+ILCMW%%7\37T&/7A\)OCJ8J>JY2O%=6@ M9D>MP+HF0'1%%MR!:R-<(Z>$-W D%SV%(;62:DB+0*O ),^O S7G^Y(U?>JY M5F@&$V\.O#=H%H7X)A53C0A:! M:_XQ\OT06/4F(Y#<=$AY&!N]FX3J07 D5*ZW6&'=4DE9U/M38Q\!-:]/7--/3, MM>$#+#",[OKBT4'@15FUSM"BDJ ZY&L]NN-,-D/):^O"C2"IL/8X5Q!/J52N M8AR79L $,'J)0MHKG!;+:N;CS>W5![V YQ),^]2O13$OGZ#Q"FW$.J+1C5*G M,_CS2YF0X9,N[BYWH8]TXOMHZ7J%3M3*&!LDL1V1SXOE0]Z+Y>YE/AH/Y_/> M8/)\-QJG 1KW'U#?,:5 /65.*;0J$AQ2]E%RTG[US3]#Z,/D]O?H)[:HBVS- MJ#8#E(%2<" 4(;$BURH%$E#N1@FE58-4"$!YW'FD5QA>_$\/T'-AEM93#7(> M;-B0+1=7$8SGZ$ )_,ERY%CP#5JA8=N[T6:#]C4>-.RB$4!/D%:Q.1T848YI MP6PO4A_:&P0+Y"V[):!548TT[:T<=!4HXH!3T.]#X/K)\A#J;@X[F=BG\&!]'T_W "+UXZ1>UI'L&/@7O2B M;O3<91K/,NU)SW"LWE%?>DEGSL_F\>$L;1Z?;FZO;Y28:4B@B+9Y)!(K:@/;P,V#_F0\V!3V^:A%L9*VCS49$0YIDW9/,HHHXO-XP$Z M, !1P'AT*C.<%43S9YK'[-GXW?5*HRBSMZ :I1I:5^IJ1!$#"46,@Q!C8T-? M>3A;48TB=;'D8@>S0A19J>YQ*#QW"ZP%,->.:[NKW0RNU@%]02JII1$#F/'* MLZ"*$CK@?I]ZDT2O>O$DNX9;.ELH-E7J"UZ!Y\L4'R]!^@DO2 M%3=+U7>F,MLM2Y36K;>!CZYK?8.V3:!6^N=W^IS0AZH806\);>GL$*_FUFP8 M[XQMW/)!XW[=IY/TL/Y:#H#CW[1GT2OXJJI#0Q&S'JO&WL]C9%?=6/Z%\?WH MCRV0O?C#JO*]3;(V.V0X]/YN$2\Q QW_P33=T G\J;&C>#BWVH?WL=22-9 3 M@O?%B '5=K=;[T.EQ9U:HQ9"K<\BJ:6B4(-C(/@,4O8U50=%^V>/2IIJE-%I M6)L:#P"C;_G _&GEOOT,3"O^W,CQ(>KWPC,LZ*R.8Z:[O?WXX2;.LC_*PR/_\.1X!R>_^Z_\'4$L#!!0 ( #N"6UA<7[YE.MT# M .36*0 5 <&1F6?F M=D>T?"2QG[[=$T*(?3-";%\4A50(H0VT .+73Y58##;8V!A;<+AQN]MH*55F M/KE45E;5?__?PM C,V@[JF7^\Q_J@?Q/!)J2):NF\L]_&)XM%O_S__[]7_\= MN>@Q]*CI_)K(0^>?'R/7G?SZ^7,^GS^@"P^29?RD23I*H?__6#_H.80"P&3[ M[! X@P?+5GZN;P0O;![655/;:W4QL/7@:9HDHS_Q[0%PX.9QR?),U_:W;P1/ M.U!Z4*S9S_7-O?87CKK7_#RZ:9SZV:U6>&D$#4"HIN,"4]I^!C1S8=4DW4?]C--"L_71N8SM"R#> BCJ.&J#A!IH@GKCFV M^Y)CZ.(>->KB&*^HZ,[7-H_;<'B4MXF?Z.XNO>HK8GC.'QFJAT6 ;NQWV+%B M-)5\K>G5$^L7#LF*2J?3/Q<8B9M6H20?_CRZL2_]%_#::Q/??0+*!W""A'^8 MM+_:G*,C2#/]$# M.1M(F.2(9ZIN$T-10'^(/.*@#&Q9%/BL^-A/$1/)7*;):=.P%DN8ZG2C#.*, M\\M4=42A[2%F!P0M5FTPCE@?BA0M1BD1BUHL<<-N-M4F!UK>%/C:2'45CGW\ M$3&!@3J\MCF_6,LP5-= ;'$84V91@\C2(8NG0N='1$5P*@1]%\=]ISI:\#ZI M@4FEWR539BPY43 K]HGZ4B)I,;>PQUR_:'D<;%6SHU&QJ'3KS$>)C/5&$T$@ M5%X@B *,95K\6!HPQXFL>0:T56FOBUG/#@ M4N):$"UK5RQYO2&V!H9:XGRW M##O\U(]3/6738V0G?G&H>Z[/HM[:0"^:,ER4H;_J9TL2IR6K4L\WY3PY;]_"R'6809V7,W9P.E&U'F3D]J!4!5].\ MU' $>DLY6Y(5D<8='0+=@5_:1]:S;=Q#U9& WH/ YDPY"URX[:[7:T[ML5!? M:GQI^NB 48R?E1DQBKM+$!2-7-*7=CAK29ZQ[7$#?<&2<^B:L^UQE4GW.*-L MT20[-],-L]%E[,RC&,,]SO6^L;.8O?M=90J\1F2KN8+&"Y0-)G.8'188,8Z[ MBC_QI9U=Z5<3*JJ#?9!;0W?VS$!!2!BBK<_C'-%<$#6CYS*I%#(#C6PNPM.X=H_V&D'7R\4>(M-@)PGLU"=X%<5+%3#,ZK0&$!;C)GNLB>4 MO"F9]Y6)FAE-AW5OOJ$$#Y5^%K2#%:!Z]E(*5LC!,V1IC/LL/T?Z2!VSE(_\KG8LG#@\E#"]*%X M@YD!50<#'>8LFPIRR]JP@-%U:XYC:?0 BX2MNA7+V0]3\C)3,=M> M-"IXHUX4#N8H5E$NI:.OL(,2>TPT/?':^9C6L0AH#//E-$%\-3M&SL@NE$2# M(1./LW)KY%=:G;GR!>QXKBSTGK+0XLP16X"IE#,:T==&J4)T[#4YY57N5(&M MH:$,8L@3CYH0Z.H2RGF@FIAX;B'I'C;<=7<$[=8(F"UH3"P;V'[1F #5#G1K MCT63\:"4\&856LOG"KPQZL5(07S\!A:=ZJW?R2+!M)\Q:8]\OV?I:64R;6ET M?:!F$EW!JI'?0?Z%$/(&^=&T3C_2(J^0+"NTNRZ5&.BE^2OD'_(,+SSR 5>@ MFCNN0*([K8%8X3NDKQ7M8LJT2Z.:\IR<''K'A17D ^2BB=BKJ(@RQG&@*SAP MZ.D5=;COY=0% !VA617(>D/S*38K42/^\35G\%%J]AS;9);NIOL6G'&@8%=& M:2OEQ_7SJ3'4N50TF&B&\WOU<2=-QA_%:N#:R,^,X-^255%6A7P.@K[&RSV! M*G2S!9]_W'/;+)BH[@ID:#@]\5QH\];0G:-@\@AMU9H^FXX$LJ4EI$:V6'ZT M,TX01L.V/30K1912ZGD?BZ<=<&9>4X@U M<\4FG$'3@TUH(,.ZXE.0LD0!27V@JTK :VXQ06$LE%NJ@;WRD$=7G>'*I"*7 M8;LXT?#465%]']V3PZ)F*"* ME"U2DP*78'N/F5AEV'U4,(ZC-RGB/<-P<1'+Z!+F1Y*DD)0K4X$QY@O1$&AE MN,S!LIFME/=-[+8GDJ4@/[+SV97L6M;ZUO*-WNZ[_VPGEJDX\WR1[+AN7F-B MQ#1=?7Q-R.$)?XC8BUSNKK'&*5+)92V,)LMVU67PN3WJ'T>EF>B6:@X)S!G@ MI";16M (XE0\3J+_76$$^!3DUX?/H@QG%8#H. #9XX)5FI$CPLGKG%J:94UY M252L5T/ 2]%/[=%/H;C*;)*&332TSM3.5-7V@$ZGYY].O['TW"*3 AF-]EK6 MP"Q.473RWA!X2TLRH(6DGOGKC45IZ,#$2<4G>]#P;&F$_"^^@[.C-#()R()A M#JRMD4O0+11>NF.M3BSRW'1"J=$VLV<>/NSHMU\/K,@>7Q9H\*Z0=78J@$R' M?FQ;7"^I8!^?J'YB(+-A3-";EC]9<69SE3,FNN5#&*2UZA/(:3H8V&.:*+(%M=VS3X1?9$J#%@U>)N;@^?<1#9979%[@)\U MS_-J@VK4(0U?@'-EF7 M[/7DT(XEDS>?CX29A(:I;AD1M>F(]I-9I.\P0_/202<(9SG MEO!KA>.@X2NE&$F23 QMM2[4NO5QY7N%HRK1I3T%5)YK_FG!N MRA1=8@0WGK!2L\+6RMQT.J3Z5J:V:.%$\?$1W%>%/5MVVM8$VJZ/>>P$HR@ ]4QWOYS !=!CXUE34)/DN-\B%2F7^HZT MXS%3\SG<'XQ:=:GO%1*"89-B.1T=#4GO]1#N*[B_< M4K5TP@9#0ZP/%$]26 M*IX3\DX\&XHU)3J;"E*Y*1"]$C2J1)E(U3X]Z5VLY9ZS#"DJ8C;FQ 2-=%;Y M7^5EIC^J3,TJ2\A=C4T)?:):3^8H%@]W7E+]<[\R*9A=A,B8.?_^%Q> _7*" MVBY$420H"/N%RZ;^^>&H2':XT"NX-@I*Z; =)#;EC@\+1\;553^?M1G\="P4 MB^)?067=KS77 @).!2V>^-SB(Y@:*"[S6[_60#3YFNN@>#2H'-+U7&OX_F^==(_^_/@Y_]=]/?;>]^'F+% M)%#"+26;! BNY:!66:UM.]M[6Y[*3X^NRVKV[VQ^;S[R M/EX?9M=S\"VP6(TXUTBJ9!I.69&<'FET64KS9[DB-!]O!4GOX,3%@!4]'5C1 MD /K59M4SN5JE5S-*7.)9#5O#VO44N[?;=*U0^=8!'Q!F]2JLURV4>_G.= K M.MW,*.5G9C>#I##8)/IT8-$A!]:K-HDE^KEYN;$830NSWV*0V E&QE>I%N4163D89W_=(:GXK2 J#3?J. /S%#/ 7(*GH M>]F>V$IK'-M,,3*73"Z:];MW.P])JX5<[H%(:'/G^\#QJH>J9T ;-.953T@H MCS-]D.L07>-F[,I7>:@O$/^71+YN6?C-H^'[;0(8-'*_:AE(S,VHJS)?9+N&]1>F?Z>+.0LNNFXJL2N-BO;%.AP[,(H MEU*:P-9R;K289&EE%%K5?4NT!VF\#H'&1.J9/0Z*]IIPLEE<8%N*#8R=!5NX MAO;%?=S$9B#.J$V7;RM0JR>;RT)<]H/=BUIF,$=2G MR3F!)+T74+\EYM8(XN=[MENO+\:7@>)^+&6>-]3AG(Y M-AR2?KQ7X9F$T9CKX97X:U0^F>\79%YL#C?,!4L?A83@%QJJ(2?30KG86+^7&9>N/2(\F?PK@\%[ MH[TC9KU&%.,Q9FEE-%C0#$X72V8A>^TR_U*S?OE"F\\PZP.8IBBF9[8$@]#R M)4LH4 D8V@1LB,UZ:,1]LEE?TGPQKP_2'%=.J+UZ/]T;2/;5B_Z;S?KEZZO. M,NMLFF>&Y78E*4#98.H3.,M,%W>S_@X!7[Y&ZC/,>FZP$$FQ7:\+'IDW2F9O ME(Y>?<;F.\QZ:,1]LEF'61=87#^O:)V6.N(?8;R.MR6[N7+V_[#+.^7$;+*4CQ3:Z3K)9FDUZ] M4N[N\UDNUKUV\%YU&"V$*];CV&JXYY9)L2A2F3;*N>_-.7\Q?^S#LJ[4W+)FU M W41ZB#'3XU\1O/+2DF<=H;C=OW:P^ZOTMZP9,J.:^\\!DJ61XZ&9&*I\'(I M;324\;6+]ZNU-RP)E)?:VXX[9=,E*5O+%UKZ,$9X9!U<^V#JJ[0W+ F1X]HK M)%AWJ<['/$[V!/C'LB2F4#9-03*G'E1[O MD7-8QKWOVVQ;6K@3/Y%.+TDUPS0IGIB7Q4)H3?$N;>NZ\E>(N]K!S_Z.ZG,3 MVLY(G6 ".;[>R*J.I%O(%D$G$^Q"_23IO1=WS\]82YNS"#_JMW)MCNAKE:K> M*X-N/;2J^P$VK$'Q!A_"'E=?Q9$4(07-'D^>[/M1IAS%PA48I:NI=?_6XSGN M0 T74,.\V?EAH :'L+P)S>",H_5!X_CN=D<,*UJ54WR>UA(-)LJWDO5!(KP[ M:1V!Y0X++@+$(\R[& B_8['8T9#]8O$>[:ACL5K-Y#502!15O4U/DN%=*W1M M\=[E)[<^1Z>G#4J9M#15F%']C-1NS,*[6? !4_ FB6$7Y\DG"9T@W:U8 MZ5DM62=&0-= N]^OUA6Q6PIO<'.26"\ASV^/-(X.Z@^'%DWHN+:*CZL-;!<^ M/,EI\L):Z'PFK13'I6Y' 'JC637'R7RT$%JA'PD=7B7QMH?BKTLWSSHE5G%F MFJ!FI K%MGH3-[QSU-\MW2L?[+X.A=RCQ@S55%0@_1X/VJGQM)N3[E (JY&_ MB@,SKPL\MY_W",60T[%=L0K&ELUZCFL9:(CUA#%&GB$G"?&Y\/AX4X"8M,FL MH;<:MB5[DENWU^=/[FQ:M3[ELH*NF@X,-M ,*DO73SJ,8L-@#FZGN28^IS5H M(^B2:JJ&9SQ3@R:<0=.#36@ U5P=USJT;"/8A'6@JTJ@@]QB K'-::D&>J0^ MY-%59[@ZKY'?\/BILQ(*!3 K8BMIB$DS!S-&JE37$B#99S1/XJ?ABZL1CWZ] M%-L:S$?E]G'5P=\[)/#-MEWOE/AY'=E"Y<>_ 1]VL?)6R_C\3?FX:?A=#W%@UZ? M%XRBS#&4$K5+N5 Z@5<$_XRHFQ;W\V'X1S5^X!>;C"$.'(%6\B4NY91K+G/7 M^&L8?K\/ L\U/B856F;&5<=+J:FZG_>HT/0Y;E?1!XKO']8%';16!17^DXPW1G_1>YMM=AUM4?$(.[6T>/^7RWLGDL,_G?@DP M5(H)V9$F32E=JQ_%79PEU5W.QAZ8+YB!Z,$[U:G@.EDL MT/J4*DXS5V$'OQ&#-V0'/P*GS4P%>FSS9Q;.H&X%+["6LSW&4/89[C$^).+%TN&A/;F@735!L06#D[1Z9-R>5@ M<9KH^:FEVVJ%SLU]" 2OD/U;B/T5Q_*XZ*2M3DG,DZ"8,C2[$^.EQ&U(_3':H%'?>Y MG'L-9S%B9HVNEL\G>Y;9E0J5V74[]=5I6B]IO7T!!\.IU8'+[(SW'1<:VS.H M*X\CKIB9<21438I9R*8Z@=>MSX&R??34(>5>:#?L_(DZEE^&;K MWR_PP^1>F9CI"X_/26<<;=<@)VIYJJFDQ8(T:QO7[/S< G]V/B<\41OG!DS2\V?2$55;C]27BET53I7,#X/A[B/CL^;,E6- M\;&Y0_JLQ%8>.9-=QFX@A/^Z<"Y$ GYE? ZYY%AJ+^8\1_2T(JP4/)52K]MO M?\_X/$3B?G-\#H'06*3F\X8 8-RM2#6Y+0ZOVXA_Y_@\1*(_,CZ/]]O9.D&K/F7CL\_?^N"I!C?+I'9_KV1><9S5!,Z#B,AZIS@.)C] M 3KZ'G3JPZ(IJS-5]H"N^T7# "B"48%^X.V-R>\MM%ZR$#5K')^8)]F9T[2; MX3V[]@@;=L;H'^3#9Z+D^3*<)$'&M^V\N@QG[]$+[&"U7O[90'WP6S8PG=72 M0B?C[][9E@DQPZ&JJ_@Z%Y"[ADP]6Y,5.\].M<1CR;6G(CN6J-#:C]-I7E4! M'2;Z:K-\GR-RNC'/CBG&982IH4W&77I"\X.[R,,4'SQI>0ZH=AOH'LSXVS\+ MB*' ED9^!6*)AKQ.L$#FSTKV"K7&U&QJ4V";+9E5=#74M/0>H?3 M"-_)ZARG_&KU_1.%GXV5BMEAH48(^6Z2(_DRZYML:)4^_,*_O.:O3H1K@07C MN2/+5M>&?7,[BVXZKBJQEF>Z]L:V'W]YN[?-TR,HCC*!OM[,8+WPJ=CDUTT- M6H+5J%090\A/H$7XBWPF'0OM4/(PMYX0?=KUY>N951E^9=?HZ M@+) 5X>6;:H@A_R^-%(=_'S& O9ZGX)_)4)BOZPOFF.J20(,Q0ZDXR9;; T=WURN[B^72*QO#Y2+$@L/S]?[',21)O6<$J^/F1L M&R^MP^0_JR/0]=6LC#J#.P^M&\G[S<=2.U.?"FQLSC0X36>7RSO30;)[).VI@@>_9:M*22ZTQJ(%;Y#^EK1+J9,NS2JA0YP M'UZR'T['__:"Y,DLW4WW+3CC0,&NC-)6RH_K5R&6DU80AU4LVYP@ I<+*\A< MR$43-:ZH QVNJB+(=_\ CQLTD8W:>,,IS*34@ MU1A;F*0K15K60B?0;6;P=/IW#QY]A0&_%10:R'@_E0(3>&_QN9ND!;\W!C$ M^G0KO&P3_5J*N63A1-($NW.XDO)'[N%_C%F*7E;AZCT[-TLNJW OO MDKX/R?TX];\5"-9K(*#<@M+(M'1+\9NJ,GI"0E&5B^-)*RIT]$4V.9281CQ\ M6_F=A80W6/!;P6&S]7DP",+CH9$ZV4#!7[:\4KT:CW,@ZA1STTRAU'-N*PYX MA?PK@P%]P8 PDTLHEN&+/\4\O7$A!>OO;T_( P-]3+F;Z< M+FEE@N1J>;,9$WJW%1A\14 83E&_$A!&M4HU4R!F$\T3U;XQ2(^I1.FVY/[E M 6$X0?!60)@6RN-\7H^*0J>0[\:Y<3VEEF_+^']/0!A..+P6$%;)&3>/P^Y8 M8&FE5F*9])R=W];8X.L#PB\_5?%=)Z0VAW&]Y)N=D3 M5\F*FQ[X]6QH11Z. M$U+#L+/_.<*GR+7PNX5$O#2-=A8D&/>U8ETMPVHVM*;_Q%./?P/AGW,V\E;X MXS(Q\V(9::&5@5.=9?2%%8M?M^9?7/AA.-#A?<=FOGZ"*F4;>2]+)LI<(I.G MR'I9@GTOM*. 4)V@&HJ#*<^1/4?#C&,9;46@^VV_OEPV9^WP+C3^;ME_QXE\ MYVP-M;,5TJ;4FNN."*H5E]&(?T')?9A1I\WP.ON/; 7U@NB;TOZ30\!/@0NH MT#.=&-B ZS2&(2$8-BF6T]'1D QO)!%R MN(0AS*2>.2/0+G7D(>@N-$-.L\/>(QPLG8N'"Q?DW)>=JOI9&X442^5BI]Z2 M="W?SW,U?BJ/EM)UJ]@7;11R4Z[[-8A,B^EQ0E93$Z%>:Q%9G^G54NIU.^WO M@,BUN^O7(-)(T[*6)1M1SC =NJEW!N/QY Z1:W31AX[O/N6$O29T53N8#\5L M?1'D-59"P/><+!RJ)I0ST$1_;"!422UR$Z.=")#<:Y^J^F%^08)9H ME$I3P\ZSH;-/H8?(=X3H1Z=?\,9% 7@87;?FP)1@QD?<@+8-9;QM!ZY)>0K, MG[;J:&;1718]I&ZKL2H%8RA0/:;$38=TH927]$DL%UH+U62*NOU#)#<*[0^PQ/FQ2NA]GQ&_I<"X'JV17G0Y'H)LC:8=JY?1N(M$C0ULK M=H6P"K/KNARL9@F_65K4V!19-ZKV8W>RJ!GA/9CN"F'U'4[P:);D*(XV#P3G M N%5>Q[BH^E65#!0==55M^N4'7HTK[H*;3F$?Q#KC])(/[4CI.%XV3[Q% M\-7F1,X7-976#""9296L2T2)X5*F%R/OH@[+&L35?%[#MF1/D?L)Z_ MF$#W4:R_$>?G;F_8&0_+>KI-V1J4"URQ6^2@'KZ#R_&DWB$.K?W%,Q9]QHQ? MB,_9N.R^M=\%1#DS]Z-YS:2T1)YGY+Z88'@U=%;J#L3OR F_OA'OSA8-PG-L MLLA-H'=6S3=51\OX&6A*([Q]R7XY-M"ALXXD:]!]NYD7TY5/_7KQ]+JU@MI, M%[69,>?*O6R#3;43V;@?2EO[RC;!.UM"")\&\[?$M%-!?DA.%^G RQG:-R5\ MTZF20TJYVAI@O0^ \^0J6G-K>_6C&LE(P8[42-@25&=@H,,/*.6F%\=4TIBR M?;?ITQX)%^U$93:I#VOYT*6%5S5-SUF].>KW!:^_4A^/2>F+5/(-^?YV"OF1 M4P="Z2LMP6WWQMHR+W@-1O05ME;6TJ$,!S_U*(2[Q[QQ!3WF,>LFW%S]/K5\ MRUM:C98_GN:YK,".U3(G1&M=4@BE4A[UEB_X_+NHXMU3GJ:(FTOY4,>M?ER8^8_0]:+VKXA%59,+K$8L@PYAR-%XC.PG5(*OS M?$5*AVXV_R0]9.[^\*Z$%U#"+_&',Z4VMWJ]I4G"9:YL08[1E_WKRN-\HQ[> M_6&H5/&D,P=#F;5AF\:PV!8'(MEI4G4CW]':?/@V33C_(,0;\X7W-,W[5;#4 M"*<*MON^!9B,YY"=5E]J6FX^1BZN;9)QHX*EQET%[RIX3 796CA5<-Q)%#@S M61,UCRW5Y5FQ/O'".:EX@@JRM;L*_HXJ&$K-JMK R8C#K,;Q-5)HS=5$J1.^ M^/(.^^N!_?,%0#=2:L817E-)$.,:R==:K)L7Q65+">7\P+W4+%Q*&8;E4X>4 M\I*E9I>?)T@LYVPF5W-'9'E9>BR8R[J;B(92'T-:9_8[3A5B 2.44^KWRL][ 'N^U]P:LE [S+G/")QM096#CK?D18/RD]/095Y. MFF!G[[[RKHJOJF(FO /)1SH>5=1V' K34<^@=4N9)9A03N^]J8>9W\LCWI7P MBY3P2_QALD%E)AW@65PY9:1Y83[5,^501JEAU,.[/[PJ50QQ ?8T,3"65;(- M23[EJ66*F8^]W'7JX;T ^ZZ$5UN /94U7I]W%SK']TTQTE;AVK2IX M+\#^/54PE)JUT 36J$[)BI:/S;W*UU"Q?'%Z;"[H78'^#4H;AM)U#2GG=!=BY2CS3$RN9 HEH[D;A M)-?+]$*IC_<"[-#D)\.JBC=3Z]ETW)1 $P(4.E5;;PF*H=OA/&'\7NMY]Y7G M^\K-I6QX':4P=ZNVE(2 ]&/>Q)_(@U([G+F3-R?RLK^7&MZ]Y/N4,,15+?,> MDP46[#-DWC.K,ZU=)6*%>U7+70FO3@FO=RI=2YG,/,6VVT*>K)K)OMJL"*70 MI3KO4^GW8/1L%0SK5#H/NM TIF.+].-$+39(X>>N507O4^EW%;R^J?0X!^R^ MKCAMCH[FXO-Y_%%W)J$<#MZGTN\J^,;QVZ'2K,5R!LR*7+ XGA@Q_:*AFXEJ MZ#3K#OOK@?VQ+?RVEI&;>H@:UC(FEHE^.GN(;4(7J":4D<$W\5'K:YAFK%Q; M[E2Z=2U!RD2-Z?<36OB&05OPO4;J$TX.TWHQ<(1AH[OSP,%(DF=XP8FSP?'; M^#$;CC#[9[!H2I:Q651B<,V.3KM#9-;8[&ALC^5.T^V+''?I3L)G2))N M*J.Z37BU^OC:_='WVYF6'DVI)C9''* GA&/P\TDN>^UX^6+[ M$H;@]CQPG&Y?"+K-D6[C$0B$$6V;[7Z4#>'&#E=G7[X#0HPCUH>[F.DQT?3$ M:^=C6L$^"D.:R7 M/%$3YA>WA.^CGKP0]4_CG1Q0[3;0/9CQ&<>!+JL#9]]65)$&^55@:]#->:;\ MO*AUIX'MGP5$*K"ED5^!,[A?J;Y]IFA./-<)'J#63=+V/%$;S*DFQQ>=3*:6 ME:-$^#95VQB1HYQ[LC.'67=^\N8R@KK(V*S##'MV[B[^$&C_ZPG\M/F15:*DQ3CSZRFYZ@F1*Y!FGJJH[[0 M&AY] #KU8=&4U9DJ>T#7_:)AH#[8*M /O/TBSE--U845=0;EHHFDKJ@#':X@ ME_%7A=@O/' 6!QK6!,HM*(U,2[<4OZDJHZU^3NTF#.2E!\- M;INV](YV(>A$P29/RS/,AU*,*F,+\)]<#L.2-U MLFE79-EH<1*?"YSZ6.5+BDLIIA;:>/36E. 5R=P58%\!LH]58J"I(T^#",$\ MD,/8O1+9,M,DW:XM?+%4M+QV:(%VP@C] WS]'9)$84A;?P3RR[BD&ID%T^-X MJ5A)4Z)O,]-KSFE_)C[#"8GWY U#8@5=0IO&Z$I9$A(QV MGFCD%I+NR5#.V9:!BW8\-VBL/MQ4?C6@S8^ C7EZL(%G)7*.:ZN2"V7>M21- M0(,UI\D+FU3M8V-2J<24@4 7YPM]T<^"?#^T:+H@OW;K[%YAV,5JI<)'*637+3YJ-H$H].4BW^WI;T*+/N\/QD> 9['.VQNZ&#;0:13JISNI]? MZ&3Y4>4 2XS;C^&=[[DH-(-MBHXQZJ9A>:R6_ON=>U^B2GT^EY($.D'X^60; MT)E^:$?<-^S\5UP7A8R^M".3=;I%D^:L6=WQNB7^_",KKC,F36ND!1^3VA^CW,/ RR/)9A6R[RV"\8.%O8%M6SKVK9- M@9 ORNYP61]SA#PE1LT!EV@M0XNI5XA\,E&E1BX:V5N8D/+P@\J;A<&Q,^D'[L&#ST4JF/H8"H2T! M88SI9=>\;CQ\H7T(PVCP'$"\M ^SMM2F)">9Y>K)I2S)7.?1]D.;8 B9?0@# M'(Z%M1^T#X]\OC+F6O637VHL\#'9<-R(9JJDZP$> ,;I;M MK%ONF/U*85ZANQRMS2HB+*>J"R&T\S0?8/#!6SD_ Z]6M7G!,D7 M[U*7EQ&.TA_F2,W)6P+DEVZ-J6<:KGOW*A=2CM\K>?/EJB"4QNU&7]<+&C'O MI"PNUYTM\J$-U[\>S+< JF,)H%#8U_=%]-,JN[#F!B\)'J^U\@V;)2O=.UQO M.J(/0](LU"IT2D0/HLIHRLSU.N?+]9;7GLZ3%G$/6FXPHK^KR[LC>K>T[*?9 MZ 1P0.#DQ_(R[C3,^W#WZB/ZWU(54NU>DQIIC1[)IYU)?-%?5)+-NZ6_*5 = MF[()A7U]7T3OMTF9RZ2I=P]HK_IB#X,TURA5J%3(OH\)UF) M16W0T:9N(B[9R7Q4D^Y!RPU&]'=U>7=$GQ";^49C+->%SM2,3H5AH]Z+W97C MZB/ZWU(5*@4;E(N-TD0KZV2,HAEUJ"7O8+XI4)UY?)\L!_NG ;T!5+EHLF"B MND!?XZ?DJ8LRY]1RG&?!6BK>*]=*ES\8Y*/X.?7(F]=(_BVG#T!$ M6NH]L9KM# 5Z0,NN.)AT.XUK=SI?#Y'K=SC'(6(XAEGFO!JOT9EV)UHRFN[< M".T0*+00":.C<6Q7; )3@0$4\*^J:JJ&9SQ+!'UD4_B6#61H %O#.PP&/VK MV":)1K4L"Y5^L4%.K7;'*S69C"^';J8,<>37EC\__L4_]QAT?H[G0[NZO\K: MFW:#7PG@!NJRN3W, Z;I:4(?3F>K%X+;V7':3ZZD(@Y&DF(W8%4DR$+E\84L#>8]Q+ /2M&'>0* J*6YB--6+< M!W)<:[4+K;N-O<>X80+Q:S%N?D+J#5W+=+E$0:NZ"5XGC?P=P/<8]R,3AA\! M9\W"9683Z$)&L6&0.M^.OWPC2;"$G11HE6#BGMB:&^%+()R%H./4WQ2 CAXA MQ\R!+;?\"=S#1-X&IOO,\.%B,!R"/]7.%4T)$ST+ZL1Z$-@T$NOZK5QB%!V# M6I+AH%3N)>P+'#AO,-W"[_UD5WKS#P,]'WI6<2G@,H;C%1 M[?5>[+M[+Z>H1)+NM:6\QB_:\W)3YN=V]PZF?3 =8=[5 6D5>F%KO7;N.[MS M,_(,?04Z+H.NJQ) "K2&"'ZK85NR)[EUFX?V3)5V@,5;0Q=)!3D'":\98$PY MB!@0MU9/.EOCO]/<*=%@$T70I@>;T JWD&[ >VA91L *79]H*M*X+7Q2@5\ MQD!+-= CN%C;59TAD/ ]?F/]GSHK(5Z*,KJ$^9$D*9(2*U.!,>8+T1!H9;C, MP;*9K91#IP"KJ/"YY-;P/"JZCRL#_MXAF:^_^%ZAG]>1%R,FXK+MR") MB=2!.K]/1$FB83\R>ASVN41I/%473K)"A;@6-+0HH0DR1E A+09] R2M$43/ MDX=YM\8)P8H9U4C,9#+1 4J)C&9!APQ=/NIDG)Q \B6A\NU%H1^%RIOVQ,SI MFMZHUEC-X&8JTV-LDS?N]N0J07*T O, MPVQ/OK6".(%"%$SY!5U/E9M:K8YJV*172TXSN<*1T&;@W032RXP#>H\ID_0KL;$0RX$Y'5YC]1;C=K;H/,2Y\ZLU7F'YRUK&(SR_ MZ1#^;,@SDF1YIHMD)T%U!@8ZO #J04W-TPO';FJT!"=%G\U[M!?:_-3IJ#_& MO#OPOVWL&B);KV6J%:HDJ(";NF*UJ-5F<;<6VL',W=:'?1AU-N2_Q-97ZE:> M(E.ULW0(+QG-'EHT(VH-ISK*AJI@LME2VORE@RZHSC"@H8!\GO=A#'8H53 MH+#% )>#T:I0'0X%=;@LN:52@O/ET":F3\+ I84?KO7([Y)V.@&R2[9%/C:2'45CKUXFC 29DR#]?$W(4G*I:\'0YIF/D?H4R[U"ZY4I-_TY A[.0:<7 M;[("QU&/.:XRHSMW?*F:ZRYY0\J9DWE,";0?5>5 M-N;W:V>+$F8X5'457^<"7JU;$Q\G(X&0FAVA MS T3+9]TS7@E=,;\C1TBGK'H_ F!TWF[PNYAYMXTB)_G@;\3Q.RXF9[2C7Z3 M)/1$J].8SBQC&KILP1W$H<]@?R>(!TI<6(Q2"8%4:Q(E<_0CSS9#&8O=01R. MW/L12SQSQ!9@*N6,1O2U4:H0'7M-[N+6\!;4?S(SFZ1A$PVM,[4S5;4]H-/I MB\?.UXBY8TG^2VU#V1U$&9 7BP995IJ9?L4ES?'E\W(?S3G<]C:4WQZ*KM): M"3%*KL!7Z17CA-FK#C6V.Y =DTS563<,:KN7TR,31)3\K)P>+2*Z4;,QD:&+ M[1@UKF@:W6)U.EL1& M&L&YBO#?=1^#=S;?V=S;_,8?>N.C I\5'_LI8B*9RS0Y;1K68@E3G6Z4>?%% MU;%B-)7\A5XYXX,3]+Q84Z*SJ2"5FP+1*T&C2I2)5.WE%]?,1'^>\4'5A88X MSEGMH3-)C\AZ&REEE&HNE<>73 W,-7[A_=_+JC.$O8"?:T&:<.0VS%&7X_)L M>U30Q?&PL7CZIAR\L-M8S3,@TB/+_B#G7[R/+V:A:1FJ>:C94R&TU\3/_=[O M\45=_+)W=HJ/ %NR+7U??_'S#Y:M_*1),OIS_<1/O LE,;0LU[1<^",RM"VC M"8?./S]:DCBN>-# M,98@93$MI:.B/$PD2! G83R>^A&Q;!G:__R@D!1^/NOMI;K?3GF6.B3DKE > M].GB>.3Q:5K!W4]<0_?I):1J42_&<0E2%)/LHIA1^$?DY7=[/XQ!*AU/Q\1A M-)T08\D8)0[((2F2J32, XJ6H@GI6WH?Z\W,?#$^$C0O/9U[+)T4&B0CQC^[ M]ZLKCN79$G16/T<0R($70JKR[W_1OR*.ZV."#+ @YJKLCGY1)/E__IX 659- MA=#AT$57'J+QIVLV/BUD>]%R@O/;UY^>P;]_/&O75E23<*W)+YIZ2$S;=(?)0Q! 8JN[_^@]>!^Q$:G >:5H&,/_SU^H* M^J^#_-KP/W\'3SOJ$J*&\&>"#_]"?T;P/]'U'_@#(#*RX?"?'__3JK/HIS,! MYMXG@[]_F7BK6GW5['S5W_6E'_^V\!J*B#6,L-B)FBZR5+@5Q%> _ID=_ARN;&2(.N):QB]JYQ(6$?Z-@P("Z*IB M_L(C!&C_/0A0MGWG ;/2L715COP/&?QO\P1N(GK@]I,L_C[([Z![Z.8NKP>6 M+O\]4QUUH.HH4OHU4F441:'W_^__I&@R^O>6XY//XLU+PD_I-WU&OT'@J<6! ME(14,AH3832!S*Q$R>( :;\H(55'>BX-$L/!CQ6VSJ8T?0*A@[V/[-+UXU^A M5FQQV0C?8EH<'^$Y5F@66T7T)U/+1K@N6V!J>2["UJO5(L\7Z[7__AQ\DHR2 M9_:\ Y!5-!77,O_ZO_]#)-G'Y"%#\./?'/(9 M*[P%*$,^&+$Z"(I5*;(>@S6Q-_K@<#5B CP8E:'Z*VM)'D[,X&32C\"TU(!M MBQ[7M$&/=CJ"3ZM3JIWNY/LF\RXB*)(HKY1DK_^?J-FGZ_$?56!KD;H)_]RJ MK1NXXXURK'P14@P=3!SX:_/'!NDD_H"+8B!7WKPR@[:K2D!?2SP0/M*6O^3)NE3W; ??2*-4$=U#6!94>Y/K#G ;'U/OL:!9* MJQQ]E/HK@KMU.:/ZIAO;"I%\H.-O.=\UV(/A(/F%SOC[+ MOMJ7!94"0:S\PI_EA8+"-/5^6_!F5=!7:9!QII_@SV(WYL]:3:;&%P/'=34^ M+?D>EW;8B;E;Y$16DRM!GF\5[5_BWZYUN;8_V4Y>Y:CNDH.S58513M4A:A^% M #M6AC 23%56M3;'IZ-3MD!&@>P^ODL!T>"?B%)1?$3-)4=IY[CB/UC+,%0' M%R:@Z _Y.#/@PY_7YJ"_OIO8%1+J@ECUZE>?_BA1K[,-*G%\< JH'\O>JBUZ0,/"X M!9#<0!5QRMZ&BNI@R^U&@!-Q)E#",_-R1#4CJNM$I!&PW0"6ZCTG>",YP76> M/3J(DE),6B76Q5B<(L4T3)$B/4RGXA(%TNCZ.L^^>@//U8&QY3/V(B^4"U8^ MVQUFK;XX%VF1?/YD)RDF\['%?"005'LQ)::3\J+TB)ZD7K09?S0>)\66('BR MTQ54F00)1Q&C+]LTU,(\74F9:0XV!E%],/%[.L>@)U^TF:ZIL^B(*U0$D,@/ MTM,DDV'&>$;T19NE83\FB96"JDW3*3%A-D@*%A3TY(LV8;5?RY:*^::6@*9' MJN.91B':D]LV3QNK[$@;S_^M\8AGP:35[-G>Z#* V?K":J8QN+(W(;D[D[5Z MAGPQB^C:FX[M*,"/UT9*UF9$%$*N)CX;,]P>;4'P__I0]W0BOR.< M?#ZV=5S@PHEMS;!C^OQLUBK>Q'O/V&A0"];'J;IPOY0'52B1<\M4T)?)=V:W=(#/WCT:@WX:2&]E.- "B^*Z-G"UV'AW;( $ MLQAH0V#74[3 TS55[S78+#/!@J'>)1@Z3E!)DHHFC@\/0JACYP=^ > C:+!N MX57;D;%GJXZL!FM"4"2XC?#" \OS22X^-!_XAPAG3'3+QZ7B MFI#:NC!^EFDLBLEF7: KF5DO75<4J86+'=\76]"I>"J2A9$*B+"VMXQD])G\ M< \TWBFAAH6B3KVO3O;"O]0LNAC5K85)YO/+H:E,ADDX>D0B>E^4D8Z352KL49KZD9J7:F1G7H@BB^;\Z9!Z:+E$8'-C@H MG--;^NN-.?JO&]:L61;$=W6[@;ZFFM+N7'W6<[M9HMOV-7H*')^?435*GK^+ M;RP"!2+.5 ^S+5QFYOS $1F%"+8*H0\HSB-SC1R<"&YN$\$X94@E_W8B$QOA M2)T /0(74/)P_@(]B>(MZ(0UGCPU9KE4+= 5S:FQP]AR1 #""Q*!##][SO1 &43R@7Y+M[^S)NQT)O/(CMNJJZ+65S-_T(9R9.+9 MCH>G %TK@I[ .%Z!GJ+_&/R)O0.N[V D]]S-LQOS12,O129-8IX;TG'5VB MJ#;520C&)/:HJ.[DLOODC&G5C]S<'7JPJ\3\7QJY!4E'\A7J+WS[ CTDJ]";_??JQ#VY_O&!VMT/UM. M.%D<7RWX-OJ_QHVW5'>UWA,":121=. X[V/N5R/IU9'!A[.P:[WZJ "_3%HV M".*E50GN'WCH]AO*:J7/9RC;2WW_&O'5UH5:@:[!A33"6[]&+#,R'ZGHRE,4 M][$LQ;X56JUZ/HDK:^-S$1OT[:G(=9CL4_0@,';;Y+ YKVH,#\ICCITMRM$9 M4^[WR$T!U&'OM"ITQ^6>2&B\:TG:7Y'_C4P'25+Q%9(GP([,@.[!=Y3!?T1A M5[+Z/C^=O%AL\V'XQFX1O6N+OS+X6^A6V*(K-R=&2ZOGZ&;/2[A:Q\/0I=^ M;B.;X^_(_& $^2G(_-HYGM>PT!K!R(8;K\]\8%=UF4F/C7'FULX0>\C=9!FU M$/QYNSW0C YHY,IR2RZG']^@JP8<&4R/H?RU-U_T@_1^'- %DT9U^3 R,"/2".( MM ,?1QM15_+:67&@.A$0F4-=)S33FB-*(7 0%L?,MR?)()X MN!7,M%QT9>JIV*(B0QHL-K.#I;W.*Q8VBBL(]R\%*U6?C.Y=U<*L:FU+]TP7 MV,$:2]O943' C!OI>L[J" 9X].6ESS*=^%W%3E.Q^0@&Q=//].P/:CU+/$(> M"VN8' &ZOE6S7?T;P/4#J.$#*K>G93N^;1/L8LW#M_%Z\(B,[II*\.C$AA(, M\GP4O6HOV![$B?R!&D6Q><3QI%'$&5EX.=]F?;8[ F[P]M/4:V0.G)?V(GAY M3H?D 0KST4.#,2((OQ0\CT\30/U9-X;W%G""G@3=!8X;29.K M%F3@.Z&Q)I=7379U6-IJ>P4\3G>!Z^UJ:%LH^#.KO> Y>N9/8S':>$Q6#^ZS ML&_I/J*B^W;IT_3TXR:R9GUJEV)A-QU8?9#F&*KK(H6#.M(@VS)Q2D'W(W & M;3]2Q&,0?'C'#$:RP 61W,J'[QF5IS9VG3H.F2/K:!DIN;?:$#7"$ZW('YC/ MR;\C=)1^V,;3:K#D=X*7_!ZS+I'W&!;[N&%9=7AK*J#SYV]D W9$BB6Z-@D[ M-H ;@('4I18661^S,5(U1PTUHUS&!GR^FSY'_3\_7@NIY@>C7QV]#R- DI#F MV_CLG4 7\-#7/'@5Q?,FM2@(A2G#VCR[V,]#&Y3?V\>>_.!X_W;/(C#BO7# M1_JZ>7*=#$#6:$#0FVAI-T1Z>,?N45=2%V.HLJQOMCR(IQ\2Z5<+:E\KZMAK M*D8^1-]JZ>T9Q7?V[HL2H4/B_.CMN^)=KWX,_:$!R0'C,8W[KFWTF,>.\:,YZ@F=':'@=1X ML2PV!&6FY:OYJ% 7M5@C\;[M]M[<8.]ML\[(@CK+LX3HIXVY?S"7>$F(#Q0M/Q)XT(!B^ M$GCCQ0PGYO%QDB!(#2#7@Q/Z:/CL.:N@'?5@M6/P@>T74=R/OZ7[^.-S%7T: M?39B(NHLK- SU0E&6S3S))Z<#9<<8ZUI]L>3J\13)YR?M:FY45VGN8,KH,[>;OZOHZ2HZ MC#A/,SH(?&\4NT2>+[\ZZC%VM?Q)NX+%YZMY%^OEU'"PD&Y56+%Z;3U;,]2# M21QT2;)L&V[V!PHZ<^BK#R>6BGW)OM8YU>1=P^4P M">R6L&'#I_Y@[7OXT*?4(.%0

H,@L0460 M_B,MND=1X8RB@@R^,X*ZOHGI(W\<*UG;2U4C6_[GPV["9+=.Y=M'?3RFZ.5@ MSQD+BZ94IXM"HCKCNK%%OC?KG19?<(8U5M]M&\,PB_3)I2VP8MSXI3P 0- M21.UC'] S9/"FL$ZF1B1@?^2BUM_95A.X(V0%!$G@TP! MQ!D&9&8L4]X<2C3U@BW _XJL?*,WL58!HZ1;3B!"Q"&\58P4K$K#=U;%])&\ M;B%#M:F,7PVIH/Q4,X#/,'J(\,'9QJO30Y^62&TA$2Q[6[O38'PJJ]C96ZL? MFP>0)W6")7%6Q)JC,( B_P\>UQF6O06?]+ #GLH( )+G9#8K"N M35BUC4?!/JZSD"&*+#9%%T]@?8BTITMB+DH*_LVHQB+7>@ M>"R ;H#;4GW"]6SXRIV9,IM,L? O.SXFX.#FQD,/P('0W.](I])EZO%)P?7!23K;-"E:NU M>'R21+W9J#<9?-ALIA=I8@HJ>J7IQE M5W'FAL3.UUDU\O*@N\/<7!VV]!":,=$[-M;XV@.Y]TG97]5_Z,CMW568'SR1 MF_X +V35F>C 7QT=\C[&Z"B VQQ_*#H2C M0&)UW@$8(NOV"^ASA/KUK&DRC6=-MX?SK4D(SIZG2"2Z_Q/9^1N3]>*<^.>' MP^\66:U?VZ^SVEQ\X]R%M*"IA\2+XJR+F-,H^;2T&41&-HX*_J=59P_* M$_]]Z*BA]244U@2U;4'8'!2I/55^@ET1[Q"](\+G?#W$KO7V4T'_/N6P]8 G M+_SX>Q^:P:QP\4,)Y:/9'Z^M*) MCY5YI!(/Z6^H6_Q@3N)_B**@JE-Y9J8I.-4_/ ^.&]Z M,]S2.D_^\,*1A5Z!+\&132-G<",L%B)VQ>AFFJJCY0#..#IB.I6()PYOE_,> MA#/7#_%/8PMN)[)NZ :@3B6N&.L9P;0A&AG/H,R[8#C$^3X\LA#3\3@93Y^- M^\SUX_XB+'IJ,Q(T&MFT>@,*$;UFX\^R_@#:ZYHM_VS\L]>/_\_@R%X3=XA_ MJT#IAFU-< >A(]*Q1)PZ.[JAKQ[DG\63IV9N >3)ZP5YM (5H"-Q2##8Q - MS,AX/'DVU*-7#_7/Y4S06&2GM3ONOU6ZL:IJ0AX,H>MG50?7ZWBXI($FJ50T M=2[X8U8L^ZGLREF56W%3#PV3@"F?:[#C M5V^P+\>E=8TJ:OF5NK?5-_Y"3^C!'A!!'=P(81':D2I>-FD[05'J:E/32,.S MI1%P5A5UJW=W-O2[!9>0NM[0*,&OEU/G-NO6\#9<8CR12D:CYVI:XNHU[0+L M:4+4BQD^IN3Z@9^^7N GJ]O%W Z.4#W'42TD8YE9KX>SAKES\9^\>OQ?CDO5 MEVOIGSX0N ]F9V'B5OUPE9>\VMP!/X.4R=-7RWKK$[A:]743+N6:-8MYQ*LX M53>HH$-20C_U]:_-6/!LS;K^J>/+L6FWW4!+=EK>'8U'F('EN9MU27@"^@8T M)TY?K^:DMF9N6UCO(/GQWF2B![^ ??;D6^KJ%>=R7'KR,D\M!PJTUW:P]? M M:$KT>C4ES08[+#E88#(R:4"QX4I>>-T)$^QS4R['I77#>($HUH^] MME<;;*U:=T&PZ8JY^1DLDD,O/&G:DS^Z 95*77$F(,W@!12VI6-C&LQ=R<$T M0"P5CYY=\I2^_GCM OS9-!BHQ%.3=T7X7D%GZGBA>?%I.:1()RDZ=O9,8?KZ MZ_X^F3=!8Y&=UFX!^E<\=!?3'UR$MP/RZR_N^S 7GF(9/'L"[&!/@)QEH\?, M2,FS54=6U_MS!=MJ_'_VOK6Y;2O+]J^@YMZ92NI"LB2_XF3NK5)L.=$DCCV6 M.ZGYE +)0Q%M$& #A&3VK[][[<=Y@*1LMQV+2OBATY9$ N>YGVNO_:IU5V". M/*^[A1)W_8DOP#Y#OL^0?V*&_/SW)T1NR6O]]__.CX^-$G7YH_0=7F'[! X8[$C]S?A-O=Z!-K(/_R MNB:Q-2L7S?2ID %][VI'PJS\Y/MP]ZL@_KAELN=F_L%,8Z)T3/;LHM*_D?UVN>0SEU#RO)VZ!=B)[@^W63\B#5VU9C\M%486FA#_M>)6O_Y^_."; MHP>?5-GQZ]V.6OW.@?7CAX>_?[*L_MCZC:39WJW+ZD]=B+-WLW)4*BYI V I MNQC/W*2O_AP2^?ANGG96R(^>TYX='_UTT<_I8ZO?GSQX=/3@TVG!/K:H8K>. M_V=?&3S* M8'/V7ZR#_#V7]X9ZV1L-T7YS_\C626&_R%QN7O7;'OPGGX>;^9/CR8'8 M^0\AD-YZHTX>1!3],L63/:_WGM?[PWF]?Q\7]Q^.'AS=__W)_2>CWQ^CT\>/GF,2L\=8?Z^>'7V]/STY^R7EV_.Q.QY??;#Z>MG MY[_\D#U_^?HW^F?V\\N7/^'GBS>G;\Y>>'KPVY#KP^'_9[GA%)1+>MX86X[. M0:=UW9-#\]HWXTTMO#Q;%-#Q?56TZ+I99Y%MG$%\G1Q]9YRQ_./Q=U*-'HK' M[&-_8 UB;J_6]J(=&N5<%^WDH&J:M]I9>AD!YK7[Z-P5-?Y*#]/FI\HF]OC4 M=P$.K5/1 9A^>_SD_OT*N;3 _@J?TTFF']=A?:VQN_@-QV<;WA#WLM97 M/=CZJOC#]B+T@W*=BZ>K2Y)GHW[)C2K1!ZHJY^62^TGE\6?1$,JU6))O,_<. M*+E"&UQR[=K&ALM-WX;.7YCGTHUG-4G[RU4&1H.ENZ2I?9<^K_6 O4MIUX7> M7\V\'&?+EF;:D4HL_U]V\_G%:,KYHI"E:LLN>EQ93R4/P2.B)2"ETG&++;2] M1?\Q-&/9.BCI3L;?G?:PA+-B_(^^%+%&7Z,-:_&!SM&0Z7CVG,:@2TEWM%W9 M'-*GZVYW_7AL*S676L""?K-8 JUBZXEA5BB%Q]U<"*';BK^"OW9-U>M I%\N M*CUZC#LLQ[P8MXU?U+%=HUK.ZYR0[]>UHH2HD. MXUO9XK[6AC]\OR_TA*U]EE=V[0&VEL,_R&T8_G;DJM)= MK3T:-Z .C\!2VM"[KI^'SV.W:C1\E :X^)E6#[H,@IA3M^96IG[.GB\> MN9UE)DV3NG'C#JZ!5 M[HQUAD6KJN::)5RT?=V,5WP$P5JP6*#[^7<2-/Q7?VK(;.)V4YQ\WUIK2\: M SZ>#BHN0]*=_?WFH=P,W[NLP[Y(_T[YS(I^RM#\Z$N\73K M6*9$E\>;GJ\G_7I-9/3=\#?TPN&O7CU[ON%7V86I5/L;'7/]LZPE=R6V/_* M,);DJ[GFCNKQYSYG?[6@POU]4&$?5/B(H((K'D[&1P\>_'Y\_VCZ^X/CXT>_ M%]^XA[\?CR*M\PW?0V9$X0]*:Q_<6V]+5Y0\<\_81QIUR MLFUGP2NOM2XR.Z)R?V-3_XIL/NX[W;H97 ZT/RZ61?"KLHF#(2,&HILOFFO8 M]^UE49?_-(>8W*NNV^!*0:DRBQFY.>6X@V/;K3I:/59>Y"K1^QU_;U6BV30^ M_P]FC+&>V66+0>)QHJ(;"W/ 34;10TFZD.W5R+&E;TQI^447'&:_H7UHBYEQ MT5OOS#N[;FB:?4NZ-)=PRQ*#Y(@-G='+EJV%_^&1O2[F"W&H&MAV8%9F;Z0M M1_V2;KV=D47"^V"K.PB>TK>39%G M3^D(T3K792$OK;I&3PY[@]7D&J>>K4/I:\YT$D^+NIC@VS,R$//L>0N;/L]^ M(/>)[)V<'$[:X3S[KX*N<4ZF3D]?_ZFA,R=+_J8HKXOZ<_9:_@B19$(F>WF% MS7/7.R-F<&?(SR=["D!R-:IA.B_[VF4/CXY8^I TO(8_OLJ'SD0GHEN.?:&+O^/[0?U9\W,IPW">.KQXM7(\0 M!WF#-"V[B.?/7G3A(DYQM&D^Z5S\4.D#,-Q:_B?\O06'@I(GY\FTPY_8ET,T MJHQ??_8B$@,-65@E+OZ-(WZ9C!@=Q5DB3H8;T-'/HVJE0%(5CVQ;&QY*"3$"Z MB70J6%=A$ OP9G3Z9]5F=DXYB$?]\L$>HKKGUD3TZ_C;/M@3:7<\TJ[9>GXE:,*AP/ARTL&J.7(. M3>]OJM@$PG85XJ8^'LN][@O$\GA'>:_":Z%60PX$0JG':2!114(2?@"G9NS.O?@Y"6PA*Z7U.A(L+R^Y>[I]_/0\ M?+RZI)U8SL0"(R,$M #9I+FN:8E=,1_N7-I>Z:)V]DCR\@[D'HCLF+(0VRA!\$W(G\%>0 :< MGDO1TL\<7'(@OE#Z>;/K*O>,TW:NJ6$)&\6DNLN_;IIAD/Y#7(H607IR< M!HOT0I)_3Y'\XYCFFN/_&29S4P2)5.W0EAS>O&#TMC#XS,G17#6);9: 6VU- MEHMOJ_YEFRMMX]?>4VDVD)&-C.6XB99L4R45S05NI$$J$3^NJ MTML$[+TDT9&%G9PR"HU$J:4U8T428MY_X TAC13M'N0K-I%7C!:G1FZ!Q'YU@(FK-32NFGZ2I<$(B?S0 MP;(0R?$1OXB$DB3K:$%'*R1);$/??-\EILC4+AB=T6EYV9N.QS4C \I;YL84?:DP$=:E-.. ZBV6*9$_Z,$4;#ORZ1J=6)6W0LG;I9 M_!&VP*)R*DKD-D57)/%IU+L(T3;Y%=]B^A1]0A-T$XZ_,:_0_](*_1F?HS=-4QW\##\^N[!+?DX>3%%IP34.\E,V=.E<@>6O)?^B M[5G1:0ZF%HS+F=>%#"<0\7!!^[W4EMC<*.96M'UTQ=E/Q!T2%RS,U!P:DWE, M_5-R2.%=$(#ADBFZ@=:/=!#6CX4$!P/,<2@8(#%8L+%?,) MBXZ6P"-/(76#2>B2+RJ2-(\?Q?N";VT76'IYL_)-V\5\1?3!'? MNT'[?FFU-&)N( .XFE\#331RRVL'7)\W0.F77D;G@O1CL:Q6H@I<<418*)L* MZE9DYP(I'8QZ0T!U5@#96Y.OR9C=D$2X+D(:;>+!IF4[L&1\ M^LX"W61'B6^F?I_"4']SY&=O\J^8D IO68-+_"K(Q.K(N?X^/&#[^3Q M"!K!MT>":M067*_Q]->U3WPM@R<'%X48B&\PC+R. R:,L"U#G8R/)05T[U0! MG^JBHK@C!=_JY#KU0.,5L848V:?P2X&C^+R+A(7(=F4?;\//W[UX;!QF:/JF;\E@,4O$A2SY#XY0EB MIF=+?$X':M9E-'3DAO'5FN' @@@QA,D!)VH-5"*V.%GILV8B25(^0 C?D0W- MG6?H0YP><@5(IB7C-O6#$8&620(%(AR6_0%'#N&MM#WG#+$_FP6;L"C2[_[ J+%7_/9_8TE +]323V,TWEP0/WV8XHQH$Q M"_%<-T\7@(\D$9+*=,VH(\+1D@NJ%S8JEY)< DH.GP0WQ"2 M7$#_%)[II>]9A"B*GMHZP0E!S-:L(X??/'L=OLHM[#WX\_>54 M[(#VAI/D[4<;1)3Q+3VV@UUE/3:N?8YIO')UW:VJJP+P8_KY%YQW%,4> M/WER(I+M&@)T^+T(M!Q]2^L,GCQY>$@G,?NOOEIIT?S1T5&^^4G/Z#8%,5K* MMT@@'AWS%^!-5HY/;*T'NM+202_R%&F#X]I)_!\ "N2&QV_YY&K5-XK94-<\ ML5KJ7XIN4OPC^T'RHB_$=.;*18FNK^:T[5&UF:F7W8%4/8<"Q>IZ/4,_/.&5 M<^\6XK=!ID:0TFG3+$DO:DX$?PQ01*R_08V9PY3UC5=A42D]&1KZZB>X]"=' MQ_)6>C*-MD0-:3/NN[#6](ZK@D$)L:6A&:%H>"S]!'# *6+Z)6WU>F! Y$KP M?TD-7KIE%(0;DU7&V ,1;N\8;S$)\'S%[W/FYQPJ^%CLI&"(22AOJ5@*5$&W M;/Q@E>2E73GO-;>5U$:L1P_6D+RFM^G,DOL+?^$^?Z.$'?E!B++58$JD#[0/I;PUB=:XL^,0H(OG&U.HAA\V)Q MFW6T;O&)!21 4Q%C0"A6&M"Z;)MK@*SK00U/&(Z_J\=/#C,1D1?)%$](7'(6 M2M@4PL7C+(GE*,]C66JVK/TUF,*< [Q$F(&UMF!YAMG6+Y3BW)V3]IO@D&3: M7.#)T#O$)J4% MDS9\38JYO\WVL-"=#*]\Z3"#1N_@QZID8UO)BCA80UP)([^H01IK'D*'O= X MF%X]@%[-,R$\/6BF!ZQ 8H?@NQT*]>T/XVX>1M5ABW[))"\[=&+VP>'=.C!: M3!&, G/])5.U<(4<$3H+_;R.\Q*?& 6X8VBFAWLTTQ[-]"%HIB_/(6%1Q>_] M(=P9,_YUL2@CZD+U@*6OZ8([;BT$T0X-5OO'H*5U"-M\/L_.D0)3&+(!196\P7 MSD=ZV9&MFFMD9>57"(8MV6W-\$R0?^'-A9_2I01:UU@*Q561APE&('V-/NUZ MYN KH@Y;@A+S.& !$(93?'XM1%" ]4]LKOH\'Z8/ZTLN4$.KHG4S4O53KZ*: M$<]&B9Q =4.)O:WYMU'N&V$>*:<3KZHM? 8M#"'#"4,D>]R6(Y ZA.^SX M/U="-5QT*:%723#1>DE1QZ8+@KQ0A6$6. 2HV8)?0>]Q+3NX5@]5-;PL3)D1 MN%/#?M+9&6YV0FJ '13,-SU%*[WYU!704YW9\O;:" M.U[)IYGX<>[FC1;I3A':.Z O7=)>S%F87S(XOVUQI2W.\OS5#Z<^:6A$B\/D M#4T.BS6YPO6;;-C]$%64)8J@0*C0J2I':YO4IF(9R,/C?;. N-;<2SGJ4B.= ML2&5733S&%H?.$SM3.39K+G&R',)F8ON8KX^/<'2-C&9PJ$V<*^44G;['J1K MCU-#K],3&H2&A[N3H^LQEU;X9@2L')&B@:XV/+EN*3^.K9T8H93*U8;PL\34D10L):'^?&56&EAO:FI'J/OQU2HKDY M58 G%3<+TEF/TD"O]9SP.Q8+&;9$[;5*R1.&U MX< I:(G(AM!PY8BD@I:UT]JM%JK2$'H0' !$G+-'BOP3'IXH 8V8TO9Y!D> MR.L=A>:%S!C[.,0HW0:AS9N0OC!")E]6^LK*2ND?2XFV[XSMQ&DSO55T:RJH MP&J564_'9=8O<%>E\LVCZRQV/ "_.*G6YQK^MW2-!YS2DHC72Z5I'UJ8#D'D M*MP/5\\@L%0D,=%E0+BE290VYDUAZ%O)C+N&EC/;68A_+:EDM:L\^A;3#2DK M*!XF/NY@X-!!Y:0V(*V+%?\;]*8V+# S=RB$[#7I(R+&:*2P]\5EZS36*SGS M)1_:B-/A,-N9PW >.)H%(1J=C' BFI @+&L0RTIJV8D9RU7'^K5."X1)C98J M/,";RG!^Y@.9V =)ZM67. !3R5N>/(C2, ].^#@(6$/)1A:_'S3N58XE//EPOJO#.2F\N2"3(TL<5_RG4IL%?;T-NY MSX'1OW[--6OC(4XD3B;/B^X-J==\0/7J]7N*C4A*$6F3&H&5\Z%6. $=4!4( M;(V%@Q%F%0_]].=7%SEV+==VN3I$^0$ JSQ[7AKNP7!U.R0/?G."H9.T*9?( M,]H[((BC(UAT,%Q%+@>A%PIBR/IK5L:KM^E9RAZX\=L1F$@WST00DPPXEC_X M)QD0RB'1<%Z]JL!DU"D5H**<00K4,"<5DQ7ZM&]2X9U64'+3!26A$2Z#27AN M!&,(">()>6'!VDU(#KT>C:BA=VC;WW VTA96.,)+0>5CQ4P%FQO"'F9DA2I* M7HCSC,(]*7F H3IUTJ:,*=AX9:X9_@DVR7Z$Y/-2J/3A&U\5E7)F=3V"N-I-$*KDA?!S GG%UMP 'V;M5H M( \0!]40,^) T\E1(D=!*'F/5U:UZS$0244H-9W$G#X:-5 ]C7_7&I6Q]<6V+9V(5F(N& M@T(US#LV2'E?9*1YX"X$UT!P<] N^(4'O'N*->*[ALWP MU&V1)%6SSULZ^L50RN,%"+=222,&2U?,A3$-Q6,]Z0^DK:.:L(U<(8IG3:?" MZPOI?>7$)^78C<@;<3^4]Z]U0^$FIUJ:MTSXUIK\?ULWUQ4CUJ3$S7$4ULY= M-(XD"(-9<"B#_A@1BMP]YO='^^35/GFUD\FK5_%]N] [=CMQHO?2K]M8=XU^ M_U,AQ4GHF!MT;F M%99H,FF=IK)&I;(##^K +-K/]@D293[R>T/^0&.P$7C5WIES<,$C/@OS8^-. M7E&\65J<12W#F"S5I^:D>'NU<(F3J^!C3F20;#3W3*F\9>D$ MF:W[S# ^U-/PVG@O6#*W/B@JO/0!4L,Q=D:FT^@G7S#9-R[;?\M2"JTDW,.;)XF MW1[XW@%"IJE=\H*D-A,W5*KB_8,BM(^I(_W@FE ]#(C&,Q;#Y2:34HIMTQ)& MTO+> M$79Q=T6%^_VEZD>>A'N3X\O>^1F$T6UM+Y0>K)HK+S1CLQ]]U1_4?Y M_"GYC)P ]F2#0!'3?TE[S9$$+IZ3.%M:!9=HE>=*)*U& EEH0C(C!9ZVR)8C MZVZ8<1ZV@@P3+X4C.=P$;$;!+ M*KI"*'- [,+JKV\7D!6J[+HH'\3F@DYC3P2^ZYCI+TJHDS2')F1"B1'@S\DP4]P:'@&Q[ M_ :-@@9F20 -6$ 6<;9RF;2']:'.%,VR*3(=1Z5#SD;Z2I"@BA*SRV@AANX# MF5<3^C6']1A2H58YH]>4MMH98C%($E*O4EJZ'>X( "4[:4 ,C0*E#T'$\2; ME6':EB1I9:'NM[?NI**-NZ--^TIR8!PB1J>ALH-A'-GP/DZ<2%9K-.J)$P(@ MR/-JLY_4L?!2@FWZ[2[Q".WEWB[)/<5C>M9>1H>F4: M"0BV<87TMT\&>(#HLT#ZEEP=9OUHZA*(;WCX!4F)N?PK:EW">(A8$7!-*B2' M[R.6WD<)J0VEL4G>M=O,4:;&QU:0(W(A'-#U\[DDJ1E(V;0IGP]'1!!W,BFK MO0F59XVWT8-_#6^:LOB0R]$)D\!O0-%H6^]+:6;&XG^+'C2/G:-=GMV&,9MC MY'!]6\AYZ0GQQDUKM"WILFV)_1BQ7Z\)Y"SIU-7CYF=J R/# M6]-G5>0F49,0Q=C8XL=3P4P@B10FMV ,)3^+07"N9@\?.IA6AT\6#Y]704

+9%:QWV3*OM,]!'%VY*>.[UP![ M#; E^X3S]3+0D=R2R;MN['H-L*'[[#8!NR;S^=.!]U2CP0,ACQ6("%EBV>1! MV<,/12$HX":*JDJ"])XIU,A4V0:^BCMD,#(6^(?":A<8.Z>VIO^N1-WCUG5: MB"ZF,4O;2;%@"<.]Q[+ACB+ (:"&=3*I2$!Z0BE/2Q'KM4#-,0FKEJ=]'^D* MO"TNE7_/Z%^LN5#$0398RSQ9GY2O 8]=@_;?(,SN6 K_\3Z%OT_A[R2;_KZB M?X=T]*E)V4BJ[YZGQK%K'_'GLKRR?KM-10@G M 3L80Z2Z9J)#EG.]G/)0>&_-G3"LK?AQB5E@9GHHY565)[_NF"2+-1E;(+X- M:+#:\U#:"%=+V(C6?$6L$;2_>"P3( @V;?#"#;+MC!>7F45161G%T:29*+U^N3H(#9$'E;66DAP4U\[Q&EKF M@\+1@<#5WPF&RX_(7EG6ZL-Q,AL9YI55]I!-^Y>&M(U9Y:,F2(R!]23M4B[$ ME5R=5./6:O0BRLR0_A#@#&G0"',9H56M&V1LL \Z26E:;<,A3[A:K2[WPUGY M !.6O-XP?+[.0\]UG9X%E@4(?T))[&,(\YN4]#9"".,X7GKF00, ^"XE.MB) MXYK* 7V@Q_(H3M?"5ZV+,?8#CD&I#L%348#1#AX;&V"!<[D]^C$7\\A:814P@SW'-/(0C ME9Z6A3M_.NS%84ETSQ\=J+P5.E2TRYAA(/XR(Y]8N*1XF34I:'^ ?>AU+TTV7F+HJI?U@1C.024E^?_;D2XO M(V49ESW%1A)7/_76;*)8L $'B(V7+,,<^ "%:359^1K.S_\8=Q2329 J UF ;9H..E8DHVXP\58(&!Q9RLQ(#A/(R6791TH%4KG MO2D4=M%#BVQ!AF[E64K([GTW*T?E,H"L(CN3%G=!DF6W&B'O(T8[)%H28_H7 MNLI/U9@^._@>QC0Z).^(G%&='EGY@VLV;83B@X;/I$>#'F.#QB-V-V*'(+G! MG&DOEYH?3LR:+=6I'RYA)+NO:*%$SL3NJ\'%&-*0HEF*3NRMR+/!&B6\:D]?'-,8#H%12'Y-_B/?> M.7-\NU@JBE]J;X=\5([WA>S5/WK7:T$".\F(^JP1X]ZU$,]'5T)MH^?0(,^@ M?V#1*9^)>>'RJ:]#_90OM!82.;)<1^1:>]K[7Q.E%E4]:SEW+S4&6OT4D?\G M-CY_5JC[O8TL6!)?@"OAP3"4Q%T(;%KKR<1!*\:1L4W69C?X/REUG_]9^NV! M/RAP^B7%+W7/C#BH$RXK''D[HQJA9*6_L5OD8$(B:4,1]@<7R0L-S=%\C+R8V>@7$\%K(>5"$F]88^<.PC+3JE M<++X.[<=2-F;)SMDG@2!Q& %>$ #)L];L4=>KG%^F.Q++1(2,AH'G:)DD%' M,2#:TZ%%SV+W)=1&B7LQ>$';UW'SNF$=R$91DQO?[E*(@020/-9R$8^GX^+. M00^Q?&.?5/8]%I7P@%C$65"&S5)3-(L-[=JRRQ)1_AK.'V=IXL$&8*(6^_'< M#OR*)HJ&UR*0:L( $3:)+B+>V$BGH5%P2>>)W#1QZ5#SLK:D.A':#Q2JKJD\ M>]:WGV96_%GC/ \?[*2T>WSR:-<(^7'FD88] %AVK#A]Z?;G?[5^!S8AMH2S M^""U:N0VT#?PCJ0T74M2R;,X@#NS\GAJ?W?DROA,D3A@N'.%[P07U6'32/XT MZ*MO]NBK/?IJ)]%7?UWY?6^'A';@F\C:IEDR*[)3 R81YJGD9L(L\T(C!I$I M\^0/)3E#_A-9SI@7B_I&MAR*+G8IX/O7/:0[;&1<2-YAW98@%>^81$+ (4*] MO#5^H(&.J(VXA E&")-Z)!;M,Z D.W0FOXR7OS^2'W,D(RY>\_IO-G4U:-Q7 MR[8XX*8!@R ?=V1-.,J%#)+\\D*9K89MS1M+&[!1V]16I*N4&H-$ -O$5F2Y+TCN ][_H_[]ZVC QL+OTR*8&=]QU7! MM'H)J9C/H< BEHHX0+8]%FP;K-923VOKSA2SGIHFRKW&F:B; I\D#A?]TE-- M:*(D %"V@MSBM)SWQ8=+R?2=M!Z1G5 )DY0.# MM&V@Y>M<,0=T@V2FQB-Q_SLOT-:[O:O7(64\@R)>9G>+KW](0!MX0BC-T.+, M\*NA-C[):*SS)D@GM,ZCQ49]63$T;50UX[0&SE?U'*!:I&-16A2U MD>F'ZS-\&5/GF_(-N,X0!B*#0(A[Z)'.CDH9\8NSOE5XPC(:!@#!I'K&VIG, M4TLP*6%:T'Z8_=+3J9!N/];F4E^NG2M'S-#88?NE>(M?&[TL8G:,Z$U2G*7+ M+LY>G&=?722+<>:?PH2D!60/G69MO%B(=O\:-@VWN[PX>WI!C\"#PC>?QI/- M+G3L7^?9#VB=QH6%%5U6CV//B]=8-G";T$$*U6+$2>IG+_FNH[/I1ATG8L7Z7F!_?5L M_PMZT@PU70.*&#]G*T=D>6VK>Z#3<_$UR%/:S8@^3 *G6*!!9P&6O>N+/["< MG=Q-JWO22S7L:CC-NCG$<3H1Z=*(^+U.6-II69_+&PAZUOF$?92!#N'AEI/& MS1.O2L!XVX7CD()21FH''=^6CS]9!!U2!#$6MUI[2^MIA907SW[RK$8\&=1K M=-NEG#^=--6Y>2ML'L/K #D:K8,36M2I$PQ4>)A-E_D:]1QG-(30+P@KEC[! M^QF+THTY%1.>UY%QON#NOD74OY"K\AM43AQ:)]A MQ&P1PCB\!YO/VPH6:K);,@-M/D--?' I+F=>LXS?Q$HCS-=J^-0ZZ82CDY3@ M ;\@LHQ2BG[S6SEGT U ZFK(5>ZR0)M@^:,8I\F?;C]P<_GSWCGGMOA7L_SZ85+#R: M9<4D7;VD/YW_PC_>4S_.7Y\HC;_\>/[^<;%9'_:[RX_^]6O)]E7KWX]>WI. M"W%ZG_[]]'OY 8_Z\?L'V5>R-!E^&UG".Q1SVPO2716DY(?>OA!-12?$) UK M/H^L#8E-\WV(G*C@Y9_=?T(7[ &NVC>X:D_PKR>X@L?'C_#?!]_8U7OXV##) MZ>-$.'H_@*ED5%KCNF^OA)"Q&MG$8'&5/D_< )ZCM3OF3N?6_H"#-6$D@$Q" MW* RM//LSAWY#.A-:MF.;K5%)D7>L,Q4 @[Q&]HH+X&G#:>[-DMZ]):)_FE0 MDD_V*,D]2G*/DMPI_;E+*$F5Z->-[S&^R81+HJ:0QBI\C?W'<_JPO4@&*A_5 MG33;]ABS';7:7I%[4%2W:KC="KCF5=7?3J<2ME/K@9%Z]NPT%X\-_7EKQ+K/ M_0=.Q8E'>B.>D>YWEG$,7.0LD>,)(26GT2Q=EIKF7FWYN7)7" M23CH!1C2+^!:,S(B26P7W.!HXBO_,.HH9H$U??[L:8XH.=W8 Q0)KG6G]"F^ MX!S,7%&1,(Z['HQG!2J:[S&QP-R3STDEH(M.128FTQ ML+( @KWZP*J[C30ZI6K;@RCWF8$_+C/P1I!GM\MC'R'1DE!_FC90D%QP@N7" MA^;SH9+XO1D&>>RW03+Z9<*"J'K*D]?B^E[1.D\$,,/^=,D(&0_2@3&F$<_$ M4X["="2M#-'YK[V#'G O4A#Q2SC@&2%W[*GJT/LUDT^&(3U]>L;ZP+0R1L1I MT.$3AN_V3_SKV9M[Z?.1TL=:)MVJH'G9#Y _/"1+X9>#/+OX8_C(=!!P>0KTLRQ^5$O!56O] BBW3N636"1S!1%)DS8V.(0 B:F& M_ WV+6@3<)1)N_60H_;AX1[ B%#> ->9.[=4S&':H2UF%*=O:..0P^R92N!6 MS#4C-B:;4%+ _R8))&N($9YTS9V8&):0&T.2%PD9WIG\N)(Y'US/E1C5'EE4"N0),9HQ3TEB,*1##7N8Q13A[ M50E%TAH^8D?F?C."U2"K!T5W4!SHQK%ZV& 6Q@4*W(E\4POMJ#'QL': P698 M)D%FNF4>T=$A[2TW.69^T%]T[6=ZF@":/1A)&J%7[@H2J4[(*?A/E(,^6X]W MEKZIE:7&? %+&!\M2^=;_XEJZ*-.]_58- NMB0PK $]%[V D:8'!I+FNJZ9 MQNQ4\_\X7_G@*$)'=L55"(<4&;)*8 %JA,VO:@SKL+%20 ;+(^3>4W12_XZ@ M<=)H?(B\[UR$J3?0?48Q,4QT'9I(_1-_2Y^GV E@R M[EO?&9N?V2^PH?=L9^4O'MDY0:56MVRMS=:=DKO9:PT[!9U9#IHIQP+8OA6W M;Q1R4#$WS")^\1\D&+Z[,&-8]V;#>U(#DTG$<.B?]^OI14#S M-B:W\Z3UO$$13*%A2X.()@>1 6F,^I'& 8XK%&R M(F\EN4]::G!5T*@R"#G77N!SE[PW@FH'IVX32$RE5MQ<@BW[P^6745%BB#[IU1?.HB M^",&3G.KU+#=O4;GG,H/, @/-YVR;]/0 7!N;5NFS;COM,I#/LIE1X&N4_3I M#.V/]%RVV>N7Y[ZH%^9#O1(3:2"X;D^^?SS+[7:1/E# P[*?J,Y:V.FW,*3: MQ#PH])PR5^OFET%-?\ /C%SL&"CH_VN* ] M+NA#<$%_F(39;C#"OZRE^LMWLXU%J[>'1%^KK2'J+\W=)%Y&N,QIUW382K%F M;F)B[5SD.-T$1$6]TT1&DJ5P0"R-QRBE#%J=32EKBD$AF< MO28N2:NJD.^V,=7/(N,R##EFY9'2-S&6M=^--;K9U.=FR"-Q*'+ZIK'!V@[MC/?#,7YK'!BA87OA> M-9C8W)'701\A%WHQ8R0#:7QN;%!W3>36Y&:QAG)F81D9N8I]$UX"ODD3$,0( MU#CUC,!'CW)^O^YL??<=WL> E&O<+^ZKIZRQIJC;DH-%=^@J]=Z.6_'DW M7$5IELFC)O?.U6+;!KP*?(L"+Q1!EL$;C!HV9-%&9-#G"^6;KIL4M[U,#)IF M1(?=%HP$E,J?-' 4O1Q6&[?\P[TWVSF!Y,#]V/E@Y$ MW>O^GAR=W">Y?QTW_DB_^>!XZS=/Q'"\X/H3,I@[>!B'R6)Y]677/SM!X>^9%=_3-Z)HQ=><6V1L$:YQG]@OLK MW#_.]9T2?X,?M/7Y]__EYY_P)0B:4.UQ]0DEUKAT'+1L=0$M?A9GH3:\\)#< M$_7DRXY&WFFI@ 9\7J,T2[ JU@Y7&ZN>(UIW?!K:>Y8U7R')(#+78DM?[E # MUHS+D"*+KY"$6D-79+U4RFIW578*N=J1VY0P281SEVXSR;NV>5#! MO^=\LC"_A^'*+9ME_(AP\?PEPK'-N260=$W5,GC8A#Y$58W[*N%^H3/2J&KP M@6N\\AHP/?X )V[);E*1!_NRC?[L=P?1,SS 30ZSUWZ8S)+@SSYD'S7YE=%NY2GG)_GT:I\7R<77&7W/\\A)K --2W'1IHO(Y&&0 M2,L!,>5/TF";;T'"$$7? *5SCEO(>XHB:?>$"ZM--;3DXY(LXJA=]"6:U0,> M[7FW%:JWL=71")D+;D(BS*SL0B3+("AM0(W#!X@J5^?WXCI@5"\348_@P"?#0#)JST'(0$.+6 M+F?GKS1+T;T]F!=O8UQ \+E#\U3^/O),7)6P+,23E6T:SPK."XEE>C WP4PZ M'-9T7ROB+H477,=KQZ# ]"[R(B&8SXE6O 1]! L 3DNZHFE+61\?D5B&!#UB M9C>?.A"L9S'EYDVQ@\2%L>?IK M2X.5R&MJOSV53U'KK4@R60&?.X1K[("M*27;Z.]+$P;LHLB0)\5VF>%=C0KI%<:_P=QDUPZ;W8K<6U[8%UZ6=D$50TU4[L 7N6 @K1\ M(4^HG!S0'Y8-,D4H]RG:8E)>SDUM0]S I&J&%+ ^)Q)#7R1"<=D4E;Q%0K?% M1.M=-IL70'Q O(Q@0'.S/N&2G)N-M4U02V6FLFI /EJ4)9;$&BWK(HP'&(Y" MR4[H;?K46R9 F'&I2H[.HDP/&1(28J0G'87Y$=V0%\GW' S@MQPM6IV0A!?5 M)9F RQEDM?62]CFT/.IWBHA$V7F$S";VQ?4@ORQ$P3U:@Z-S79)"B!=?ZS+Y MXV+K#,QL[IKB$*>')2-(*YDAS>N C&X$IK3[JE=[X86)U4O/E)G#G!?WQW^5 MP9!U*>4Y95853:+Y2]Y;F!:.L CR4/$]P>U9 /P@ [=IQ MW(6/8[]@+5>CIH!NAK3+O=E7\+,INH#3B.%@"O_$:9++9F$@#^?R-IM_F'2] MIA=5Y4CNK7>T(UM/78BI=Q;!8Z3@=E[&D64NOPSLFW-8V')U\ RNP-*$(D6@?X/'QN@V) MVTWKP-MK]?Q^$1CM7BCFE:?/A07QD>)-E2B_M>CF#&WWK<7+JR"]8K$6E*\U M"HE1 &%E?,&(WV?YD6F+H])^O@[\O 1"+)40M-N:2)"W1%-J^P>Q:UB]=-T3[#"6Y>BY2C+3S,+FBITFD.D^E) M,,#[EU'[5+^.^8TQFCS:!#J-\V+EHZ:2QQ]0RWMT:4#1.K--^RYA:,RC-92Y M8+":]\Q>_#R0)Q$.?F6AOB%G97C@MI=S<%*M6I5?/E)T[?Q7ROJ&HQPSVO-Y M\^VF[:,<">NP29R. T$'#9KM$,.^^LQ3[BV0/ 89;[K*(2H5<:P#,'LM-O?N M9(I@+II,?-_]\A7R-]PQ >YL_GYR#[XJOU;06:0K/(16Z$-P;"Q:8N&-GWX^ M)0^R76@-CR^"H-^'@HJ+$L_KLM,? N6Y_"I\YB6PN.=UW5SI_3FOQX?^X_AK M^"RGL%9UL^A ?)I\T'YM'_Z.9D93^[!K;I,ZA5!W47L$?HE_Q]J?HYE&HT*L ME E>,< \.YLSB#ZS3EFT;(P8/A+&/^&F=-.R@!_>&CM> FG,VDN.<-?85?2&\ J0G?TO&B:7U4CTUV-A L,1.F_.KL['7V M@R":9 =^XF_59/)?8_S=OFLK@NXEUI%_39TXG?/IY[TT+,GX88 M/.U>]O-2"L14N(Y<*-L)-RNV8R/+):ZM"6D9P4G1S9,#B5=?R\,3H:S%+&*5 MP;SQRL.7SM7%W$TB29#F=."VV5[)3?K]UE(<@BK0:S+(3!DC3WC@)7/OA0=<7\1(]C0U=4PB93EA%+%^.BI,/1U[7&@E1R\YIH_']?W<->_MP2]QUD.=V'M!F(87^W@D M9BQ6/?3IKB7M3O9)NWW2[LLE[3XB//UC3P_,GBJ,Y87W/7=:%HLM =W#L6;. M$DD^@&T9:-X<01:1'1+.3>3AK-1 9>LXU_,/LKM >A][W[D@;"(X&?MZH EH M5H[;DI 8)(,V!% ]+H^SC9RX8]RL6\Y\("_6J8@;0 \JZP2)7B9$\< [_EX7 MV=.>:L+-1RV,=LOSL:]W1;Q0*KS4GV MX,G]L/+ \%43U/7$R)3CQ\?K8(\X&29HE(YI8Y'[.G[X\*9T+7W@Z!'OH<O-:UOC1,?YL@3\),P=^CROG^S4C>6A^H9\%S?";AVP2*H3=+.6_U263;"PE M&7C\^ 1_.>W*0EY[GT=UUK=DU^W.#O[""49Q@\).2<,'12,:\)4I9T#)!LZ9 ME\GG:6+/6\\4NI%\1^G32:"P?BVBU3\%+ 1W#>QFU^.56 M:8,*BGE6MNB<;;1E@OQ"U*)<&GAAQA+;@(=Q9JF3:L%)X- )TB68^EYE[ M@R8F+%:YIH7356.+9AK.!6&:E1"NGK#IL0"*OFJE62T;MSVIR#.<_+9E*0@3/JM649 M+F]9<=?F4-^$<\DX$1"#!6RK&(V[HS#?-++@;+5J<,B*$Q*7O0 0MZZ9ZDHZ MVHZ-R4]+S#Q2@EWJRF>=;\*ZW3'TUN7%(MN9ZASAMXUNC[4*_E>SRP8AM_H444C:@(E%15@X= M2GR$R[*T6>T@2+3?NC]TZWR_)*89"'69[&R.9XX9?1C?L=^'/U2B>21?P3Q% M$LQ*@[7*5$3>]D@XP 7PST"AJ'R-3%V1CQE2U #H,40ENHI ]TM;*@M+ D9Q MAPV]'\4L8AQ5,77+56SFW;5LW?U]MFZ?K;O5$KM/C .1^!+ $SOWJ/H%!87& M%N"9*):,ZV8#2SM?W+5(44#TA>KB*'CJLR$!M3(+PD"?J;!5$W;Z_ACUSH)W M(07* BQWJ.V3:*CWIH$Y5H?!N.,81G(7&'WD>6P#NW!-ZN.U:O-% =92<;^E:)I%T=8UF"G\(\ZP6&OJJ9/YK\FJ?NU';([9-'OP#V@%F;;'N'3ZVF!!R M6A#@HT+JTMGB7\EM\.VXP&V-!'WI Y.27D=CC. ]D'AT@'@E;4'5R=B4C=HM0A%.-2Y; M5U]B?>V(;3N[/LPJP+HT*CLP'4-DO*D/+ILT1B@86*T,,< 3T'6RL KG N*1 MQ<@_&3G&>2/!=!FF<9>64HD^ O.FK*)PV2M;7&?(.:[9&OLF/%Z.S)N)=+_]=%LN^BU@0:>!5T494 MZIU4J-U.Q>KY&C)/23_&/4_FY93VX=;X>VV@PWK6T )4^DH1)?:9,#)O\L.X&E#-!X=_"37[B.Z5LJ\85*KGP!;'#X_W&_'Y-H*[U::= MNC_ #%+33E?C>/$N8_;@S*+ V_?GCUB54?+,-+#T2S%W_WEOI+/_#(;'MJDS MYQ1*HNKE#DW?JI.&__W()0DFP-W9^=/+S[CQW_R5-UZUW]W9^EO9H= M/CO\?-)^??)?=H]CC?^A.OYC1?K.;G!V/\E)/WSR^83YGWM?36+O[,Y"2+>N M8^+X/'LZ*]UT/;BJ-,G,2]&TGT^0W]6]_]?D]Q>=V^FD1MZM^&?QV43PW=B; MSQ)%^Z/EY_%GDY]_IDUY;W#G#YA2D'6_(AD6R4)IER.I&Y&+H8&.RL7/)@GO MQBY^-K/UBT[WIW+>U-EOA]F+Z(C'T5 M]]*X\&1 >VOSKEF;]:3]I_M[=K%LF[]?%Y]=Q-Z-C;H+IN?CO>FY*Z:G&)5O M N'97]BJO,> I1T!%7CE_\NSB'N&NY$Q$2VH,0&Y0PUN M%W2@DJ3^TEPQUY#BN)X\.68EF'Z)>4@V1VCT,?_55ROKX'QT=)@]:[5'GPUV M\,1"R48!_HL!O& _TC]T^FAC0_(C/-GT>.F2S'7&WQ]>'#(U4& F/HN)N>G3 M+_"1L\.GAV>'"BKE5;1?,2_UTZ*M05.2O7!518/\6VWX5U$O159._N^__?YC M]?;XY/P\>/'SR;U)3L0O0TYN/4ARDP<'Y>U/60I?S7T4-_+?OQGV$W7JO MKZH4P=C8Q:(IF>-HB^L:R&7PNA>@G HO.Z1GEZC#:'A(!CA_*CC@/'MA^XZA MQ\>I3EJA^)8L@>B*RSL6;7EE+2,6_8C6(F(@YDV/S_'Q$XQC;4&B,0+QOV50 M49/)MF'BK"6(;HL%(*W:+I?9H NK)Y$6$\*@PP2J3$><-A )+#HTZ0M78QSI MEDB=CT'OG\7]\3"_T_Z2SI*?X6.>85^[:,Y8G(]ZIM4,^&<\Q%.';[)ED]50 MSI28=3.TC\I&1Q34)9SDAX.3P7P9L0@4D?="N-[H&<_/G[W,3K5%)\LIZ]>)';"& M)-&214TL0INEOHL[RK-TZP'C7RH7W'!8,UKA3H3B]X>G*OP )?YM5K1+$GP7 M(/VM,$"E9;,R !K4*U?7W:JZHE& T8.>(4\F@7N##%8!VY" K:KHB8;POUF" MR[=_+2I41I6TID/)O/OR=STT]*_H\@]T:H.&SN@B'GE1+?S@3+DG(C02\Z^8 M@BX4 QT_8:7KQWO#*)X)[3CD[0M/.VZDDRID:S"O'SWV? GZF^-UX?J!+WW. MC(,YY$?SXN"?_$XWV ,?83I8L951E;+P\., M^Q6SQL,O[ONW>;Y'>N5#VF2W08EPQ<3")LS$W 69W]K6]D%?OAFL.D?961-/HN5==>*IA_LBZ;W1=-WI6CZ/4["MM@:U%,L M#R.2,AA;)KX'4L9K,@CCGF18A2)3<3<+=/"&P KF;J?6)8DAME+Q619TZJO$ MSQ?UY>F6X,:(ML/CA\J"7_C&#_D':UC%Q:;M=D]F/5X2N3*1",56T%3H:R.&ZK$ E;*:N>+'O6G9ZG]>8,< M39MV):^&9IM!5\C.S16 M+=S7;,WZ^ZUHN^(ZVL;(+(U5S?M,T/=HGR]>='AZ5905BYZH_'!GC%HTVRLK M[J(T[=NZ[&;!R65"@H@EH767R@#=<./>I=.S@"K19@+/C+N>2M&A__JB;=ZM MHL]'K)ES:P85F@]=G#T5ZN1S[CCB0)$YHNUSGH.-CNWU]?7A8C(])&_I,/N? MIN>^(,T(_(HY'0/'8AY%IRC0%8M.GX)>/HO2>0K/:.&YBZ['2\Y/;S78.Z4.Q@ 7(S=/90(@.I*&5. M #1K\O<3G5[D9/#NVT;Q/N7Q:2F77);LM^Y-$.*^9G"?A3 @;,7&^QU_(#!#,X=R MW%"M[W)Y&1^XP2%,),-G7-)/SSC<,3_FX=Z/V?LQ7\2/.?EHB36\@ANY]];O MI68H^?N#&SIJ[Z6/3*\DI..'U-=]^A.BQ-+1-^YQ<3Q]^/O)D\GH]P>/CD:_ M%Y,GCWZ?/CI^/)H=(@@Z;LM%3&2$!ES:J7%S'R[/RU+&K!K,MZN]G7W[2VWF MU3II)X]E"QU. E=':"AF;6LB\B-OJ3SSG^(/G:*WR=1H"?4^-5XP_\UH[ MJ]%'0G TSWXF]5I)1-1!+&I.X[]A0);+PC>[_V]NJR,_X^U5 Z8K,GR8->2% M<)]C9\64:\9BVDK" I[Y8"'2[I^Z./0>,N.$\)Q)\&$O::\44NEO:S07)&-/ MN&)8]5_'_8D]A3NXF;)R[LU/Z:YH/U;J&4Z8?P<_L?>>[&AN;;JE1S.6+@^M MG@-GFUJ)2Q(TW*O162/";5.2H4BK >E+NA1/0K8'_12Y97L\6M]=V3[%W"CS M164VI)RA%E1@!U73O)7N&MZR4F/,SEMI5MFAILLX3CW3@9&:Z?%2LW69H]NS M6&V;ULA-I8D=GL?6FB=NFK.91PNT.YQT-U7+Q>(IN^CG:/#A:^=V053='*M[ MS1MT.A!6\(R_UZ.-L-W',O1\FD63Z+[(E.*UP" .2&F3'/EV6KYSDTW+$]D> M9A[*6J2@Q)A&]U[\AT^:Q #YQ,.CX6_'/O$ 4KS3?_RO)X\>/_EN"*H:@**^ M-/'O;]I&1*XM&+EH@F 5XZON6],S8=VVMF 6$GGV_%QI+:7KS3NTNVU"PVW6 M9MSU=5J4E9#=<_,4%3=%BT8Z_5+51(D^*(60HJF_#EXQ[B"PI+DSQW##V7(2 M4/E >&^4U, >$7. M$JS RH$J<:4AS;AA\H1;AW1+,0DB?NJ MAVZU/OC&%YC.,D(F@5-//BUYL':SJ'(K2!%KMQ345J"QQ]^9=E,I M1Q$!#NVT'#E1(US'=N+U'5/JK@[&LR+<)-STLFO[1:Q[K.&[VLS=TOJ>VT6* M>K7J@)7/=^G"6).FZ8%(./A9?G#+IJGX4]Q(W0257K3"/V/BB@D4;;=-.E3< M--WW Y7K2V8" )O=_C;N;^.-NI/7_&#J7-!: LZ5CNNX;F)0EC5YLU4E!_,> M"?QI>=F;-H%R719O';?E%0QB;GCQ:I5S:]L;KH5J,H@S!/.6DQS#2L+\X^XMSX\6) MM$'GM(6:F8FY-1?0T)37"8**[ZPAN'E5VC#;+$+CI^?O>EM2^UEV(9\*)XZY M[AOY*X:_+9@N\6.D1'7NV7)<7.I M*,@Z&H;;'^C]@=XNXKFW>\F0&\X.C06$ACE)>%]?E&8J3G1$B%5W%+'JO)631+P[P'MB'X8$TE?(J. M9^R?YK^_OXC[BWA3R."24<$XQ$EPG)LNA3B:BGVM)"E\ZXVZ9RPP8(7AP HL MM6*8(5DX@. 4EV[SHU#\8U\ERZZ![BG$/FJ]YIFDISS/M($572#84;DD8.LH M&YU>'R0N<2F0:H6(H%GJM6(WR#-)3FG:8^N36;;->SV2$M,<6;T.G#K^*Z'IY1'QB$" M?8@Y*+X4X8A^<6,<^Z[!!Q_MX8-[^."'P ?W\OVO+M^UWUSK_M&7K7@7L;EZ MY6.XHL\X5Z? TZUV_I1C1=>;Q3H]:-6H9;YL"Y\T[Y)B5VY+JMAL4S&]34N"9WJHLTS4DAMTY;=/ \=B\=E.^[G M'8OXQ/M@XQ]@K_1J-5$)3NQ,K*4_)"_.L5[ 1^D?-+F^-C-MVE=31)8,HM(S MXAD=TK7&7AZ^OW_[^_?'W;\?JF8$E]RN3M #'$]-S*C/Y>& M\.U-/GF2AN=KDT?W)D5J[])Q/MJ?YITZS: V =_F>$:GT=67XH6+V\%Y:([M MM&Z&^I:K +I%[0H*YJQX-#WW)?V#S*Q5-A&WF!.$!K05()97#@7.,;O^ B2D ML= 2])TO=40-7SLY (H+V?,QC03ALC4L/\3^'+Y)R2F.63DJ52<"Z"O#CZ-= M?BJX:L5B42E19!?/;>@>VGK!+&G1__G?L_&LB!SF:3D2E ME(U'L+$8I)90/T_;PHBZ*I=*3"\*>I.W&=V$\"GYA=\E=-=45,^V*J)=;UVD0(2@6 M3X;!=W%_#_;WX,: 6F)D6"QKBNRB8V_%6S+L$R (U@EZE]&U0V"O+QM12&)* M-,#/V9_(_8G<>B*?FKG:U,:9I)$DN*HL90N0(*&GADI,,36T%BI-],&N9O+( MCK;,2J+V'G9%0LIA@J<#RRH M#31R_BK/1OUE=X\S&H9,GX_*2^!JX4G2AV?E@O'KL*G=1*BGZN5?,]H3F-/V MT9[]M=9K_<(5*)J(N9# AS#" 375AG?G+&DS">49!RA1\A8"=2-*0!Z+,Y[F/L>YK[7%Q\4 M96(L1@2J!;Q]471+S@Z.BDI@)!:+2JIW655L+T;D^G3_!/%B-A*=CHMNEGL] M)+;C=8NU)=V@_9UP2C8D "1Y*.Q[X*UE7".3)[5N4B[9QW=[?WY_!]Z?9/!1B2$LT.>$S36HJ(4BZ"7&UCHI-\UOY8[H_EAR$)P>D=XOX69L]\]PXM M2/*H;NTC&]$U)&%[= J-Z-5B8@4^VF0@+_1=9Q<_(%R_A&Z(#K9$]E56U\@C M<+^=70OG[\-.NW6H7P&ZU*E]8/R&ZJAJ?DKCHBWXTQF/I(1KG%8RNC7?S3&@ M0V.JG825C1L8;V3;L8!LU8P+SX ?T$RD%1!G+=7\D<"4VBU8K3KN)D:?0*"..[,) M.A^L6'WK)PO?>PW6.(@J(S O+XPN2K2PHCG2+)%C])=13QM3O[\-QL H][#MO;VQ/ZC;#NIS842!OZ7L M)I'" W5>R\7]= K)NW/+"'X8+&).C"U)+/[3FQ,UTZN8Y<$X DZAT7,T[L M M!+0-RI].DVW,1UU(UIF\CC=M47=:;N=UW8=,=*]8_NKW]3>G_0FN&I")1W%% MKF76$E$M& UP8^DQ9.=/0MQT^&;EHB/UP9V9C-FH=<*?Q%4.KG;34F!#;'.[ MZ50:1,; BYN+U1+MM/,\8@/]Q.=_?^!OFT$9A /6V%JP#<;M'_6XBFJ HCC, M1HLIBER^MV3R3BH@:X^>MN_;:YK]Q?O(NAA$@: 5K*RE==* NUARL"//YLVR MO"K0=%MZZZF.8;2SA(W(ZJN0DI]DZ(+7K%Q*5,OT-B#\$X0>>DBE#:(4-[7K MS#1[57';)Q:JPMJ9(#0GY-U1J^JU2GD^6E<(B%J#(SKB^L]M751P&T!A*?0U MVI'1XV[BGBR#9I/@=BJ6'#W:I7.\MWAV\!A[V>>[W:UU8@#_$OJ[Z\ELII[ M1?]Y57;*7S]KJHDG,Y:&[/+W>42+-^9F?E(M3$<;W<=\";%&I,L;,[)?SE"* ME^T]W8P_I,/FCO0YW0* 4IMN;<[[AI ?TQ#REMK!TBZ==MK!19@&D)KN8S;R M,&WK#S@O)ES%!H8:;1* #1:RS)L8T]0[C\N,/V!O#WGV42ES'N'9.4TF2/?. MBB^VD"4$?IVH7-D:T%L23C<@% :B8F MZL<\('Q;) %.+#"]+1+Z.&NLU!4^Q4O-0!0YH.OF@^\I@O,LS;234@ M?14& M%&N!K>,MZRCD8L9%^F%U=>/>VS8>/)F>]0$HQ]V#WWZSA]_NX;.BP6G>*(R//&+$F'JO\)$9MM))Q).)ZE2&#,_[0AM.BT,\%YU_E': MW.S=P^S42\)JI6.A+6\F'-/>IA0% .L).J"HP<88&3\5/HX?O'B-MWDS1'%3 M"/&N&I+[UL@[VQKYENS6X9EZ:1V::'F:91G#),->^,8<0^;>7+PN_"HATD$T MA7ZG+.L;S*'4H;%6.XP-4V\$@BPP+(Y9>N&9='R5?T0<$-?.Z9O%5=,&@IY< M-E"Q7+2(-:(^WBLYS/Y6^QT+QV? 3K=!%^@X8>,6:"0R:\3\CX-#A]ESL7]S M\;K+N;%)R,V3)'JTUC'1/E\^N7D%&;HZS?4N8;YLU8&999Q4O4E#XG<)&>7" MP(>,IT6!63G&3C ODB,INS2;6]56X@/:<)W'+2*J>_-[F$P9RR [.2F[1;]D M<.-ET4X\AC#^ LX-?V?E@],Z/=Y9;@$M!>,3=)1-MF1K"E*ITDUY^[U)ES.4 M!(H0) >M7:[=BIZ4:B4#'+E+%CT^!UO8O9 >:Y(YI=\Y84PLXFN32]DZ-)P# M;)DS7K0CV8JYV\NN T*>G [:J[DK%%>?<]YU/"X81*IR-?=%A4I&XN+>U!&E M3U)Y3R8XLY\X\-_5B)).FG'//1WXOH^ :7(6MU<@"/1BH#BE\U);%RMPY+.9 MHJ N"3%3*!X;NCDR/BZ=I)*1#YE! ;D3B3^>@%K;TQ%U_M]8G9VO&Y26J ?*M+ MQNO(PY/A!XI"_"XYL'I3XD[(&UJ<&R:>;:F@+S<+ZQ3[X^ZR<;3O1']KG>AO M+VCWF]]@R4\ZF!@LXH*L%/&HC)Y^WZ#K!:.^\; (O#XT]""I-T%\S-Z&QLQT MV*+SDFNE-R/'(0DW]T.(Z-JB8R6NITEA@?D97Q4/O!%+S(;AB:M1&&.J(N#H M31EO>+]95$OSLX+Y(,*"28;D=))(**&KU9+C\/2B0HD9OX"/?VEDB[@M?@+C M0LKK/8^J'6*84:6_%ALO@##!>.M-SCH?9 YJZMZE9WFMZXJ$W=A2=YA>7)TSPLVHGS%E"V0 MQ+'+B.-$#X0< 7+20U:*598LD"S6QB6"Z3S1@R"*TI9@HE_P>H<-JEH[A["Y MT4#A!B=LRE.74*Q49<&4;6KV7D)#='3_.(!3X,_*5 Z0+9@F=+N05-N 9DO/ M1@GSY&T-2L]B*4^#L;AV=NVN;;ZQ$+&YJO-(WEM=2X@YZT7%QFWJ9\4B7F(A M%9D[[2 :A6I-8RBN8&Y!>X?!1"U'8[-@L_$T:IJWG'./FBC&LY-++:_EU3#5 M8O/E2.[.OI(*&IM&0;U<=V)C4/&(+S:ZQ*CV3 M1.PJ>8KE,MW!-6WO*J?QP6 8;19"\AJ5 MJNUC9XWM!*>*$3G8=.F\).D\T( M'.IKQ.FYEQ$RHJHDYW%BC=1D?)RKN2Z[]4C;-MBF]$>SFRG,LMD%IY,3Q:%; M:.\9XT8/4]4TG=!N5]#G$2@H9U J/ 3KS;MLOMW6&#NTB;8H5,YJE'V7LF&6 MT:+24F2T(.I7?+#+>EH%OKM+X<7GFF6D9UHF;]'IRM,'1ZO(?*=O6G:R829Z M]?VQ+2-&%K1VT=C7K%RP,^AC"G[6TUB>2_=N3@;*C$>%JBIRR8H)!]Y?_GK^ M[.#X21XBNR1JBTN-DHQ;Z901QMX%]:),Z<+'C\>R8B[-K8K*87,2K\VRP*FB M,;27C6K/@DRM*4O&\'SK)AY"/U4Q4C&UX('Q"N@H\\UKE=SY2";D2.7;5",Y*^@T%:MI!"EOGNC2MFSM'(NY<9=D;C#B1Q MG+GCAB.\+J'E",O?2*:!>F<9ETQ*PM2,J(%PQ #O9(+OR3[!MT_P[6B"+[JR MN;H1+'J;!&8NX=>H]US".ZF#QHL;OL5=?O2 MKT(.!9F:P AN@+6;SOZ"T9;WT?;]2[DH1AP>3)T+[N6T\3J%-8BD5+7R7=34 MO:2H7=()W.P/QCZ@G0]UD_-1E; EZ/R[*+P_B9;@ MNFG?>JJ1=.YX\EB05="@[6K#B_#PA0@]W MO7P,KE'4V=G)=R#Q5@LG-6%1]&?BX$\#UW>-@+:DG?R,T/P@=J'&8XS4CE1(./,:B8Y@C=61I.L$)U]; M47.<=%HN-2Y)1VS$WD[#6+ 2_PS4CA-IX*M!=FY^@#DITB\D!=[PJL7O"3W> M M5[6C;W 1F))*0OV3!X"Q+\"*.\+)D*IX6K)TV"Z1]<-N4[/_*IGG&,D7B]+1RM?5[Y-.I!+R-^#CXQ/3LB(K,-F">"VTE<)V+QV H' M^2C)?5?S'R_?TVT]M]".PLM],L&:GL+-9 "LG-U_]$6E=I(9/-8BR$=^V\NBMB)_C7Q77/J[,@4LQCUD8I.,-DZ,(EQ0UTKG MPY=10Y2FN"^*XB*[&$AS+ZXE3LS1:9C7)/#^T7-!*'T!QR*>JS#0@3MWK56- M+S\32Q+-E.H)KK FJ0NF! N8"\EX12 &^/0,?/-RXC [Y5,9\&01\L\6$4D* M"\M,M>E[@%%H',>P(#BE=E'"4B80C*1]L*6L^E%'+Y$H7$IRQ&L;V:1D-*!, M9!#)1M81I7JV(]%=QU"%"6KFJH5]('R75FS\5BB$^7"0W[<\D*=Q3%4.2FX^ M#8_7SX%.G.*,X@O-&D]ID#BB$O=I ;Y1Q%-D6$TV6=_BMDF[P!B,XNJBXB\W MPVL@$ 7X@?&*:J-,%3(;&Q+<%"W?+&]2BT?[#@KBG5CFJ.#+9TLWS^904%'+-8![CRO?J6F.O55%? M]O!U;7G))CRK+ZNRFZTI?KOA[Q?T$1C6Q &W)A4?8:-(M.? QMTH L>S9HB$ MC>K\HK@ ;8 $8WG5/NPX1(KH_=BD.VP[/',25E7%%#/0I:[89@WE"3V[8^2@FW>1EQ>SRF MJXG.,\2=0$ED=?AJKTNGM4L2F7V&;K3L8=3C8IBQ7N>U[]C#O&P HB*M,.$H M.:W8P;(YD*67[K_%W,)@:P_!G%W+['CK^YPF!/VN1XAW*,'%TKRSU(X:2)(A M5H6FV!;U,JYOXJX=D7,=9 Y+1GX^1P\M\YAG3A$=5:J7[,WJQ=->LF%@TBEZ MP.#@,QF8=^KS3.N76 3&RB!>RZ&$G32CFQ;:Z6#>#!7] ME@ :0!;+V0#=:B? 1A5"#+&%%=WE22HW-LN*/#Z$"DTR[E6V43B+FF!NK6+2 M0GJA!BT0Q9Z>Q^CTJ#O16I.77FK$+"R91):;-L2)%O1]N+=Y[-?X(\?2S170 M%\'=0;@@;ND;55H@3=>B,M!6)PH/@./60 @1J*?KYLHDKND^4V&1B7FDE'UQNZC26_E_QB/::YHG_H M_67G/JCFU[JM;BH2H0.DMIUD_\&.SA!N.50^JO:QXI6)0:NN(8N$H5^# MU+Y28D@A ,M;7ZT#_[=60%-T@W#=U%DJ@M@JZUA?6?3(1H_%GN+:"'"#HX"# M0!1"0],&9.]:H"$'-$IK?.S,D9:N9Q"?/DSFL^[A67B_M^-P_N)[<@UB>UV@3*";:$'[,_;)EN8>X M)BS/!)ZP<6\'8RRDC\)@&.'+RE[)/Z5PZ#I.SFRO'$UK2$@ MDOKGH=F_UA4UUQHO.:I<:.9U( >S0E?XH.&Y$&XM"F1!+H^Q&^#8O,%^VZ[H M\+@HDK5!:9;0R/>M0"(#;I@7W9N4WLR-"O)\+,X:Y&SR]J0"RE=*698S/D&Y M^D?PJ@[DB$VEDYOT&!TI'PDJ1HUY+$IJ%I-Y6=.2!Q"_OL=8+#:?VT-FCTF< M:^X:E\W5RV'D;](RG6WB*-X O#5P)QQ[X'KM4OK-69%4*A;C:T'F9(F$F6]) M3:*HF#MDC%-6M>2F2+6)GGBV3^>-/_OT"L3\+)?'AW8)AMJIH#-]^FS+ ?N.X_NJ["R=N;X#U\/5LL/%_YR(LXV)(6#!1PH]E8]''!ND>%:ENST[$>XH_ MWVM:OU-DS)0H Z>?..Z5K*N_)'$%B8;5E0J^623XE"T@4A)T5TT9SR!5VEOU MLYY13PH4ERTEL?)\&/4NNK>X LH -DDQQSUP#$+@&[+L$XL5,M8S+;AN%%? M"P59QB5Y8W& N0:7RT?DJ):M5-BM2.'?>_&S#UC*L=W"$;'H6W3KZ2QLPL'# M@#1.GT1WL1?4O1U%"4Y* F[IE$B-SP&7(M,)EFB']@9E$75ZGC0<22W1OBYZ MD@DMUPNFV^451QY;WKE$+K?LY,@! J>1AMYCM*/ 8%I(-%585'B"S<,J4[>M M#A?!=*)?)18JTYE@>3 ^;!4.F@LEQ\<$7]@TXM*:U&X!;(R*VU[IX_+6/!; MXECJ#!6+!6VZ5\)MBPU">8$DT W:M!:I"O414Q)?D+X:-.0@J66AWXI753MT M=P+S16<9PD&8+8G(;ZN+Y!(OC1H&R:= FDUT+%ZG0J)JK0=73/E6.G?8U?C- M!0S7UAZ*20Z-W;+"%XV$"I,XXRT:B,;I)#A8+UGZ;GH4[:O_*@0@',U"E&7K M W:3U(X7^XEKS%B9:.U.;;BPS@TYUE'&Q\"0B,K8@*B=<= TR\#0%B4;#+.' MEJ%1>5@"*&=W,J#<# ZGT3*J9./;.?Y; & L M_S=^5(:L\'*(4QY49 8-[7RUNI3B+[88UZNW])1"@M8]OB$1:Y ASITJKW#. M#Q'%BX[]AOQ3,E!-6T7%:;:0J%<2L ()C6OE=[&Q!(\$ACJ[/W4*&PY&E4]H M(7Z>4%-SOJ,J5FXB>\*50D;RPQ0H]IJ>JZZ6'0.$V.:#\=!W,PE?,$>-Z"S4 M+C6P$;5$6NN.-W$OQ5!3[C7H:5CPW9'C&EAY]AHY4\0VD3S&:#D]P)0K'\T: M ^JJEJ0&"KSIYD0<2'R3!&@3 3C7>)%%6I&6XI2L93SFNE7#7;:-W9W"AICG M0VLS,85XNSO3%CDS1&)/1T7]%L5@XU5J8?CJ26]1PJ1A;#9N-O/8,$E6^(JZ M?\J8(_:U#F1=R6S%$U_?1"]L=)_,7\3%TN()>QY M'/WC9[:C\3"/<(KBF-@]P,WM<[UQZ7#[QE*P\QY8S4J(EN=!%!<+)#W*'!.Q MP4;$''X)HVF#Y32:]8RFII:_0?(X0"7%\6)9FSMN%US,J&VG^CHBO(J5ZK0" MNC( U3>?N)$+5%F!3J8UE/[F,P?7ETQM!G\6>N@ OHR8(Q)B,0@+#"U$7 [O M9'+R>)^N=$HB(3- D1!VEH3FBV4(OXA$S:'L\Q M)D(FCXQYRN&2MTJM,Z#$R&."%L6-A<"317#5P>*")J&+"Y2G4@4305N%178' M^1QOHHYG3@T)83$KR-KJKA-4)#BI\U>'V4^)QH!J5!VT(&D\*Y"'8V"U<=P9 MS-O"!QOXQE&H,?AX=W* M:SP@/(PW-F:W[",Z3(%J(KI;3)UE]V'$1J%V^9,'0;L0XJLD34<.BABV43", M0VKAZ/0U=M2'+@74B9%9.F#8H,C:@T6&B>?T8(\."1_V/)@M4I(\J+RP_3=: M^/@)P^GF@P7<=.>]5%")$K><\=V,[G!H;E@@$^>S+I'3J!D'P4:J(?8%NY@F M1:)>;63E0FQ;BMUW ]%]TV+K^OM&X9SLI1^:N;E..O(X1:!POV&964]TXMLAE]JK"V7>1AE3<@- MS\OES1$S0,7+TW=GI:_[7\7=?!^0% M/X.C?_4!_UO/!13N!YZ&KS0KKKZUO4V>$PW$7IXG0CY:SMA]'9=7I1@,XY9Y M9:,2K 31@Y7R)7)/:87@D?IZ,.,0--^5O?UPJ378"?@9#]=0 [J9R3U?1NUX M#[-GO95)X[Q$R*8D61T3CJ\O2$A)I2(MD8MEC:-4)FS'\5 0N[MVKK;XG[&. MV6E&HD];,NV(8-JP$.S95WTYR8VK04R6OM;I>,B[4D K55_H93,C#_=RIE"> M$'5FB)8 D4)TQ^?/%2YXQ4!SQ-YH)GDH"5VT9!ZMCU:B(7Q9R%&[; /]F7]L M')KQR)^$US/CJS@"6#("A!#T MB A'J;TND>84UMIQU?23 P!\W$ \6_G#UJ_RT 3P8JBLW[[F/O F ):DM=Y<\C-@=JXLD MD$ADWKR/<\]Y-5LWPFMY$B?M^_#=?$/[\UR7!3W6A8(OU#Y^?WYA]I' -)O% M)2*5:=OD86'6#;7KCBQ>W\W\_"JL-'ZZX*-3)K"M('SER"M7G!,CG(3V55*H M>!4"5R4EQ])C(0/OWZL%H_C"6^ !BN),<2 ;E:MJ F%@T(- M'O 5U-$0W+HRFOZ>F=C_L,F#SWN0S^?A4!':2#Z#'-^S],VXEEO3.W.S%SV: M^" SRM.R4\-/I!A$(0%TOD2(,Y"WI25(EUG2*9>S" RMJ>"D71*92N2JXZBF ME<8-_,<=.B9>#7JTYBR>_JW>8$^WB+?7)W)J5<;.&O>H H'E7G)1W' MFK7VA*IWYZ7I_))%C'IV"_ 8K%N+G$2<;-5C\0U M.4T^@:UL7"!H=SLT#@<]N@@DZN/%=64[.:0,_.E03]I.1KUF=YH7] O=X MAKZX"C=Y:>-XGHSC31S'JS@.L8GA5LK#&8>7JC].V%173^/%)[7_66 A@A>F^/? F'*?R^81D;+D>K$"1\? G] M38H&F8J(F.DHZLE[B!VUUM(>^;&Y%80H\ A1O&*FQ-QM61L%584V2_-%_')- MIWBP#Z+[ZM^>J8O5?3B2KN/QRS+"IJ/HG%OD 6;E J8@4\G1_RHKF2?[2N:^ MDGE'VRS37AY&G94:9$?$S;*Y+K7]26@HTWWL"!ZYHCENBIFW8 /,F9QXZ77R M^%MW240E]1;8!I&)4/_88^6R3[".7"1SF0R%LGX>TYURVT73J< ZEJ%DY9M$ M++B'_IW>0QPY2FF1$9\X4%2H+_C:A>Q7N/353OL)0BV-@9&Y]XI_># MDA>FB@IZGC(( 6+"8G/KB]6X?\AFM*DK"@U;$) (!C#IH=%8PIRP=$E:I\8( MU0!.-IF+*O% VF8;8H6M7_JWKR]6-E.W'].YOMITG["F[TYT>U$1I)$2X::N M@0Z8IMX)6C:X CG+K/(V0,JR>S>VPJ@RK-)PT66[%?8'+VL*+VMDD8_R:M#[ MU!=FJP6"!-BI&@(@OFZZT@W#-26*2 (BC?3Q!"D7IIDBYD4$%7,EO..$7UA% M19KIS(C)E+&P'U5ST"89/"@\+&!L:R4_&Y,<<" !]K_%^+/$TT=<;BE-HQEL ME),.X%%D:(Q$II'3(Y]=5>5UZ6 "DVLMB/(/#;PM$(C!PLCCNK"&VL'UTT*Y MBP1Y+_)1Q6HG[INRW?OOT$P#3.D-MVG1@F%+4'%OJQ*>]:CH\*8UO/%GQ1A( ME;/-1/?R-NH^[>R+N/TXC'CDW8+$.]',O5*BR/Y9R]OZIHD9]91R;(?KT'BZ M136K-7H0:*,V\WE7Z@O0HPT5(H-K:AK0U(PEZ<7)2KG5UMWH*PA'7/ M4/ ;]ZK^E",U.OF)S% =WA+GX=;5+#S0>3T[S/IO4Y/OD6A@_$6@Z8'?O-MC M#H=4?<[+T4>QJ\)T<-.);W1!^@1OTI>>\=R'+L M2AYM^0O0:4S_HMMH?(JU?68(4I,N*S+3'&-\%*Z6>L'$;",:D4S;G.II9[[; MK@?,PDDV/E9[GITWR M@]5"$DI.(R9]*K,"]2Y,CV$6(X>IXI1W"EF*"YPZ!H.L@0]@()5^ 53K1D$ M!Q"M>GB'J0D(T9P,1J>":([HU:W+/. , MI2#\@M4S]&'1UT0^3&_2PJ J"$Q?*W47G/%$0!I;J4]A:>1/MLQM5.!J/IQ< MN/S\6 ,4X@B%#\7.(@;G,]J4T2L$UI4]16\SS"U8HVF%VQ$_7,+2W93,%X%Q M]!4>AN B7+1?M28SDO$C,X@^A0WH U'D@/)V$C?S.^3&8R,,42*8T>*JLS3: M,,Q+@\5 =T V.S8;'!R/HV7#&C270&$HC8&<$Z,0+73#I&'7A/GHV<%9F*RU M7+*^#;T> V)H1U^;XB@ORVE9EW.J0&'M[EZ+HI,@5?+81\ \2M&8^FC7&4QF MP6">A9PR 5<5SRS!]R/@<4FN:I1@P?B[;K-U^IJ1F^PYSE]:LL@IWNBV#[(MB_;3O?*[^KA1AA)&-'K@\2?XML M8DJJJ:YJ%H,%:+-IUG-3DUV'T&KF958C,WL"'W2=)4@$4TZW=VX[OC-?F1@P M/9IDO'7J3\'2)*%S,(ESK:FIK@A%T-5:"0^9HO7?,J@9F M"DS$^LYX8*6(5]1JA'V MC$Z.&"'-=K8HDT4RZM)];&UH&3:5*.XY"M&IM!*J]1D,2Z2 S5 NDFP= -" MPQ%\+L_L=^==FY<\JM>T3\*HRDQ>LL#&Z:6-O^+/VH;C\T@9Z6IA,1:- D9MQ1:- MZQ5R'2EQM44E"WXQXC5KIY%3,61)!NMR(FRH,+1!!)!6JY3.4\I'_A0>7D,A M08CK2U;WT=RFD-H M8UP0;#OV.@%69X[H<-IL9\'_&_R4.I$.GBU+8I:JPZI[&ASBL%=X.[DAKXEK M3RJ*[N=Q#K^9:/.8;IANR/NNDN=JZVU(="H.)K8+[PK+G M>-WQZZJCSKEA/&ELQ+ X@HVCC)1[<2P22AJ4/%S=MV!J""P6(:6%0ELWK1;M MWVF,"!Q]7*)8/Z$$>8D 9P*$5 /$\#@#B)08W1WY7%EB0A$C MF01 BB(4"'REV/3W5MQ6:8CJX^>'D^?),]%OETV;TD0RY3*F+ODR7;67=KP, MX?9]XU\3"#UXI"'77/C6(+'ZRJQH, 3T[Z2)Y2@+%\]8P1;L<#9E&;G>1:'< M<0<[%1<\+[/O9Z2"W#65%R1/)DA35O5-8WKP 5=0>D$*B8(S(>8!D&CQ45)[:4URXH#"*\:+Z'W=W*"KS.ZA M4"4"92TD_\-"0U7OQ0FIK].!B056:9(*GM]NU^0K+K+\N-N]&P#@!H4/HSU@ MCV'AG3\Q@0Y-=TNC>P(3@U>3N8!%_\;.YIV,(U)PG/A;Z>PYDSD0O>CED4%5 MYD291=(TA8A0;UK3+HH;J%".N>>1?GST/1K 1ES_P^! ZZ+>BCF\Q?N/CE#? M#=Z]47S.<]Q$]EEEAPXP# DIFH9)9')\-_:B>T06@;C8GD!>G F$&\ORP.N0P5W9:ERHED\#&)X%!P0 MX]HFYCTTDJ.1"P):=.AUP-#DBTTRG\M\UC;VGK1CX5,]^T_9I@S@H_,7_=[4 M53]H\1Q/AC;MKC:I;S\MBACT':^KI:AWTW]--]6B.,#Q+>*#8^O=O#XM)@_V M4^)!JI]+'-34#<*.'+AHM"L.6KF1 )Z,525H ?WU;6CD2+=J(&2DWKU/,+:1 MMNY0&L:]'(QTTEI=\'.1>B&*"SP#C6EB%1//K]#>UD"<*94I%]\BJ7QLP<-, M@/>]E;,6%Y 1I0. WZAR%7(%7[CB#LBA4RU+51:/%4G7JM777\,]/;]T:5A+ M_I5CZT7M%H?_=4-SL!"*RLU*TAU#;& MM6^TKGI:R!G@!,GMMR'.6D@I+O,[>7!OA["EM4/8^XV .6ORA8B[7]:T9G0Y MWECRUD/O&+JT7B'GO>!-@I,L=(J+BMS66J M^I+[L+"H>.XI5"':6@N30&+/O?RQR#YE?D^(1P$2$C91MCTJ7Q2DOA)^Q;0GV>."]2ZFY$42Z /TJ+.KT?MGS'V6+L%U MU&_9N0 _!HWN"]L(<$7+M(1VW"3,>:.3(Q QE'@9QC<@LTD"O)UX:),"@5.] MAN(VH<@[C7[A5VGR_4L!H^/U=#J,EC8\$=_YHYCG]%*'0G(Q^8)+?V"8=J_S M-W#%WD2('Z6+(H'[UYLY3%D 53T*'4NO)SBLNRQE-OCDQ3.F.S2B.2.:YRX)B75WYXSF&"1>N1ODG'+J MBC']-12YW8H49 1]9!,*CR@M-6M66[S C)L6:2M+MQ9Z&#O*UB8ZCJXC(Z*X MH?@'Y'.BM[&^H@*?]%OV/D/UJ%*=2A4VX7$-1>69$U@SA8A#"OFR!$7T>@G3 MQY\AOMSZP1+E"HN]APGDBDQO+>]2"!8HK_(9Q@R&=KA8 ZT>#'%BF%;.RV V MV#3:R^? 9X8*1%6$XKIQ)9;_ZK+IW1,3TCC5$4;GES_*EWT1I.R;L*QECGV M@&F)Y".56.I, $2T8(4L!&W96J*;;OWN/IS\R41H(["&UB]-Z+"#'5A^8(A3 M2S)(+>3*W>1%;JT*!MQ3__7QE;0@ODF%*5P=.4;>; 3\([AZ+127-4$@'28> M'B!<*2& :A7W@G1!R7R(4=W!D4''XQZEKT+Z'B5UMC$ _4[=:F0HRK *BD@& MC==1=R:,N(%Z)#>[Q-E+1%V?ASFUNK499\S563\]HK?F:]VC/;2C%F^(@6&%(]=^]PDKFZ*O/K"BW, MI)!DN"$W-;P#T^EQQ2J<8IOI@LI-1/\IPC .Q$):JV69>;=[=]5BB(=X9IDI M469;4E_0G#QKMF;2 LF59&GJ]^]/N.ZUI3H9V9*?CJRH-CHL5QOC\"5DY::6 M8\Q'@NX@BTI@;']>?60<59=&C#)\V )Z,O&YXV29 M4Y01YDW9M(G-M%H4^HQ8WHK$(F /E1: M%==<+WH=+D/*X^&:;]F5DQDP]&/D6]0V(6[*V=3Q/Y=D<5$8X%]KE/;VRAJM M4LF-S:J NJETV\VK2UJM9BF'VT*B!GAR4BRJRTUX=>C7B7M6N V(F8?S",GT MRJ0L\^U(?, 542>>I>UYG(,/YPC#:=85:^YZT=Q%B1:T;G*]6= BD'-?;IB& M-'S\:&HCZN0V:8CCYP#!>[X>;.?1"X]I%DC-V$K4"FE3N;M$X-4A?RS<_^U8 M;?@L:BTHBGD2.12,3,$WCY(HS\Y#(R%WIVG'P10!+"73(U>@4.9TEA.X51L( M2OV%^P8OY@,->]Q9$4DU8AM_A&89A(E:2[4Q=NNQ6SU5ZQ1D(2V 8WNFT708 M++3 (V(E7ZJ0V,S:;D>%4#COC6DONZ.=EZ%4PIA)ZB+/+P0&29E3NY ?9&:Q MFS)6;[5G,$SJ"M?PI3.HOLU4O863!$(;#C%K,D[U00BG2(V^_T-Z@D4(_NBG MEK"UM"2][M9 LV)O0I@YNY+$0>_FR&DF;SS==,A8Z1&JP:BI1NUHPV ^,@@* M>1;<7:+,_0Q')B'/(M+P-.T8S&9L=P]K\-(QB<1=K[Z^PQT>^GS"K[INVC(1 MNB]YD:@#-G!$\#K1L=@1N4BEVCE\L*-^;^VWH]XTWUAB6ARI7V6=[\&^SK>O M\]U55DIQJ A/)=AB*)TR2-0H]='!CMVZ44?;N\$&*>HI5%VR"[D)&WXQ6>2; MFFA;8KJ1\$:7)1V+5#B;]RRC6KPDFV8>.3._D!?'$PD-=#)#9'6<"(><4@"I M&BRQ'RC@Y%8[=JL;DBGX+1PD&S35T%S\@>VQ51_FJ28S8>P0+W MN[QQQL2;R &4/)TBR!)L&3M"O";0WI,$28#0$54Q MKD9Q:%F^IZ-CQP3T_>\8/_.K@Q&?51HQ[BMVDA:8@QY MD -/\C:R6C-XC)F$>.+91:ZZR#W TAJR\I(0+?CMK00#53T/H-IYO6.F*\@$Q2]V.%S)\ M 4--HM;3;5:'&3"Y%%.8QXOE&P9N77;2*KS8,FT*)Z0M[[)ZS#1+".GHV^E>,,->R[E06LU7Y@,24DTH!*/NE:P@1)E/X3T M3>C*8@9C+U669@FU5 TG"#/=$/@0:3KM["&LM#OIXQ$ &;7,%RFXY>^&&/@H MD"JJG)Z5VSQ)=6Y-XX,*RUP7]0[>0+!0,ZVJJ'HX[; MF$T71#^EA_G+^S877=EFV%*M<-=?O]_OL[OE)$N=]VUHZG1]F=ZW?T7KVYTQ M#*]VY'J8PJ<718L?<%VU&TP=FW0UCR/'&>Q'..RH?N_(AZ5D.7YT9L$?HWPT M<$;!5=Q ZDXE%7,N9JLC0_G8*T4D\9)62IY$9+M+DBJ[_&7*UR@?+MN5DBLL M0__"%\6YHY]NRV?O=+NB1IS"R)_1UE.&]4T.DWCABWFX%&7-P?3KG$Q<>4V9 M+9S7,4T/_6IF&Y,+LEI3E.* OSA#@=N_4[\N+W'6)SZ[.>"[,BK>70U]6L__VU[Y4*.>4-10QD5=RH_-Y,(=Y6W3:I2$OPU@QQ9VK MRS71C%'*E=0]VZ:FYG'U\0AD=+7M8.D<+;&U!,38I.AGS/3,2Z,C9KC7B@B>W+=/ULZMG.\U9?4S#![V%[,ZY'A ^NAW)%_OGYM7O]:)M?K(]?=9*8VB[P_((!^$*S,/Q@ V@GR[GPZS M#UQ/[EU2.(T/P+9Y#4%*RMYMPQ4.FIOZ8-F$1RT/@GU&\)IXX=JB8N%XW"YB MJLS!QREBK371"FN?IW_GRV ,R%TBUD&U"&%=A75^T,P/-.GBRJ.2CO )@0P1 M,$X;D6'3XTI&4LUGP/^QD0'S,HJLX)#)_0ACGC,,(T>C+5=AL M[\M>^3:+9BX>Q'V^G[NS<5^-M_UKT D_3'RUF"!(F_33O!.'&*T8=#;G$H]N M^\R$I%G*ZT6URERR:IKXA(>3GYJVI-%D @>7\#H"TJED00[PR.,,E&D(U6I% M?P"O:.-H>R>2*"R(PU\H6SG"F'DZLQHN60-A-.";T*C"O&^-3A.PF09?5%K9 M15XM[\X*^,E1_#N$N^9&D;VDU4P.4DT?I52XG$^&L!&5>*1EV.U^6CH=.X%) MU \,7>Z[*Y/+C5KJKES,#]P5LR1WFWQ 6VZ*E>'@D%@M<"&<(XQ\"?DWJ> J M-R.6'^"#LTDSMVA.U1L5II"H*SYFTZ;W23+LU9P15-T5;R2: 9QX&KQ1<'KQ MZOGD9/)VNRHG)]ILRQD0M%>RD\GH*]%ZB=HOZ3MTP.Z(LD)]EW%<^>#9"*1= M<['/TUTE?FY;'E".8B.!>]4J&D2B<+#UA'NZ1LA/X,'C3M8()LW8*[VU@^"K MK \^W-<']_7!.],'^)'SX74>W7&7#A*146A1)$4YJR0I!;KH8[#:="=(!"X+ MR"^T$=TN;WB#;*3D" _#/.N?09+.QC..HQ/N>\$#AD T)88G(RLH0UR2L/'5+2"'9 M;XZX?; S$LSH,[#(H",')\=GI)9FDZP.+'"(#"F=B\Q-(@[([KY6V_S 93:2 M-\.VJZSE1?HP(3B,U_G,,[38^;4 +J\0U@O)T#:M( 0Y]I%^=XZ776*;(322 MZ1%G(97Z*XDZ4@YEH>XP41F5B%%Q[R2@'%L1X8@G-Y Z [7U?_M7!K#DR6E+^;NN,"<"G,Y9K18(0X. MB6,&S4WFR55!PLNGO(&KN&8>#J:.=#:">43&=HW2[+PL2%B1V39 <)-PX,BV MM3UN.\*D < >@^T?&3;A5N!3 A"66@A\YIF#TD=7+W"L[F1(VS!8,:J2EROH MN;+>W$ANAW+^J ^QJ8W9+1HX_QX9B)C.$P@<8U]CUBPNI4RQX0X'Z^KU[T.L MSA0I:U0TG2_\=?>_](%X_0 ;!2VW.BKF\8)Q14\$66 QNEEJCS/CH$F:8#"+ MQ%&UKCIM*F!_(%%*=CQHK= $E8W9>,?1]\XI B@/E;O<'SM2(Q/>@@ARW6!/$0 M]?26]54']R3[IBY**CF1MO?$,%/,4Z;F*G)P*;H%"R(LAKP5734^VZ,+9RO- M=1CMP-AR,*YP_@:E#DA %O;'<&R[C,36B3^ZP[-7Q4XLJG0W,BA+@0J#.C=7 M,K@'"H\NO%#6M.'IFVBKA'D)3QV!.-(V&/F0.!I.][$&QE258TS<*"/T+K[W M'3T =^C$':$%-VB86WTUS2(XJI+EY@Y%;\(F"57KJ$'B-VY2P[SDA:]N2#F; M'.%N5\K1C#O<*P\O#[/)R[?/)\]FZ_OQ"+=1^:^!K#A,6[A37>63U_(5:8!] M)D19]*V_5C1YX3O/=3&]H$=]':$W=+LLZB\-F]@ZW#KK[T3A?.*\4Y=Y7Y]] M%TT+\:_5W>^=!?+I4M*'LCCS-KCDWD>(-GVNH*PRW6I@U*Q9Q_7NK-!G /.- MB5Y/DQ5*K^J'OTQ^?/'Z#1[E+W_D?U,.5$KOPC/MF"PA"L2A&S/0@Q"0W$XP M8>NBMJEVD0!=8REU\71<=44 EC7M SY&B0AWAS"S$S+QP [.1!J.\MGO\[U),8/J[2^A/Q4FF@W_# M4=XTV!C>-M.2C3LX\H2"*(E7_4IB:D)B.65J2%#PA?!T;IN;4%NU=O@MJ+%R MEJ_* 6HV9'%Z?Q"[0]>2@*-D3 MJQJ7)9'RK*[H#)\%=TF:\^';T/Q+754&:P;?E&3)TM#YV6CI?:[4)A_XE\CR.V> KCF%>]=ED=!G/*6W$V0LCFK#< M(H73.3,NT%*GS% *0UP[X59_%@EAQ5V+)BX\KB4^23RPXQ1 XS>*_XTRI1U. MSM=D6JPTSY5*!Z9GHA74(2/)=?(>_!NH6O\."$#=.1U/^4;"6>*%-J_"=\LZ M;8MD;Q[WC\V$RHE!^AEK;2B4FEHNC'#Y9!UC_5J"3#$'36 MC >>@1L*85W)E Q$E53)>%@I%O7L\>*PVG1A&D7R0C#X?S/4D*E>:%MBSJ4$ M#SNZSI%A)<= B'8 D:,UBJ\JGT[ZK&U)J%WMEN34S(#0E/L;@F&_;+0N;3!9 M>"KI%1EZ;\7V'KT-DR.3E'ROIV=4<$@(P'T^/C.TM^:#A'[YJRSO/=J7]_;E MO3M3WOO29_;S5/#'$0K.#?X38IQM\-?42Q* LJM<6><4@T&@B#3?]KT^;TIN M(SLB-'_PW-="6JD<('?MG&>LE9);=CQM<*NYVS*>P$AL>/@T>_]UYCU% MBX!]C,E,GIWC:S_]Z;Z !J73VFYI0)=Q7BNY?CD)IG_VGI*U-8BH-(&^(H"G MT51ZGD 106B)#&!MD)A;'D=0DW)^<*V6P!T]I]U\ ,KZ4\7LHF2?4((M68*2 M6W4+4P&!X4.4KX\ST1LZU"]_+_?0;W:.[^TV_2$7Q!F/VEO45B0U$*O?.CMV M)LJ,DU>11Y()J2SQ+\J8Q?72 !4:"ZZM:JYLTWZ5U+HV# MXG65=2RMH2<@?@Z&'(E]U!%C#[,HVE(H1@%70CM8N1;/RTKA7A>P"SMY!I$+ M^!="4>18^"/S %@T:NHTHUH0J:P7%:D))W-MKAZ3$Y%9HO:6R-H4;5=:UHK@ MW.#6SOC.X;XP0X,F,_79$H[*W*1RBD^V4)-GBZ[)DI6U [3%:^2J:;KR(Y2; M!LBG#$@2-U>VZ;M%&!1Q2Y1463 7U"[!K/E4E>1$:234$E,OFNE"3V3@^5O( M0T4L4ZK* NIBT6U/.R$X9\?&YRO+*;_L)6M7"]M@O+>!Q2/K6$+&DQ-?TII6 M$="MR:-_R6!Z<'A^5J/^1T[FW_V_'Q.&*HU[PV%@8&/EA>IU[LOFE3X'KQ+( MQ( ^>D&0!K.3A'T>ZA,U+%Y3:]YE]RTWVDBQ<#FM+C>4P@^K5(3-*36%+ 82 MR[36[]Q9G>@M<=6<3 X.UK ?D4.D6??$IWHFI]1A\H0BGBAX5B0AP11LSB7:G MI<;1L3;EFFI%^I.G3&P)X3L+3VR7/KJU? \.^L/)"UYVJ 6O(>YZ*? NLTE" MB2<^) 9,5_5^)/W2$P(M*0O!J2&\#?=U:QD;ZM+@T19&L.=&^7,IMH9$2W@$ MF%C @61ZY<25[C*D4&4TVO061B\W! 4X=20X:B;=KBG1SZ 5S#5--3:CJ,-P MB=([R\@1+H;-U=Q0S;/L/Q%L[;_4^'TF#_M.;/W&[HN*M:*IUYR&C M19@?@<:$5[W&PZAE0""E& +):P[6A'C^M'V6IJP<,1>7=./-JAG1.J+;J[LA MFW^!M')8_"1B%O:W5.$Q$,:E,1QA<"V[O2U")NLW.A=G2FNM=_]]$UP3P..T MM8WR40OR!*CO\ZZ=!S^S!$%38\!"=$,"29ME>0#W3]H]2*) X ZS\,D]B3>> M7;PVT =7>#@/B>U,M2!ES&#(91$SDB[DBMF[6CP_2$+1$MA6Y2)5)F0'KK24 M7A@!IC].?$QZLE-H:]!*4'%A$4H7#QL[$?F2Z*6GRK%<]W#"JUY+[-S9$X?H MAD4Q<%53\(3NVHA:+/0@D*X-036,$)]*ZVF,$G#&Q41E3JP) M&%)7B<9#GK'#&2)[UKFT3F\ZRFURCW'P10[Z^R)L(4Y3HX);SLIJQ?0$;I4; MB,&>3=+[^8PXT1=E<5FZCB WF:+V@AQMJRXYR5X[OW\J4^C.(DS9Q=X9:: MR2SOKOIUGINV6I<'X5WQWK@6A[XOEZ&4O0U$N9N;7 7>^])OO^V!RS#L])@S M!1-$3/J,<<*P0 NBT-0YXHUDSJW+KZFQ8HB$B[O,+8;FA>=^T-7RCK1+;#7_"ENR7O!FXP\(HT(W, R6HN#5]]T6"_0BV\9NSL\,G(9 /'HIX ME-^Q+_@Z'H1[@ DQ.EQ-CDY.CG%-\,_3E!R72FHE42)I^&7W#C2'YWB MY;CR^U76\1[OZWC[.MX=I?$GAP_^)?M2FKIMR<5T>+,.<7(G7,V'E.6I-82O"[AOY M])8M)\5M2079PQ\>I\]^=/CX%S_ZVYO&MU?P\TMMX\'1_]&P_A(T@6/3L^.& M2HI "+:=US_]Q=<_D9:]!JU"N\\%/A:._*GPD0E"3LPPEDH8J)X)O67R(AGO M*HPZ1O+<&+W+R)-02K!;5=*S%AO(M)9B\+L$)4^NP9P9Q"\;3AI*97FZG;Q^ M\9(I$2= TD1&PZQ76&&!\$COAA-79XWSY:XFDQZL%3AA'&")^""4I3$I\6D/ M?U[0_N92]BVO1D(27N@N$F_'/3^)ET47G4LBG+Q/JNJ^]BNX3A9SZ#;*[LCM M60K]91\H]65\-E%"$O#K)ZKMZA!;.=>W7'*G",LXFTX5KO(.AMV M)EIXZA+UR:M\,5>#9UI53-'!D+&4Q+#7/"(;C4\@STPF4VFKS/%-:8$V"CDX ME&(D5^(*A"FD9(3TTT[=-0"*LBD\!UAL%]GU2B.O9K)#X^BPB3$*8[6U8I>-?$,KJL.;$Z-.551Y"]!=0V9*@A.UC4W;:XVFIDP1P5!K5R#R @?2 MDJ;'H4$%(QX;C5T*S?01!VP""0Y>FJ@E,8@R-2Q[RD6ICT15;C_5KN3]'78 MHS35:8>'?8!C:M65W^D_GGX![U6#%UKY3YW;C U$@S@(ATQ8P]_-JP_EJ+EQ M?J:& FQLUFWX_X4^!'_ME'SQWWWK/_BG'@(]G;-\(6/"\,+PG]YVZ\.-*OS0TG?^4"?^X_X\*I!W? M0OL05LKSL&.@5Q$SS5PL,3:Z6)/]".::UCV%"]8+ 1@')YZUZ0'V76][.+FX MXNX_\*81- LI(.X!$8GCG-4E+2&;#*?S]%BH2A W@70LB251'2_75\NE'I:; M?&HG!;VO;VF5?8N5NM\U^UWC5;NIB*"8'(\CB(2CXDZB\5=-L[&=),*NX3=A M\:U3ZGXE<3.V,9^;9Q<>= ;4+]ZNC:B9>MI22'K*?F6)/SJMZ5 (<00UZ@J5 MJMQ]X$PDB";3:_7R2PF07C #AF>E#<;TT2V-/>%7;Q,L@]MMZOZUW;NNPAXT.!@>8TQ_QI/Z^15?V MUOEKO]C^%OS+KJBXG66_Y/9+;N>2TXY%9X31L\78%L=J[;,97$\4GQYL]*V' MPUA=M)>-D399K]+JTAC[9;I?ICN7Z2*XWAOE&9+3?X272P)VB$*X?C8^GY6* M(=A8@B5PYIN)V0RLDE T ":P('RBPN+IDD;=I,9V7>9+SBDH$PNW0=B&(LB) M:OLN:>- VT+8LBU^%]:X$3A[? C)O.RWRGZK[-PJCL. @MK,,Q,P1\*R43SO MIK:B$$>WY+(213^)+P,45/+Z37B#$DJSK2=X[U20K==2@T>N\C9F@S(>AC6- M"SV@0R==;98,5>1.^BQR(['PPCK_D"5^D3I"@FT?/(//]B8\6!0(H45:^1C; M=:3&%R]CMSOS-W[TS4BV9,YVCR"KVV[7S+/I96 M:'H):HXB%4\8OXUF$2)(KP4^9UM6[HJD4+8% MY X+7(N+18R;25+_R,PE]\.Y6- Z;A7IY)CHA0N[]0BKY((,7AM<=>PI;ASP MW[.A)128J121Y.[0Y42SO]^G^WUZ2QAN<3?30XTI,/?1GE8!<6).MZRRKPUO M]62/M]KCK3X%;[4WG__;S:?#[P8?O521KN _9[T.:J,6U&ADT-<9HQ*ZEM06 M(BF]50#VY_E^0>[.<7HE3V*"-=A:ZQ=8Y,+KH1:&-2AB]" NK%FNV#*O1NV M0;NT T62A2%CZ?>9Q!',><+-LEFMF![1$!15F,'U?M'O%_WN14\M?X0_J E[ MW.:$4C!:,Y5*'/-9:<$S%VHG32Y*0>'!4=2VO302;.Y#"KN&_B9==9$$.KQ] M^'JJ^;C.+V&\PTV%#3+NMN>O_GK^XN#XR=-PB3NTNH_VB_M.+6X5@\-"&S/M M?DV1(C4E(058@U0!41:9TC*1'!!!0-4MQ5>1>H*B/B/<@:E\7(D@+&E3>FG: M** 8;\\*("Q_&[[7E4 X&(XOH=P9(AT 2,K0>KBR(=P@DZH<4BQJS03'(F*- M@@>Q)S"V<[&UNYQW;5XR8N$/^3+O3 #0%?65R0 Q*.]DP@;\C$A3<3C-A5-GE-I1\VXO0!OSW^]]N\NLD)]]*H1HF16YCN MM../R1BYPE)\K,%(!.'@=^/_B*6UB&S1G@!#[L]%0,^E+ >JO(<47&)G*3*O M*^U,8?JBJ$X3/\IT-\^VZI;YB3*.9Z@WHI"7INHS:7?ASDRAVH[RRCN@VSWW MK64S@1T!^=K;5X*T.QN@R=7OXCA(X/2R9"$FF4:IC6@WN[Y =1<;(8D!UE!_ M='>XO,\CB31O%1*L2:=UEU; H'HZ3GGM$]7,:6YU(7)JPFG?FI ]"D'*<%>* M&\]+FFC7M=3+JR61<8XK7J1!2+\\BZ(KZ+C/IQYVK=WGMRBJD$CFAR'$31FS M[-BA_^2F#B/_HQWY7JGCI(@7<6F\^(@%B'C3W"M@"H2J2R+H2%%\U=R IZB! MX"LXC\+5&0/7&!Y5(R$&W77Q278(U: ?>LB@#;B^R(B2<8@X6.NI%8YMQWY. M]$V>L)T[U)@T7T6_=M*CNRZ>J;'?8ZDL20(X$46*T5X"%'=&!<-@G]6A65D<+FRNN96RDR?6%"@1*A=C[T1$#'M MX1KO-!IE<.[WM;A&)Z:&.)Q<*$^*T%$J!%\Z;PHA?V&6;86_JWD#U9A\6#(1 M#S\E*PYWK!R[:DER@7E6PDN72=4[4F]G4Q>FML!>IK;M>\BM>?&D6'B;''9W?X*B CU7#O\\JZ,_7@S=@U' MNYY4N82)%U,&$-J?S=I$MXC92+G,#?4<[_3+WKZ44[]\']\7\L9-,<_)51!_ MO1T0) <3-SKU6')0E$V^#P=WNQ''30Q47'/T5S+.(< ,IN/*V3SMB&16>U8, MOS4C(3"\J6Q(E!VR"VD47I+AH3J>OHN7 J/JDAR>;/#O/)@]^'%&:%1I>A_[!G7VR%&8'1$503&387WCF MJ&(=#V"WLM1H M0&:(<; $*]BR/*NJSFKQ7;O ^&6I+FS?2+#93I11::P(]9BDS9T2\!:%M<\K M*""OHS$8;R&^/8Q#B?[/-(O3&P4V+-&P27,LK7WEYF4[Y8L/'#,;'LTZ]&6G M]JW"\9NAQ?(^_,Z=$>![''0?S;ZD>\VMWY;9(%8YD6WU(;4RD#E"T[ MM<,<#\)'X7:A>_UP\:.9.P>V2N3>+:-T9U5H>RFP&-1L(IP_SD\X;9:;!=3' MZ33+G9QKJBV-,V$Q/W ([(1VH(_RO/CA.7O0?\Z[(O_[Y&+=S-Y/?D([1'2E M7IIY?L8-/\A-:UYJ\GU#/H42IKY\=O&],J9J0FS\J3R9 U80LC]1U\WE0J2) M&!Z MG86(GN:3EY1C7CV$M M,QJ1*I !<]P11$Z!FM2KMIWEPE7K%&O1UY8_J530*&-4U(,8K*0 MG"7.>NM\G:JU85K&;7R\F4M-#\R*UW+@0'RV !'208R-]#J)**FFB$'Y'NNI MI47H;F(PS,N&(W+-:+N6$Q8DYQBXH"Q/!V=4S -X>=%!@HD$G8^G\T]VA%_T MDB&F'=H@F=KQ(M^GX]+X>9]%B4-AUD_7F"I%\ M0U)IQI)MZY?5@XS^VJYB%'GAB%\LW'[-?%>@- .E(6X2BL833NQ8%[;9RDOP MC+@#9<^N?^0M\+E)&<%\+?,+>^1G*WPJ4T&E'=%#"/&;5 ^LNH,O(0\K_A/I?*6'#6%O%:8TSG??U],WSON$S!GL M%)4PP@&7BC>F\NF9N:J^IN<)J+%RF&;%IK5?S2F+KXBX[+66@5!'2LOP(I(L M"202Y2@QGT#%@/<>M;]Y=>E.%,IS',^ M <>7'BDL?K)EE4J('>&W:# MH"FS9;/6!3G?+.9TR/D%N>EII:^;C"71G*?>S+,4QJPZ":RU8W5G" ?4_@\. M2B;N@6WOF'OWK\UO,]L;FG8,5^O";[LY9WU3XGV6+N&)7)!'H R63?,>_AN? M8T3$963[HRWWJ>Q.K]:+?+TU,'")=P,?E H%Z$F@&&\0XO%7^=_T]> D)48V MH=3(>XKW=I$(^KM]YB+E*T,XBBJ_K)NNDB45=:RG)4\;:KD(O<26H[Z[TY:' MC])7Q+H7V435Q1;Y[#W<$PRJ9\%8_GL',AY/[HP? "JRU\HM3- MM"7B[:@WD'19YWA6P^=/ M!%5W:T,AOIVM71@KH2/>H^#WQM_>S*\TL5I 8![FY+_C;_,(%\ MX-<37Z-P,"\+I)2IX12J6@SO=MA18W[2EE3Q0)ED@BP/?3+=A(U2BW4>@9!: MH2W%9!'X!6_OS@5P/Y<*DTS'SV>L1SN)6T%V!5.W(GY/C4O8PY.OX12..5-Z M!HAKU5#;0F&"<7E%&?P 0(_#+UG](NLOG3Q6UQ1;)$\H6>;>C%'FKN2AYALB MTQ.DR[GF)M](*',A:!PIN5 RCH&2?E;#P. AL!N]QLU9/5%RR)WQ6Y 7,0> M%C 04++(FR,E)HR%88/R4RURD?"$\XAR?M-KJMPA;1VVU$+1D%A'(98(+TLZ MN'A.P_PYQ#,73F;M1C.6_0YS[J6@9"4$OE-\EXY6X=5QY2186W4^)(.NNH9C M(S+,=\P\*)!2*>I9(X7;((D+$5& @N2(H3Z=TP[BN"'6K+=]C+J!IFA^-"H- M(=P'[U_2\!+.S[$."@TPD2,+043=S8&)94EU%KZ0F@C/D7NC:4!B-0;=CW8RO3.[15Z2VS=\,GYHD M*,FP:'%YU&ZY!A[#P)LY#S-'[O&U=5;L8"E'VTEXKFK!^ MY\49OD[>P_.-8+7_NYEV>&.^3E[6A;S!!_WBI*LV(CK(5SCB_R'5WB75,OY! M-I-SD<>/SFBH87>13J74Y<+;L.X%!3Z\^7V^7#W]P98&0O-@6ZP Z(P$SP>G MFU$7$QE*6.%5OH6^#2W4:4FBW39&*Q7S*.61JE9G7ZGH=/9E3,E8!**J1Q6D M/?@^3*]-OOU 1^B!LG\%O_+ZXS.I9XI-W*9FTU703%3&EV]476YI<$7+IH%Z M&($&R!?!RA1T\"SD& T_VA#L4WY@C^.%E&0Y0MA35':NF[7IA?#RQ]XOB5<, M1UX48MX(QGO9A-TD'H$9 0\UYCU@=_.P"(?%<2#;+E$@Y9<8:;*R'SN#@ M7&%0@4-RSC9=YY*J-EZ*LX-S0 '\HT-=,3]9JL@J]B_B)>B&S\)1NJ7T8+A> M1 (]5T^4D:JJ+3QW^M^R"+^B$MI+]B21=!.^V)CU'7IP$XVE^B9F$S:80*ZD M"=R]-F0*L73"=80%>9:W[38LXQNJ1M\YW_X-?%A[G/')Z%)!CGA@09HC^NC> M/Y9-F*^@'TT?>$<%>Y'@Q>3&B'PW%.5R*E8L)KQYL 1-C4OK_HZ6,(G;S ,> M?0*A7<0K=-V2P?%%FD1?KSQ,FTX+9]U'+IM(,-?4O5B7\XJ[5(!<,UWR6,T? M63+)&LEVKAX/6MDUF(^O2 VB^$@.L['II.8%(>U$;EOJ)C(KSBG6HJR&$ER, M2J!;/H5[RVMMZMW3J^>9]D>Z<*PDOXM^[Q3L^. 2^6867T66#YV4D7^2;Q>U MY/ 9J]W;8$YP/-8%I*41"HU(B38Y>>7H+8%;#["#LWB':D<[=B$H!"42$W[ MV,4PA;K4TM##>G($L+9@[YV &E\TV?\9^2#D@L(Q8IW<%/9>6$?16XI(I/?F MJY:D9M%">" ^P#2PH5$:<^',\(&QN2H5^2+^$E?+U6P#O6QY]YVM(VER2O/J M[%K5FH7J1;B)Y]'&0WZ,V..WTY\>TX#C218AE]4BM[22GD2-?"7;,?G2=K8% ME, COP3GM6S6M[T8AC PF);:N2K5O=1@L%E.J0M0ZR#6<8^$$^:7X8F+C;6] M#P+$;%)2NJ0-WNE,:SV;-8;&C;D4/<+Z)KA3Q%'_O0E':G"4CRQNDMB854ZI M0:VN&SH&BYT/V;"T [$@2!$,C_V,$(4AZEP'+Y'[ > C753D9X9Q_G$3-LC[ M$%53<#*Y:.;S?')N@\W"OV>'X>O/7D\N?A :[[Q^6\ZZR9_6\D;_VBS"L?%W M_BZL*2>M4)2E@SIMF'?PQ M[C;[E@7-1=*/9LWB$K]/M/(1^1$;T;_80?VU^DU0 M=9[]?5/QJ^Q4F85PPDZ0EXLIBT7)5#6Q-VRTPC;6R#L%]*M' &4_28IZ]-)>^DCN*X,CUM8(XJT]P.Z77;: MXM P]*NL"U,*%E\#'I9@7S,2) RVU?+E B8'ML;[7#GEG?YA+E==7C8 LJ,Z MUG'WAEL57+7('9W+Z,WQ"V9;L2]/J,BG)Q-ZDI:Q\KLJFEX.ODF M);K$(I0'*6.2''4WB^W]24N'G-.&8J&5ZA!PAE("[3IA.^LMSIY&1%1452>L?JVIY!@LASW MH@ECM99R@"A' Y&;])$EIHQO5(IUEZU_2_K*#I+^,%GC"C%Q? M)G+1#I')N1T(!B6=O0/,9/+,S-&A*77_D/D3M,I\5H_]0N&TF$$YTJ7$.:CG,S<=F1'[? &OW#5CB(6"- ME1^J+N6O&HE68YP*FQ51<^-S#7>E8:J:12 M*/%V9P)-=H#TLKA41T$N;73^JV7>\2HKO&#-/7.Z<%.;KE1*^V*$?2A"=D2F MJ=]0JJW, C?-=F_((H ';68'5IHF2-(YNGR2EQV1P\Y+$0R"&FJV6.A%\5O/ M"DVVFADF/6>!W]C!ZZ&.RN$"K(LQ8L7DL"T%?6P-FYW9M#/D[A3Q4W,;*7-< M.&N^]B<8F"4TN[HE++9&F22QJ%963#[9Y(;$F+9/#)I6?[0"+E2U+_GG[QIB6B; MV@I\R['!A\;:%RT?E>T.\[3)=:25,>FLGOIY%JXL)Q_,.++70@[&9FHKGI?# M9Z@;PB^4?02&QR5?+'58* WY1M=%7BUQ>6@4S^D\P8&7MF/^3QNHPST++P3X-?4B@^)+[#V-G M8F0DNU,M%8/&.\4II1[3S4B27=O(T]0ZY!IUNW7$*,*-NM3T7(K?/\FUC G$ M6SAM&07!K7#DE$1A>'8Q<2&AI,BPI_/DO?6TXQ"(./]>[N[?XCW*%TUBQE:R MM_H <$7(D2^B-U)26B6P4S2KX[^6R M+"J D&"6FOG<4DDB;:;0(SXJ]%9Z[QXUKJ:LI,'ULU+JOU$%\DGDB08,O@3EFC+RQ$N509PJ',0 @IA"!YQ-U]P703]2^]VNA6 M.L$",L)P.C^4LXVPDR2N#]D#(PO]S4N#/H?6RUW5,:\VDE;[)5,GJ%S1X?2= M9U2(H4KCQ^=6S%39Z!*8,^&H%C.*4>ZI]AL\V%[50F1AO&2KB56C7%>T_IP9<:* M%,([Z#"M,?HQ:+$RBG ;UZP-!XI:)]R@[G)EK@Q.9ZJXP2GUW_Z!D]6U#&T2N &C7P3\> E>XK2Q8%@ M2?4(NF!=PT/C=5RR9MCEY \'Q_>FP4W^T\'Q:$(),T8D>XG8?._.I >F21&Z M!FMIN(XYY2E0^@OXO;&YQ\G3\T^17G4ID5+P*2+%"Z6E\5-^TKT/GGN94AA; MD@-\$0R],1Z2/K].>EPCVDD;B*PA',N4:FTE$_%IC=)GPMT (Z/7COP2C['@ M[OTD#V.>B[DRJ)&P%]-/',8#LN_<10&#F"_0E%*J;:$^24QB#'N@$N_P:W&N M7SG.#]J$D^Y*J6)XY8\_YS45^TAJCXI.8=;DGRG^+HI$@\E?F 2-GU%A0 GE M"CN@Q-3)E;IK*$'0DOG-7>[1&K8;*EDF=4&172PH155P> G+0Q9M'D:'OA02 MO6 G5DU9?%9=EC#UO5Y!F6I+&_I7 _4,D<9#[C62_T5:Z6BE!>/,@@=;0G(=XS5INE-,9"-;,O[FB'1OQ93Z'\W M8%@8'$S!@G:6P)%N'\L',>FA%FTDR8!1=%)5Z-8L H(V8&;;X\09TC\5*\HQ MJ8E4J[#/+.<3IDWN+?F$^G*H=21H]'2#(..Y>SCT""B]@K"#QX+;">4I#4EN MW$0G(XTUE% O*>[.>R+%.^??6?RIKL=]O,JP+*?=& MN.0T,?388_(E0A54ZXT7+5$/5A"9&: TIU3J:5!$9AD_I#W_4V MI1HCR@>5B-?$73RR$BU?/F\(\*ZDQV[/S(*9Z)3?GWR&3;7>95=]DC#Z"'E: M:DU#VI%R:X(/_LK.+GM'-K$#*;J1UNB9+6(.QDFF(]F/.(8H-2Z?+Y6@*/*S MD%@ ?.A\L3$O/;['.W=-KY>UB^CF(GC/LU@N2FF, M'DL3TC[YOYP<-_O," FC8ZB"Z+!,<] MY:(&GYI)!<>.+*GXR&DA!Z0];;^;G9)$9+ZO3?$L$DTX!U MI=%X1++GK(>RO@GT'S D9M%40DC1RX=EL \'&$WIWTI60H<; <:8=H_N(Q9F$04FS8'_3Y@JAM.N1A\Q01:7/E=LK52$N.(KBXIH.-&2B''D/;$ M@MQ4AI751G3T[M'#V?3=V8.S MDW?3T\?YN\>/SQZGOZ.$TW\"VHO*&Q_?X_CA\>/3W^_G#R<2H?>X@)GF*BC_&;GD?Z//[! M_MS4I7]M> G/GWL:R>0EO7M4SL*;RY^\.YW/GKP[.SL^>??X4?'HW8,'T]FC MQT^*D_*D_*)OZ=.QX&//]Y_39! I[ANMZL?/#R?)\_[GM]-?\05]!,M^V_"3 M47-=\:?TO),&QU_YD3X.L+*&9*9 @E N@YSF0J7#'.@I7%OD$Q@2* VHX]#! ME :5R#_R-8>%C!X)P1AWD\\!\@F6EI?"T<-[^7T:Q!L369A%K*C+2>Z$,(PV3MC#Y$MY9!$!RFE0'&DT-)-V$)I"'3%P/ S%T.0@F!\Y MX9Q.K=-N&ZKD&5S. MR'9]0D)5@9[D73L;S#&3FN>^#68EXS'#J]!*DN0,%K.#V#RYC>@@:E6TFF6G M^?I+IOC ,#+&P&$ BX5!F,56/>. @K'%51=!JBLFZP451Z1KCC$)TJVQN[A4 MC#I#JUB*13O *@#K("ZKPSIWJK8(F8(!&0 X#J*O#!?\OH MB\%0D\VNZHYQD9_X!L:F78\?IOZ!^8X,N!;I13KN.X09_+ET&O"H7JR["YQ'K[IRFG>LHLU1"@LK7+GN3J.GQ!!OY,IJ@.%L]"?Q0"B/*1728XE@BV%:H:EM* D?* MYDI#$0D,T/X1N53#W$3?J?L."V_-G:IR*.($.\#V7'7E=_J/IU_@=%#G@!;< M4WY;_\$_ M]1"4!Z.E)6/"\,+PGX95ORX/.E)5"D?639NO=)R/X3;@S):!_OX_GCQ\].3I M?WZ[+ORXTB\-C\A_*M#^^/EJ.R/GO1TV""T<;K[;L=MC2N0M5 ;%D3V7R@.. MZZ@D2!=Z&P6FE5GOS^<7;XU6+XVJ7K;YLB2R^J=VV-.Q0E)0$96(VT9CSF!1@BJU$+''+9_9KLL71"R0NJE2(XBNCU^IK%/I&"7H0OLEN5^2 MN\VD^8;40,55&>88-]E[H26//(K8[3_SYO%]N^^6V<[FM'!DT=V6FJD_< M>B?@C>O2K)Y?;$900D8S?%XL?/>GDV#5[.;%J^>3D\G;[:H,_R.*S+$QNS'= M,VYD+?K"QOL%O5_0NX]T$< 0T]E+ [2")_<8LBXFXJ7X*S06JB[Y^L7+J&0% MG[3NF'F'5OQ^->Y7XT=7HPD$>G%S78R,%^ N+5.,V%''E^Z M>]KFNAPI?J0*Z[YVOU^3^S7Y\11]PDGFLT):&:O+-31> ;NMBU5#],"2BP*> M1VVTEP?=N@R_873AZZZ"(5U+-Y\F4WL+W!/O6+7ME]:R]KM@OPMVNQFDAY&N M-[6K*%.19%\+KP!06]D2G4^ZJH[(L+L&Q Y59_#R?OU[[PCO5^AGE%+KV$]& MZ2L2'LXFSYM"@4S,PPD=IAE!QK%T_D(DK92*W?(*I@8 :HHB[:LA8C-=GX(0 M7T= /N48/./C."+R*7WG#JWIH_V2OE-+6@0Q.=5@W-*R2DV$@]%!+'KG=0NY MPY =E'(EQ T1&N-@,1R^ 7(VAK9Q.!G&&0D<.,4'K=L*'(52Q%7T%=^T[,(+ M M,/A9QHG>?>2$)BE8K34<(L%HGEF\*?N2F),:SKE^#L%"$,6A2\8KRO('U% M)*B9+A3TQ2@C!H&5DVG++EV0 ]_.ZM$W([UX?DTH]? (G^< MZ1Z^-98]YV Z3P'BG\M2"% M?V9>RUE;39DB5SH$#-A*EU&YOACY1=@+_0;DT@[NPIV??($%",;H)SZ83-UN MN91RZH/Y/[C,"0A'3?>\(C7U 8B7B8*0-[2A\_6FHV&G&CX32XC903].:;]< MTI?#%2_R_,+XS8.-7--3W!W([:L$Y@'T;=B[+3#+.U&SHSR^PH:;O@%Y; Z$ MVAZ_ +4?:[.CH]*>0+5:4<"6B_4EW*2IEVNTK#Z$:W$. (*P-A09-^L(TKE= MJ*;QIR#2(R0W11R[4WF0:CM( MAVGZ5HBSF696#W7NG67LF+;&8E&"DH"HIP5P<>MK4MX4)O<.RWU*G=9:UI$/ MC4U4U.)95;-L46^/I.906 SW LJZ4@:MD7=KJ1M]G60#I#3$OX&D+K(ZFH=O MN$"OKI.Z* I]NF4%Z^N@Y)44]7%E&_CAY)EQ0BVV@#A?,I,G.F:Y?YC7\,CS M"6$!]4%!P](W^Z:CPN( 7PBKT$]76-;_SC)52&PP6?S>P M3+(;P%\!(RYG#>.89LHK$QUVNJN*A#@.%W2>2T-<-9>+6^F=]GM)2?ULL)$UVVF+]@FC1UB#/1?BRA2^.)PW_D/HKF;5EQ>K+=@.: J/G MCWP,^2*,DK9$9 "3E@S'^,$RUFN^F;*T\#.$C4VL=79?]V77SG<7CK^?:?K% ME;FY*K&^P+O>W/C&"V "-[K@30U/OBOM:C[H@II?[9E_2_I&"![E"%ZNDS&6["6 ,]7[.' M)1&@\$Y5ERY2G_ PV$JYCK+6Z@:1'%"9N/Q;,+"#WJN^KMJF9F*%; )'BAU/ M=TMN0TL.$YYF.2=2N1I[6O-M\MC5I#U$RG?FL6OAXEP->6;]3\^X[O)&$&PU MB3]1N>3@CW=GU[Y4*:(P/?7D@7+J1'F8M9.#8;J7'2USL6IJ9,#*\1AYZ4&5 M4MR:% K?AB"HW@;.I[6,$[E?.!/7!G MUVM&7#/[&/M^+$:$"]7&SO!EIGL1 M%OV!I B.#\].OPSSP(^V7N\4S\#YN,V!ZTJNI8X_8Y=M)DYC\F8S,A AG&Q6 M9.)R>DGS)GCE.-+&N81//.CM=397O&3F;X$6I@HDK)\^OF,=2G)"Q M>1W[67@]Z[Q[;P&HCV^40Y7C+A*-2 QRSYUZ.WYU>@OA L2I'MY62T?O(S,0[=&NXS$:%8P8X&%]JD-/\,'YW&YR55'0HAGF M<2#(V-1QCC9\LK5PD[5&^OY[&O%R*9.T,8*5 T\_>2Q. M87F$S*N2A$3TQ*U[P,7F*?G;-D;67#B0Q$XL'' 9H*BMR=?'- NET%JC6YT_ M4F(QQ$G-EY6R_^>S-R-K-T;"GD2.X_3!#N!M$M]U6 6:*C/64MZ#?Z4DP>LP MDYRU#Q/_*E*_D6"G':22$@#GK]T'4I$SP=B-[NGH0[OV$ SVP*Y"XE)T;/8/ MX@H:GDH23 *9Y.M$3 M!!L'M5(U ^+J9> IB[,3ENH2>II"ZUI734)KA]"3YZB'@;GMS$L;;9R:E.8+ M.!NKY'#B@/^-8Q%SN'=WD+OGDOYZ6J*W+APU9VQ..;+A;+!P12=/7>9+WHO% M=14I5T7.>?E=A)"J[%,/%0*6.6W(+K+!>?F,WS-G(:/6#JF!YY! M$[F+,)D>]0S.#54A]K',6R?<^<,'ZM=I)L\7S:;HW^.Y)3'^9" ,IS"R.I/ M*CBKA*(IM6$.^(?3(XZIA6J,"C(])S9,B#:^M\T"Z5/-H1A9VYAWFVD;,O.7 M10OM6%'FRKU Q8!=)WC,9UG[,HIT:MN'>HQ]'#04>BQU$Y_+%U>$QTPJ@!J1 M4<;3NESDG"*;G\8'O2,_>IEW*$*C77*N,(PWZB._9G -/$ER,4J%XPKU41%" M6_:7^?B5:1)O040M.;P-8YT"ZYT"#USJR7MQ\+ VCL/YCG-OSJ:T^$<=$P)[X69FF>N.RY MD9JKU(BPZ: KRXG@R%ZE4"XG7LKU&#&N.Y=5U'&M4M&QN5!E(3=$DK8L:\ A MT"\Y45P.!(=&;^4.4% )F^[1],E\=OKD[-W\P?SQN[.38OKNR=G9V;NSA\=G M1?GP2?%@=C9@TSUYS=C*L$_>G9P]?'!\\MOSYYY\ GUN'/9=XV]GF 2]JA60 M+KK HR1?*8)*\!4N@J7*P\[.VSQL<.+%;MJZRC-1)2?Q'_"=@ZSN0T5&,%C) MDZ/L\='1I*.PNR3V:4YNX!830#BE&)/KSZFZRW$1U0F"":JD(_W9YC(\9+CB MR>-8,)0?1:DC5V%'>54>)OS^IVI!*AR='_W3R>M@6[OIIKV\RB:OR[KNMHM@ MD^F3-Q4)B18=[<*WY8>\>QKF8+&>_(F*I<]Q[O]EG5\]G;P(5G'R.F_?![NX M6%1U4]%7J0'_*J_"W:ZJ.ESN>=A31?C?ET#3/YW\6+:D._AT*8)HPP)I*OK=HFO><'/>L]KAY55=+HOQE MC0R7_4Q6MAIDZ>PI3*/;LA64R^,L!7CI'5<-%G8R&ZEP<)[20B)UPI3G3GPR M.)R+X@8EQ1F5/U+,3P_Q@/BU.SHX>OBOG#QZ].YN%?SW)B]-W#QX>/R:; M>_1@.C3,ISCS7]/)4**4^N[1T8,'C^Z >3[]!//,T80;_5VSTB_[FDE\:#^7 M_%!:\]7P1:3"(T?R*CZ@ROU5G>E3-P2$RL'=N&D9\I:F#?5NP=]M-^(&2W^/ M6_N.G9E=U;[6#E-13A&J:]R!#V8L^> 0 12=+/7H(>Q%6T1QO)?/+KY7O))$ M'\\0U[TH9\@O3DZ/,SHH3M/)NB$^TX;][:WZP^:M#V=J#M0>(F<>)UW GH!@ M#+5(G^,3GIWB[GBVK\*AEV\G#S$71[V%P]EEJ4"TTTJAH7$"8E;[#T1P^4?Z M/^=;4@LTA-$>&1(7,AW_-/K;X&S7:IXD\ I?56 M>E>6[SNVJMP^P4(2*^+^GK/H"BF'D35S9R2#/U$*M3NK^ZX..O])"'%Q8//;X*O$LPFZZ# M<$3@>6AE7Y5 _DU>EM-V0X:"]M;AY&5%BX!4T,,V)SLD8"R!#N /:U%P805. MAA/FHO.&X]WY=:KK/3 MQ[_]X77V"8<7/<&$'V'BGN$."G.L?=[B"PXLT2]/YNNZ$AJ6[7=751&&B6:P MQR='IT_]_'QM]8I'^WK%OE[QT7I%B$\4&G7RX/'APS,>]K]ZS\4OTNKZQ!TH M-OSQZ3Q_/#V9OGOX<%J^.WMR^NA=_N3)PW?SV:/YT9-Y/IU-4XFEU\_>O#T_ M?_?XX T++;@Y^<]+:('/T'0ZF73O@$;-$E$=Y3>;>H? M()D93N'?_N!Y\"D'#RMS$68Q/HKY8OQ($WXF=EC>2)1P00)@(N'WD^!!Z?-S MP@>UD]>;X!U"=C3L#/Z])HSO: )MQL_*PF:DX,BM5&L0>'=%_O?)CXL0+RPF M,F71&>RVR_!.%,C[^L7+"X.\ RJR19^3YYK M6[!;&S6UQ[\U*9J28R-M 4ZP'XSOQS," 1J^2>!^Q$#R &$-4$:FSI>EX909 M,A\3T].V>5]^6:S19RSQ%Q4:*PHI!=V99?3G)L2_';7I\/C$>^;H@N'R*Y$< MXI V_-\3[)KPCV-.6YF?'!-*(F%(8 U1=%B4T+]#6,.P>(M @M-PL[X:32J* M=BE>/G52RP[E91<^RACD&V+E,M/."B(A19V!?'X1^]CVG](Z#MT.4O@H72V$ M8#)F&N)OM&A@L":ON04,,_9CFZ^N[LSB^<_J-CM-6W_EQGY)8R?QQK HZ#U- M:9E1<4EW\;Q:E(7NWSDZF5J"Z,-47$A]__BQ(EM_^,#)QLDS(AY0:MB;JDLZ MLY#FJ6*WDMK $ 9>N'Z^L6%Q\U"P25K^1RP95EM8<5S:EBQ.&+A47XFA(Q;A MHKV-YXB-MO\(5,2N[L[Y API5)WIT?C=(6U&VX+1O.#CI_S 9JFJF>N&E,:= MF2=+L&EK!BDHUINW6U?1)/:R9L>/,WUK[K)R$>1"F/\/O9(TX_>J^Z)8@0./ M4BCDD9:3\_"8'S#D>Y5\YP*IG]>3AT='.XK(DWL7P,K>G]Q[^^8^7X,/,9F! MX"HLM2?QF^ (T/!I!.LGC%XGN3G<0+GFY:;HW!%OB +X,:<'J?)%@P[Y3M( M[D:\'#80LA\L3[JFY"?-%.FDBN!I^,XWCP_/3B?W*%!G!86*NTD'([XO^5&Z M4+WM'PUMJ8.1GHSA'L\M<=1Z#E)^\+SEAA(]NED$UJLP97:&RU=E/\(^Q+S@ MQ0_/K>)"W_KX=O6;-7RTV;U#QS:H];,M@Z,5;D7'!/*P"O^>@+J#SB.TJ867 MU4J;$E77C9.F ^G)#/:DR2*P$'BFO'R]>ZR=6D:V?_];M5,>\.R!DY#O_OP_'1^Z.CT\._ MK2Y_1VV6__4[')'5['G)X>/3X5\Z&O,ZCS>9W7V69U?#X7Z&?XOJ3^S9#N: MV29YT:Q02$2+2C]25%CJY![]7%P.A+"O^0.KZR%HM9]M5O2';TX?'!Y-PO,O M!/SFW"Q+."4A))./2&%[5=8J(\]P"T;I II4EY>-E$ I?]6)SGW&<,>TY&XE MP#I,('IC@"4^G+Q@XA#Z"-UBA),M/E:'CD\98OCC[/3LB!U%[PSY&8(_&;P2 MZKVX].[DZ=GAXV/G:,ZE)GUY&78MPT+6J&GK#XX.'^ED?NK83W:/_='Q64:. M_"\;_,GIX>G#SQG\\4,_^O.:OY .+PPL'>+I@^S)+Y[?,,2'3SYKB(\.SVR( M=Z< ]]:W84\LAR-N-"2W&T)@A A\WH]E\,A;W;AYM%EZF59CA7LY(XY'^(G? M;!8E9XR.CZ8'QX_OY??OG=[GO\1WXEW]^Y^TV8NXA*EW,^Q\Z>_K+68!!,EN M_)<>$)]G=6\OH8PPTWY>5>4L/SE^?/SP[-WIM#Q[=_;XP>F[QX]/'[T[>CPM MB@?S^;QXD \JXP\OP+-4%B^5.X.0V^\>/'S\Z/3TMR]0/#P$D*2]+@O_J+.S M1P]F#Q_-WI4/ROS=V"2E],W_YVS_QHT\HR? WX^/8?HF/Q4Z'8]NW]PORW,HR<6\BFTJ$P7_Y MZLMGS,6K:Z(T*F_NC'?T,W#29?L)*ICE*:8U6U;" MVM<(#1SMO[:IJ;6XG#5.HF-&@M^4OI0&)^UH5X+Y\'+_(>QQW'+ (\DFA$^2 M?'[XQ8:(4S;CA$U2$^J%/@TU5,6CN+="'1O$A6&].$%Z7-<"! M<)^"BR2D5M_QFEO3PZ#6%T*C2TX._0]N\29?KKB9!5,*Z%VP\E-"MS#"M5Q3 M'4RE0E&FF)>\51=QTC>25 L/4%-G]E53**L_I\,B0]:,&E0.KAI1,A4*0T;\ M$3%6)J\ ..IEF1.N!I@L0H2S"FK3+*2O9745-A1]\?PU+@" %UU9*3 M/N'<*M<$&VZ29]7R6-C(1-/"J#&OXL)_03I^],'1=Q)&#:>H:X+C.LO1]E>* MYOMBJ]66JQ#+-?Q8H^]!:">%Q^5&4/;!TR\KD&5=YXM->O:R6S\4F&RG#T:^*8E0?[B)_++ MD4WK>ON%.Z71/C6G'$F+?[ZZ>/:6NKIS@OPOXNIWBU]KS[R[F(KOR]MI3XO3.&[[D0D:PQK#"=1M1%RRON=#$')G%/BQ#K,Q+49 IMG(R[5QV&1>.<.^&(J5AK4Q:,E7+R3?"28G,DC&"I+F55IW8O5?VP M-C_"-'/R'28"JXL[(>-@FOJ@*)>PMUQ8K=0ZQF^'8$,H_6+'?5BM%%Y0]AR6 M&0$T,WLGA "2*0C+L;T//SK85^X]G;7<%5#5=7.M75P?.3_2I[93@EY20O9I M6/!X2MW"(Z# W/,H-BZ$L6JZ=":HJ'+K &T#^S/13CU"F;;=FM?*9EIQ7H6( M:8C 1FC[ZI+IT;=R"M==DW +E;44/H#W]O.A/ M41MQ<8OJ)-Y)YQ71E!)^; M3L!@N.DSYLY1.X;203BI=&V'=5XN=&53>PE8CMI\NF4!]V0I4+0:&3B+DM]O M)^F&L(NY\L"'H;T29M*@$U8W84G4B*QN0!41W -\/PMVY+6$WX+Q@G04Z 9< M/PD3S'6P;)=A17F'MMVUZMB)F\$# 3MCV,Z7I3)+,, Y/,OB0-,H:&]I@S4N M#."K(\;I"M"_>A_I*[*FF:UW1D;FF^ WV@9F.GW4;58?H!SIISY#PRO.5.(< M6FQ[:I$@RX+IL/J/[G-X8=WZP-JR%[KL9AMP*F&B,YTE;>$,\U?BV3J24J/' M".MH+2ATKLW"<:+W#=-#1$D;@DDB]P[RXSH5:4-]Y\)X, MM9&I8XW94D[8\'7I,A1RA(0"4T[5$8^5(YEY=4E#;YQ7:*U]IFPL@>Q$7%DL M=O3Z?9V$,T_VI;Y]J>^K(9P!V,*Y^F;&R N(;C\1'H;S-HS@'STQ ^.3VAGY M[X@47H+P.B<>E+YCDH9PB!8I0,6!AK#1N$_(*"V0?+G)Y\CBA?MC-$!L(WLZ'H&X-E+0BV M2R>"#%#"68^]64WRA"*I\49R0UD?,&")O$9OW9.WE<,W7:\1E-(27;/G#&Q#$"(&5!WUZBG*$Y+#M@ M^)D)H+-$ZJN)1R%NIWV$9<6[P>)&\D"F>1L>H06U97"F*&,$'S+$+X21GG6T MDNTYH:!G)!REL.WA?<7%H0340E#7I._!YHEJK4D,JY.R+$,0 ";8V7N0%O': M6I*C=[""CU9+2$"S%7RJ2?BHS:^K9A'6Q(+"4T"8MDE\2/>+<2#5"V4[__"'* 0MJM@%K-[YY"^'%X>@DF[7 M\1W0$!?5LN(U:V+%MD1Q"1H*+=/;[ LYDLEZ0+.QIT,79D/>4@XY[>B;9X2@ M![<^4^B"P#I)$<1YT*G]2):,:Y'BJMV=GF,N-=(29F6#2VY_:!Q/N9PGHL:7 MY(^B!4E:';&1#A MK<]?_?7\Q<'QDV#DE1\/0%?F4"@ETPBT$$YLU.$;-C9EZS]XP+M])H6Z9'O1:>% M@H0O-7&K32A=>3Z55(S0 81I$LX:L!2%*>=8/4FP M#8H3L J^ &(.*<9+E1W6+Q*M0_'B>)YV'4QL;C/G\$2"G%E.I\DF4O0&QZ@C MLC]YX'!# V3-MC,%CR_PFDOC"V13;]^,&;YXIR*$-EO*_20$]7TA":01:=V% M:3N<<$U[$5/?&_RX9_^?J 8KSE[ V=L$P"7#A-[/^\$R=\E,2C(5!Y[+1 MT+77D=;KK4^2\7[)P\;_6Z-J# )U+,#GF>0I)Z_+9K4HS=5^4XKB"V4MR FW M*L[KPS>'S[7]]'XV>4. D9SX/E2'C<^9[\,F;C=D:%@3M8YD]"6%6?+5FU0 M"EE1J1"$DXDB=4KM*LF]5/4=DD*Z2<(7,('! E]6M3::4*Z?-('H&[TFLQ^> MO>$:,YU*!7"JD?9*&UN3UL:">I>KZ2;2I#!?K@VJ:&[J19.'EQ!V2K<[I3GA MS%^ODNCY\Y2;Z;+DZ(H+*Q0;8NQP%#BICRPZ $Z)0&"8]@O4]LV.2\F.WUZ& ML,$55T4WIJ:.&13*PMHB$42F0YN%U]:I2!LK\O#:+%0(3,J0PS5,RCU>H1=K MH-VLUG* N$()RCZBHIBD>9O6!38Q%U.E^ 6N)++LG"/,R88Y&]D#=K8G-TN@ M.?Q87>GG];R>O I',J%>K;G6_4'@N_V9@*@%;]ZV6J*E=C%I-S@D813#[(\D7,WXT] C.!U"FODXH;XQR),1'J2D&O MX2P$3X*QVE$/FAL"]35[A;VD@E+ZX2 S@VF6=Q9O)3Q ).S6*%652_KXYSX< M/*93VHZ25^KESA=ABO 9S030#L&JP,-!/[OY@W_;M%57Z.1B!"HFOS8&:9$R MD*(-F13H2T,\EEZ0Y:,&*R-*<5':0'L5Z0!7;ZU1>=*Q%UED_=V$;,H&+%WX MNKM%S\>.5H5WY9+5T)+%U-3RM)W7I^'DT^3\><< )W;N<3M73R8&PG!=N+AN M(550*P&]]R8\76M\BSILJE?3\]N).'[,@N2Y9ET0G!J4.)IO]1;L]-:\G&D] M::[)/7;>)BW,0HS5$I0@#&*FO+I"R;G(;T2WET*-^6:!\T^(?7/1PXRR9S@< M)R@] _NLDQ>3Y:;V?CCY'H@/;997$8O(O(WC5E)K7%C,VP.&8$O.5@,!=CBX MW:$H!V\SR;]P=1D)-'+:PPD9]U[6V\%V*H950G010C!(CCGV;YV(7_;H2M&B M$4T7$"=A]"NB+V!P10D=03(KFQIZF+ 8:575:6_.!;"N.V;XL)G$*XZ>G4PK MVP1ES_2G7Q-77GP2X1H%*Z)E1(WO6&*7MV"-D_=+N,-\TQD?6J=UBX'N'I+[ MQIV()W(,M]PLFKP^7E?N5'0Y-6TNS1=ESV60 /(68?I]@/6_.L Z3Y/2N]+D M87B_49!U7KL6)>S5Y\$ 0^I[E8O*!=(*-Z ^$7PP0TX,;C.MX#:'0V7R_ _G MKR^8'T*.H']H?\D+TMA:J]U_SFKHX:Q,__ZBG!.&5PCODX\NUD+4*R8PV-SN M"G"M<$9WA(9)<4_];%QGRMCDP3L]73M=RW5E$D"[]_17AI@X.]HC)O:(B4]! M3.P/JU_ML/KVEA/JUSX%R-(:(W'4P#Q''!#KZ.24PE+N;!]PW1))"3B3.%3@ MUYP@'Y'%YBX)@"] LV6-C;$)NJ/>M5FUJG"D@OF#+\7?96(=/:"H-@I6;!!= MLY8=J2,@S*:CA95G4B]>8XD9'U#0859P="]?9,(-D3XL_HJJ42J^>CY/$U'2 M)#+96%,*Q4D='L9[M_HD"%$PAY(E+(&23'UR\7M#)*QQ2YV*!$0M=R%^P=_F MU)V'9E'4"@1C1.@NA\5;WU"&Y[QK(#L@E0CV*@$;\?I;NWHF:LT7:YWM)H^ MTATB:L?FC6(!5UF@8?Y,J+#O\_J]\ESPI+. MU17KJN"TXY:V^BE8M2^#R5D M>B D#$9^7>IJND2'!JFX2%F!C+R(!0"AJ6@GCVC#=:D.K4=+>"]SP+LAW5R3 M$$081^ZS'(280QCE7Q9ET8HVS7 ])>H5Q-' N M!L4&.I?\[%&7"S4!=>D\ZNS=ZY>YF0B&7M !=H1MX/LT.J[-<;YF\%-R80XD M?:,V@!O6XJYHI7^;,F_"=3:XCJPRN\0M2:#Q, 3.KX5 =Z!C,G:S_X$Z>M#; M<9=@<8XA+I>NA_C*KFS(VB'"'LH(,4O*9?'='@5W)_V57]L]> LF&FO"!]?+ M-\XHI69-.\:-_8HK?7I7Q M\N2-C4XY]0N7J-_K=Z4VP5]!WO/%RW,<&L__*OWOB4>$L^=@O5V)J!^+*]%/ M.NKN5+*)9"S)Y57+UWP-X3;H!/_%\>5\'JY&X\RM]]5=23*TS\,+"F'BA^&U M%)B?_EHP=&1%VTV-_E/]P>%'.E#T,L7DF[/>SC@Y&[ZVC[!F1=Z'T7%>D=86 M-(BYO >#"2H%1\' $YW\SN@4>'KBF,WMZ/6Z4)=!W=0'PS:4?>%G?Z#LM&G/ MH3&%M)9LQQBM?',:CY7/]%=^J?$;V4^)=3-B%FAC9>3R$_:&\G]L=[K--,9/ MD6-E:%4XE@0D#\TFN*#&K/&>.&''C%ELXR= 5K!%Q$^P.%"A/+[/Q%-AOQ?E_D]YQI#".;WI]T):G_7F8:=(N;5)!:+"2TT1AH MMU*6I-931#DYS>2V.^S(B)UC !7LF[O8>J3YI1.66W6WH]0?\HLQCTB40Y%CE4:A+/Z1 MLLLL43N9-O5&36.T@S" GL6:<7VE74&J?;S#T4 <607];7 M;WYJ;38G=J#U MPN"3)=,YY3Y$+PIUASZ B0&--,:JZ+ MJ"0\ 9 $#(!DIKG)(CYO.'_"E5:+M$-_-BM7KC+YE[IBY4>TQ J8I4/;D?2' M_&U37*KY)"FFE4.$J Z\HLH9U@QO=LGB@N'I@BGVNDPU"1H5>)98$[I('Y:> M LQ_W*:SIN3@G^E_A*4<7SJA^7)_-3'QC]VA*+M9"( D3$/7M:-Q\3,(Z25- M.H"REJ8F/DWOY7W2[5D24+"B/%U<=D].F(#M)[[N?W82Y"VO-ZX>*MT7%8B;M2H?!F5(X,&:FFKSA>"'=!;N M"DOL&\EP%@0)!GH! M15SAL0;-P<,V\E!_EZ9 +<(']0 ::A<-ZA8WP.JZ25P1Z:M1LBNV)WT>$AR,C$'A!2B154!RHJ6 M,#"MZYZ*4*U[E6BDZ-TXE5F92<F1+("&A< M^15[8P%#7/#F=UU1] #XA2OCLJ58300I75*WKPHL4HWC9%VRC .VI3-;G%N7 MNRAOQ<7%:Z,?UYK#1Y?B';71. R=J>LR7;YT/-*TWUB91A@58J;).P MN7<_5)2!H:WG @9?B8Q'ZJXW*D/.Q6])N'V8\00/RXD-M[BX?MI.PD9LV@-& M0E7U:F/$O- GJ)B"'4T%^8J5@$!>RWH\.N5HZF'. I01_)T'1S!Y$))DX,\_ M;>B57I7ES!TS!'CP5 E'LE22Y$J2/IKU^.TLC:0#3:,F%N5+G_G[TO?4Y;:?K]_OX5JCPYMY(JP0&Q MYYR3*L=V'&>S$SOK%Y>0!E L)*+%F/SUMWL6:00"8QN,P//<^^9@T#(S_>N> MWJ:;SQU#;*Q*%!:+YMF.P6P*9%G;XX]%,(AGV>P0X/35:'XX$:UD'Z9'\@*' MNIQX(.C<'SF6UJX;NO:>ON$?IN.-'7H8)\IYCS<]U+)HT":^D'E9MDOF;*[I MWLKN9A; V?1LQ$/962.YH[SX'4\^ILWEM[$R?]U0L285:]IH9?[Y6F'6OF5, MQXJ \5)$LNJ#_O(0OV25S_D>R,O L'M%H%W/1'ZF@^"L^DZ&O^?Y.U+Q(>KT MTO0=SY'E9.Q7) OSL]$S. M.EK0UE.E-D[J&(EQI=M0"L]';,R;)MM.U.*97I8FE5- MXWHW3\0.%^AF46:39DIG6OLCZ?J5T3;%44N^[^&AM>1%B>]B6D%.]4^F).^Q M_552;F8V1EXB#?[_Z9PT$(^WVI:/F'9Q?P9"L@/9>2^:0SPB08T:1/EOG<,3 M+'>>)2G*1>8E!0$',@5I.C9&*EX7"]IW[,P_&-!DMFLPU=Z2,B:;HN#.]&P%NB I M77!B9EAR33T]V))Z M42E[,:44,\/ X+-CEWF4'L[N?!"+\^X^CZS;(1M$O8WW@\G!A_->@/W@ +K- M0$1E$AJRP$:R77H\%X_NES>YNI*B@G2,M&0O:T8X$_?4138DK89H1A+A\+25 MA")'Q/4S;E=FMSY.'T%>_E J%'F#7TH"4YC;J7!ERY3J0>@>SC8)EC)"TW+# M<2A5@SX^E;H=4,E1PAN%+Y>+&E;0/J/S3LMA?D)B1AAG]K3L5I%.U G3H@:1 M%H^2ZIM"IPN0.VCA F[;"_^#U!64O=O%$PFPT<^N(IL+DVQI^A3ZN%E[1@%A MSN0T'F[RHI?(DT7"[XAR3E@O#>=\(-Z*DXD\T"I-$ MYYF'B$?":-]7WK>+=GCU_(B'QIB\$168L"NK:$$.H"4!?;AYS9566NQI/-72 M$EXW29S+XB54K>_%+G45XS-9:)F59F*NOY'#S146D88=%2@C8B^\714[3PS7 M>YD<.U@H&NZ?&HGH6X(S3P=#(P1#6..T,25O5<5B'KT=+ZK"H.3<2D MADH.19)@Y\'Y7IB4Z!>9 LD!@.3,MPE,.XSYUDP/>X&B$0>)XH:K6S5*OV,S MB)A^RR7J@E-DHB8M76YGX/MV BJLNH.4X(UHV(B&3F MCE"4&1*-^&@758_7:Z=M6H6;140G$]63EQ7&^N)T0*!U>3B=F,L_H'S ]UZ*2T29+DD+ M9BCG7#UO?? W! %5]D*FWU%553K[-YC='2B4+@D3"X++"A:OQQYV BTX35PK M5FB "T!6!$JX:FC1NKGB1)(Y4N&M.)!BC6(Y\6-F=IL;PX%B6@:[+ .CV[2/HB39FFK(#& M/$&7N)"A3M*36S0"X;ZVQ1S%BI?SI-_\B:0\E+839&("M93DB! M/,5+:XF^ MA+R!,[U+!F,P1?/7,WG=%Q%6AK>#Y@>[-$& M%-Q7)R0%(R:Q)6^;K,G-YC&7M7WI'0.VW'04N F6EIL[1FXSUZB1-Z_E\$@,^V6E@ M.MR,2I5;;G+ 0*A&HLL]%]B!5JK(8# CYCD,5%E)SZP(O:O$]*X2ZETEKG=U M<:HA<9LXHY5_C$,@O&G)-,$XC8\^6#,:P5ESCGA4>)=;%;!$GJ1%H );.[L'J7 M4R47:&-8XI%>ZCRXX^;!;):]?(L VX5EC"LB=UE,_)(^DB7I"88YRF: *E"8 MQA*RA2716^/8#G:Q9'X66C:&Z@7 !:Q7,UUW\1RN/&.TB!6CEA[ %H V]9'; MEE'7DL.R=O=8[DK:6!@AD@P_:7W"61 =JP/?M;G"1Y)FW]<0N^,S4G. M?>'89(I[GM#MBBA)'F14JBWTZ&C[,0_3O?6[(79V*(XY0=.F1,,)YC. )Q'> MLX*N%C:N )KMQ7WT;G3D0BSIG4[(89>M&Y+VE9CN#;&XE0?V)34M4.?U]%%S MBZRP2N,CZHW7M;UC[ U$0&B@/[,_X?5333Q@R3N53Q(M4WA Y+YVDAF!U,$Z62GMW9N=%=#V0 B!OR.V;],PQ0G&C_-* D M3;6:[<7-@L[BG+[@M'DO@4_<'A*5>[ND'WNL;CLWIH702\Z@I-/ P+O4BXEU M7Y*D=VKR)9)3N)M$AZ2BN%;/L'9!B3G=4'B#Y#:+=DB1I[ S2<(.N^&@12@T M';240=(SG8"GU[#HCXB43I]OYH'#N8_,*%R ?9@:36"77B!.0;%0HW"Z>54#(7M)?.&)1XCJQY2A)&/!7.GN: "*6='2:\598,Z$N/4FVERQ]HDL'D \B'@P:Z& QS]HF1#L?DTC M;XETHP%MUBA:OC]3,R5S=D(4/L=U%L>]!?BR"GMZ.(S2')F#<4$:SF*A'I$R MD&8*])(I,$E>[,7.UF!AP391LR5@59OIKNTC["MG0=T)YKPJ#0PY1417>JG0E31S%+($F>UZUX4/>65<"/OIV>Z;Q1:0M/ M1A2*?5K>0Q+OO'3$5?":Q5S5T^K4_(DE(D1^ZOV=G9LNSRX0WHN_[ M-OI9RMH9^G$27WE2I48N4B.'$"2/CV=GBYA(/:2F.R[,K"\F2N4]E/9P<6,Y MO626-MS68<9!&ING_5KA;;I$I( L_&<6)8"1]M%,!,BX71:YJR'YZR9.I00 M7^Z&(;Y+S3GIRY$9I3GEK+*C9PY%'6]3:"&L1[DS,MD.(-Q\.I[[P=:Y+C7Y MJ*')D[FN+H> /"&V&E MWCG6"'J$-J/%BD/2WLI2[R]]NLX,AHAES3+5*;4]5[3E6'U@(B'2)D"L+P)57J$MPRC)Y$FDF=*F_-0 M.;+IH [#PG)SG0FT/SEG2CT!=3*JLG; C?A!DI(Y3/6(1"L*1:P;A0R56[*_ M*2WV(]42M:D'>YQD6:9)3::- CNIJDAOG)*.,W1A0E7?SF-0=17/4O&L@AZ# M2HR#["%$7N83NQHE6_J7D9^>)YFV:/. M7&D_8#M'F*.E+F*L%_,D#"<8BB-(82C*["8K8:<;*'I@@)M$]ADF!V'&OX5%;FU3 M9Y$929QOV;KMBC!!HEA-8\1#KN6 &#,U" MTD4&*'>D@R9(1(H-<%9J.K@\9!NP^NWT\#)G/5133-J:U0:@8!(3&5+MC&7" MT4P5^,WA)Q_P')[X.C<_CODI0F,DJKQ7%48EJ%FXIKH7'#FDVA3Q>U]:C% MP6-9NGQF,]?Z%S(&MD=^G O][3 Y/^_%=%G3%9]JUYK9FYZ\+&,#55J3):TI M 8 8T+,::&Y1K_X8V1R$I,BVY*]'84X/:TD,E:;#97EKEJFF@YD9@&ZYCT$IRK >'$[*=)H==!; 36YS;YC07 M01Q?ENSS9#93+Y6#,,P%S[LW,W$AY:ZS],:943,9F$PUEW]E)XHC9X?@5-.3 M'CD+/3WB?*&QD(MG4)I&[>[!TYBVVG.PT2C]FZ4_!WZ$(?0QFV+JG)IS KG? M#VAB+\SX:4U*41\Q-P(_K,::/@9A5.+TX>H'&$G$!+/4QQHH.)N#U\?_[W_M M>MOX)SD!Q]IU)^O*'6 22,5AC(1^XB TG5 M)#JPPJBLK%Q*821QHL%-GY87!SZF6L#0(Q^TNRL8+JR8WUR7"#VI:D9^,.$U M;#"Y(O#]87*JBP6"$Z',*@].%X5AGGD6G\ :A=RRF2E]PZXL^;U2'*9>G.F+ M)&<'=Y*( YL+KM3E(_+9@QFZZ/6^Z*A\D<@]I>EF*I32BG6!.".)WE!1;"!* M2YOFU.W)6WBJ_<]?4NZT='BWBT0L+RX&DJT DE\!Z'WR.?$T,],9WC:,A^@> M%7$NVD0XK7;ILE[BXJ2,N%D$C*A7CJ;(H6SAASR(]'YJJSF\* -WU$X2/[C8 MQ>4R#W:RP5.#0KQ))&N*5AHV\Q^#!<%RV5FFE)A9F XQ.34P8R0B1(7)(3)P M,N'+F"EW;^%-QXR+Q*O:RTD_&!OPN"F2.0V366>V\DG. M"2(QF[,K3CCHTO7\Q=Q!33MHF521D7(<*:32\Q$XR*1+NCM9D/U_$Q?C5BOR M:G4FM9BLY&80SV7DB@>KR\+5&"]9"&'"SD";YO@FH6( CWFRS.@ MDT \F[_%W$,P-1"_ 2N836^1=*@,ESFT20(_:B&.%LXZWVKPO$T M B\UKS@- )XQ9RJ&9.E7?N*D,$+XC+ ]#[LS:*"QB3.2)"T0"GA(PKHXF[-X MR N>9^)N\A+P\O[BX"QXT>G&JE](Z?D;*S$^")$IF>&S-DDG[EEI#LA!".)];0R692+M-L 3ZQ M2)+.'3?)?FS)L\UK'+*=1W8:*L2A0AR%["KTF4>084XGR1F HIA=![!YQDD9 MZ%3X'9B1>5NW6G)$NRB3^YRT\DP:'Z=?X6"/ O1^?* /H(.^1:=(-D;D,2XX M$'P6 ZV0D)2A2Y5RI=-JMUJ-*4ZOC*(I-I^5I%$@1L/?4F6,EK96G.K:R(0R M?PH(@;KQEYR%--6(46(CZ?FH#Z-7ZL7 L6'C3OXN8>_'%TPNCF%Q;I1'4CO, MY%*S"]M/')$UBZ;<-I/L0O@1S[XR5Y^8([:N;!N5VC^)O,EN)],=+>6*(D01"-$J=ZJ*$ 4@A%%NU14A"D ()9H*0@@EF@I"""6:"D(()9H*0@@E MF@I"""6:"D(()9H*0HAFN=U6A"@ (91H*@@AVN5V0Q&B (10'%$00JC-NB"$ M4)MU00BA1%-!"*$VZX(0HEIN*1?'"@GQ=Q1@^'IEH>H'F;6<5[#LQ#GJ+-_% M+_][TGYR1P36C'+-$(E%(KNJ.KK6:+Z6)E*6UKA$G=&"K"O^DNXL3#KEQB@G M)>;)RQ]XU/ P/V6$??CW[VYV&=>SG:T#/,EQ*)Y1UJ/_R\E8>?+R+S99,65G M#G*,NR*'N6=W"#A/>7*J@L?]](H=@L1?"A)*8BB)H23&IB3&30;"FI/>G;X? 8P M]Y>W[7*GOE/,A0G?VR)K.TN:NVRRR$.I<,T*V@5FGX*&! U#04-!(Q\:504- M"1KUNT*C"J_=+0T>Q8:H.\7^NTU[S#+*F\"# L*-0F(&"*O:40JAQ4\#X6YJ M='JH]<7_+(L0L!4?5+,69^E>K(0LE0+,Z,[6U3T3:S:6ZW MS'CX;6U+A4M]A1KVPZ3.S!,N6Y@C,^50.?8BT@]HW?T?#O9%^VP.1^OT5&\P M)VR-V_S:E6.)97:]5.\]WC2=V/95@.=H:]9TC[.K\ M:P7D9R6^[NG>,>J[AO=-N?:*)?'N& U:M;-OTV"XM__O04=[[F-WV8 ?B]O. MN,BF#FIL':]5FPV]75-A%(7HG4%TO:TWZBMWI^TXL16B"XSH:E6O-%62H4+T MKN1N5%NZT6YN-: ??;[7"JTTE>^E),SJL\/J;:4$/@I15%NA]U!EA]U^ OM^ M&(6:WUN]SZB SF\5R[\?LS:J>FOUUOFF64#%\A6#K"H8UM([E94?IE ,4AC$ M* :Y)X/4]6JGIAA$,8A*I\BWA_1V?>7>F4WSQTYGAMV-SNU=H[%*$E-2;8%4 M:U55FI@2?^L0?RI-[/:C/0K\,-1&@=]SHM7)[8S4JH'4LOVXZY+-2.G5%8W9 M^+S6D)10URM;'L/=F,VU:30HE"^+\DI%;Z[>F%(H5R@O$,J;3;W=W.[Z/0KD MJP(YMR@W/:]UE*&HUU=N0&ZGUV!+$SVJ*_?Z;ZM[:]/,U MCT(\-:HJ#VVCSE0G\TSZ.6TVS_Q5[(85]9HO1G.-]:<0;!TG[EXUI;]6WH1" M0;>8T-V]J*Z"[B.![LX5>530O5ORP0:AF\Q/-=G:G@2 725:@9(Z=WS>!15% M#[\0CQ7X!15KFY 1UYICN!*82B&)9FAIJIC4A@$2\R^P3K9$53%=9W*!EI\>J(\,Y*)KP[ M@?/.SE5K6 R#J;"Z@O_CAG][YU*>%/P5_)>'_^Y5M7BD\%>)55L(5I58M85$ M4XE5*K%*)5;-[JXJU4JE6FUOJE7G)D4R3;/*4RR/O8CT S,BMO;#(:ZM?3:' MHPWYX0JD;Z_![-H^&VN[8R4;LJ<*-$D%XJUON:10K%!,.\XJ%!<>Q3N:9E$T M T+E72C2;C-IE6A2^-U%W]9C(_;698W]'9E=EQ1F8*L9QBSDZ3=C@A !&KJV MK'SC_U6-1/=.$\\^,W_6"@A%M9U9P_DC$ZZXL1EJ M3ZL-HUS58$"NXWM:SP^T:$"T"3$#CV 6&38)8%6J^J:43%JN@:$<3PK M(&9(_7=/C6JY*1ZA:_"(:NLO7;/\X<@,X F1C\]DRGC.@]D/_.E&63N']R>/ M=SPM?^!VX, ?6G>27!OBQ>*27N /M8/7QS!66]O_JH63,"+#4,>KW1B92@M- MEX2E:#(BFLONA[G06\*01*%.;Y6G.OWXPVOBA8ZOA7XO&L-,-< *?$/@5IAX MY)BN.X%G]N!I.$Y3L\G,DT+VJ'T@?!0XU[//TFQX':Q@]FY:H#&DY IB+X*[ MDQO*16&%?#]PT=ABL;>:L4BMW)[FD.70C+R2T@U9I5ZN93C%J-^94P!E@0,3 M@T7+!\G CP$C8S^XA&?@T)UK^- C!![;-_MD",L3,I1G[CLR'2\<( @I-L5/ MMF;!\OI#$ 5CLP?_A@-GQ)\1:9[OE8"-D+-*Q.X3^,)>+1CO1^>3.- 6TWIH M3H 2P$P>6\R>&UM1#%>S91C!H'Q*(OYI9O51<.(# J<;1X@5O\/ VW%T=0O^B8]/&1.L3 MC^!RI8C0M1#N@[_@T1.ZA,X07G'%L33];"9#QP."X\(GPE7PP?%@M3P@/)T( MS#2DG^"Q.)7D9<4"3R*P$2>F&\H :9!XO?B* 92<3A08@A"RK3"2T,R=&#. M2!L?%\2&0043U&FJK7]"B8"F99%19'H6E1^XNIRD\$B8ZA5(?<;#H>]2U,'W M^ +8$_!=<,\H#JP!W=^ /.3:@=DC8. 62H*45A:^Q75-^I3,Q=)%. *3Z6)4 MXD24@-E'T8<#HF%+P]7!WV!M+^FF&L:C$; ,C @6#?YU71!&? J].*!K)F[E MJ&60"@+DCT0$=6%&9>TU)P$=,3R04R @8>Q&$JE\"QZ@.3T->8L_,@0P.#U0 MSZ7'HH[AD;X/FS<,'/VEZ1IPK,:FBP)[Z$04\S)AA12V0>\'40JSHU-CZ' " MS1^#PA*'P#UA<;;II&WX9[EM^":X[I^<'N:X["%00)*V\*M%+X.%1U0PF0Q" M",4CY02 F!]$C,B<171^3T L'\C^!^Y"_/F>1YAT'#O1@.M0E&_P7JZ+Z=KQ M.<-G(B9+ 7'I/L*>2O?0(;S3^9.@UK1^QPX=';$&GN_Z_4E9.V/#22< R,&= M!Z2B0W$5(J) ^-E4"627/4L1AE_@PUVV(3--58MA.8-9??:YCEM5B'-TIP:< M>>00^"VDX]8U,ARY_@14A"[P0<_!T71]+^8B)O*MRU*7Z0+2;2 H\#-YCNS= M%8SB!V(^S&JTG:N7_\(_ ED6C#) FWC ,9 4'$F.S4DH0DB=O44:ME&N-OS3I,R['S%H.S>N2M&+<;P *60^X MC-TFOJ.>CN1+/W20@B\H/,"BPJ=GGDL)$_DCS#MIKHDN4\*I)H6R3&T0D-Y_ M3_YW?K(_WS7E^<'0=#-2CW_UY.4YNBB09_;A5Y38B2=\LCS>Y7.ES.KJ^4Z[G7S\ 5 M;A!W&+EW9+<5,&$YQI\Y5XOOFW&GX%U#T#U!%%"EFC,"+'Z8+C]8S00QDNO% MR4Q+MIOG;;9\$5T?'IJ[;\YS&$W-Y8;=MS :)2OQ_X'^7ACNDOL.W-:)P_Y$ MSFAV_LKP4[/]UXT/2YF+70*73SE0JW)"Y,@'<#(OZ !6&^[ORT.WXP D(WO2 M'&Z>=D'ELC1_=B;W$BUU[U;RHC"8.QFAIP+WC$/.4R^*,K3/(%E,,,&IZ#F ME79]ZC:CXZ,!E$2I9'UW0*%TS5%(7H@/\G!0!^.*)2HG%E-JA 9-%3XSCGSQ M!=/VZ#<9I5"*+O%K9I7N*! #XR^L,IULR3SE2KE96Q3-DC0NZ?FHVO1 5(I MC_B;)BZ]8"KT&-;I1M65&Q/TQ>)2LTN5!O(06FRE7&GDIV1)]XV6KU29&B+W M#BE7FHHNQ:-+M5Q1_%) NC3+'466XI'%*+<6IH@HNB@QINBBQ%C!R:+$6#'I MHL18,>FBQ%@AR:+$6#'I4BW76HHNQ:,+B#&UO120+DJ.%9,NG7)-\4L!Z:+X MI9AT4?M^,>FB]OUBTD7)L6+21>W[Q:1+M=Q:>.15>=+EM3;B;[B6H_W17577C0+C4YZY!4..('#'KT?[DE%Q?7.TIP M9-P51^T=@]%3;9^>S5)@65%Q+*:F[1!"_E((4>)$B1,E3@HI3FZROK9*T^6V MSI2Y6)EC/64E4#4109D5^'LK+:A% 'IV@&'6:5<:^\:"@Q^ M6M1G_WW$.X3"148ZS.!B59M&$>V3:5SAV4EESA;;4V>+5V$4%&R^ M&ZFMG4_VK"RH@2RP_1@/-13W*.Y1W','[JG7]%:[HKAGY=R#*=!%!-$#<$]! MY<8B]ED,F7G,\ZRAUSJ5YSO./2OK&\XCJX\#&M6=Q\5?2DX^.CEY5S6C:NBU M^JXKZ8]<4-X5&\8*.S,SYV_!7#2L- _OAF(KFY%G"Z8_3[S5JBOC@4T'/#?2^%@A?NL0WU:(5XA_5(CO M*,2OK5S$%AEN-U58V("W:FYBTK8"=,56MB+6[EM-2KXHR"KYLGIB/4RJY?H. M?JVVA?PM>@2)#BUS6[5(Z91I,[/<=I0/WF51- .6AYAVNIQIKS7;K2UIK)89 M<$ZC2]9QDK>2HUU6(S]IL,E[J&6&85J1U M>=W5&E)GMV7:B@WA7W?">]TBQFB;:I/W&9-1A+-FW8AOT7UL[ >N/4:4A:9K M!A.I.1H^+_T+&\ 1T[;\V(M$5S;1S:V1.R.YW31 M7]>.:+=UE\%HSX9)P$83T.I7JE68JB8V4JW"%%U43/7V4;U]'@PL]U'3=@@A?)$43)1,43)%R93"RI0B%N573<-4 MT[![GA)5C8%N"XM'W !&@4"U"%,@4"W"5"LHU2),X6()Z:!:A&U[B[#D?'%? M/E]LSIXO5NW"5,L6U;)EN7K934,WJKM>2UUQC^*>]30\:NBUV@HKSBON4=Q3 MS(FO@WMJ+;U9[RCN67V)RG8Q0?0 W)/?L&/C,U]+&YRFWFX]JLWGIICL@[#7 MX^JG4VOM.L V4:)>"S7P=K /:3?M1:3=*/#\XQHP5=MM5[;%&'FYNJ1&Q_AYL" +0 MBOCN=S)2=%:B24%V"R&[^Z))-5F;0XFEFW%5;I6/^E#]UFCKKJ$3AMBF:9G> M:[0A6&BZV.T)QG-)(CH5O)5/AWZ6*K5(E6@LEY@!8FW ER?QJN/*K*,4S=ST M9Z,^0Y=Z:[J^S/]ERN@D#NX2#UAP_[\T*WX*TZ ,TB4.U($Z8 MR!^],*KEYIKH,L7IM90*_YK:(""]_Y[\[_QD?[YX]_Q@:+J9-E/\JR"8AGD42HW*6!(NL)AXT4]9LZ M*1:G@]OM1+)H9V=K3ZN@XFVD5V*U+K46E/OKS6V6:#K>;+/$3!/#Y3LFRMO& M[.8BH) T1:1/F]].49?Z);:7:S0(-X@[6KEW4*;0>D0"*%]O,^@ZE*1PQRCP M+4+H?HGEU>"!MA..8KIJ@")_2.?/NA7B2Z_X.^OW[:MXM;"O(@P+R A/09Y. MEOS9E;/P+K'_LJE+:W7E++YQ"?ZGC1VOTD7/[^W8C4/'(R%(%>MW[##!R:8L M6E:F>)O;O')J@>6VF?F](XLC1F8;0893@F6A7%E50T@J9^E"^2X\!;:/-60-MYMC=_.7=&\+@G#^,=6&>%&4H M21TO,KV^@[N^&0*,PEUO%]DH5U5!R;GVO^H6J>BB^A-M 5T:Y79+T:5X=%%R MK)AT47*LF'11*21?5.*J8=%'\4DRZJ'V_F'11^WXQZ:+D6#'IHO;]8M)%-8PL5,/(&[(M M5+_(]:=KW[PL#]\OLEYN[U8S!-4P4C5W4\W=U@F6^ZAI.X00U3!2R10E4Y1, M*;I,*6*+EBUO&+EY6VK'^T7>I>'/VOO&L?+TNR-L5MH>3*%B=U"QNHZ2"A6[ M@XK=:3&Y4D^D:CF8+T-4*TJ%"]6*\IZM**FA4;"BY+<\P*SZ4:J>8/?.YB_B MS-?2U4@WVHU5QSL5]RCN*=S,U\0]K16V!%';C8<5BHQI!*HBJ)JB3J5DK4K>CEN/EB[GJ3%R8HJ#? M H2R[8^Q%*UV9;HQ+?V=E-#%Q2"PBJ,AK,.NUP6MESMU=7 H1W1N_ "D*D15 M1+I4RQ55\*B =&F4V^H 9 'I8BA^*21=E!PK)ET:Y9:B2P'IHO2Q8M(%Y)BR M7PI(ET:YH?2Q M)%%=8I)EVJ927&"D@6>K1$D:5H9%%2K)AT4>7!BDD7Q2_% MI$NU7%7[2P'ITBHWE;5?0+HH.59,NJA]OYAT465!"U46]*9DBRT[C;\>3_I6 ME4A:55W0^FZ5UE)U054-/U7#3]7PV\H:?KL$DU7(E'9SIR"CA(H2*JHPZ+VT MWF(4!BV -:4J@VZBVE][Y\K]K; TZ,+LP=V&16/78*%J@ZX %HW=4E]5<5!5 M'%05![V3$+D/+E#5W"U;A8BG/$:FSB]Y&O M^7$ ;PK"J-0G'@F2:IVDU"7F$*[PW9!6V3QX?0S;9[UM_*.%DS BPU ;#TA M-,L,@@D^C8XHU(;F1//\2.L2K1>[[D0+B(5G,VAU2AO&#&]U 0KX%EB!2Q)I M-AGBX/'_>G$4PT,]0FQ:113'9\$"^D,2A*+<9TC8P I3K/,8/?LDC.@43F"$ M@79X/2(>#/39L6?!X)_K,)9'4*>SJ>I"%?"$E:H+54RZL$8ZBBY%HTNSW%!T M*2!=E!PK)EV4'"LF790<*R9=E!PK)EV4'"LF7>KE3EO1I7AT495NBDD7UCE- MT:5H=&%]W11=BD87)<>*21=5L:N8=%'\4DRZJ'V_F'11^WXQZ:+D6#'IHO;] M8M)%5>HL6*7.Q>D66W8T?CV^]*VJ6;0VS_7C6(6;XEV/8Q441RB.4!RA.$)Q MQ%UBB8]C%39?%6?3!4%O\I4]#AS/ @9**2BHJ;E!2 MI/D>J)8EJ27([A.QFGZ,'J@&O MQ$7!<:#$Q1:(BR+:*EO?P6CCII+J8/3P^U%K!WN2K+"#D8+%[L!"=3!:00>C M2G778+%='8S6"0O5J^AQ]2I2*%A".JC.1+,2HKK1>MN$=Q3R%G MO@;N,?1&TU#87EB:?SO3C&0I M!'::NPZ_Q3V>5GH*H(B@40)[E>Q2U=NMSJYSC!+8!4:@T6JL^J!"P?!7\#Y3 MRWG F?M_%#CP+!BG9OE>Z(01;='DB&>P&U@;)S\@,";-BH. >-9$BP)@*].B M[:7(M453OK2^Z7@AO=[UPY"LM)_3 RT,3CH@9DAL[:E1;B1=MGBG*FV"Z?P\BA#FLY')D!7!#Y2]UBZ%I*"-Y0"QA-# 3SH*9) E1Z6B]7TM$%_E"S MS'"@TW]IV[ KTX6%8>0(!WX0E> 90WC"%3QH2'^"1\8N[2A&'S (0#KDKPL M,",2PN!,8%H3.W_YO5X(2]2=T)6*O9YYY;,^8#TWMJ*8=ANCB5LS>$DP0A]: MENHE2?6@+!>6"J7"@),R$8Y(Q'44A)H;-#/J@O<3"-7;TU6>_B]3S"H14R6> M3\K%N#0KGO%G4+G5)R56*\OLP8M?F.[8G(0B*Z>39@^_2':"&@5UI5QK_*5) MGW$Y9M82.XM)*Y;I',9ORS8/$U_>4+.+$R;R1R^,:KFY)KI,">!:2H5_36T0 MD-Y_3_YW?K*?IPTP%=KS@Z'I9GJ^\:^>O#RGD 4>VO=IY[4PV;',ETL ,[NN M>GJY6KJJR@G/58M4.1=%%M4/9!KJHMD[%I(N2 M8\6DBY)CQ:2+DF/%I(N28\6DBY)CQ:2+DF/%I(MJ[U!,NJ@V-<6DBVI34TRZ M*#E63+JH-C7%I(OBEV+21>W[Q:2+VO>+21>N9HJ^":L:DFC$5IS1@ M9LXWE4!_P*.2"AD;1X9J6E< '"@YJ30')1EWO9"JKO34=RC MN$=QSYVXI]JJ/JIN=:K?W)JY9QO;%]V1>PR]6FL\*N[)O.76[8M2&WBU:::/ M!&Z-W<>::BZGI//*6GNUC$?5"U0UAUM]<[B:Z@VW&I+-(.T?K$[P/:!HX%RW*-W:+&?N#: #["N[#I&H#3 M&FA.J(5Q]Q>Q(CI\\YJV0=/,2+.=7H\$0!LZFCCR@PD=D=0#[<&149D%QIXW MT4*XU^D!_\%@>:',4!T8"U8(;.%4EGH%E^[-J::0/KA@3HX 5 M817P+FPHB*$TN,[6>HYG>I9CNIJHHZ3SWG.TX: _(@%K':!Y2 +^G"<-1H+ND[H!P,2G3P@T?@32;;^G!8<;7!'7'V%K07H]++3M\ :$V"\P(3/O#LG&2CF4DH]B M@0Q'KC\AV+#,MR[% "< #*!?!"0##O%XGT'D8P$"&'2$TX.G2HS<)QZ\TX7' M6&2$I($/N#1(0Q ?@,F1RRF%8TDP3A>'+Q]%@FMZ'MX41HC OK-:]IW5SF<" MO/.Y]\ )K3@,.21>)ZQV8$:FD.3,3D2I&B[L1$E7@N69%$0VO88)F"!(Y3DB M57+%QYVG"YN)2Z5"2 A]_)[GQ;"&G\G(#P"YG@;C&+*;JY72N]D7W=#@L^>X M\"L%+ +M[' ?'_H!>8<_E6V6*T?5XU4D'&S2E\BH%IN##E()=A_D_!!D&GU5JC;"2JDSE_A$:99Y??MD^KCE@QLUMJUPR= MD!^<&^-V0L?16&8%A_TM%UNIQ0 ]A\Q4>U.RMHW NJ ZQ!43@8F4T#(M1-&# DP M@D! F3X+E!P'1#_334 3#5G_6TF0C.%%6@A_A#TV5/X4F$A 6/-<6#J\E_[* M[X2WI3NJ+C#(] S@+E!BN(;#&A#[7> #KOBPI42Q N-'61110>$!;VC1&/V! MVA X:;#Z?6Q1[0ZA7&%J273$WCEFX%-L0\ 8$JE:?M,I^"Z2I"NP"A E6VH M/<-'X3,,FHY5T4[9#_2KZC_/$432;?&(,J31D+ /K\P;C\46E+T9;.4!R@B\ M$*#H@8(<7))(:*"@Z5P!UEULV]SW(X?B7FK@#:!,%>1H ,99?Z!]CD$3KE:Z MC5*5JC\HA4#3DE'I4SL-E/0#4%KIK?,L-[$-&M6VWFZT0;-%[8[P>D3ZU!*N;3 M&QJI2%EV$OAOHZH;56--DZBVRY7J;2913Z5^63OVV.^Z5F]5]$JK,G>4MUW; M:KDC#4N_>5S83SH96)&8?0_&Z&K5!)2X!CGLC;LPFAK$GEDE)L13_D?S< [+ M&\NQ?*V@+$_WQ<@94O\*_O?>4J"&4D"OU>S\F!QFW7DX,3_CP)S37194J UU(J_&MJ@X#T_GOR MO_.3_?EZJ0?VNNEF-%S^U9.7Y^B49UHJ;6T?)AJI^7()8&;7-6^Y"N 5VI>- M1>J09%8+SAI-F=?H7J4^(CIC&J=(D,QB3Q:>8AV%Y(7X( \0"<_1C"MBL944 M;$M19L:1+[Y@$*/?9) H16GX-;.FBY%@QZ:+D6#'IHN18,>FBY%@QZ7)38P]%%]5D M4]%%EF/UEJ)+\>C2*3>JBB[%HXN28\6DBY)CQ:2+DF-%:A9\8]A%];785!6Q M>QQR6T%?BW:YO5ME&55CB]L6I&_<&3SUH.M@*%OFP4'6P51WLK:^#_0 JU9W14:V4.[LG-7:X'+8"S"8J M9]]-(R]8=9*/)))J*^")E2O'9F<5GL5X(L#QGK_8U9J?.7OK?>+Q!9O=PU;607L-+@"I&-T>B"S6X3=10Q M^*N0_1AIKUA@ZUE@^P)>)SD5?[;&3UTLX-Z4X+X=M:!O.M92W*J\K)+%MB6] M* PK#*<8KAFZT5EI>7*%X>W$\$W'=\+3 MO!UAL24[S;7U3F>UC1H5!R@.V*9MKEW7&YV.X@#% 3L70%YN#ZCKS69KYSM MJFC<2AE@.X)L2UKKU1IL 17% HH%MIX%[JP%=72CV5R1L;])\O*^7RH>O0MQ MD!5;+%NX-S7T]HIW)H5CA>,-.)KJ>JVR6BM# 7F+@;SYZ/2=!7+#:*C(WI9' M]E9L!&RCQE]MZ_5J2P%9 ;D@0+ZK]Z:MM]K&K$3>B3CU(6W$3?N!7_-N]-AW M.VGM[7OS.\RJ6,;:8QF;/OR_V6C?IF>_!F%2:ZY6MU/LH]CG$;%/L[%Z7Y5B MGT?-/G,C[9N>_5I4V1P]5@4AUQ2$W#2 -ANDW/3LUY.Q/)NNK-A'L<\C8Y\[ M[C[U9LZ)E>U+ *#%W9BKQ'D([\AC$P>5F<+C-4"_[IKK<-?IU=IJ#W\]UA#P MQM'Q,,>8-S[-M63_&WJCO5J-2+&!8H.MTXC:>J55S7< _!V9,+U5C9[]B0]Z MX40P"XM](Q>CY_.I&IR0X@.W[_?1F#^5RK:G5>CVLEG_*U_O7W$8.;T)^\KQ M@)VB%]7V+/2D$>_GEYKW)N.IWF^5Z(>$*#],-0 ]8 !N/ MH&%!L@^S"<#"'VA:OV,GH&7U(]/K.\@I3'"X M40"+%NITYJ9E!43<;SNAY<=>1'-CP@$\O!218 COQHH/0W3]T$EY&3>11(LP M)/P2US&IW 2ZE L#I@6]"W(!-39#[6FU7FYJ,%H7%PEQL0R^AB,S8,OOW?*= M0(:G-:-0^FP!E 6F))V_) 71)-";$2][)EL$.',"/ M!'NX?61.&":&IDUPKG"%[0<, &0X#Q"%[P(9#(]))I0R;6:Q;UZGC^F-E+JU MQ#7I0%P_Y'0KUV]'ML)P!L)G:/Y"J8?RP>G&$1*2+^GM^%U,G042&?%2@\21S"2+^*_!%5 M.N@@2JXY\>/H1<^Y)G;>.DN->=E A<*2]?WSRZB.\<^3O^6?[C6-*36,#A F ML$#?;,_H5O_O?YUFJ_//M(8WI8#)JM"JM!C/#X:FF]%B^%=/7NY9?#N"/94X M5Q010@I0 ?;42 6>+@DG.Z;R:$IHA*:+XFCJV]@#X+KP/'/V;:%X4N0,$?# MY'@Q?-0IZL6F"G?X?<])=OT!S(,$R5X;FR[NH;XCGZVX 0UUD.:J6J1@X' MH?2?P3Y3-1FTQ4-I0W.V*5+2E^!1%D"2!%?X7TGKG&(_EWZ0&)R"GK)J*9J, M"+L@9/PV=2_?R"/S6GK '/TAHP^-LFN5&7XT< *;/F.BA7XO&L-F#]N;Q2ZD MX5#7C^U2&'=#*W!&E.FIYJT85#'H @8]HH/+"(.'0R1 MQ,"G)@8?C?#6, ^E-HH#L/?A'>B0*<]G$-NY$L208$NE*=#J;_CYX?W><_Q^ M,V[O9U]XMU(M+6A;0 =XXK/DS56Y,S;/4VETRI55>"IE%V'NV]#7U5[2+9IQ M]G"/%P.&!!X+E)8 TB#*8%8PT60A-LZHD#9UK]&7<2_$A(T*M*HZ;__)P\^ MS7 M\5;*/)(ES6K <&I0J=4R3*,>%V25HS+SY)+>H U=IOXCL:_DB_]D(J(%U2R.5<$GY[/ MX$:UW%P37:88H992X5]3&P2D]]^3_YV?[.?M!#<+\W.ZGP-Z]^%7ELC*)9OY M<@E@9M=U9KE WRAQ.L,.VUY3S/(.(N3UDMR)\N!&29-N9I+-+/8+*AKF!(Y0 M:#0ZJ=#0LW?AGDI-!+XMHD@!030B:(?3@,+OV!GA;_1)U:H4(LD=DQ\'VL'K M8WKO_EHO-9+E%F9-)\;23 M9SVW^+YP@.Y:X/?()8(#D1V1,\=F8#/N>EJ1 N6"",#1PNRAX@$>1$F&[(D& M%N9$4.L(GI O7Y[*M$7/0T:FX7,6V5E,=%R3P'+X$.@U/O4P%RB+8ED$&/=% M ,"^<2\J:4^;ZP'17/*W[D[^\.'H?PNA_YFOS"F-AYP',$Z312<+@\?/I(=) M);[VT8]XTD$5I ^FEAB5?\XB+/K3=RPZ!8\$X< 9:7O]@##2CIUHH.W95R98 M!&%$:3!_SO295=YY%BB$@,2WANP;& -8%O0P(WT WR!-5SN+X N&NF?'\(E= MWT8JXUO8G\?'&GVF$VI[GH=!X\]D!$K*J57)F#=(MK9@ #7[ 4!II4,DU.%10#4-Z+9&&J)M(%Y MA8%4RN2E+A]Y2$=N2B/7,QHD9AJ,""4[,#C8B02D9,0U@ !SH(".KD\]A7X0 M^&,0A_07FW0W19E]*5/AI L+9S(D;88F>:FKF*'$$H1HCB?SS,=#W#C^X,*" M=+WT_+&72;KPI:F8=)O(UU6T9PYRBQ^'P";A\UMG(+%9HD^$.P#066 Q)X/P M:%$'C!E'OOB">5_H-QDGC93YS*^9=8)%@1B8\#AP=_]=D[-KE7+-6)1X+SE% MI%?Z\!K,*Q39\>)OFAG]@GFYQK!T-WJ7I !(2!@-17N.;#<8HNFZ%+M5Q7_%) NK3*C;JB2_'HHN18,>FBY%@QZ=(N&XI? M"D@7)<>*21*21*21*21)!";@]3R'3NT97U M+XOEN_CE?T^JK2=W7*-FJ]R<*0.WT1KPRRQB=^X*/GEYRO,)64K)0+]O__MW=[HPW%+<=>=\C8UC37'_7=F/9*H@G'7H$*[W)EIMK?5,06C8M05;M:.FTZYV=XUW#04;A1N[H"; MIL*-PLT=<--2N%&XN0-NV@HW#X&;WU_\S[((Z?4V M:K"F/1A9/Q2Y<,TS;#.\(C8IV+0WTFNU>-1?4;_Y^D8FMHY^JE6]56FNVIE; M,*(K[*\,^RR&L3/8;U9G6PDK["OL/P;L5VH=A7V%_4>(_4Y5:3P*^8\1^8V& MTG<4\F^5:K$KR-?;1FT'\BU.DY+\LM_*6)W?ZE$R[X;=MHO61'BL5^6V*HZ' M>G6V3$MO-%K;EI&H&*'H:\)5OQWDF)9N="J*813#*(99VEW643N,8AC%,$LR MC%&O*W91[*+893EV::[<+_>XD%%\;EF9'<_=3 6C/0-C[SM=A>'=UHSOKN%?LH]EEQ2'?C M,U\'^[3U3D5%?17W*.ZYDTZJ5VLJ6TAQC^*>N[G-P>A5W*.X1W'/G9R"AN(= MQ3OK3N?;^,S7P3LU0Z^T9MF'^A+_CDR87J;)Q)W'#VR5T$XL(?T&_A3=,&#A MR3"GST6V>87<\B(ATE31)*F_QNSC(G_THE)N$N$(-1KEBG 4 Q0\DJRK9L:1 MKU6T"KY7;DA!%R89!<,%C, U1R%Y(3[\LP*8)XYK(_V*CA_A@(,HN>;$CZ,7 M/>>:V#)"?L5AY/0F\N+Q*7)T9#W%_+(V_O:W_,.])C'%>G1X,/P%8J<]PSST ML'&6HZ>X2\;YO8;+_L0'P:B"H>G^(Q_XYE\]>?F9]$B@ 3(^^A%OK=#0_)Z& M0MBH_(/?\M8+<,V^[]&(@QD16WOM>*9G.::KG47P!6_2 '=5_]&>'<,7[+8V M/NW4#"+VY_$Q_AT-G%#;\SRLY?69C/P@>J[U_$#KQ4$T@/'83FC%80A0+R?L M/,/*"K@/"%RC:,#-38JVX!\GC!!B9C\@#)2([I&XNN_[=JB9'DR#!%>.!4.C M11, T(X'N(3G!3 M,YC P^( G]_3NG'H>"0,%X"1R5))GELN,0/K OLMO$=P'; M+/F7-[29DGC9J):;:Z++E))72ZGPKZD- M+[[\G_SD_V\WCH9C8XIT(0,(KE M$1'M"43-EQ*)YP$SNZYYR_7@4K;R>(5LK6A"]ASD(!>^T#58)FN@ MF0'1/#_21O@^6$U\ PAO$S2!OD<_>1-M9.)*QZX9,(UB G .-3NFEZ( =SQ0 M(8 5TK='$Z9TD.PPRMH9(9+BT]D2Q&7:_5[4;CHM,RC(MZQ^Q= MF(UZ_:)%S(;=ZAH-VZH]88* W8%C:^U]BDTOS 26,YZ>V VGZR&T]D*C^&$L5 M<2C ^T$/ 18;T6D@R(=L"@%,0:.B&D )7X."X_7A4M6]$LWW*?NR2R 6N&7N4Y\COV $F"@%O Y7 M!GC#&-E_1*P(AR"NYZH4OC,DA/)Q+XY@^&7M'#D@A3D5+\"B5%Z,S< NN;Y_ MB?,/$^:"9YD1%0YAW/W%7X6S9S-+V=S!>>PQ405OCMT(5<+8M;4K5.B&\, M^!8F9L*M_!*J+&I>/.P"_\'G'L@>/T!=KR"P^-=9Q 3'@M2?8784UL Y?SN< M.?:HK#T@%L'IL>]J55TS*D9-1]H-3%NSS'! 5Y)^0%I?F6[:_@K*/H#:80 !H(\I*!#K'+O(8GY2)4Q@ M!Q!.1X<]3*D9T04)T^O!#8SC$.JX-3D]V*S@+39!HT/K3BCZ";V2P2N,T;G) M6139(YD8IQYP HX!=P00 8X/.-8&DQ%H:83J%7"E%=#B93DW,RZ'%X'RP]LC MFK 6\#0'5Z87^$,Z(B$XZ.7P'#9"3N5H/DSH:EEF#&^G;&TZ 7"4&U/%,Q\: MN#PVX4.&!0%)[@P% VKF$&R+B._Z*3$&)HAL:4$!#TAR52V47D@-W5'^!6!6N=JCB<6Z^0B@X5F82S M5]=T854814'..7X<2E@V+0O7FM'[&BZCP^D1T(_I^X"U8K1^76?H1(P[Z$=* M:4XGY%*XQHDRVQ"B/Z4(LJ@3Q90H0&^"^& CP >QV\> E &UI(4^EGM_J(V= M:"#003BLZ%*QC^RI=)U 3N!H@*^ A>8\KSA86"S*7_,M>E]LT3CC0[%-4]&. MDEW;YSHU CY&_%L$Y"MLLFP_')D3]@Y0O4X7L]ZO; _13&[ ]A MR:+4_>'Z*&V$EJ"CW '=7M#Q, Y\7?M!//JFSQ]>X88.0@AW>@ SE5^4+<70 MKH@7\W&EF$2AZP$>J%H&XV HES;W&66%[O9E[3659$ @JNO#?RE74&<'SC+G M1JY5)%8,%4P QMABLDP&]&(5"7:!&%4+;L' 99P,,[?)JXK;6(3*!Q@Q)&(+ M(5E)LMJ%XG6)\2-50]BT8F:CHP2$7RB%1G$ L^%/#;"1@HV39,^=>@S(^U2. M4RIJ5%"0 VL"3>FEAN2@]I4OBB@JAO0J$M\'80*= P=O2.Q/KAAZH-''$2CB'H77#.%7*5BE@.,=8\1;YH$UE =6 M>6"7\< 6A+^XUZEIU6M6QVA=M!J6=5$W3.NB8[>L"X,T2*]2:1MMVYKQ.K43 MGUGJ,@.A/RJ7,Y/0#LS(?'"_TF+ZY@0Q M;T=RJ]YKFUW;N+ ZW=I%O5JM7K0;=N_";+4:U:I9K;3L:H;DS+,9+J3H'AJ" M,.$WQ+VB)BY.WO3"TAVKG#=3GN[>8\VS!=$_'YZ>?#[73EYKQQ\/#D\/X9^/ MY]KGPZ/CL_/#SX<'VNF75^^/][6]_?V3+Q_/CS\>::^//W](2JBO9.K3#M/* M.F9ZSGSGKWS=4"I0#\8PWCD6Y<#N)($J$&L97XKG]+IP6OMS'>92:EK MQYY57NW <[B2SZ6Y3E">C!R/VEC,8+LQ-O%0D\[SZ-\C8O7DY3?N\##!_J0> M-_1(6*B)F]X$%5)+GCIW@VCA@!#F#YV@62'X=36C0]$'PP4A,F\1'GQFNY-ZF MALUP%) !Z.IHT@GMW?7#$%3W4.(^?'VU]0_WR.NIDY7Y*-$X)":8!B+>-4"' M) N1<0.?>9O :$:#86;XLZ/V,!*F/<-0+T@$&)X+YCAF#07<"@Q[G&TH.6]%QL3/B$!)?8T)=E9+"(<&1]"\Q=@+=8EQ9QZU]0- B3-"/T^? M>-R9![^3D>3,^>)1QJ&R@ Y\;P@OM!Q/XRZH=0GY]](5/;D"_D)!RW?!9YG5>ZX]XQ _W=\[>25@K,M@ MXLP9"H^;RTQEW]4P$B&!,: *$G7/YL-/!W$6HM<;,! X%-H:"3'^ZX!\H_05 M)'3NHV'FQ))PV/MLV'0^QC_X=3]@^TM@#LG8#RZU9T:EBOD*SOV(J3EA&*/T MGHB%!+1'A!I49R.4!@&E3= W/>>/F:0/X,7G8._:8.:RNV@XD7$K1;5004<#CK0&J M!'Q/[J(.81/TLN->2>_@&Z/(DA$"<([I;>GPEII'R;/)+.:=NW)\" '2=12T;BY31.'^@BT71$]1!V!$01?11,QNC0T@>%7WV.96B!G _IJD^;!C >$>HJ7T[H0 M8+V B>5$U4+:B4OTY($\$POT0PP_P:X7P*@8:R4K0=/%DJ$S=<:WB$T#0BSC M"[F-,C'-\YCW6K%H-\[@AO'I\E).CP=7G$D%FW$/4H9'I,YBT/&DBY.YD6N M# 80=&1U4XLPA$G#\K#W7#G EQ;R;-\,DN :B[8R'K&EQ"6NS-TXQ\PB4Q4I M'4TV')NO1\9L-[0S.0T8;AU2]7%HVC24GPI,'=67,0'U&_X[]0K4>% QY_JZ M*>O>2\SDFQP',B.9D6"U!A[\#TUYPG842RRR'\&DSRD^Z%(9^%Y:L*0 M8L]:%F)Y65**ML]S*C%]A.D%O.3)")[ L_R+!T MDM&62#7^Y"5$,;SKF?$<4R%\H"S;8^C>SE+;8&\%2]WK4]'#8^I@M>LTFPDV M?9=<:[]BN\\9C05^Q10YD^;2)]1LG[ 8J^FRB#O- 4$-7&(ZH1@M(9(C\Q(S M"9#&XX'O$B:%QT0D NLH;J3!)

>BA@-&Y=* )A&1DTL ]'UB8C"SW?A0= MGBP=9XGF\[@K7#3A5%Y"Q*PS8W910LF<\UXT(T/[3"P?A'Q$[0'G836M%0F2 M/0 D"8&876808\JV9BS-2!G+'9X4 ).$(F.%"9D]L(4G,&7&=)(9_,,AKJU] M-H>C,K.5:0(!U>DLF+0_1&ZQ,.>-;MXJ78,=,+X?$@Y%>B M0=OFV'I-Q=95;/WNL?65B;R\%,#[B#Q0A\@U"2PGS+C,A"%O$TS#I59'(LB" M5-!3@2#DDW1 4D[RDQ\A+*:Y0BISC#(CC.:(&CWS_-3\=3%W,P1#@ELD<)?P MMIZ=G:8AER@":1]S18RZU_-?I*?.4O&B$=WEJ79C@V$!ULDD==+?,&XV4VX) MX0-1G%-HTJ1SFP<"<,&\F1FF.;2"))$OJ/*'T# (&JRD.E,T3@1&I:(A5)&<6E$.#2I&](:H.<@M7 RBY4AT0 XWP^H M-0"JH@E3!Y/21E''? LNC;)*1ZL22J-*I6N7GC]VB=VGNY25H1"Z8&&H X\Z<1ZRJ2WI2EXYI9;;/6VV=+!Q/K8CT7.WV M[D=[MAU(LH3+^L03F[_AT/6>RU=,I?"0/&A!X'XNGD&=JCR,ZR:F*A/%I"EPAD6\R(5ET M#/#&PE5L*V*F'MWU4*#>UJN&[G1N9TE 3Y5\H0-00:WUT.$?T#V/>^0S'C=F MMH&MQ#SUM>=91I\OY*C,0#T"QP;C!G&"S MJS0+3WG=<*-GBR",06^*!^X!\7P7@\ZU&9X-RT8P95),KP<' DER-@(?= TS M2E@^9^(\LT,*VCI!'DY@/"Z"3J0SP%4QJYF5@%X7X\MJZ)(_1!8D,%M8O##U M+W'B<'$[(.B!H=HV;O:F-9DS ;C$DM-0$B83J2MAZ%L.6Q6'2=N9 ?U)$RF7 MD+<9X..IU,RRS^ZK.8/." HAS+A@FBI:E@00Z9%'W[43-S_:[V,\4"FEY^@Y M?@OIV4L[EY@EN\#^EBUO)AZR0FX-X;*%!V'^#O_6_G6NL13FQYCFOM)9PBV? MT3-]$#.VNJC"_\.\RXMS_Z)J7-3X7T?NZ<5Y=^B\/9Q$[\BWL]^31O5'_XGF M@2+ZWQ.;."_VF++U$;YX0L^^?(2MX6+RI_^].3S^4;HTZM'!T?=C<\^*^T]> MOCK]H+U_?_KOWYDA[>12_T85#; ,I&I=I^P(( 6[#@ MV:_#YN'W^LG[=\/VB;_WY.49+-M;/P19MH^I MNG[@.6:!&$FD&+/3@B+/6!V0OGL0MZZ"N"J(^W 'I&?2;FYQY/3.YT37GC3$ MQG?+TYT/,2JZ@NUD!;-G]7C)1'IB+M+K1% M>YSA%Y&2#,#WSZ#*_H)#^-!7E+C*>%1RFNSUS6,N'M6Z,.YDCB9WIV.@Z../[G( ?/8TZ.T/@ZJ#H$5DN_R# MH$4]!WH7-L?34U(UVGEZHG0N\5;XI3 MRB\(\=PIBW3* 6$\CIE$#%$7(!B6Q_U8!+**R>"$N^WNL5YP*FMTVV?>\N^\U-%^1IVIPW+)M0ARIS943V4/*H&7R M0J0T]#IO]Z=Z:\!"DN)0X8U'&ZDN?,UG(XK9Y@G,E=7!T>ZUG!YO>\+4UR1W M@J=Y9\Z/8\++2/1"\7DX&U_EL>A_C^?!LF.,EZE8M 82 M*O&&]I'^7F^IU^BVVY:$YX5W$J*2D H_*QTSE&.P4!,JU+G*@A-BF[8ZXAL_$ M8U:7QSX![$P7<\N%TXV)LH9%DOR*H^H2ZB6$,=M@Q>'IB6XZ]>P9(Y9(%E)Q MS?9=:FKT>0T>FL7E9"W(1/_P,S8!OIBFWCD8B-E(!E:2]O1 B2M;DV*3G]/R M&'-8T@MKN122>YCWX'^5RF[LZ4VUIZL]?9D]731]--N-:JO=O#!J1N.B;L,_ MIF5:%^VV56V8I%WM$-'T<0-I,2*1X^3]E_/CDX]G(I'CXWY9*BB_#[^Q>$?+EA++ M%@=[1HU>/\:."B)U!CM] ;S!\&8=9\+G-U0+6_<$9EAJUKEWCPX%#4(:G5K5 MO@#%BES4>[W:1;=%FA.OT6'\XV4G'!]V#EN_WEW& M W)\_.U3]_QSOP]7-J:O_/9GT/5.3^/!EY.WX]JGHX/!<-P=7]0N*C/CK$T& MK9HW>7VX_[,ZJGXB[MNCT_%%??;*GXW#US^ZUYW1XH=__[AO3[Z\@FNG)G1^XLWG_?>?7SWY_#;Z& T*/F_ M7ED_]N#*F1F9E?V>_:8ZB+Z<]:_Z9Y^OO]3;!_V+YNS;V_ONI_[9P='X\&C/ MOG[[_>TG\]#X=-&:O=(HO7[UXZH;!5_BX]>GKT[=RAGYO7?1GKWRS_XP>/_# M=HZ_O'OSZI=G?#YP?W3[%YW9*YW!P>O]RLF[X-)Y_^']ZX^CRO[)$.A>R5FF M4W+PWGA7_WDX.;V>'!C?AF-R I=69R\]_O;*&E=LTSLL!=:WPUYE\'KOPQAS MHF-UMZ/[Y>D-MD;=^+3LU(;+LVA_I/[F]V7\[0?I MG)F#^ILQ3"N'5+;]=73ZMMYZ4SEJC_8;^U>1\^J$7CJ#E,O]COG6^/S[<\7Q MWM>N>OOU2N.,7CH#E=+ORO##1^_X\K!Y]N;H9^4/^7J,),BAZQ/U_32 MF6F-WDP.!V9P>/2E^=H/G/=7?RJ?O\*E.7"Q&S_V:\-1__LA^1"-1E_Z]<_G MGT"DY,"E\NO'UZA[&8XN#=LZZ\<'@W='(7U5^O[[\7/U2 M^=4?O(,!Y,"E^M.WC@Q[_+,R>7=I7;_ZZ+T>[.W!!IQ#@GHOO SJW=&7YEL# MZ/JK]>?2A 'DP.7KUWY<^E8)QY62W0]^_;#>_+XHP5-S6/MKN[=W_N;[A\^' M<6G\K7/]ZNS,W8.GYF!@7!J,G._N._-P__VD$[1?U]WJ;UBL' R<7]3&M=+W M^NFAT3MSWW\].CVX)"!6DLIEY?K7VY/&U>]/>(1AYM)Z M=-+Z:-KM'X=D4/_R[EMG_/U@")?F4.ND]&K4^C6I-2\G/S[5C@Y_'WX];L MO?O;[0]L; M.'5X:@ZU7K^M_/KPYT\WO#QJEGK5B\MQ&$1[%[4<:I$?'\S1:?7CQ:5SC_D4MAUKGG=&OGZ73X][ET75GO']D[OEO [@TAUH_?K^*^T/O-#X\ MBG[$MQ?P%;<#V'6L/O7WY;4>_W MAR_DX]?WKP?'![_V?]!+9S@V?E,:7?\>'4P.225V?W[YW@V[P-SUE&-9[WIA M8U&#".TKUQR%Y(7X(&L\:))P.PMU=8OI^$)OH?:/&4>^^((9/_2;C(U4H3:: M;"#-VJ!1( ;&7UAE"E1D)]YM$M CD%S]8EJ3L/&:Y6K]+UGWXN\3>IAD@$C/ M1U\:IJ,)74O\71H'YN@%LRC'L$XW6G):W1 SA,E#&'65O93L\G__CNPEJ#!P(E*"!UAH+N+J\5D;Y6I5T:5X=*F6#467 M*E76YT M%%V*1Q>08X:B2_'HHN18,>FBY-A:Z?)W%*#*O#+U>!.+('M"EUV'M>JB:PZ# MW;PLMUP%L-CPR_^>-)[<=46JY582&TO\T*-KC28U:2+J5K E6Q04F&GOSCXD M40#%/;O$/8RXL__FLXEQ5S;IE-L[Q21X?"[+$6O3BQ4JBK0R-Z'"6(6;;XXX^5 +KZ<'5Q\^MDNC2SO3Z?R^_/0O_Y#VM^^U_:>9 KV[H47 M)SVY0N_;P][W@_;72O?RR/MR]A'6JW^X_^F)9A/+&9IN^-^34NT)[41A1O\] M<:ZC%UX\M/V(_RY*^<9AJ6^:HQ?(DWN>C?\Y3!ER+]HW@P!+\WS%)/0G6@B4 M@KMJ3Y*DX<-7A^'(B/[+4/6IBR7'ORLM/6.ZVV*/$K5F)USKJ" MP5MQN>+RU7*Y#P>#XN/_]9._!N?SCF\;PX/#]AU^5 MX<79#R]R#K]_Z^%Q@^:3E]5J1V_B(<.Y;+Y-%BS34,X&?A"5L-L%]@8B831< MJ7KR&*743MA&F[<3=D#5H,QU#KQUG+)6CLSI_YZTX^C7AXLO\;?+UT<7UV:_ M\@:/(X%F46OJC?HBD;/%AKQB4,6@F]42EF10[^C]S]KQGWKWBU%O]!J5CU?& MWO@3,"@J!1V]T6BM7"\#CD'2E9HR:/T"*)V*9T3.M[T/YB <&: M?%A=F"@WQVX;0"L69H_>"EJY B+8]G/"M1])Q(-6.7+NLO0N&GVY>'7UQ>B- M^Y7Z>^=[Z_?XHH6*2+VN=RIK5$0*!FW%X8K#MT&#N26'G^Y]-]_:GTJCPZ,W MO7._<^*]J[WJ X>#)E,W]&ISM[P;IUC0T^%%,T,B-UVU,J%[Y?"XC\S:<$+E M0PJPXN2.%D":K5Q?X?QZR-AUS[-/D%?W*(O.%VH?+LY/]U_]:(\NC<%INU+W M+[M_KK#T"J@MU99>QQQ9Y3]1_*[XO6C:R]WX?6]_KUX[_'GI'I*]+U7;OOIV M-*3\CNX80Z\T:[OKCJ$5Q[!+8H3U9=>CPQ1FLLH44Z;8]B@O-XFM9I^)IQ=-%4E!NXND_\8G_JM3YVCD\ M>G7QS:V^&AZ=])&G:62HIMY0P<91$>OI@OFL(XR9T5"0&4]?@O+@5IX;VUXKQ]6@T/"2&:_9>&\>MMZ J M *=B[*6B5UNKC[T43-T]29I.NL0,L?<,H*+D]TK85X8Y,5:K2A1L_LKJ45;/ M-N@@"9^^1S;]C#,\Z7T)";6&-;^]_QE=OOI.B\]C MXHC>,9K*L:%87+%X@927V[+XU[-#Z_/OCO7F2_/XS^F[KZ6/[SZ]'2.+@_;2 MU"N513'6[?-S'/F^/79<5SDUE*GT^$REE2L4@IWR@5HZ,<&(HK%5>N7@=8P)5NZ>?E[ZL/7ZJ'P],HN/RX M?QS_\2A78F"CKE>-'?8N"66W*+ME\YI$RI4L-/N11(?7 MEAOC0BZ09V>??QR^>;,?7Q]^J_ZLO?[\]M/I_L\];&3'M(RF45$N"L7JBM4+ MI)[2<[W^??(A=C(C6J.K2UBN-QDZY*@Y(CP0!L;7( MO%Z+IO(89=4.":;')856KG (]CKV+'](SLWK1!CEG43Y>/GKG?_5B2MD?# 8 MOOWYW1]]_81-<*F:L:A,@/)D*"9]+$RZ'+G#2T*J7_;//_^<.*U2^/4/Z"@-=@Y%-ZKJ&(J2#4HV[))^M*QL M^&XTX^.++R>URN_S-_5Q\/GGP7%HXWO<_#AIF/:A6?&K[WY==_K.KSYR-*@: M1JNM-UO577?%/#QO*P]-<0/2CZA98+&60;DF%%/L*E,4TRA?8?/G]\=[KX[? M_W_VWKPY;2?;'_[_]RJHS+U/S51!1ON2F9LJ 6('L8GM'Y60&B&T@1:0>/6/ M).S$B;#C),86T-^ZD^O@CE"?/N?39S_-<9,?%;A>M3 :"Y5V0^A4^>$H(0I* M_Z? #\3F>/ZF Z*ODAE@O#4/\=9G]G9#$SHA@]X#@]Z$"?8XP=G4Y91)=?"& M8YQSME>H4KY3-.L*A!<:2Y"S;Y.S\VGQG-_'3\.5MG*43'" 1LJ5ZH!O%Y:X MKZC#Q>8>]4\"]4+_SHX_0EL[@N7;2S"3ZN3TP)"#^)W2N&*1I%Z*04 +#4KG M'4CGQ686_5(Z?4VAR@37<,5@T1*=PXZ5G1:72&>:CH0S;]]<-S<:W3?5P V M&A^/E8Q(D-/C37KONL"4_?@72V"#E0ZSMZ%F?\6:_0UH'+RU-9T(@.%)+CO? MW4G/PUN[%O66E;TSX4>;-K(0J'9U,8_A+6V;AQ)%!H%%Z5#.H9SG27?Y$SF7 MQXWR[,@N;417#H,EX6(KD4KE/*E(IXKLBX,_KM*?D2HMV6&+3[SLT,EQI6;4 M#06Z;D#O>)"U5^&041:F \#7!4-?S,G)W.E;O8TF8=BI32^%O]33"SH[H)3> MBY1>PN/Q:BG=JQU2[$ZT4(S,Y;955IOFMIE*::PMD$62N>&TZ)/^\/.8@"=: M0R%-Z4+_\TVCV#IN0@+H_H!F$32+\C(QX!'GHN=1KM?T,,];4SXO8.L:[O). MQ(BQ371JR%-#FI!H>X%,C>DBZ#J$O>F79H-$ MQA._1Y% ;V5FP$EM^=:(SP5[8 ?OH*S<(VK=$$3=%QY=K#/?\"1NS^,0%C;I M^IZ6;#% ]&"'F75$;L465=J5#R.+-'G!. N442BC5R.C%VO,]TL9K58&^E(( M=@)2\J+UON4&-7>2RFA2#DX5$?0E@^ FW!YEW33C+_0*NET H0(\K^"L8F5" M<30[?L!WO0(Z.V W+MB-Z_H4EZVZ\KY4XB]*WG.J^^M*X,4$!NXW6^H1 IHV MGP* L'H SN$W%#CG2[%F^,&HS%8BU=LOFF/\.!;&G(21#[X4&J:10 B!$'(+ M>M6E(&32\-GMCF,]@SX5 M^;+T2\8-](] "8<2_D$)LZ^5<+OC.E'@&6U>%DIM$"V:45_6$@E/HD=%"KL5 M]\7I*WI/AC<]Y)0DH2+G^;Q9Z-: 9M/]F4WOE>;Z(C:-VZ@)/ H?\FVNUII6 M9+E2,V,KBGFHNH%3(:&T0FE]QX35%Z6U)'A2U)R5ZLB.9V8-O<2H1H5+I#6M MOF'QM]_"8T'!0)\0'BPVVI3+^##S65#=N]R/-%JV.B8C6R MU)60XD.:-,(B-S,M\FG2"/2JO!&TW1&.0=!ZIV23,R@U'=2:2G-5(9!1@U-H M"IM1PDJ3\+3%*X464196_T#!AH*=0VWD9<$NS;%^FZNN*H8LE]KB(.S/-2T5 M[*0[+%.DR!LN&3I]1<6Q+-VW0-(\/NFVEAQ._ + 5I)>*?_L.3XH4/^"3AL8 MS+[:8/8SVX7S3"!GWP=G7Y.A?/J*D>\HQMHQ8]7(>QS!"'9!PL#08H:1S8^. M;+[/C0(9%#)H'B^&G%WQ??>Q:Y*7W!K%PO^\;*-6];VN@M1"]=:R"SS)!FN_ M;Z]G/%^O3-8-4]JL^J'VUQZH9J_V&Y;JMVVD=U]?=@4WMJ9]H$YD,P!]X(Z2 ME_UFQ"(G([8GNZ[DDQ,GVD=5PA (!ZT?U^IR:W&?OL9D0A TZT(O;&6WL$\> M6WRM/?] J;EB4+6N@+8-C&]Y;?<8--G^WU/JMTSZ'PF54L7C G_MN.'4ZU)!L#.5. 4CAMMB!_>V@^R53R@)*0ZN"XJ@?L MU]"IZ7G!,S32&^*T-)I5:7''^IHJ]65,(6(:V-Z62>/GD8 M]_WPT:>O3N![R8G%,/7M_GJK:PRZ.?)K#+X_&7)I-9YQZ[Y"?/FQCD\0CB<0 MF8X.=--A:PHY^ CQ/35%Q/YS"=F%CAPHN["<&.+V$P?R;792FI- M/N3J_97L7I^K*@F@./9UVQZG/?R^X3%&J>UJ$7I.?"#RA MTJNL#DNLSL4&;](&$ UBUAKMG+4P^/251EYI=OSG)T7[!DCV@@$R;OF'>F,C M;8V*IOL6VJ@WC7;,3 1;I(EL'/9D=ER:(F\>D/X=BGA2?!CEX6+ CT:!>!P< MRET)C1F(8(H4FFUL4BS$C]N"^"][8$;?F.>)M7,+'"1\W\Y9H@V5^:%L./(. MT1%-C*Q252?0PZ>O.%/$F-MEHU^1):C3TKRYFRW%>ORDS<#E.X26D(4N$GAV M'LR/O 1C+M"E_=$N[1O(,GPBM*EN=28C26FV5IYM>#Y?J?4WP^4"I;O*0<+3 M1N,4S#*$@@D%\Z*WZ7."*=/W4#.L5WR>S'@MFT*R>Q/(-@0 AH M+&H-/:3-[H M; .RT8U5B[3'-T'C18Q]J=H*>M6A>$/Q?OX$;G5SO!=F/#\;SK]&Q M_+B35 %]T$73MSOKR1%84N8'M$H@]78?GPQDGMF]40J;C;G5#6*Y7&7$MI@C+9?BL/KE'HY(*V=+YLZ"O^\,GWT M![E]SIA>S(Z5>6N'#7AK8@Y8EO)*=#,VIM.V[2B!%UDL&]YXHR(TZ.R" GI% M GK9B_4Y =V1I="F&K:*M.7Y8%ZRB9&T/R0"FO3EP/$BC61#:?^Z-:>7H@16 M8":I$#&Q5[JB^]#;!X\? M>\X!IM@;H*'&$)%'_4 KXY-59-K$G66*")$UD-].Z<@9JT.)AQ)_!=K* MWTE\!5TI5'6\._"15JNZ',;NF$8J\8D:@Z!%],S<[K]68_*BLSAI&U;%L;8N M6 /;T_>@8#H>[#GV5_@%6Q/EH371]>LR3R0U;9E8>2JGIZD5G5A8>\ 75F,Y M? GFYG1=*7449">.VNB.IQFBLT(T"6=.759Q)ML?'CI3( A $/AP]>8-0<#0 MT'E81] 57ZJ:5*!,:TK9.B0@D ZP(2^AZ>1&F?^AO:KW;/,8Z+Z!O:5A;^GK M379ZVA:*3R7Z#!"JG0"I"VO1,^I[#6G.Y$IS6HV-OE//>8PILL0%$ZDA,D!D MR./N\X4,;ZY(O0X92OA>11=5!]'+4K29\DTE)+0$&1(5"46*"'HK4_Z>ZS>? M9@.]@X)TEYCW@XCCL8BK3K T02X0[G\N9!%^P#;S!667[$7/V>JK@&U8(JR9 M%M 3H]2KL.2V=UPU%@>)2!O48RQ21'%8.P9E'*48O_G+*_'; O>'=T_5J.=?_DG3FR0K7U=^:'JSC$\R M_ABIZKOO_XW_N/QWRDFD-T$3];_^?$P\>1+'D 30?[W(J#P<&8/N\*( M1SC\A@C);-QO;YW^^?^>OOQW2ZVD.*;C?GD$MB>[6I^.$TLQ3@.EI0MDHR2O MXB_^(IL'.?(>-7[V,_Z(F5^^86-"A@**?,;)_RT\^3DA1X:6EAR6GE#L 5)+ M)EC%O'CZ9X^?I7#X[4/'2\M$OKC E)-T]N3I/SPW/1C?V7[!T,_4A<[EISL) M_WX*_Y4+:S9>\3+?O5 M6F$D=,1Q4^B-BB?/1;-7^9P2X;2)2OP;H=.L.<1'\TZYKU-&O>EU,(#-D0G#25AV93?R1NYJOIR* M=75,+_PN1G2;6KR2_'DESX1NT.L.^P:&H&VEWCG:_BI9R?R\LE]R[ VQ[7DB MME JY'@<\"YRD' )R3RSA2W7B%%7D>D80]'9;M(Z+@<2D5W) 6\8NI*Y%BFI MYVU,MEVO.\G*S([PT"-&E3W3-X)J?RLCN\-*C)*5F1TU2E&C6AL#DJ\/1\Z6 M;"[!M*S%*S,[ J[M689H$F*P,LO#9>708+>:1&;?,[3*H=U 1B$O=-39;!Z1 M47QF$I5=V3:H@1Q-6Y$AV'5Y$9+^N(1J$I-=N>DO#,+OVSZO3^5HM1*VS C1 M)#:[DI%TMMF@T04RVB@@[$TFRXTRD% DN[2W]E OQ/PY/^+7B$_7]9%KJU(IT-GZXX*?5-D4&_6K[=%T1DA*O/3, MV2\FDZHO-7E5!&AEU-T=7.38T)*E^,]+#67?Q=I3TD3 K+TG%J,:-4RVA2?* M_(]+Y6&MWQVR$YJ?\E-C5Z(VU$&,MW6&I9K#>LU$76Z-R(V]V%RYI1*ZBY]Z MYE198T"K V&*B6WJN-Y6%YP^K\9+SQSKP2^-*U&OTA8MW'+VO7Y?[0WCI71V M*>4P6Z+:.[ &:!P74X".J3FE)4LS3#T10-61.Z6J.&UH@[JV]\KFBDN69KB: MH]UU:4FL9_S.Y;?[,B8ST?[VD'O,Q@ZM^)W/<-9O+)R@L:Q<1"# M@1M,G%98'=$#"3O#61NFN_9[(E[C]4F5*"&V8N@Q:\=+,]L:.-.9NIY5=[R\ M+*_EK448\OC^:&L!7F]6%M.U\CZ0MDMJ56F\T.PP##J&/S M6HOIMEOR+'Z!,ZS=W_?0FF R QY#.7* B+6-AVO)TLR[(F SF)ALYR!:]9K= MG];7 Z5Y2)9FWA4)S'J?1'Q+#$A!:%'XK,H>TZ=FWA7?5[FI'K5#)!B4^3'" ML\:^DX[,S;SK4C&0-5=E=^*N:HY%=E2VQ,,@&6^760K\^M!L=UJD@07XJE2E MJXR7A$:^LW;J,OAF-IW\0K')9,I;#WQY_.&I:I)8&0^F4Z)^*R>U_5'!2$T: M.?"=QP].]DSZR0]FSQ/7TL.:K%GINX\O]O"%Z$G3>5V@AF(^L\Q+;LPG-L63 MYSOQ,U>F-2>>DY9N"#][#3GG>H M/OEWK]<#GYC:?^U>1BAX+OD[%_0S@L-SR=^YT)]9>"XY/!V 'POKR1#)QNR9Q1X,VJ_4X2GK/=O7])Q,G.S7OO MJV>A[X;._K9W!SD;\Z:J#X@CL"[EY7 !?JGK15 M5Y[T35"ZJ=M2LOU "T"P&(E64^4Y5,/=5NUOVHFFYDW-=:RDC"C9\E3WUY7 MBP\.N$U;,8/D1#C/ _'_J:>>6S^78)*:%4A ZAR0*7K"C/P@^ M^IN"OVB7>5MME*J\WI9(75V4VW7V\,&"WW(WTU)CRGB(T%W.NSLI*@]W2>D= M^^DKB[_M:+U\>HV;\7EK;MJI8*X#4RT,96M[JP[BCX*['/:->Q>?S+/.B(_> M?\BFTIL(K /&%L31-W?]OHH7P(1<%5SZ$8=[8,Q%MV6.TJKM)LA M.LL 411*O8'"2>EX8A0OTF<:&$-W(,0?B#]Y->F>QY]EU!QREK3T1$RKMWC& M:_=\[J/Q9X6KD;LV@A9268W:K?F!67#104KG)Z-,$:&R$^\@_D#\@?B35\OR M>?P9KQRU/PT%AQ=8U(X.;',3-#_:JZR(0<3L^)X@1G5BAY?PU4(>#6+\B6U, ME"Y29Z;377-([-2:V'W(-X)QL;^!S3O"2 B(+QF$=;,OC9>6WN(COPVFHUU$ MHO./5JPPJ=&J-&KKGECQT.F8'G2.1SGI')48=A199' 8+H-X /'@ @;:WI/& M,M=IEXW2PE@S#7P3#/F/QH/Q&M!E!]$JB- B$6]=FI6[=4TZS18GF"))7-#2 M@G@ \>!^\.!G@VF[MX>(Y9;ZQG3GEKOZ9(FQ'QY\OS>1'3M_9$!QMV@^RT'V<#Y(@/D!D@&*!20&R 9[D0H MKL]M_F+U;L7Q_-.(/S[< MM[ZSK>JSSC*W88O+%Q? 6E75=\6)!!(8/F^K @ M@]X#@]Z$/^RDR#BKM\\/R-E&H1USD2A OLK:;R\Q()%/8?7@_C^7R\0'C3*U M&Y=XH5^E.RC1WFP' XE-0OXD6J0O&>'+&6M#"8<2?H6A_E])>$FU6J4RXC;X M -D?CW[(SY5E(N'4IZ\$7601&DHXE' HX?D-WO]*PB>R=F3[@!X@=;H2J*5. M%4R;AUC"V5C"B2+*XC>5CSP$'I!=99VZ3]68*J:S389P0^6VC9 3K=HCTAOTVETAN8@'@1?K%;ESQW&_YN]C$0!,3@\**&'I!125G3 ]E'\K^%=HF?RS[ZG0[MA>E M5HB H[)8BZ.H[B)<(OM).(,LXC@#91_*/I3]_%HW?RS[95P6F,VBN48B1VD9 MQA1O^HR6R'YLYN!)XY67DA6N+]#!64[\?L?T;)(4*UG9!;H+U()NQT>LZ4L3 M%&3/ SYLR@+=,/?HAKFP@?)4_H15\YO0<:G,G0&HH\+0DGXX'/G 71$BV/%+ M:JNE;_CI*UK$X+0!*+E0_+[D>*7'-M8\@-@.06 M;U]G&>XG20 B(+8>W39+*&1&@+^2#R' U3I-DYR@&!U-" M 8 " $\>"L#]"Q0KR'CJ-2^BS&U5!R2]Y%W@^:G:Z_AKX!; *:)0^*=N M*XX%_E4LV !6"_P5YL$^I7GH4YK9>^&?U^UQ;]K[6'03C&NFHOHHS&=@;=3Q M+51JS%O&:%-I#MD0HS%K(*'I;%^RB&!9C]V_;L)]!64>ROR[ROR%??6_(?/ MQ&S6\((J7V<5K\GTF:EI'!*9ISY]Q8HDA4&9AS(/93[_MLSK9;Y4&E>/2G_, M\!5:7FY==HD".97YV'RASA@O_[HQ]_Z+?21/Y"O\TW0\[U^%)8A/ !1.9D[! ME\-'T^=->TOFC3[0[P.S(*_1U$F$M!/+[>-0!MT.8IH*6W!Z#Z^<2O-IW5@. M@<>'OBO'UY1NRV[4]('E]1P[V8+KI!F5+Z HLCG@&\U=^$:[8[A+CFD)X9R3 MT'1F+U%DX,A,B!<0+_)M)KTG7E##E;63)CXI3CNDP;>J0W)82_$B[1H%!WQ# MM+@AM+A!^^J28!'3,'Z?,ZAQ:/A->>H:AB'@ZYH)\'632WRRI\FX3!%'L[WF M_MI<^]A@4];2@F$EZ&Z"[J8QQI&RT1^5-*'(W> M=U2I!_S'(-(IL@3C1^_BX?EHN'B)3/]S2>?/1V\\9Z[D"YM#L7A_=Q"=RQAV M1Z;2U'D-:9LC8-K>F!5[G(32B1$4PR-RP3)V" X0''*V\7PI41>VFW[&AF=] MO7BS45[X 5C1(C M_LBBS_D>]PQY&^[Y5O=\Q;Q]^YYN(2T0CS79K0O6P/;T/?C1\_T%NKYAKXNUASWZ2Z!WQA-9;#?M*=./Z%[[OZ,O#EI0G&3E^.'W,NS\P<8DB5 M6VSG2!108U88C&OH5(NWFF:3$Q><5'1?LG./>_YXO,@0X=IS']X;+IZ-FB+5 MP6;MB#O+$+IRK2G.4*?>2W$CG49 L"]V/8%B!/<,H>-]$R)R QT:)^%#%A^Q MR%0&F":U#M[6.B30P7[ZRF#9S,W;26P_F6F5M6QKB1,_YB 7Q*]]!&I!D^._ M/S1)UDW$\J6XH,N>3$IX_-?^@4/Q$:>[NO@,L9<;BB6.Q?/ M1R=Q?6R4X*-W?U_&8366]-$W0><>H2!&[%$,!.(W\*C'V/%,HGR7=MQ=5-J+ MB%"EYJ$\%/O:.@;;=! U"K/D(8) !+GAEDQO@"#[:6G#;Y;:!HG:"V*W[.C' MCJTE"!);>MEF*1! ((#<+8#P;:HRJ#23L-)^;>FD0$G0P0P2Y<02YFWC>ZP'D M677+HBA-4@^AAHSD.5+9E5UZOTV1Y!2A8R@8H8-@ L'D=HRU"X()XQ.D-[;7 M:Y[2>E%5Z"Z!9',)F"0Q._S%1@I7'K-[^(J72G0J+QEXL#;GW5UB>(PSJA/$ MO)T+\'W'IA(?L//[LOC.P.LCM)Z!S4; !:*UR9J#]M60=2 J'$;5MP?HH;GD\)NLS7Z2,#H4G=T\)UP<4A0(VECA15Q M[,8&F\ V5C#Y_)J3S_.UYWL\YWO<,^1MN.=;W?,5\_9-^,@S,QD*6^ 6O+7L M@B_0!WX_S4=^^)9*O*NEJ\=/;0!S#Y*=)M\@VUXI^S5H_+#;;EUR2T2$G B) MF \B0G&&G B)>#-$A.)\S8[9LNSI"G2WOEDFX>V&FCYZFV^;NE+5][H*TK!2 M:O-ZD@W6?M]>SWB^7IFL&Z:T6?5#[:WS5[#?""[QLFO'9/3ZP!TE[YC*ZK=H M$O*]O4_;8^NML%07!:5B-53<#'Z@P5 %S MZ>XSE^X^;)X',3\#@8BU;FH31E[=Z(%9 K,C=SG.H M-+VON?0=*IY5FV8FT7?&/4/F@ZAA>?R\)G8F7((9ES>8(&A T,C=SG,(&N]K M:;T"-.I,[5"IU.F&,=VZ*]+8V\=03D'C8K;6?0'#_<:.[FO/5YSR"<\9[AGR M-CSGN]SS%?/V3;BZIVG_&J 6Y/C=90TD/4JM6/L^*=F%P#M-GXCWI 3)+(IT MQ@3,[8?9@S![\#Z("#D1$C$?1(3B##D1$O%FB C%^9H]N3"W_Z83_MYZ>LM' M[_5"O2D?0E%SQ:!J70%M&QC?\MKN,6BR_3=/=?FMYE&/=CUW,NM[@;4$KK!* MXU*>$/A>LH68S#_F_7_O(C59$>%B$ @5)/)+I8XUK(R4[4#"TW'@.%-$+CDR M#L(!A(,[@X,+=Z#\6SAHXMOJTN%Q!Y%E15B2FEAQ9EH"!U0,!W01/Y/> N$ MP@&$@S^#@PNWEOQ;..CT*-QV^^I8#$+6GO::1&/IIG# IG" XB]ER-Y$X 36 M", 4O@M 80ZWGS]T_!C;Z4'B,R!Y!A]+Y6AN5+M21:P[>VK/E[;(C#@D[WNR MGE@3]E0UJ&6GKRG.5(M:6O*^[V!X022! M2)+/[>KY]M;IG__OZY,A[1'#V\S<'VY=OL)R0 MH8 BGW'R?PM/?D[(D:&E)8>E)Q1[0/.2"58QFY_^V>-G*1)_^]#Q] 1#OKC MC(%R#Y*G__#<]&!\9_L%0S]3%SJ7GZY)_/LI_%= +3Y M@P ]?/3IZSA!PX*S2J3&3X3C&U/*KV','^EZCEQRBMW2BJ61E8)3$H:2J$30 M"I"6A$Q*[ I9JDM,00"Z_'3ZUK^F&AL3)X,6SW+WB93]:JTP$CKBN"GT1L63 M]M'L53ZG-#CMH1+_1N@TJ]R8KX[&\9]=OC<>";513/QV0^A4^>&('XC-C]S& MTW;ZI&3,(G^>272.8KU MH><,^(!WZ&E]$O+M>K(R^]!2P,W6D:23XC10Y_-J>U]%B$.\%$-_7DIR;4&D M=+];^[-[D*;QHJ.E-G49%-E*-;R5$0(!Z$H$/WV:DUDG?]_3S0#2':SL:DPRQ+,W&W%/SNYC#PA[M!O)+X>65E[9;'I3E+ M\T(I:"X7K2DZ7R;/S%!*K8_F"#:FCV+)1)WM 6'7XIB+5V8IU42(-HKW1D,D M$'B"VG1[N@N2KT^0F32Y]:H:H2Y+J1;A;'_'ZL-2MM]>5ZJR1+#W#5-8T6*T;@F:T]TYY M'?5=9W'0)%+*[&K8:S?5)6AV_V35H"O

X@$7]85B/) M7G7I0[(TLW]S)\I+? @$I!Z.K..AZ30J6O("V?UOL/8([57L.E]:(DVNHNTZ M:U>3J.S^5\JX6A8K:/RJ.M'BVUVKOUDG*S-OVCA4HO7A6&H:,C7:,C6T;!JK M9&66^RVSWG9)NF.4:(?;4O3,W2B#>"5*98!*G2S/X%NV9@DU9D\I0[FVPU%8\OG613V?UOZ$EW MMP$*9PBT;HXX[4!W:@>)R>Y?/[KU$L UA!\1(3M5>S36ZVKQRLS^_5K8[$;' MX4Z<$JX_FM;'K6,O>69V_S9J#DKUEJ(:T=23!ZK6ZY7C>X(YLW^NL1]W!L-Z M78P$3UEA5)?R6^E3,_L?2D2=UN@]A>B5)>?%*'7<(LFK9O<_WPFTNVTM=F(E M: D>[0^WD]5!8K/[K[&=#2NQ@X6AH^YR)POU,>T,XI69_5>.LK#FCX:+@)#I M,+RLN@:CQ2LS/-WWENT9?FA;QFBT6%?KG0I!^\FWG^&452!Q?;W>XV6<.8@- MNR)(]>2A64JA/$':D;1'C"FY8L?'EM_OX>G2#*4.?1!:+&[,# S?.?-&@S+I M$IJ,4ZP:\7@>;"G%\TAIC%,+*KQ MTLP)B*N^)F$C31*C#5<.O-V!/ACITJQ240O]MF%@'B*7Q[59F>*XCI(NS5)K M6]OIBR/3%'F*16(Z;)2 6!_2M1ER+7;"H#N@+,\(!LH$+/D)6FG'ST6S-(@5 MKU$Y''?68H!1K-X.Y75_/$B69FC07,TK.VM^F!E"W9SNS/FP@O?2I1D:1($] MV=7&7)/?M:A1O[S?]=187N.E6>:JE!W+D23',(08!H8#EC>[>/JR6>XBHFC M]!IC7&SCR*$?.$B#1T[/S1"L,3*[I&&I$5_W''M%64.\/#VD:S,$._H;OEX[ MHCUQU-)6=@??6I?]\UC!\1@DR[-,$UKWU&0:#7Q16%E M3O6P$ZLB(%V:I6U_N!V;&]%#C/JJ56%T%!TX3OJR6=KVD*XDM4MK3XQPTS>; M&\9NQU MP1P+'R1+,S3HTCHV[77"LK%K=SU^J&.D$E_<\=(L=NFDL988LBY.K1UOSCJ] MKK5+7R#+!TN$;T1&;5%%=N@&H2;L$!]/N'1MA@]8+R043*5I<82*47]T;;J?10CNO9VP5L;>XJUPXI>,]*E62IL MJUO06LYY2YQVYD?5;5$RL4G?($N%04UJ!_LIWC(BKPFVXVFYVYX=TK49*BP( M6FT?$(7G2Q4ZFACEOE.+=7/TG':VVRFQ/HS/;)&JX#M_8--:VXC7GE'/)IV6 M735WI"+*9*0.2KO8ML4/R=(,%72_W9 J!Q$1*8 W6N:T'[82@M%9)I](>%?= M@\J6%]P6QUG$I.Q7TJ59@G&[:.8B(1@BD0_:U<5LU63W6KHV>T5[-46KXL2[!Q;2UI36TL/#UZY(ZUD2S/GT 1>5XEYD#%TFD;D 8LP M/ILNS=[2]64]1H(Y)5;JJ%I;&=RBK:5+L_0:&+4=-37YI@@Z[5:;WWB';@)W MY]0_S.*DTIS>H8C5:4Y;F"]LYTC\W#/ZGVRKJJV'I1Y?6@-?'HJKT6HR2)9F M-15"[[?JDWI#E-TQ-W>=%MNATZ=F[1^MJXO+Q6$I1J.QW9ES%HWWN&1IEL&6 M93 >;0Y.;+'1_<5B00>]1L(TYW3 =B0+^'+F-\5@$^&>J2_F7.WTW"PZE]?; MHQPTNL9NN8G"07^\9I332-@9U6[6)==N MM\2UC*DUV VF#99?D8=D:89@-;'>5PV3UHR=&[I&69NMF2Z7+,T0C-F4 ]9O MU%2DW3+JRA)WYV,L79IEFC5N5(5CU4!V':>QKON<,5.U9.D9]9H)RVV[N[7% M=E";*@HMU%@D?=DL;9M'>L'7%^L),@VTY6JY$U&^$=/@C&I'#H:3=FM\\'F+ M;ZSH@.&;JV'\MF>4&N_887:&US=B4\CQ%Y6ZVI_AZ=(,#58A)^RIB=LR] B; MBJC+!U%L"V!G-)6RJM5VS&:]X8.1L-DX"ZTIAX-D:98/>@-,K56"C6\$(V?) M$@L[2-\CR@6>U(A5=E701:PV'LF^CE6-GD$P8SVPLXK2 XUN#P+!DM1R# MUYBJQS9&O#2SL6HS[ _5;0<@5,!N92MBMO%5G"S-GE@-6.T]7IL.1,R+M69? M/DQZR_2QV1.;<7IMJ-?77:2"XM1AW5963C6=AYZE0FUX-&=$T.!%2@NC@"+4 M)7D\/3=#A6@;!CQ&A@VQ4G.WLV,EZ&B#>.T9)2RV<' +&5E39">MJCC;I]O] M6'/'SBAA81VLA)H0S&+UUI.:D>6IUCI]ZAF^W>W,G85Q/3$83M@E+@6T(QW2 MM=E+IR<@IJ VUSQP)V-YHRP\C=#2M1DJ[%=5&??7]MRHN(ZEH^8^VDW3USVC MJ[#EJNW:%4LL\65AID=+M]&)W^&,QA:%4J79[@SJHN R^WG\Q1,V-DJP,QH; M*^WG3*01/<1B'-]=T.O%;I4^-4L%?(3YQ_9\8_'M!5F?&RCKHOM!NC:+C+JN M;^M37D>P:9MH-]WI=!JFKY"E0NDX0_WZ7M_RHW4TF")EV=-L+EV;H<($8Y H MFC89!&.4.5UG1ZU9-5V;O7J[1,LS6O.])I:JE!5H)=#2W72B2F9K]>5QT'*" MA8Z49K2B-AI\!3\MS3P5U5BI.=A8.#\UZA-]QO;9PVJ0+,T0=UC9;ZQ!W9\; MPTK0+75TIP-DK:'&1I(>%0%PW"A&&!@ MTHVJUN%I+>V0F*%!)?1Z>IMJ!3Q%575?BB'QH0-KA@8CB6N.>VYCQ)?$%F4. M5PQ&EM.E9ZY>6:"\8YGH\'I'[5:D:8GA)FDSZ#,F ;59E+GM^FBTUX8YMD-B MZ4Y/S\UZJJ;F')0\2$ASG@?(D^/Z049!$I953-/LQ=2*-])?0SS2)$BQ) M_)0"\"3#ZR'^_S3% O]\RBKPW?@>]!3#?%T!"$9\)EXL$G\287_R?"=^ MYLIT#H^Y(X]_+R49;E].*1.'F#R_3%5X2!Y)O_AQJ;STG"3UZL)9"^3@(-#/))2(7!P$/(4# M@+B4DX- /C/P(/)P$-1G!AH1>3@("$TY.0AH1.3D(*!$Y.0@X&6=DX.@H<1#X. D)3?@X"GD,.SH']C$)DRL-!0&3*S4'@4"+R MI#!LW33DZK]+]W[%/U/"&8I&'3>TUN21)8(!U.KM\/ MH,,O>G \1YGWXP\RQ_SQ;E2 )#@E,D !@0+R?)S@WJEPBJA#&8$R E4,R!T0 M0?\TS EE!,K(\R&_>Z<"_5%4@#+RKMRA.&;RX?]]PC[]*460SQ3VWB1A7L$I M+[7JY!0EL )33F<)+2%CO)UXX! \'_SN-PN>T T.W>#01H6Z!72#0S<7RD@^J "53^CYO1,9N5// MK^"O@0L5SPNQ!/L99ZZ-(\:._[,I CV4.$N4'^?YHMNP MD$X!?8]QOG\K,Q7'LAS[-'1PY#N* 1$5>GB^<4=?UM52TX8\<2E((3^SYQ6O M*X:4L0MD+W C""KOH:8A5Z>XPY0-:-$]IXML7; &MJ?O 60-:-E]XXST$EG' M/P/7>Q@@#>V\:[7SF-\B0[+I1(_(_OD.$;#-\5' M\C-Y'A^OF!DX*]Z)#YGA[8SV*V:&BKS5,X[2.^ &>#? N^$OX8#YC-\<',"[ MX:U]+U?,#%6PTA4=ERNF!TZC@>OB3=TL5PQ*_"[0/>CM_:Z* H E^4! M-N-M>&F79=F4;05XQ4)+M@/9C0IHL8 A&/IF4O"SO^7R%,BCWRFK5;\/)SR1 M@'3@R?:U3X5T&F1X^H><)PDK"<4D')5BGD*D MP"MILKQ-'N8#*Y;(DY E?G#'CO_J<:'N?5MU"M6GKM NL); E>;SI;FUW&3R MMF67-%N9\ZW!X5-!!8INR:;W?Y]*^*?"RG$MV?^_3WKH?[$#2W7\A]]_*MBR M%1/TX0N^G,P"(?"]9',QZ6/\BX\T7A$_Y7&F;F>*EYC ZAG60L-U;^*;@V@@ MD#UF A.W6KL(ST1?/+35PK* M_/N5>[P3%7*>Q)UMG@91Y$44^5ZLER1U->T'+_ #HAR/>)L!Z&C(3^EN:[^= M"YWV='!91 GG;ECN"3/ ZXW=FK%JF^K(T6)$83Y])1"ZB-(XQ!6H@.=' 7], M;$NY^W0K/XB/2%7\HW[8C/@2MU^I,N]LCZAV445<:KG#3;=9I7B KN>TJFY< M@3K$TH,BG[ZR11(JXK=U*5]$%\^647XX"B22_\]\79WO)_?GKLV82/%CSB# M6NPM629T=:,2;*=[LK4:R51R?Z)XC !4$4/)# 3\"V+ Q6I,KQ8#/F8CUX4! M0^#+N@U47G;MF!+> P!PX72ZEB;+OJ'7E%I',!5]6'\O *C,EG(H=BHHTN87 MH^%,7>]P-@4 ZM-7.@8 /*M 0P!X0P"X"?D_C;V"\O\+\_E[T4):>/Q#KGK3 M5AP+/$!"P]"C%=XUE^).L"IJ5]5=L_G&SKEG(4%']2[F*!%J[&Q3*%>!*VR. MJ57 ?OJ*85 A>,^.F5<*"-FFEQ\."._M6MO4RPUN'QUJ(M@.5T(KD SQ\,;7 M^L^BBU%+1E65S4BDACMGI4S03G>8B"Z&Q:*+$T42>Q^/?DS2'8!JZR MECU0<%8Q_1,[*OZ2M#SPC0+KN0"<]XZB7\<]_1MNNFK@RLFC)%1*Y1&5QLYW MZ43_.GS69!%NQ)CV3*3:#<\VZ!%7WG)_)]W?F5N-7S\^@WY,2T<]>?)>NK'W MA\ L[_L4;U@5)30<;U)"\8%$)0%UC$0O>&'G0EC>,7:>A_VR[[7?4Y0]/S=V M6K6'O45"_ATR[\G?#".^EU=8($??A^9R^5CCVRHQSX<@+,^RVWS0&QE8>3+% M6];0/U@75F8R.LS,[;N3X,"*0GO9CO]-F5]/N%B'26*1YY08*#3YO09RI<;0 M[V&EOK,G\@:182*; 3B7+;R:3=&%QU6,744LN[T&/]C54F# /WTEBB1VR0!% M'@3EG<.1>=CR.V+#A;<,%<)WCJ;E8X/<4)KHOU6R[ MMX>(Y9;ZQG3GEKOZ9(FQ[%_&=G]3I;(;?J7:CDHU(_#\=;W&E^:!J27^8NP5 M*M555FPV/2](JC)_#AL5=#LY/1N'/Y!3M)%_0X@U\NBJ1'+:'ATLI4 M%*ITC1W355K0_E+;S]['J:+_['5\YC9>4-VVZ4RQ%5+?AV)ETD "8Z?%MS$3 MW\9%!,\F>4(]$R^0@SI/C^S,*XW2)S;V*_M MZ?Q77?U6\"P$KJ*?ZK.<;?*Y!TNS8(+S[4?#TE\*)X[G'X1 /==QH4&/?**Z MWHHCT&2J]F!(@+$F,6FQ%GK!-HBYD)YWC'K=N?( J[=NB)UA]58.J[=@6.HU M>O1K[T50(H\KFR--Q+(K&T2NLTNS>HCOQ30DQ>(7[$5X5U"2-ZT2W@OP7KCN M B_(T5=7A)1[CH9E2;?$T7?/T+!0Z:88^CT*E7+.T1]=NG0_@9C7&I S>^:/ MQOOU%,&ZTXVGUYIMK3%('*O8KRW(JRQJF@#/C[\@";6X\8^NKOA ?0C-).?_ M=I&7O$:H8;42C,^\,CXS_"8AZ3+N$-.B[CK>N6(EW\!1W0G!E)\>#;K2F!T5 M*882-HG1$ P-DZ-AL1(L5H(943!C'!8K05& BA<\!D@#K96"]S&M$(?_5'X^U+UX29_ ?6@4_7P#BRV'Z0S*K*)ER6(A_ ML7\^4 &+0V :'XRHWWTX'58KW! [PZS4'%8K0(Z^H=LV[Z'^]YLHD>XP*7&I M.>Y8#J??-<_X@_2WY:0MP/;2+9X)^-?B\Z@)J+]!VN4Q("1_*H;<0$*1 MT_@9!(/%)_!FN)5ZA?_ @32/\,&IF\#SD_?QAB"=S#UV_AQ%,$5<[>IACQ#K M=::- ;&\N#;D;76T@"#+6[^ M^;RN^;1,>0CB#7DQ/XR N]<5<*I#' +%T6S]&<74%.1R$#:WM*%/JSNC4Q^U M=\A 0M&T 1969'$4UAU"M0T>.;RN8)$)% 589 *+3* HP"(36&0")0$6F< B MD]OI!?9Q)GBC)[;ZJT-SQ&--H=4-JP/?X[3$!$];B/W*!L]_*4]"+!>L8WKI M>U P'0_.9OD[AX'CJL MG19_0;=AP7-,72W\ TG_RQ$DP$R&OXSP?-Q)7\.E M^!#N@>)P#^+PX#F#$O&*J ^4B'N0"*@-W-%A0_A[?10!2L0]2,1#_ !*Q"N" M";F5B/Q7A0V!+^LV4'G9M9/.(@\9(+/6P%9ZTG#-R]BVY%FCP[96U?[8_?2# MCZ1I*XX%>L 75F,Y_%3P8LK%SSOC.Q*9M4^71=7F]98B3$9L\R"O#LEF42H9 M[%DD& 86?[UED ;"S2LB-A!N_CSO3%$"*T@+#@1_#=PSP/" 0"5LPB-^?R"+ M)0N?V),%7BFW_[PH]0\1"-VVR TR:7'B%!4\,-]KW6UOD"(0^^DK@[,0?MXT M,@;QYQ5A,H@_EPN4_2%.&#BW#1OE,3 HY=@?CVO-J$-PR7LF42X,*^+8[95 M_7?YPR,/(&&'^$5--?YE639E6P%>L5 %2@KI!1PM%I(S^^^_EV\#&3DNCV+? MV4UV Z'SWVBLPWF2L'K+H3D3TFO;/H*Z1KTQ-E=$*4 $>?"7'72$P/>2S<6D M/P,9M(0LVW.RYAI!9[G4[(:LJ7X,&7@R$ >GBP1Z?[GI[R8U'Y.%DRL27$$U MV1NK$KE'C>312?DU<+W3FYR!C>I:,)&)4*,0L+<;X\K(F9BTEL &^>DK!1'C MYDH;+G0KK8,)42:"((8('6K9<_7+"[]Y:R^7P'(2!X%K;#3 MW/*65*\+#I"FD7)( (3Y])7 \")"9;T:$$:@NOYAZOKSG>L.A-QR F2]0JBC M-E);K-77-G\>IGB-VDY)_GI.E=<+$6R5BM( 1GO72L4GZ6J)(D4$P:'XP%OX MSLH)+^'ZNQK8.'?M/NLJG"X\!T5$=B4*MJ*9TV.E$U*I I\TM$01HD@CY 7# M"OU%[/FB@@Y+%W-(7J\/MD!5'W9 MX1=US9B.]?5H $AAR+^;0E);:SVG$^FB50XGRXW:ZX:G0$22XX 6$8J >')[ M)<&YHL+]%0!GL&7.X>PVF-0)8^J4@+6JM]E2Z<*^P,YLP<^H1M/G 4N2DJQ. MHM4\=6:D:0LH6R29K"UR3=6Y0[!]&+67#,I34BNP<#5#\C+;^?_^@5+(6V34 M?_3PG=^YKO]BX@[V0[80]M<1/S%J]'5+I5FQW9R&^RC$1^C?.NR_LZ@:OWY\ M!J>R^I,S\J6+6P76UB/*^HJ?KM"Q4"^YHXX57]Q$DD' XEDWY&WE)KYGLL!5 MRCB<_W=#3/@^4YYRM64X[>^&#O.C%8[WG_;W=[K'\]$+Y6C.I6YUNA*Q):;Z MTG([F_;_TEGP*QTDDT3@K7K-&F(.#3D^>("H?:0G#Q+5(XF"GM,]H-1 U/^- MX.9U6"9_6L1P ] PD.$65 Z\ ;%[/$.85M!$YR0 4\K(0CZDN&) MNQ*5]QG8EZLMP_%\-W28[S*>+U<[AL/X;N@P+SZ,[W*NH7L8H?>SDK7WI+', M==IEH[0PUDP#WP1_'63]3>5H'JK6NEIC.;'>KT6>)W 8=SAY;+'7*$=762;: M]+P@*07].0!3T.WD_&QP.OV#[J\+P-J:3@3 PXIOL9NM*=NP9!3FH.?%._,^ MD:%$7ZKRV*?O6O/7+4:+MKTH(%4D9).C*!-WJ2\1TGH#.QA8 M$C)KUY8# ]/9IKZ=#75]R*4N9^S7AG#^BXI^*Z(5 E?13^5'SFF,(JP\RE,* M! PUO11J>CK^DW]@9?5<-U./6_>/)7-J4)B(:'UK.ME+LI^Q'YMPEUE6'[\!4E*Q9].H@\4"LXAGW M'UJE/I^?[\MA^D,R*B49\5:(?[%_WK4.<_?S%/B" 5B82PZ9\)J9\ Z3"/.6 M2P[Y]X9NQ+S'E-^O=WVZPZ0 H>:X8SFP+;2[=X;D*> MC;F&VFP=Q8I*HL.M1:]7XD%"F730!4; R@!X#UQI,OE_X*"+1[#@U$W@^$.0#NP=.W^.&?61/%HP&T5!]-IB$349<4 %7(H9^*>O5)&$H_E@#C_,X8?\ M"W/X(?M>]6'"'/ZKTK[>.''_;;6FT*GRG4-[TQ&!V'8;\\V@BVFIUI2D\/]2 M:[K*'/Y4L2TM$^HDC82^D:< PN1G<*4C+^XZJQ]F,< ,589Y MKAUA[]I1YXE:-W:>^>;S6MW3:LTAB#?DQ?PP NY>5\"IM&L(%$>S]6=4P$H- M++WE "=Y3,?VNKPN\P&B22B;]N%ABQ3!PDHN6!( CQQ>3K D #(^+ F )0&0 M\6%) "P)@'R?PP$*=UTX<#.1C7" M#>/E?QG+^-B3OFA@ S+Q/3#Q@]?H%OGX(4X!^?B:#@W>H!!\;@%\'OS0D(_O M@8\?/-"WR<A(\=E^5NWM%PMP]7ZD%Q%XG MV/YV=_AC)\PY0M3(?8,/>8+ " MYMPYQ-N44"H9[DA@60<%K&[Y"V_]+6+$@PL>8L2?IP0I2F %:=:UX*^!>T:: M'V!#)7UL2D4<@F!#;2VXI: G;/[<-_J'L-$J+Y6MTVXIQFY/8 -DWUS652V% M#3;IT$Z-O@AVWB!L/D0^(&Y>+??RA?"]V"#$.2*['ZQ;EV3;0V@L\ ME>\D<$$4692\N?*-_RY_>.0!)-P0OZBIQK\LRV8R(]HK%JI 29'X) 4X6CS] MD!S>?_^]?!N)AT4>>0QO_D:;#R:LA2J(Z02R>M>?^'T1XL8 ]!D# -.%PG\I;GO,,4! MULE<39W,&]_QN9?^Y-%)42=PO=.;G!'_K=@Y5QGWQ&!P4_KNP6=]8QO'7&"B$);XBKFQF1:"'2EQD (!'@,!CA=I MY))!LWN'@H\H][IX?!U"P9_$T'NE)DEP1Z=L@(9A\:;4LAO5-[:+G\4!O5<. M#S5>VB#U10?5T..J-CBF>G$2.D>16",@$8@#MU3]=O$0.H2!-PJ3'[%1LVXN M69YO4_I<6+#SI>*^L:'\/#(L1W-1[X0EQ%HM)7$:T?/9\F0JL)^^8D42X@*L M#H35@:_%B%KH;OA%TPEX,.Y6U^MF4YL);ZSM_RS"O&"4L#J_*_%3M[T8^(0S M\:)#&OS"8A%&D2*"OF3NY[]T;PBV#[.5DLE(2FI>%:YF*E+^8.>C9T?\SG7] M%P,C\!_R5?"_#FTM FVEMHG5"HG(>6?$45;_8/ZE"O^=M=7X]>,S.-7JGKQ\ M+U[LK[S[CZ.Y7E^2B$-+:.0Z$5#9"=-IM4>F&U' S_TL?P*]7E9XVE M6:X@O19%D_Q(K&*]K3M?]+:IQI).M+I@AMY="C]F]7.^%G(GAQ-JNU8,;&WVCTUO@7C[ M&#CP-#J$$3#[^V:J(?-'@BNHHH1MSJ^_YB%_5+B_"L*WO6!?+BAL!7K8YKU> MC0\;O7.KSY99NJXL_>M6>N6FSN*>80F44&UMN,VHZM(&0[O6J9I"L9 M@\-2*S@Z#-XT\*:!H\,@XU]9+5G^J)##&C3(^#=7/)4_(N2PZ KR/2P.@L5! M^8HOO8$]2SEL0([,R031N^,AX-3JJ.EKJ>L8^[5!F_]BHM^*,(7 5?13V9%S MFJUV#15'EXXB79W(WFG(Z.E,0/Z!E=4S(M]36)]O-H6:*._ =$KP]:D]/4@8 MD;;/S!8 P_0/6$H$2XGNZC#O,*L\;Z5$,'3S&E7WM7?>R!B5MU5QP_,[:>]+ MQ$XDFPJ7W'E)JTCV@D&;NQ*BO"F,\!* E\ UE19!_H7U+[#^!?(OK'^!['OM MAPGK7Z[5%GS'4,5K[3=E0?H'JK'LBI4U.QS,%&PZKY]\EMBO#+BKK(R9 ,^/ MOR )1;CQCZZN^$!]"%TDQ_]VD8E;"3E>078@C%^\%+\8?N/S=!EWB&E1=QWO M7,7+PB[7QH(0;D5AN@JMCKYD"'4@8602PZ"PFQG[D<-K'9( 5KS)?[)_W^L-*A#Q%Y&!D&*;& MP]3X>V3>.\R*S%MJ/.3?&[I)\QX3?[]>^ND.DWJ*FN..Y7#Z73>,/TA_6TXZ MR2;O"6POW>*YZCY71L/.9"'SD2ON70JM';M#3<*HT]P-DH:E#O >N,[L^/_ MP1N/8,&IF\#SD_?QAB =.SQV_APS9N6=@8O(NF)$WK!\V'"HH2KTK[>N!+A;;6F.;$.3P[8> MDL/4!$ZB)[^T@?-?#I(0RP7KF%[Z'A3^?_:^M#EQ)MGZ^_T51,^]$3,1QJ,% M">B9MR,$B'T'L?B+0D@E$!(2:$' KW^K2H"QP6ZWVQB,:R+F:1L74BUY3F5F M964:MNK,/NYXY$NB>6MX.ZX&W'C4^"<]7\4\QS*TV#\H_+\K@C8Y:?_+4Y#+ MK?3USJ@8?*4%J\+#P^\67Z_ M)^B)NZ*$O15UX#?TKK(ZX;W9!%9Y76UO!*G28C+)F3&2T_E09E(RS:.RH31U MQA2\WPI*T4$&(9>C4PU"+A\2<*6JP2S L? -?P+<$S2PY9N9V.Y;C*\[8B>; MFTS=J99/>^^_P?AG?%-9YQBITHD#:59FU35+:TL*U6^#?)/^\8OF6<(V'WE\ M=%ELG?4LB=#&IQPL_1F\BYN'>68N53VIWQ<]X&3KJ8<5AG=4A9SA4[=6X.._ MHR>/# $2!]A12X-_S"@6*EKNW<5R0,7T&\& I>^B']"2_???HX^!_+>X;_,4 M^"P$ON8$(PM\7>3_04H4P9,;^D?6!=$TRJ#*I7959&8EV[(ZYC#5^]O<)XW M]]#@X-2?X(AUMMQ0>J.2:5)S/3GWFFZ-*:> M3-'_GO/>TJ5'>CF]X>JI ST:W=X%KA?UY 1W)$N)-2>9ED8I;$E1>458UR7, M'=R/7^2JQ>?'W5\:3Q_.'"]>_+KT2+\L<[Q^%DIP%W1GI[/"(A%4!'Y)#13TC=3>(QHZ%]*0W\Y\=A* M+PB-I;]2I,K#>)Q]**ST5O6\FGHA7C/29B7>E>**4NVV@3KQW1#A!*4@I.F[ M!$_="D[(GGNY/??%^VR7'NDG9]'Y,MQQ:I.%DP0?KPZ*XJ')"O+,> M9J9_$?WT9ZS2M)A,:SW2&'-6JJ7R\1G;KU0C R?]XQ=SQZ:.LZP34CG[%==+ M8^W#6>7%ZZ^7'ND5.17+HC[(I7K4R"S84J<.IW(L9L_L"$R6$^:X'3?BXB+9 M<?6AN#Z6/3!-]=95)WZ<1O+Z_^VU?@BIT?H6_$Y(<7ZE8ANP,W^L2PX7O] MGW3J#5R"?OZ)/+V&^I\3H1$= ';=-E[^(A*\?QOO>#S<@>">H]AK5(:M[OAP M]+X3RSHV#A-"&U,L;]B*K1J*%=MO:M[]QT_E7Z_HOS5C^>N_\#^[[ZD64%Q$ M.I/MP_<$@EZR)5>*^K^/VS>.Q6$[*B;QR!);IN#2![W&__V?P\X_LF!<=2S' M_;FCNH-13:*E9##KC4%\Y +%C"LZ?/%/Q0J5M;>S^-+W["X6[.>>+=$TQ&CJ MGN7^+W;P,YJ.H[F<*:OXP8QM239N 1V*>?2UW6>8(? V5,,PBWH;@V NE\A;!?#JOIZ9+P3P,=:VDRJ7TD6$KICK=.%_:V*]VVGDLT*GF*\V^AV9XUF:9R\ZCL-.QAY[&6OD M8ZB?,=S13]M$CKGQM4BZ?QIVS)\X@0?U#.]?^Y"YK0@E$@RC,!0E11 O RI_(TRP*63:O4=NJ5W>9/BZ4'MYI;<&8_DVVTS 0M>T! 097/6]9[ MP_(BGLJ$5,<==><3RX\'4V@F'+?4Y^P$T!U^8?8;:69#/]0?N 1JR3UOJ=4+ MB?YPEFS$UXRO@+695IFB*@LS*1R.J M4LO4E!\E)2J@&[JO]%M6P1G+B>.63B$5YM)#,TDMYK5T=9!=>2)\9N)X1*MT MMYC)>?.\V!ATLB8#-=S$I 5;'HVHE^P::U[LC<1"0?$=T!2:U2IZYM&(G(68 M[.L/N1;5<%?+OKNTW>PZE+GC?C;83&+-IO6Z"7I3KEJNI#=M,);YXY8/@X=$ M:KP432G@S I4 MI;"61:::$=I3IY9?5UIR^K@E5VJ.JX,R18M*IRG(Y;R:5+HMF::.FX[F=BZT MT\ND" PY6>7#NIINA#)-'S==-,K>?"8'NF3T!75M/E127J:%FK)'PIS4EIXD M!)[4IX1IG\T.%P-UC)KRSYNV[$1 >YKHF4#?\!Y3-P"+FC+''6B6QJJB@S9- M99NE=2,HU9E-!C8](7LSLU6?Z$R?%?FD7K:K@E#.(C2QQQU@-EQ\G#.3JLF# M@C\IY)/-W@ V/2&G[*01I[RQD*,*7&TUS[G&PIS!&3@A*MI**G2%65*4F(>) MF&!ZBJ0HL.D)66GUE7RH:AX6*G ;%ON+&[.!'&8&FC=M&2/44SY<5^;.;4PF-4B M+6:GPR75K8KB0LU)-9VO4-QJC)JFC[8*)]WHE>1R063*J[[KJW.[6PR1.7S, M+OU)S^XTPIG$])BUWN[.IFNS);,G%I9O)_/MDM2I4 %'S2VNOIA/5_"I)Q9V ME,LV7+HONJ*1M#MUIS-N=[NXZ5%?*<$;CQ=TK4XMFKFER/3GW8H%FYZ0@9X_ M'":6GJI2%3\AY-)SP%3GN.G19+%":/?S'7A0G MUK C2AV^5EBO^26@4=,3XE+O&?%6D(^GI+C=F!@=U>$ DF:ZL)NRAG(VHD3\QI0:R7K]J1?EP"@-B\UDDE+:@5E)A=9";>"G'ND7P[PI)>B L?FO-;OT+^,6[ILK(+Y&73N)U!+.B/V$ O>BW@#\><5;Q)#-D=7DQWG5G,F0.4GQU"L M]!*:$\#[^:%8N;;9^0L=]6]./;[]-$1.O0M,PVM7)JY@7@A*#OQ;WWX:"$H( M2@A*WN:"O5F4?#T_3AWXVT*+L7]:CN=]Q)W;SS&UKDNP?Q<[=\H/SX;Q')[,$W@R\M*3NXI0K63,^(,Y2179:= 6/PB> M+R:OJ!M^4%IFM;S95VO>:#[D9TT;W-.9$/RM.C- PN@(NF&A:(V<\U??1G]*&*/,MSUUD:Z+QZ MM'[)M4Q< 3?L5O[(FD&W;.$3X;]!/Q@1?B+\1/B_AV_W=)S%5W+<\O@5.3"' MNIV!=? 8U-UCRLR!'=[@#XCU^46=N!^\$Q%/[L=Y<@\!!W^V /I!L#7A '%8U^=U,WTF9R7A)D'OEX$W?IU%E**7U/\%[:=43 >[5^WG>" M-]L8E:<^95>E2JA;^?B@UDFU4%(L_L*_/^?OIX#VS[_>=X*TN M-5IW$W;=7%N6ZB4H:<'CG3?]XQ=_Q] ?6!_YVES!D8F $S/'1XH'4!3Y; YL M+S(7P K]#(AA3URZ7]:K=6OF!:X2ET%8S1Y ]02M4:Z^R1>5Z4BJQ"F?*G4F M8ZX5RDED4. SKL3YE)(KDW#BP2- _W*FR)N!WETUEXJ6'EEFMB%X?'P]9, # M CHT/NCT'9\X2_%V O1O ?0K=-7?FMGR9J";F8>.W+.9-66TAJUR,Q&/L[H M@0X-%9JY2[/TAULJES1+#LTV5/- 41>!X4(;Q;#ABHX-E%E4\3R JB 09PHY MQOAFSI0SVQF'Z&OH L)>E(LHZWC^J2!UH5,N+KE"LVDR?FJTZ%C-'M=$2?QQ MD#K'O49.!+;?U0?Z[6![9JOACV$[&V;DY0KX+A5O)YS!L)P45DL$VRAF_9Q> M @+;+PM;&X=J&BB8JHRQP4(-]!,\)V8,T)ULV,N6 ([ 'B!T71\G,%P-9-"3C2(H_.+ M6AK91\QFMP!%K/>;4]M2UE,75'-A2P5!ZX^9=K]1;H1R&A]OW-$)AC@]B=.3 M@/Y:[93W@3XF(4E4J&?Q.'.'T7":WF MA#8T:&)+Q0H ,GKF+DHMY*_Q?76P"(PYFD#BRKGI0QN2BOL%GP\:-\U\A).+ MB/_U>C*)^!/Q)^+_Z7KQU8O_U]:42[.Y8KA(>VOH5<<>5XTET 0F,82Y$&+F([BF^@4>U-N_QS0@8NN-OC*"A"' M_E=UZ-]07/3-^>EW$"OAU+9=925&R0TRP :ZX;^6+7@]38^2^>:$H0I>?SKN MMY-LJ(:XK]!*IU[-%4P0_*7<F'48?>4( MJ*_\CU_D7(W@]PJ]YK=F"OP>OL]1.TIV\M.UL'%,4)85>5+-UZ4.1BWRCM^Q MR8\W J[&*H[L@H8_ 2[Q?-RTW_NVXY9OSH[ D*P[-JJ&$5'9EL=.$%A\)1B+ M8I<;28;:3K:K247/!-!P8+'AD#ZGX7!E0DZ\G-\ Z\1W3Z2:N.2O70]_;0-[ MT8"6 Z[)#[D\:RJ5Y4PO^YXVT?%.AE1Q_E82#T6OR$X4>PR?9MB'):[PH06. M2+$,!0/]0\M=?3<>([[ZVRO<\]UD^(:\742&B0Q_=1F^M,?VX];S)IR7@KJ] MN>@"%1A+96213/)O!NX,?M,"M^K*_-WHKM*]<7.N3&C]N4#Q0 Y$_Y;L'63; M>\2>L 5KX]5PW?:#D.)M;YRL)-A4,("V(!>E7DDFWN?7_)U,$.#?@ >( /\: M(BG>"7R?H=RQGF 3E%(07*NHBYMVIX6 ST)"YFLGT@EI> ]5F)2L@X*=1?;MTZCCOTE_?5+RDY=)TP5PQ MM%W]J\CKZR"_>4P-7!?8/DD\3[R_U^HYNSVS9(O'7039]KQ*L#5\EA5=)SE! M6Z(S''7U=C]K=@QV.I7F\;1>@?H*KJF;O&.9X\(X)/*3^!&_(:(_W=YX)Z*= M=*&QK+&4) +*WG3S<3>Y% 6$:%QH-TE2I1!$7^/)P*W%D+P;T"\&F-A&Q1Y2 ME"931KT^,J@@F=8'&-DXUIMF7RNA?1/')8U]J(F%IC2&A2CNZ/' ^_ Z5UBJ[723O#E MH@T$BF<96LT_Y'*Y 51,<#W?Q!W-'SMDB*N5N%HO#N%;LS'>CN 7?:O)2;-3 M5D&C:_)6LM)WF&HP;@L(RCANB^&. S8)D@F2+WUH\OF;\:>?FKQU,YZJ:WI. MS]L<-WP,0A+E$"RR;(*'H,RG'CHIJMU"\,='( GF?==*"/P)_*_S#.0; _ /_15.![ MHV)I8R[\7BH5#,.NPN#=']HVJ3,8-A>V8MP :'"Q9N@X""\2OEWB DOQX1]& M4394 M3\ECV.6MP9(B)0&(1_4* 7W[9R.OXODYC-GVN"KE4N6QJ;A"M>?WRHG #Q&, M>70_+,D<7VLE*"8HOO2YR*V%4/TEBJ<%9< ;E8(F92NRN!HW*R-+;"$4X[,1 MAO_X\*FKL9:?&A6/M]0/,I023PDY)_FRCM);NS-RTE&"L/LZQ;GV;,/3ZK0C M@LS46(4/7#*Y@(H*C>^)T&=44ZY,VHE[E(#^!JR4-X&>K[2GPLPB?)S1 ">W(J\I7LFI.X?]'+.*6E5+LW[,W,3HTI]![:+<]* MM1 !0,.&?SW+YM<[&=F70';!$M@!J8),3D N[S#]!B<@6=@9-):^X4^R@0<7 M!+@[@EJ_1D]ZKCK*U /&,^&WM&"]ZC0Z8TA/N"HR>R*FG!R!$.?IQ1%]^\;% M[P#]',>#DI86JXEJ1YP-G*P@SHHCG<,XWMY 9\@I" $R.07Y=&OA3X$JM08 1EGZ:68UZYYW<1!2,:P+/A"7+D-K%3@>3%'1^5' MG+$-'W &V^)J)H *2D^VU*2 ^V-Z@?S5S^-<[3GF>3?@<$6'?C=2PI>.X&G#C4>.?]'P5 M\QS+T&+_H/#_;H7AL)YSX:%>%]U]?J*N)YD%WW0D4VK93$69\TFJW\C;RT1^ M2I61*S>QS2=,RB-\M(I#V.![LL'G)_WZW$#?=!+!AR1P,EIR'4,1M@ XA+ M'5^3N9T48MM7C)Z\(@1(XS:\D#V@''"GOHGZK? M,-BX2KQ;8,Q^Q&ZQOP]9?O2 ?E$MHEL$]G^.-G^C%LI9QGS M[3O8D9X;TRTG]&*ZZ\QBAKT$WC/?^D_B7+_YRQF7VO*^_3004%QO<#(!!0$% M <7%I^%BH?U7I%->TL77=!TXW]I60YPI?N!BO1"G-O44"^ +O=[$R2[R-6&1NSPF(=PK.W1V'3!7%ECT FVEE4LRVOH'01*A,G2 M(R1/G%FHY5YR;H0;7^PL7)=N9NS0GXUE)BHKS=ZESADO\=V0?6D/$$'VU88M M?#RRS51Z8; ;,66NZ]E$-VD:;=; R$8W;CGZCB/0)M FF83.'E/P\=!>\V+9 M4WI.0@IH;N)WJDIID140M%'L>)*^HUZ%]A?W;6]-D\!5)XKW*1;(U0R=.*Z_ MIX_NNJ[7G-O(V=)BUQ'416"X +-B][>L.$X5LCECU'&HBN/VK8()SA',T2)KY"(+O,>9K//@XDN+;<]V?6+#OT4?_I_P1#\IUH>%>,879\O-@P-Z&R6OM5!7TS]^L7=\\M6$NU_1C;\+ M*4,3'/,G(#;?FEK$GT_\^3?@Y[L9@PE753D( 7T7OZDZ6/:G91V8B_5H-.%Z M3DWHC&465WQ.G5,)^EYR_SV]H=\/Z^

  • 2^^^)]4N??-R,W?(A6$^D"FH8W]"ZU%BDF5QK-2EK_1!A M'=DMJ5?!?GL'1(8-UWILC"P04SP/D&L=Y&R(N'R_D*GSHBNGM >V@'%]@@F; MBP0WY)Q>S62F+:[>W\Q&7+TEL[AT-,V]&H9)R('X>0DY7+EM]#?DD,D-5MFL M4.B:"S!)IG+M<4&EQH@<>$(.A!R^[2'0V<+(+FH2'!QLC +/L('GQ13$%9Z! MP'T7LX&/S 5<,TR)2$0C3I"_L0NNN.K&Q?2 *Z[%:$>8&D'_B?U (V7:KU/#*EG31/\2@HXN67$ MF5HOX0@RBXL2,ZF[=)IDG2%U10F17#!QPV6J$I_FD>?T45IX,ZV4KJRE0.\W M);/0T91%B.@#W7=)W''IXUA/PAZ$/;YM5>*;,^\^1@UI &VHR7W!,'F*8YJZ MW!SK6WK R$V8[S#F[RG;WS$:G,CV=QCS]Y1M4I#X M:AWNSPL2ZX:MV"HI2/S=+@""OZD\C94*O M-A[A20)X!+9&A#5Q"T+MA-O_@>IJ-7&53XA@9=6585%3B-WVJMUS"\5I"P$777"\XU/'^7 )= ET M+YW,Y9;K][X5NBVWT:A5_+8O*;7$9CEO]WK& ]YS40VINS1[^_5YGQH)L[GE MK '86@C[M)1S2_E 0^%JIH#X<[^-2^OF+0R4L>I45*)B",K8'V=*$BBG)Q-C MD!C:4T%F<;E=]B[%GM&PN#())QX^ O2O;Y&\!'2KN.B%\VF8EF:%SF:0*/"3E#)>E"Q?6<$'N\!2?*#%? >GD_$FB@M-%N#[%L#99QP= M)\Y'.?1#N.+DB(,<<5S<4WHTMJ]^YW*'RW8$QJ[3559]PY],' O-;-YQ.PB7 M&<4#6M:9S8'MX>Z=RI _>HBW#38H24P^G":%KETNJF,Y@:O>IN\229(XF[A0 M":8_+[_C!V!ZD\ZW_.JJ3TG][+CF6,6FJ"=:"-/0'.'O.):D>"*8OL)CD<_' M]"?EG/D 3.OK?JL_+ [25(%))2YMMF@KA9\P;RXR/F&WH6 Q[[9TX1I.:,)JUFL#0KA>JT M.=)[:Z\'#1E<&SF9.*?*0TCCFR> (*1Q/?;3'Y'&JI.=MJ=VO2#VNYE1=3@5 MF*J+20/5#&/.[/X@O/'->8,DCKD>&^V/>&,F@0G'%E*2J33CSB P2JW>.$2\ M@?/$<*\GT?Y*!T';5[PI#>@V\^?):\D?>BOYN['DM=<:^&A5BO#?Q?-WYG<8 M?EOB+'/N/036:MH6%ZU1UB\V+5Y3("'B0LO<72I]SEI#WXT.KCV?.J&#KVM& M?0P=K&#OU*66G(KQ!R]G*OFR7YRW$!T@NRIQQU*ONJL)'Q ^(&43KL(\^A@^ M8#R*6SB90E7*3E*UM-Y6 ><*B _22#W@F..XN=LYO;H4,1 GT_7>^/E&55JO M:QH(**XW:)Z @H""@.+BTW"Q*R=GF8:OYVP7=1VHT4V*E3I1[#&(094?Q**? MO1BT(:(2OK86_8 N7"RAQFW[Y+H%<;$3G]JUN=@C0#=T<0OG-D1SPT9F-?J_ M^(C>-O!\UU!]H*$_"+;V](.#EB5;M0*T+#G#FSN>8A4@5<_A-^#O:*2&'0"M M,0?1.%^US?.]AL(*1KBD0-?Q1J%D#=M&*"=P06"6?]4R)R1#''6$9*["<7_= M)#,HAXM11:84L_^PJJP;E?2L8&*205=2.'(Z2$B&G 9<_VG =9.,HMHE894M ME,Q@[:ORDJI,T^LQ(AET.S]UG&WGULX8<"169#$:GV$D7MGPR=G"6;2XZ\H] M'HQ2UYF9<8L L M!DN])2>B(LS4'9\X3J=*HN%OV_U\VV1R:QG+/IU+C@HQZXE^N^4OAE(@KBU# MFN=E%SF3<"'F-'V73KR6UI4P"&&0*SR7NBYUY,PFWO6H(\NY*J['@5JC&D+/ M:CE!V5=38\0E:93&A&9?O9OW]<[]LB_9:S'%CXT _)Z-[M0X>FP-%)?XQ\A) MWU=WPI]=_1(\N:$?ZEOYE3L5'TI.(()N+3>9E$KC04.X#%G^N>?K.4-F\Z#L M3.V$8RJ]M)W,T/-9.0$9DD<&&TVG[W@F00I@$,A[T"@FS M[\3!3"]4TO'XER4.6>BI3&E:8RBCGA>R?4W/E$Q,'.A^3O*.3Q'>(+QQ>P=R MG\T;E#PM9(K""$'S]_SQG!=:U6&@1F8BS&?8-+5;DME M0L0;* L=>Y>B/SX!]I6Y,WY?H/TE$P[ S_?&VP=F0[BV";J>4[BG5,1"*M*< M8&2!JZ#=__V\U%,7&/DUL3 KET5]D$OUJ)%9L*5.'4[G6,RVOBH+=RRMRXX$ M/FT&"8V2QO-@,58%.9'$.;M3=^EDBCC9+YVTBK#--V6;6W,RE?JV8&UTLRDI MXU9CQL0WB8DS1FS#?X*3B=#--Z:;-^7'^^9TXIK")^6]?@=)PAL6>!IYOZ.OH(\.&B/=_/D7" O=)W^G4JYV/GH5^_FGX\"'J?TZ9O+M51?<2;?CPV%P9@_LG M!*@9RU__A?_9/5BUH V,\#_YS],)8E$OMKQ'4?]W%L1NYV$[;":QHZ\]8'GJ MH-?XO_]SV/E'0HJKCN6X/W>L>N- TQ&CJGN7^+W;P,YJ.H[F<*:OXP8QM^2YN 1VN;_2UW6>8 MJ_8?.IZ!P/,35_0RE@ ]_S+@FDC6K.>".;VHQ^_NH@&D,L%R6@4^+P52N4M@OET7D]-U\?,P1&H7A36 M:&::N7RLTZA*W5*CWKF+O+>E>O;^ VGC3[N4A3UI5$LYH2OF8ITN_*-D;<33YWDS0T-N3!@!LVY)PY M:<&6J>-^9L7 W/ 9TUA.U393Z+29REAF9>IYRY(I"&6?\@:4DFS5I4Q%J>>< MEIPX;CE>KWOUHLST),8T>UEI8O0:0( MCT8T905Q/AOI9=PC8V@A[#ET8A\H3L! M\8S0I(R)HT\*A4$Z5PGE]'$_$Z69/MDX%=5L5).:E'SH/-1R FQY///=027= M#BH,!2KML-@2O$T>CCU]W,\I;2W+#_-.PC0R4C^>#CM,7D;//.KGLK6VNT$G MKU&,[5CFH#]O,W)+IJGCCO(95TUG]76%XL7U9JP8-4@D8]3TJ*=T4BT(V:I6 M%D$IOMRP0;I4&(>HZ5%7@1RTFG:[EI(ZBQIPVA7%4U4!-3WJZZ9H#,/)(N!, MIB-,^]0\*,M+V 'ZN*_*JN(]]%?9A=2)"W8OR-6JC4P+-3WJ:W,@>4TVV6I3 MV;&IC[S*ABMKN.E17Y>&)2>YGKHVLRMO.*QYZ2G5QDWY(X:H#^KS^++$2,!M M*EDF8PGV C<]&E9G VA],%SWJ8(VVVQZ_":;0I.%,W_CIMCXV"N+D:D*%45+ MF7O@Y^Z'PTT!Z59;A1$I'6JDK#S5Y Y,V:T:=ZPI^^[NK=NGT=$6\^;3-O[5 M^E\':M+!\QWX3-URPMUVM/L]C@SYGY'>&\))^*V^N;4 \(MW3961YUB!#\ZL M>K[7K_-H(/R]JXLA4W^1J:?O&3+UEYGZU#W]:HUC,O7G))Q7 ['(U!/"N;VI M)X1#".?[33TAG$L2#DNF_F^F_NTAHR^MP6_MVD_QZNX>FX6='KD&?$P16$N M!H(>J=A>?/ON8)K@K\Y=7GU#&,( M%#)\F6\Y[L@I=UU9 M?2XR$5<0[TX$GP@^$7PB^&<7?/:6!/]]RM^G+C*^ESY7H'ZM!2Y*(N9/ +Z( MCJZ%Q'QE!3XH*?1%?1V?B=I+7T%Z,@L?<]N*/O)X7N/5JD]+U7KFM,\E6W5F MH(N@UX3 /'$32M.#7**:XWBJPA5ZY6:Z4:+1Q4MS$#W^T&6@S?C@.Q&5"01QBYB)%7V(EN=4/CPD))GV.6H6 2,#[0MKCTQ%R1 MD^#B#'$N[>4*AWH]9'AFHZ2QPW 50;BIK!&X3V5I6+#=6CP5#_)2A77ZR['C M%7@9W19$B8?O^,2M)J B'$ XX-(<<&:CYLT<4&352GJFQ.<4XR5 Q2Q,ZMW- M6,:E7NB[9.)6LT(1#O@4"^@*AWH]''!FH^C-'$"/PV19Y4#=#!A0I+N<0G5= MQ '8-DHGDA]N&]TXSB]]AG*-,;2_N\'R'>?D=W?9;@4,%W5D7N/"7QH,1+IO M1;J)N'YL1,O7&.37]$B_-U09:IXX6OE[!"I?[WY%INE:HT&O8A.\JG%?HWA< M(8H(+&X1%M<6'/Z-!?\R0=+?)B:ZZ:*(!7^-ZW6A4EUS',G@ A482Z#ACQ55 M=8,HX@'^&(5!S)4USO!X^'?TL^-/@'N6J(>OL>0DDHM$8UXT>"&KS%':;'$U M![9F^- "1.4H M<%6B;PZXX_!/X+(5X+JYH>"%TS+W82877:8>L3(872#^-P M!BZ=)F&:!-P$W!>,2O@+<*]2_CJ[WDB"%/=#KCFCUAE_+4!P\^@>!4/1!-P$ MW"0&^X+A!G\!;FM0K#NAXIEB 5I)8X\N#1H#!&X<@,!RK^W<7],5+FA+Q5;A M]U%L]CQPU0F*MG;TF&ZLD"GB>0!:*;ZKV)X.T!3&=->9Q>8NP!'=N[\[\)-3 M!M!M>L9)C!:)T[P1NZ=[/'0GD';>YI8"&GD<$(&!\=Q_AGX?H;T;@W_[- MV;D^!%L3=[@_P:U.J=%=V(!:4KR1&W?:,?,6PT:]8 MGN*.'@]@^\AX(P=+W]X]17S/GWBPU$:C:^B2!S"7-3 V@5:RQ14D07L,("$^ MO3%3W>)Z?8+@2A*PDHDL+4F,;\)UJ$BS)(_++:+#)I9XHPG<"=PO>=3TL7 7 MBV:C,O895B&0[O $RG=B'IPF+^ZOYR"R?4A2(.+S M(>[B:S9_L,^G'EV@.NWEZ3H=A.HN!#6FQ1-LZ':G+5.V\@EJ45?5E)_1B^.N M@.JE0VLG=4,23P";0LV9&L^+:K[/T_* ^^9 M)*XZEN/^W-'%P:BV98D9S!QC$(^J#RLZ?/%/Q0J5M;<=93)]O_=9_-PS#IJ& M&$W=L]S_Q0Y^1M-Q-)9&M9*W'_ZF"O)V87QG M_I.A[_DSKUR%_RJQB8O4]G]T&]F71=-&ZKCU1#2W'_WXU<47SAP= M F2\'JNJP#-<$D -3-N:0N)^!LRPJ3Y&5.22L,K2?3 MG$K_B-[Z,;-V!,3?E.5KYO*Q3J,J=4N->F=;QK94S][C28@&46]TQ0Z<:=B@ M42WEA*Z8RY?J0CU;$JJ=+ORU)M:['9FYZ#AP)Z/N=QNQP[[&]IV-/?;V/#O. M-/!\0U__R9;SE.1H1 MOI,[(QJL',]@K]4.LV:<^O(SB&5Y#;[K 0WE T ,% M6^O <1HZU+%L7XCN;T+Z:,*M236@V0I[D+$&:VW:=4J)?RI:Q0[\:$;+8A MU;NE>B'6A,*8+8F=LRX<]B[DX%RYQAP]I:%G L^P@>?A]5D?KPZU*3))G6L7 MS75%:<=+LA\Z[=8YY_MUI>'E%3@8%F+MW< N!N/G_<,TZE@!ZJ"WHU%;O8_] M$^5U1^AEJ/]D(\4._T;_)^:XNS_ ;V\__-<=ND2P-#38=_B#%JB^A[W L--+ M ]U1@'^!?8P\P& V=T+@PB>-%=O88-F!S577\3R<4-X#,P,*&'H,2CN/O,D6 M4'W7L0W5BP'5\=8>5"#1LV S&_[I#M6CM? /<-:@@G(770$_K8C=X_^:?R-0%=4'U?$BKX(]5YK]WX+MCT"I#%&.KZ_M8%S[C8"[IY'\>)^MN/U/1^[W=HNR2[>-+ M&JX!?,5=P[_J?JBX<)#SR=I#EB-LY@,\ ;!K^PL=T8+^<[M9NM?"-$?2- ML8LU<]5PU<#P8_N6V7W+:+I@KZ(5P.\ZS/<_45P-=05.EF-YD1@ &S;Q)XX& ME+5"4Q<&N= M>=RL-,)KY!L\,"26A]O?U; - H!Z:!'J>XO0VUN$>X%'D-OG6HB0MH,/EB<# M?AQ.(.K7<2=$S.(%(\_0#,7%073(,L'? 98Q@^_9<;!BP;<]:@,8!N[6=HV- M%"NZ4H4Y /FW(U?TA>140G&5(ISG&9P=;R^/07\.BL51W:1F&B?P8:LL! /A M&N51BBZD[8=P5:*(+\*Y>\%X01C1LJ(3$L3WH>%/8F-@0WZ'8H>D$\R1'"M[ M(H$/A?)KS"W@[:JCH*,=V ;[/+P]Q4KWG?M801 >.=E%.Q*$[78#BXY.'?B; M"65X-X'1KN9YP6P>;0_^1/&AL$.#S<=O@V-R7-RGV1XYVYM^Z*L'<:9WN/VS M@MY8OQVC5Y_^4DR)7H/PNP/ER8G# 'JA/RZ 6T2P'0Q =ST]I"$\%J2,OH2G M$ZZ]H]W'#O3W@\F(9MA[H0L[(MF^#B5T<>!3T+Q%8]\]2(L%'M #"PYT"7 / M3]^(C&@'LJH]-G#B%SQ%=T_68Z; -Z(L,4CSV)(Q%!8G1+R"]UW5!1K<:^&D M>V@1= 7J#TO%"L"3M5*Q,&C'\X_>%26B&6VU2;AJL]&6X> #HZWG MPRTS/H*?:ZA#:%&CYVX7^&X[>ZC($GY\ "?$10$6T;AL[5'ZD%%V'Q,B909" M(K!\-,H JE^: 67=C6*CH8KA/!I!^YMB'^\A>#7LL M6;1[&WK6HU3M?"67V0:RCHU\!]&CV@8T-K$(H9_V>T)%G%;%#ILN2OVVE.LT M5N6^OPR/+=;3[M+!K1%X+X"WP_'AAN@3*88,>@'Q$\0 MQNB=$(83R)QQ*/4SV!?(9OXL^OP Q-XVM17R)4*4X5?FX">S$0062]_%D&AN M=79,OTCIAR_V)ZX3C"?(B-I5#;Y[,IB)LNW17HV"$%S"7CO!(<3VW3 0.:B( MP=#V"[3MM@KG,$ 8ALJ)-3$6WB(5H;.,=X M>N&+O=@$2N-NYG?VG?YD70T_.- %KT'N#F?F44 \: A&\W/:%,(9R%Q,#M.=%RUZ'$S>)"9C/%#QA6UWFJ6$..PG[[*Z?"U%D=CY*TANC7N9P MU>7ZF%TN)+72EN+#,IC5XI5XJOZ'82];WI2/>#.SSL#-90+GR116AK=ON#4$ MO?8>%S4\D->>A&)=GCPD"^<"[FWN4=OMLY2Z46!6GMLV&:@VEM;90L $3V(5 M2_7\DVBFA#KRE3Q]V]^K$P!Q5M#'7%=>5:?-4: ML>E-(#7,![F548L/57/\XY_O68""JQZ?'4Y;^CU0NMPR9D_28[R_"U-:+@B(W\, MZ/W"QYF#E4\_A/F\4'"S4@!8L[ZF -MH"3]^G:@V^W_/3.R]:C3&7KD36P=F MBJN'-HY+:T<60!WX9UCD\2;C*<-6RJ;6U<142N25D*F,/P'7_+J>:FEF7#?Y MQ&1)U=*J:"W"'[\<&[R,ZRN&=<,&NT_?B^KSK[;3[*ZGBX*8D[)3HR)*;'U M2>'G07HISCR[LP@'5,-]J"79PHRGIZT?OUCN[9#V'1_;55LK',D!6IQ7MW'F M_-OX\]L\U\GIU893H*F4&)B+0AS$\Z6<49I_QC8N6@ZU"0OE-%4I,T&RX?&U M,(.V\8D+7@'\9V_DSU?QU8T<=?UK;.7 +X[7:2W9-8/X8& GQ^ZX,?Y,W&M+ M0*\LGJ,JYK)HU8:=024)<<\=7X2_TJW\K^%]?G(W,[4J798,15Q H2V9]27G MUUN?@.VN4 @3NIM4I,6T,^[:L[72YJY-1?\C9'^ BG[^]>8W83:3K_L3JK(I MMXKVIN'S[">"6A6R9;O8SKFB 08^[2>G*?$!+GOB^&[8BZ!^OHTS]V<7A.>W M\*YP98N-7+)ACBM+BNE5$S,YE5U51T]6ECH'CE.)=![4O>R"RJ;-DI&)5TIC M':KDW6O"\?/E^_HXSE>YS%"N9HK0SO8'+)CGAYGA)]K9@[7GYX2)[DM9+BDU M^##9;K7@YLP<5SU],X[I^U@' !Q*'2GB-(W_I 8B*-BT!D(U/?A=Z/*!%#4 Q>Y-]%ES&".CMI.NX:[#OQ5"U1PZ)&^.SR? MG ,732LZ5QD[R+>[;0CVQTK8HL"^VIT8;4=\X%Q%'L7H>.4%7^_^ &V;ZW3G M4W]ZEG9=?ME7#_W"B:%.8J'BQ:(#,\<^F-6]2(Q0$-+^>.MN>P(V@L_64*>B M4T D2S90W!AV=.-S,9PP]\E!J09P0EVX0 XJ8('/U="YG(M"D^!*=P+8G>BI MD9-\_ZK]"1H4%O\M\1NGC\B.?O]B ?0,": G ?1O":"'/=J-('CXM3-'].):C,:S/?NE"+ND%3""#& M%U<9T;0;5NS)N*YFY^F@Z(H7- RH7VB.Z^TB=?&))SHNG -$X; #VMTVO +O MKHC@3Q\@8GF/0GE/O0M"7.W1DC"),1@#/E*&B.)-G'4;?<<'<4E00/7G?C[N#P%VDQBAN= BN MQ. ^#2RD\=@VCHM&8590@=@I"MO0E]TH<$B8,8/\X^$XI%.SM4U+@CH#OP?) M*7JL!O5"N'9HV;>:']+-]G,?K9F'FFY/B2W@1^ZAW5-0^RH%S_!_K$+@P'+N8^G/I"09A9Q9L(MH;^$1\C M#%YB,I,9YA^&X[Q'\=6$49 R0Z?/7V6L<'8;/!%9%_@W\3"2!*UAYS&$HO08 M0G$U;'=H+3Q&%OX; <^TFPY[[&! 0\A/_)H)NW3?48*K]1?#;4X#YVT@W[8-)+FB$5 M\D!Y,#O:4**+@UQQW6F]:=+_=*)S5$YMRK6F3/&3DK@ %:ZR4L>O3W3TTRCP MH^F.9N-0JT6=BQNK>'2A#@H"^D=NC-:36EZ4)^9"$JW^=#Y]R';"D[>=/X!9 M7E.G'7OKG$#!8'M5&O^S%9+305A/#7W54N!.IN-P)+0;1?X)]"N6("@K&HIK MT@!ZC&%C%1YYF8"_"YR%AO0VKEI9*H:%6L3A&L=1KJEM@/7](9D=2NDN3/CX MFX<]P?%SR*$"U]I \;/^0?CP8PSO7=1EA)K AAW':E5L''DQX",./H02$8_< M O&=0K5S#]@ Q^[ZRNKN(( :/@%OR7#2H]A>156#61!]-7+MH#^[8 +U+ 2X M;;#M/]%C_Q6MDV%'@;I(> ]\,0C%_OH^)CUV[V37\!2@.&IHG&+]#]^>0&Z* MQ\*7VWC?V#^CU_\K&HZQ"[P]V?:^BOD>3BD;OPI?-G]I:"J*9<=+&DX GG3<%73)((HJQML<4*$E@J/W'P$-.0Q* M6709:8;:8VPX< %'^*Z5@2XNX!WQF0"B"X7(V#&>WERR@8'?C^3 UK#NC.(U M(1N@/OF&:LRQQ\[?!JC"Y\/7(NO)!#@&%Q(\!SB>B$2M[344U-SPO "X^QLPGCH!6F!AG^<60Y-MVW0\?:I>]_W",K$[F\*NG*P/D D7$.P1%=-7EI3>[\9H>_O9 IV M""V--L-#PX.N7P_. F_$0J[71)B$1WL0,NH""RMZ^QT(V''RK!!%*N/R.CD:5E# M7&9R4]'CI0I?Z#&"(R\!"W53^\1AV1O4HH(F5.U>P+)2,!FR8!0606(L7$(M MVN],SU2B$_O4&\8U\29NL2S/!(IO+2O=R;K:[8?C2XPKVA:?#0J=*.S=+D>6 M_2%=;R]@;1X/+I#:""%BH[WRQ!4$=)R-88G/PZYF.Q,>M]^70MZWG69>NI"Q MN]9Q#]/#+23GTK0.T-48VX0LH7Y.4&&G47[@9=E'# 5=QU::]+ MO!"&DY;6.97J%R2F.-:*R0=.6*!XZ5.$M#\8BZ*JWH#C^714YH-EE3$+^6)G M-ADF*$EN70+'.Y7I.9+=MPQC/72L]'B^Z)I,8V1D^('DU*F+#.-1]WLVD$B1 M?]MPV+3%M!BY,Z:R6:DW\&E^9)4O8DR?9%?EE9LU>Y9!-HP>*4L'\0*0?+9& M<1ZQ00^S0>TQ=X.WR^CQ)*S \-0 9VEXZ:[DH1E_-91\J+[N[=.]IK@UA/'A M^.[>V-V)RW.OW!J#B_"_5\>=<>ZMV7M+VZF(#$14E.G O[7G0OZ "UM\J5L% MH,Z*BBD,>ST^YXA)J)QQ]\>1YC&XY!:^5GWN.7I'Q8G1J='^L*AAZY/D MA@Z+)L/8 JC$T_59<.+2]NEVUWMI>S?PV./(KV:G$$Z$O^]=P-L<%5%2#1?Y M<$=0'"-W+_9](!=!9.A$?JS'ILB+IVY/Q4<@MOL>/@C%B9G@;]N;M KL3WP& M!S79Y[>0]B\Z%9WO@KV_(?)%*@@?FK$TM""*G_,1?G:^G-<>=O?HG$0].=4 M7P\"'T]21XZ*77CGUB&+_;%5)W*IONV&1Z-93+/B>IBA"K7ZJJ@5\PZC_SG] M[_/M;"?N\3U>-HJE.\EK@W7#2H7SWHSJ#,V$64B571H@^N?O$Y_+_\^FEOF MJ9TF?;^O.'.&,I;TU%PW>_&BVOJLJ9U2Q>JJP!768GPHR9F,U6';/32U[*M; MZUN4Y6?;Q.O0V\,;.?;> O&#+#9>@-)RXZ.*9WA_>HP"<1BY'?&)T#9V\S'] M3C2,ZP,EWN)058BHQU%-B-W%"KD0)+2EQU/K0EW*T5IYX( _%QZL;V2W[-:' MY+D+!,#Z=7ZF^F-%0 K>*YK+=0'\M6720Z4_Y-I92>S4,METMMVL MB8'P]99I6JD[H_9:R$J-^-QNE2Q]'!I8P4Q],%E69F[S@CSY=.&T=EI,'_!DQ =RNTR545G2UN&W1+J-J'P_NCJY"V% MUX/M46^C8\:MZH2RN[A0LJSU]@@/LGG4D^@=.$1.?7SG[M$?Z>SX^UH9)^+K MGP;W?K4(>Y9$V),(^]]&V$,+*+Y=9Z@*IG:=CI+6I]540F-HF4NG*3FA<2E9 M2;.ZG/,UI*DASHVVR=V57E/V6&;V">3W+3>^''+%1%<7@U!L491?3^;:+=CRZ)G% M>FVP"LS!3,R:"27L+#A1:(:P)4T_;VI)P;3>:TH/9L?N932_N!2D7BBSQZ_/ M^HVEETEE%''=Z*8ZA>R#*F4$V))[WE+I.].YGZOTS,6D8PWJ7*_LM] SCSI: M,39^_&&<25*,FNW[U>&,9BC4\KBC72DNA,M>FZ$JB7:)GZ1*0%-:)PED'//!I2O;UI MQ.MA#I@+O5X%G>Q&M9(A;'DTI%J"]>N+9FU, =EX$)5IU5Y1J.7QD-K%(97* MU)9U4QF9#^UFI2N6PA!JXT=#0[R4YS-!8X-8.>>32DIM),4D9/ M3DB%^3RC4M-AAI90/X^'E.T,IO)RE6^+8"2YP;*S7H/Y6$X>#ZG7R':E=HH= M44JG,6@Y =_-=T/8\FA(%%^&@N&"M A6FYEK5:> M&$ \23F@H(7*T!-LL5_RFYE\4V^/ X3/HV?*\]DZN:BIFCA+&(V)2*6DI2N< M8@=5+X/"// :(E\H\JW&@@Y<[R0\P4SO+50OSE"-.M.=)1QQS&0/X?GG=[*8 M/[J3Q;Y\)^M5S^WU6!*[F"GC5<4_LI'P/9%@AI(-HDB.*#[NG]A=[P0>-)R\ M?_W\E$H?QZZKT[%'6",YOJG1&K:95)A8,N*LU=2%36-@!O/QF=SI!WH+=?^Z M!?#X3>KM555P3,1>68[*P.&[WW,/_-S]<-@II%MN.X24+C52UG:6 59DE>[6"^8$F>?!\%$"C M0VG8S=KN]SBJH_7 P/KK0I,IAJS+]:T+?9\BRW*%RT+?IPF/7>'"$!Z[SG4A/':=RT)X[#H7 MAO#8=:X+X;'K7);$/94@"W-]"T-X[#K7A?#8=2X+TKD$6KH XN?O4JU;9101E].($_?B50QFR<8SMO__[[Q$1"K*;_ND< M$0V38.)&,/$:46YOJFR#B'Q"ED2C)!HE(4JB43XGRKZ+AN+HND;]@\ MB0)),/ =, #@]U#"34*+1"0BDBQW?40(A2$+2*A M$'?)5!R=*%!?4/Y?6]MH88__>X3^#Q/\[2VK;?P#/5_%<*+^V"XSP1<"QB[W M*3*'ZM4-R<=AWD#$!QUR7=DL_._'G61=8&0'&,9W M]P^'RMYSSP=[YL(UCSD->[NT=?M\#IY@:VV JK("K[N>@ZGK7=MZZ?A#.QR-:IW76RCN?#S[?&U@E620R7=J'$320S2"_"(,LDI2:%,A_Q M2/D@I$)(Y7V7(J^,5(Z&&OLGX90_XY3'*.43-,)YH1>.?34O-9H4JH#5;Q1R M2#E)GZ21?Q$>(3Q"E),_2Z?_D2]7P!T0;-_,ZH^7H';LA O0T_YF5([D88[7O1%WT6^LH8 MRV9A67'K)L^N"SW>7!GRK/7I]%7+F9MQW,Y6I7BA,!Q8X]9Z(Z%TQ>=VR1#T M$_1?)?I_5VSQ'&20C3_DPTIS-14[';5>+B_]P2AQ+O_LVSTKS ;0=39(B")/ MR7(RNRIEQAU$#OR/7_1Q[1_"#=^8&WZ72.H6'20W1PVO.DC*)2Y!EUR]+"I4 M7LI4JW-?RR$V2)]D@X]SD! Z^'IT\"U4A>]T=BL,FYMB+K64J ZW[%/+6;$Z M&HQ1M9(S^3FNS"&(#$'B\B4N7^+R?0L54F>APG([,VF/VYE0Y+E%9;+HN65; M^7PJG$BI@3VKBDMJ[5?FTX?/"2;%PFB"))+IS&=3:IF M/S-HI3*)9B^+BPJF?_Q*'N^,)(B"\,C-;(WD%/+=&G6&Z:92H6ZGQ?5HPO&2 M._+,-JH;^D;GPK]QY;\G&;G?O_0'E0EW-XOP)P=%E^_I-)B=2 K^--/W6RIW M'R0C/WX_[![K]"2ZDCVL$W0)]RW3->@D*L.XYO.SZ(K6;63PB'\?_[ >RXU/FQ MK=Z= '2:2R=DG4WS754SD0WCONZ%?TH%?+F0MP M&'C+CT$I\R<@IFS32L3<_1U'^".&^7'%U!@JEJI&IX[H 2-%@P0S\F,@.GF\ MW^^"!Q/T&W@?B!BJXGH@]D\*KD:_']:D/7]%UJ;KS*$XK9MP>?'YZB(PYC-@ M^TW',M3U<0W6BI31U5HF#*1L.:EI^?XR+A3",]5@/5AQPX?2KCY9<7P9\=F6 M?E E=S>T&-S+8OMQ83+^]"*^NVZ]V#^PZQ^6/\]7?"A^B@]7W/-Q _2Q!N90 MA W\M\"#6,7B[?FN@N8C;ADVB,V /W&T&"H.@?\*8,=FVV\ /;!B%B1K#U7_ MC>Z[KH'B>O^*.3INC=D6!.^H$ZNL6:.C-8 176_*Q M(OJBC!Y+9S4QE-V ]:8B2+4>*LO\VF^VSR6=7Z5"\">7_^72]Q0I!_1B!J!+ MEFFB2-F9*UP7-G6?ILG"G&UA_O!(=\M?5^:>R#JS.5P/]U%3^!!W%'5]A]%WE12TILSYRL^R$:=]FZV'9%(;-H3K2RU(P M5)E,E:]DQLOQ$Y]*W /J3RUPD=[X9F-"PJIGU=#!WHN2SMI"?)ZS4M1ZD5C. MYDY>#9DQTAY__&*/#:-WAF?\5AN3JUM2"VN$6\(L:-7% *3:EG".%9@.BVIVY1;3265#!H M)'@).'*N&6V M8H\C]*+?:H9MS(+9%IWOP?Y>U&"[_%;6MH];5OET8BD)72H>+"AC;AMK>7,& ML-<5%V[Q5B9=MD59%>.#[* V7QD-76S]^,4]AWK\+V=,69UOQMAXQZ\ME$[' M9#:E(F,MZ-(B- M_)$^\/PSL. M41[AMT.T-OP)<+/*'/OI-T![\;N[P]Q*SJ6F13IASGHY95%( M]--QT#H3A*L=NSOK+BF+"D92E>J:$I],AR?TFXN3WI].8S%,B'YRCGSI7TT',<>'.ZG5;OCP']LFWF\JE>5E(4 M*9B*4FN0;HPO?DA]ZA3X<22Q:"B7.:"F7NT9/@[VT!)[!M0+H70K*MPI7!0B M =2)[5C.>'T74R'J%.H-S-E'1OMZFOMNS.!_#&>Q$;H?!QX MJ,^SD6%'+]V6DG"C?S7X!=C'>>"J$PA5^*;C$:-3=V4&08_VXIACQY1GQ^TC M!<[(_K3=<%\Z;X?4ITYB+M(68KKKS+;*Z"$&T3X=-U;Q"'(_B_@?V5@I2E]J MUR2JT337=#:GTI-.ZR1^SQQ7X]A@CW[\SZZ&SYO',C-"M303V(RX'C;^/WMO MVIRXDBP,?W]^!='WSAOG1(!'[- S]T2PFWT'VU\((0D0" FTL/WZM[(6+4C8 M[FXON)L/<\8-12U9F5FYYW*&[N0N.%A*!K(02D&X>@ITO[U@3!TL,X&H3! .;'L5$D1(3.C!^( MP!/A^25 )//";$"*:-7H@+:#9*4 9K:3+!J(P-%8&7N,%%8OE@B@L M :AK9H%!((1D!=G X5WH,X$W%B%P@5+HX^ O[Z+V[]%\%1I'C+SZ;"PBBCU M41G]CC-SW4]_A@/>.G: JWE\W2R(X)(1FM--(A22"%:QMXN\S*)$KIF1&[R) MQ)UOXQ'\R,$CAG$JPC>'F0!O@2W*,UD*8#,0%49_)P)/8\( 67AMI MCHXB35KS^&X[%.J]8>2Q)JV;D7HDT_K!PI^7D-F)$J^VRGX%6;76$"QA2.HY MWB.*0IIV>];>8/BJ\[XTQ_J?'1O.N71D_:FY+ZIC>56J/"6Z5BW^L->:>_IZ MG@6&AS0V9<@@T@+3W(A>=*[ M+X(+0.)%-?05;!"A9VB+7FO$ B#2!<&35XX@HA&: >D,&"ZB*;HU/!5.%$S_ MQT5B$!?LL/5+2R$B4T$V<+\ Y+'$?R+2L"<4+9T%;,XT2S<7L$U;F>31DP# M@9MU1!%XIY'P"1(C>OO1C H2LN59"/X%TBX3P)QG"[Z%+;K>><_C+AV0_!XF ML@!/#B"BE\R0J#P SY4C.BM8DH59>$ &+/#2]PR_?^A8B)LAYJ8?0R"^JV*8 M/)M[K]B#/Y/9Q_A$BKR2D$2%OE'IDRI:@A3 G\ZO"@DWZ($/$A'<Q2B,!L=B!\K8< K,:2*)$&"!3:%V7\@>]N:<.\C[;TRLE\2< M^+*F80"[[S#G+'ER\ LE!<15Y)!9:;<6 P9B,V!!#&3 M!?"V0R(&KP,[4B'1PHZ&""E>AY2 9E5#NJ:MO<';VX0M!KZZ>XC_BO[G;]OPH$<'2=0GD M",08P52!K@)+?2JUR*BX:1PV,-(4U5!_(6&CBYLM2HIMYD#R!UG;D#8\V#O( MTF<;@[7)EL 6@\1OA$_D&\S'D2A##3.$N]]=I:9LR\$&$81#2%@"L18_*#)< ME([QDY=5"/2B=P#"*8+CANBO[;,;0O=MWS,\(,_<(#87H_?.E+&YT+8!3=$X M;#W&.CN\>&@[MGQ)IMGP1_(HV9E;Y',XT%VH8?]M4"F7R,IKXK='+LKK3 M%+"A^XP<+ANEK<$QQ83:!VUE9H-HA4@ &A:T$9^3=CR8Y-@(=%NJMD:2Z@SI MFV#EQ6< H/&S&7@* /O9Z+M0'W"&F$$D!CC7OIS;8X(\4;J/!FT P<<&#\!4";4Z7J;J* M#J2I@=,]RV2JH#(23 L'_II*?U2Y F\YNC.JCJ"C(U2B-E?5!AQ3C'VD$32_ M;<'UT@W9##,&XS4 9Y%2+5C*6<:D'WZ"CG$7@0;)*KJVAY%X"I=!V$/%LDK, M(7"/_(Z7%6(,IFX>^\)%FR;9W3BJTLP&$R:4@EAE[-)CW&JR'A7<:>*>JQPYR;>F:]XH,]J^!$ M(H7.-X0A"_G)=,,N[["]&9 E)-4@=,*2B_%OB$?K0,=17RSY!I$C"$&BVV;F MYION]0T3Z1]V@K3+5>MX9-U^V#!U^@#L7^&P;+:4W78QY :KE- I5NM=/6]D M:\\\X@B$?GO&Y7@UU M#K \ WB(#:L8U1S<)Z9,"#[05Q(@,T-AYIY_9EZH J%"[B MT["PP6(M(+0J-$/OG^PX6'$I +9-1/M0^ H;9J82DN D T*/9&,!KLP7'@^6V( $X% Q4$.! 8 /) M((PNP4!WB?\4-!'_/PM1QH904)*(_$U\MCIXM,!^R>M'S[$<"Z\/4 *BA2G[ MIXO5@LQ'U@^!.B;/*!-"&&M':=K2')9WR?T)1 JRS^E;$ '$846V! 'K>EFR M(3W#>,^8GB/AS)',2'T+ETM$$#7#,H"#NLM&P)D#P]L^Q\P+V-J>]<%L>$D\ MN9<:F;YT/' E:?BP?4C-FT9Z>)5%2> P<"L]<$I8GVC!#=H8=NSJ=&=VM!=B M#^AG:$OP[=D+[1(SL&W7VH"G)%! 8>)'F,[AQ($_#.+H$8:;Z,'Y%+8G!QR7_T+@Q#H]5J\)T*BF:) M$5$"24P_V@\>W2TYDW/OYD+6QV7.[A%SG(O=$3W<]G+-WR8-E(W8@ M)_UP7J!9)IC/O.J3S909$W"3'2%8FZ0\^PQ@Q;18%>$@S+K(G@0F][A7=R0W MB!A\"8IGA=FH'1:6<PE\64:/77X]C@1 MY?A(1L;WKNVO29'_N#*#M, MO-4&MH^_ALJQSQT+'F&JH6(%"?WRF5$]\/JGAAV M9ZE,(W)%[B.PS"0=/ *1\U?^1S@,XTDO97LY;V?*H\_F98T'O%'X+\#%#[G->S4/J=LS;)7CQ W7I%7/L5ZX(3&*9 M\KG6W!H@-M;A9)++5ED3[T(YX^6'VVT-,9S-TKU8"K'&(?G"G<"RDR"85W:9>4D8K8C! M[)CPT+]F$BZE@03MLO,/8LFUAU';*/HGA@4&$@7##ASV./;8MJSBF!3#FAHD M-)F>E@1>""9$E;J69=YLZL+6#&?=*PLE\>/#N>Z/CF,BQ@40P]>*@X*1=,?B M@_I#PPX0 K.W.\*6R$[/SP]2E:;2N2G"LDP+&WF9;9@A*Z"^-5V"HP&60D"B MV+:C5G)"/H[)&:=YT6@3GEX>K/ *EY*RJE6>%NM3K[0='XK*NIM=%+E/2>.# M2'J7%\GK7OIJ>$4OG$6]>&WPC#'F%23S1?K"0@/K8E/23;!QXM]$D!(BP+BU M)H+43&X($U#T[%#R#7J5;C/6.L:I'THWFZS&1IQ9%@X2,,V MTSD0\^[_-1 _.Q'^G?LLKG/ (%T&]88$%)&#DM@=$F.LLA+TM@/&?;>8@ED ME >NKIMQ%K# UT_-0=0T=94M!:%I2Q)]?+;R!?5)?QNT;=.S\! MB$\QH2"I3%M+ _YPR4CR9)I"LCW8U=$[*JR$U7:T+?>O,@2%'"6$SG)%9HV@ MZ YL-L?&!9SN1+8-NC^(*+H,!@YB0\C(^]"Q9<'X9?,)0SYT)AL3R52!\Y71B@MK8'#0182%C/(%U/)W$O4 M_0J_FF*/+/B#+FP/0$3E2):^Q8Y.C)(O[][-,&SHXD4EE;?WK_![XS_D6"2R M$'U/XQ5=:=EL)#AJ*7V#9UN#W9B(TT/Q!,1#[#8VV!Y"^MB$J&L"''-84J3I M54%'0-]"7"+-LL;A#2J24U3J(+&1Q0XNA.B'H!0NDMCDRHT.\7,(M#79V="B M^&.":'>AEA8:WO7OX//S+8-DS.O@\\? @^!D/!3D35F4T3.&+4DL)]S$MFR< MX,Y^1?SEZ @LXPJQ;'0JG$0'(:6(XS(.'! .:!,"#1\D]BU=QONY@"WB)!9@D@"=K/!R\.W,QELD.![U/82 F?X7,+C+6A90CUA M3J@XN5@+2=@Z1>J< $'(:#*((G*3%,@T@%G<2)(.00)?8/Q@)Q[#COP4=;Z]29 MK3@P,Z /&$?=FS-\X[JT +\JPA#Z.OT%C;7^_IRWOD2)M"/IV%9SZ"= M;B!884%"3_'+;YG$R2[*U*GN_PW4L<" 0P%=H^D !5G?1/W/Y'B85(#^QTA M9QUF8L\YE>+_D@Y,^7"/\DK+F(62J5P,4)=8\8._D6 A*WC3KSV%4&*';L!-_07"(L!U1L&$7D+UQ[_J>D%XG1MX[ M2$8J"W[X\(/!TCMP/)S['L/D>V:/@!BH_A"[N+"#B3[,;"XZ-\L]8L8E[)0" M%0G;R=!8T,%@)3*<1-X$9@TP%QO9DUTX Z(,L20BO@0+DMN#(X3LJBX$H5Q% M-XYD'@BJM!&/BE;XZ>-))C9^(:A1' /#\67O>8/FF_LB73Z'69>)T%+ DC#B MTDAW-4A!!FB7B/])!:1+;'RQX.[SDT3EL+(>(I%4O-2]/PZZ?O=#\+CK=6]3 MR(08:$(N8%P-U\>V)QK/!#C-]GK!$L!$5+>@#:P3IS1I@GL&Q@5=TJ?]JR,1 M;9_1\4P**\?N3&@\(N&\ *I9@MX3=H1H6Z01/"*-A^73O,; )1B3]\SO2C-P M;(EWH0KH+F3KI#$@.B?8X8'_ _DR2-GP,%VDX.464&G#2:N$_9,UGOPAUWKJ\AK/OHB?X5HOHGEW&#(77_N$ M$H\UXJEF>67-AX-\U^);D\15>M"=PX3*2#U7!1#ZJJJ!=NC4=[Z6-YR9;8BH M*-D)?^1=5X@]EA0XU P:F>_* &9EGM:L>#4\"KXGQ/,N@J\86S+ 'TR=BEX3 M$N:Q!E%#-5QV2&K1U;#+/NC'W@=ZIEC@4:8>%=7.:/3]# %3 M(QGL4&8*:8-@$W[.W&L7#M D4JC)(D%TWFF=(^#P!23M6(0]X!P:G2>E.BT= M('\V,:O=1U+:_3!!@HFKKF.())]!-4N=!,@1$V?0IOQSR2!FS&Q,!M.K;)* M=SOQB>UK*BFRM".R'>E_O$,202\V[1IM;-=X MJ[9SPN=[-< V;'.RLWJ=D#%F6Y%]DIOMKG-*"3#!S0FU!CL$_GXV(S;VY[?S M2X@<=ID3>,70/*5'7[M;6HO!\M16"$18!"O+P.5P61*Q+E&Y&6W47+!4SH]6 M4_.T,$/!5>_Y++9KT'XLSJ.[17[(%\Q49)^,&P/^*E\F=IB0^S37^!Q198LF M#075%[U0HI2Z;GRU16FJ5MBK+U*+3V#98R>]RQUVX*G$[>S(8)J@.Z FJ%8X MBP: 8">;2E]S,#MHP;VH34^LL"KOWK_?A^BV_CNE#/O@-]DQ=Y]=(-#EK,.1 M%6<^810YK[D1 P#$45)4GM5C.X P53X(F15P&]H3CP6W7S/D= M454TC&!MVJS=*2X8=EV6+FT4GI:2<7+ZJ O1=@.[2CUC;=A& COA*QQ0>!J^GVH#M3 X^N@D^-9 MQ#92=W@.?7Q%V[U*:_!06#J\7U87V/V$[M)QDL&^+'4#C[9 VHGC(IWX62/V MA#"+UB/_)&7UW=%Z3IQ>*&<'W#]/V:_!C"I.[RHC($6VF8-URJ7TCPBA%OV/'= MV]N"ZS.Q&YI6D56.OK*S1:<"ACLR@9C*[! O@[E+23%0Q )=EBR7.])5$%K$ MAK5S?S"25"E'%^%=((H"J_UYQFU]%TJ8=-B)QD+S 4/1B-.$R$*X[KK-T88; MC1G2 ;:&JWY2T'%AFZZ(4_.@,-M;3/C6_RFBF!KK>^779M%]02V6/HY#%/ H*+]/X/)SE%,(4+(E8SJ>% M(V3#*7 ,01,@=2.>KA-WEE/[ZRRT7;>HJ\JVU!*K,UI=L:'''$".?XGU"D ; MF3+>3 WM((R0BA2NHFO.&PF<'<=U8#T+$YQCP<@YRA&K%6Z$\AJ(\2Q&N9SK MY^T892I&8#I"C[PDA5IHBZ%4.$1'%]PE4U41&]JPQT[ ]0WQ-)]#9PCAG--V M=$W5+%J%CA+>)?([#<=2Z5&O%$N16'O7FVC]B9$*<$D%C[M>EU3@W>=$;8.P MYFK(MZJ&:I8JA6)<-$4H%_ 1^W,1;@<>8;C! CO#WUS?J<'9TN[P3)%H/!QL MQ\-X'(W^)U0@QHL&H=*_!MH&864\EOK[>ZCIC?OSCD3$&SRQ:S_N?;"]^9)6 MW(^:*[^$252.=$N6I^P$.(MCUJ'O\ *"?ZDRX]0GQU"R]2"[T)"K6EW8*4SD M^107>7!8D3B M!6:*I 4D9>OG]^&Y!M"_;-&#RD3N$(2S P4@MC,@$XEFPXB/BG8]H5#5U5@0 MIK>1\X>0.NQ>)1OA$N^T"OE=)IH,AUPN 7S?]Y(XMVLTT7&Q9/#\Y]N],.P5 M%!P:0&$ $\?'\RH5-7%SLXJ'9( 28OPD 2)UV^_-$ MC'[NW4'TUV[)NU,BGKCD9+2678^36B&I> X1MXC$Y(WB9!=9,I$J$%F

    T. MKRGQ)'H1DH_0ZJ(C?P.[4:G\C:0M]'!0KP0Y#G%=. 7+F(YJPNEL$P&I%1.P M^&_JAD[?W- W-_3[N*&?<2P_*]=>AY3HT;&(! NE(R!9B4B%(.'4>'0PI*1% MPR%0&\(TLI.'UY[TK](E4]?L "6<(<5#F/IYI5XDSJRI5R]"PR8=^P*.N!?H M" FG@N!*QDXKK*F$CJ'2P$97;"A$!8HD I)(*Z38(HMG)*UO<&P334:P1_M% MBI HB_@7/U;.67"'_3ARI!-0]=$EB3?BS/C>P^E\RK&*A:/GM3B__E9,Z$_Q M+=I=Z?A8MDX[=5/@BE=I/F'G#%5]ZHWWJ->DGK5 ^H P:$)4ER796#S"I<,A MVA$M9#?\8@)/+,,AY>I ##1YNB_=UY(#+KFN:NQHU+ MY;"^7';BJKPFK5J!R! /@1- L 0F=& ,1,>"!F4AG$KL(FC\DB*)3R @ 9F7 M@,4].2-H*KS\T%0)IC?1\_I8EIUH!&P(HJ$]/(1637?B_ )I/%1".L[182]@ M=X+*YN9Y&A2."""J'=B;DPMN:_A-E>"Z/957$9T@N1( M77.G=3+\3B>"\-L9Z<9K+^JYA64F(),X?Z2^;'@[2->5_./0@0&1X01?,+%% M_V:A^E@A1Z">:SAR%_L@:"U8]'-^COXQM_5[-]E0W,'Q-J &JU!KB>85HDG^ MBOWMV@J:&6GBHGM*$JV^M'39 %\3=J%631*10$5[PQ;Y222"2WTX X)-ERIU MOP9#@> M-091SY%'(_'2]\::(DIR-7Q ;!B[+G"6 6$8C*A>I%E$4.SG.'.1 MT1)U/C!2H]G?E$9@(6HRHNL%40BQ1N-''E[[HV22XAX4*:$I('@KG:+!V&M$ M31%WU/A$K'Z4TB49 WSCL!6H *%[.EJJ,$39@EF,RSAX-LAKNE7MKN5$89-EF5M-#,VV077'D67C7BT=YIW MYY_4[A;K,4ZO6WRDOF;I@A3EF:=,R0( MP'[9#6G[<_A1WAK-,!7A0NY8_M&&<0HWX+;TF?#UH MK__9+R!(#&E3 MAN]SJ_8?O,8&,YME33C?Y__Y--I;/_^>^_3=&]+^^@#R]P M5J61=$[4':4B3-9V/T-,XV'F#F7D:%N@X4C_AHOX-[ZY&Q+=D$@*N3,U-*08 MSWE6#\Z#8S^GB" [;P4V_(H$^5*" :'_:?Y=5 M/SW[UDW!K,??&@H$@='0FH+Q5Z %/JC^[ X0\BB+KD#I"T;&+Q;YD[E%_MPB M?WXA\N=Y2_0/V*UCGV&I/C.TK:&T#80A7N#=5VG0<=<_<)4Y *L79&^P?H)V M!HHKF1=W#23M\^#!8C8L'#!M=]HQM#4MNLF2_$0<%RV83L=CPO=I=CP/;181 MIP8G[@5 X@8 YX;!EZ#O=0QZTWW]@MV9E8)X1-$!@B5>*6$9U,0N6(/$O^P<1;M'%NOC!X9M[;^&Y84+/FGZ M+HFV"_;P"'WD,'MDXO:Y>(LD6Y!7H^D$$E?1A/^0/"4$1U.7#^^T!"/:O\.A M/L_W@TX:HH=TC\5-#-HF!+-2RN,WFFK;!%7![+"@@?B1)=* M\VS93?Y-&!B-%V<\S%/7@S70<16[MET -!2#5J='9 \>:9S,>C4TX''X!.&L MURDB2AN)IK"JK/XQ2=.C[4])*-5&PFG4X*"PNV_<01E8^L5?:(D(3EHD30S_ MMG]_8=VS=BRT8+"T<6O5O*Z#7P1+X![G#?/0V.F[;A_-6;-PUSF8R,V*UKWP MFC@&/$!'8HX9L=\'UB+2>WR[D(+SCB 5@[P6WG[6^,D(AZ:2 MP(-O;(_SZ0F3<1K#_B73RH!L-1S5)+-/+96V]X:N+G:W69QU9I U ;P1]*,( M-+BQ0V_(Z8+AFH53X MPKW21*#\ E+)6>Z:(US1U<.N&CB.B&4+5,_9#+Q"%J,)Y?B3LA0@*+WKCY"@ MD("$;A(]A%/K9>2Z4BZ-'U@7LS.H9Y]*QH#3=CU2BV1K\[2Y)'FBSALVN[S% MK <2@S:IQ& [:T57*#^A!'3+FF5ZN"J$3=$<21/JKVQP)A:K9^"T+P6P)$7098D$WX&89H4Y1[?G8:5\*"J\64BY7#^C-9-\SS M:$,WR=- AM>1)+E$5_3>GT*&M-D\*"KX%K\X,2+I]4QLO0H!\^SQR 7XZPLE8T+5!,GT2Q?0Q__ ML9>$G/06R9)3H"<+*XN-NY.Y6V^Q7I3, MOV[K,9CW0G'N[_,D:, 0L4 09:4@6 M*1SFKA(&[7V(GA;J*)"T#(%;\'YH+(;-7?ZK1IL!L?(?T-W .1#:#900(5O' MF366CN4NN'@+/XN?Q]K.'2>0H*"0+&UF;X,0/X?)>7FK$=$:H\40>5KPRW'> O'86S'&R".GC/9!!>Q621'!L.>W68&?&AVFR_'^(D+['Q7C,@&74\YW>A=K>#]PT\?1)I&M=9 M85!2]H[\EKK:[#(;"JT%1$M\TAP9--WY=BYIULYI;7NR74.+7([/D/F+M>1# M'7H&.K\/O=@KS"0]1XWQ]DF4UY 5Y[0_HG@P9B1UG@3KFAWR>$1:'_52@&R( M-D(CL@D4MB6PNI I^]5GR-ZY$GSD9A\G@:QVOE]BHUE.L1LYM) MJ*==)P<)%M_(:O;(Y?8AH3Z.^^5A?=3;Y(5DWC"5^23F'VEL.H]#J]5\6$F5 MZ$ 3S*<'N;U'(Q/G(Y5E7UYF6_7E<*T/Z^/223[L'V!DZGSD4X%;[8\5?;\: MFY-C9S1KC=>MW"0^XL6P]+E;KB3#+9^4*UY3F:*1OGP5N7L_/ MGPK[DI4+%ZE([EJE"2VX-QO-.)-^M%&.G;I\DGE>QC M6YT/^\HRNN@,!",UG:.1OGWRVF,C*V6MIU+AJ9V9;9,_55$2NT$L6"2" M%Z1UV -%+RSOT'YQT)*,EA%P2\VPFS/)"9]-PJG/M"RMX;(JV\UBG8JW;?P% MP/OLRR Q*L\K^,;["Y"7K\:9'9AE1G2[:_-N/YL0%^CI]O6_@MC-R$R"%*0Y MS>(]DP9_U%)%2_'ZS%747TP3]]VF#?2@X^Y/N'VX_1RA V8LWQ %C-FI28%_?%YB)W)GDI *'&QI3';,B'!]5DF[[1_) M"P/N00O&$1#Y#D:X"+;1,7V(#U$'H'"F4R.F:T.AA7D"T2\1 MUS"$A21:"C'X?YRAZD-,5,%FO8\TG!+F_8%&3RA]C_";UYDSW;Y$NV$UT255 M:@7#RN0S9G):;IAN#\RIE"A]X3EAW#:9+JORINO2]IJ^5$,R>LF(]:G MKV=0I+[Z+V-5# H3/.?AI)$0SPQTP8_563L?!FC,;EQUI6T9%F$IO<2@YZS* M7$ZXB DI#L0>..;GH^Q.4D4(HK#[F_M?%7](CT<*\#ZNSN%)6 GM\4H:' 1M MU;&]Z$"H[GX2S*I)?;> $60O"M3;-^X"(&TWC$6?H76A%[OB*1Y/28HR'/SF M @-R.8%=K%H5+X=3GF>WVS7TG4UAVRB^)^J-9KOT0"Q8;K"OM]JQ2P8#AW9, M7P:_MB_1T_V7_E1 HN?U2)-%7Q6B:Q,B/69\5X&CL[(5%TV'.!R8QLVX"@*R MF!GX-W1 .(N?9+7?YQ)ZBOG- B0.M.#]Z>\(TM3],#Q>F'48HI9*\#8^=W.G3 M@BD!%V0BX6%09$I;(WEKAJ"HO2V*_@ &L)N_V.&(\J=7)16Q2"PGYDISAV5% MP-Z(/B47ZD39DA0V7:(^ & 7_FI=#*P066=C%OV0U 9X]^Z/GCW9-4^P%=)? M4:?<$J?-46]?6TF+Q]P@4E^(AO)>[;80/%AL+'?'G3O\ FRK\$L>;DA5NXE)(9N\LF;_=R??<2C=]EX[>+N;Z+N1',==[+C6"N]&)B M=XG;RW^%]P($D[I=S/5=S(U@WO5>H4EK M"=>"9U7&B6$O'F7U2_\]?1O4>9Y[?09DV $W-Q;PA5@ N37_?]_@<%19^(WH M&PRL;T;!MYO_6C M&T8>:]*Z&:E',JW0]1,^K6G0T:' MA)K9[F*[-T8D]HT%^A_WAWOAT)F42OV'6:0[NT\7C3(D3L2^_9..^KIC_*[T M]*]W$JENU!+S4$OLC:DEO9WQM=5V\#",&,J]&%=2C&HU&1,BE. MOL\FD-%VIY;TT\D< M6MK]6K8&I=Y]_?TH)#+3(YOQ2IQQUKT\6*^RG64G!>])"E%(\D^DD*]G6.NX M(^9^(^/);VDJN0H6]L8B<<[$*%A577QL_K"=/E7+P\.JGB_D=K-4_B"7N^_& MQZJ#UBARJ*V5E5R)[R.U]&2NC2#Y%\G%L7=ZZ3^;2MY+"+X1RWM*Q$'$HG/F M:3HXI0]<+-6?G.+WD8)Y>C]B,;;-66^4CJBE\:R1SO0UL9J*0/X[$HOC[Z1$ M?H3)[:-DX!N!O*= '$0@F]ZI:1QR1V45TZ/&<*[+^E)Z/RM+/SKKS;IY:U?: MGF:CX59O#%(G(! D%HYU>1I]4BW^6?#O,AE$-*O",% M7+>QZAW,N3>L?T&\W>S4'K?6(YW5>*OGF_)H&LMF]^^&]=/DMKP[<+/"*E4\ MU;=22>C5%E#:*_7'8KVG">%Y=[NOD29[%=G;4%A#)V7G<0X]QD%?X7VHAG. MLBB2 MRFJK_ JNP1+,?>MT[#(U41\3:?&Z/DGT^+4^6JF#DI62&SDNLB]9Y?VW?Q() M'P?Y5_C#)8G?Y)I+$:LW3T66+:[?&A3,RF1R&LSW'WG-C85@'G-:PUJE^->9K'ANM39%:NE1//8S:&;]MNG_H5+JX ]Q&'RM D,K;DG\;H!A8V" M4BM"P(CQ?V,88^ :H=4 E(&#W"OH*]*7)%?-J2CZGI:N*K"*[?!+!ZRAJDI M@QNYX$)65U-X)[#:UM44W;%W1$IXDH)E=AUU7%W,KDG>+X127.HN5'0JH]%: M9:QQ,*LTK]EU_W"S-%+6R>Z@X^HD;>H23VJ !B]F-Q4':*1D=$\;OH+LBVBMN)B"KI".RX70X_M*%QM/?$>Q9R_@$^!RU_=$_94EJP-')6JA1S''=U5NAX@/D,[[0)\^.%ZHQ%M%O$5@R2#7M$=AXY_[QXYQ<^HB$D&.64QP\_4Q"1U^O [8OAJ M8I*2F'7IR.J>P=W)TM[7,Q.7+*4/(04Z+OR(-R:1:J9V>5.X7=8L!*Z%U"RD MO>[(C_'#>MB0^FNLE.(.GDQIAO8G(Z%3AOXN571Z61>L-7V+T-S0BH6TM5X M(/$N-<0#95"PG&P(P7#0.>(.K C^'L_)I=4,88+!NXHAJ]6Z\0 $WH M<-DTTHB%#H47%$UH*;@:HJP*NMVY!DFD]!_H&S:7Z$B*N&6%!81:T-+QM*2C$'5&+TPQ="<\V@& EQR9+8! MZ&4*\L!*U?975M345[93NU &44-/M-,#'=W\6H;+@).R2HBL*W+8Z2EM]VFD M^ O5=5U] IWVFPZ*K4B8A;$A8JKIW(FHXZWV&RA'<-[\+=\94U>H4J MQ/81$*.AE19A/=;X-[C[]6M*(),[-Q"_5*#]XL5VAIAF:)LTI]F[N;#.35BF M-L=["K_$;#PE2M%6E6, P&ES)+L;,FTB:6@>GH3?%RHAN_D3QE[,&Z#1(Q1I MAAT^UQX.Z4J.O O@U4FK4K0".3QZQTPHACX%*)-FN[3#KWM#HB:1'] 3L9J8 MKO[&&+J*XFENZ0:W&51A09M#J<1+1T+,Z$Y^JT:VEJ\#M6.@1_174($,?HE[%5%2Q@&*%U M["(Z,K$ DT>8^J<$DN+RA%.BMMB> HQAX)8LTO(0=P2CHV>*WA;G+6W7S18Z@(#"(79-3LUU[W"$B^@0.FG.<3[5 M>8UIA/06R$7D2B5U)^N:BA$ ] DH FTND,8X7[BJ?ON>'LR:,8P09AI0EEVA MI:IS!B[SC@4&J/@,]^&NE\O4?(9#-J#PG=HW@]X2$>B-J/U[&3&7JX0;K]G3>"7R$0YL#VJT[*#^BJ.BV=>$.E$YSP+ ;+*3IC>8!E8*T M&NSYN\Z'R]7/$I\4L)E6R/!! M?TQOYT7^TIY(5QE 3EMPX)4PK 5Z$>_LPK, N^'7S.R:EQ3>9RHG$4W0,*JO MH)E9%P&[//6:7Z*G@5A4 POV>[9E..6KT8$0PBA@?[#9F=VXP&W28,*82X=@ M_1O/C+1@S$#W)TDBN64R<8@NPXS C. (KQ^XGRK6D\G3#L#;5]3NT'3>"A-+ MQM JBNAXF'6($L43MM&_Y#N)+NRC'&C> U7 /8\G[ET 3:\ OL'>">:7B(5] M!T&_^=]7^KB&_>*D^Y2); 3UE.6VO;5V.$F9\4/\S,65,R;M65#Z#&7YN"U5 M YJNH,4\?B7:$ZM$6V+E5!'WO2H0@)*V7M3!-#W6"H7(=#E;]9.IE)1:/,QE MR>-@BB1_S+^$P3)&=\)\,GB]EF32Y6TW4\KE97J2XA'M_C3-K=9/W5+R(1<_ M=7K=;_^D[C(^-Q.Y$\3F% R7,D[0S[V+I#/K>*SL7$JYX?R(:\7C-SL42]_ M/.2GU0?YT&V*Z5)=W.MZ+=HXY*;S;__$[^(^R( M;/0Y!#T:,S/#\P Z8D@" !LJ@Z)7]5<@S;D@72VU2_7(:9DI59:Q4KN>' AR M'4%:E14?I%^B.^V%[H:O)S-OSQ61&0/ !('U9M*+$7TOZU@91)*)N04G119(_@NF(W)(YBYA+9S>P2(JWUN&LY&*2 ^!]S#39QR &[_,Q\L_-VQ=F%N]O&K05^$+?%>8B/=X7Z-&T^IL8PI?U,) ML7V5FG&PJ(B%M+Z;;N?O@X-T96YE) MW,\CZ^T.Z2&QQ#.D'W[WJ[F4E?]^5Y-^D+>S!?]0YF)&=%!6'E*I1V^EMX^^ MFC@O]TKU_G8S;#>RL62:FYO:;H^OYC*;>!>N_-J4\/>[G5WJV*L=6H4,UUXW M]>[#YM!:=S^5<.1LZ;XIWHOKTGI231NM7C17-1#A1%.O9^*_271C]!;=>(MN M?)_HQL0/13.X%8B !Q$FENKTZ@3O'J]3%=G]!N:J790S$SXJ:KBCKLMQ:R M.2\5?MX.9[-R"K>. [:V#;5 ]CY;5.^-\G9EEJ3I,7EH3/B1OH3'-Y9]1C"Z M"U5P[ 6^Y\U&D05,4D[W=1SS[G73$ZSP>IG J460 _UE!RNB2YV>FR'L@+P= M;6RM(MB&/-0/%K2(?(B0A,7O]_C_)I%H-8J4HLU]*55X[.83C=E#=SX/S'Y\ M T_[)?,/85ZK!M$L5H@^ H:@;206C(3) MP=Z2NXL["RKU!&B28P9"X'ILOP!PYP9(%)[/UD'8P&531^B"E8/@X:4K<2[M M+\^K:'_^-_6S[63-,JBM@A@>>2?N^CW<7K]>KN:7%:3 Q[//(%-5.Q0L'0R5 MP%>UEMNJG5VE6Q^F]+PUK55B0DW<@] LBQIRA8;:S\X+^4GG.5-G M$:8TJ!*]#(9EN-XR7U3S%859TC0?;8HS6"$'S%)FX#%SXL"NZL&RP_#X#3[N MB<;A8<:%T]44)WGIN5.=AV2ZDSU(,@"-Z<7R'0W\)9E61/6;2?#.XP@RV22( M0S0(@P6T$U5!,V@ZU5THMP;C^XDHY31ZQ*U*DO0QYV@B^:&="^9ZEVT]A#DJ M#4,39#R12YBG4<;P%+L$6$B.H^X'D,1$1"TXJ]V]\ 404-A^2#0,J%W/NC:O MS!'YB6%ISL4QW@R4W9*"W6+S7MJ\UP[U0ZG2>NA'C]O-2-Z SGWG+V_A?L(( M'EZ/*_(3H]%^#.";"M_H<=O^9!6)%U-67I3KA^$>_)#/B6-G#]HOD.A;!2%\+0K(\N/#$?[,;2(:D8SW^\5YZOQTHRD>J-]NC'H AVFOF@TP ]&H+TG M<.N-UM+*G3+-4BK+5]7N9C)L13!P_:6Y+]&I'!(?8IUM?_C=XEO:;(3W4EO[5*^+,7/]NMD_V( MV5_%#MEQHK5IIZK+.:AZ/_ RXEQ>H)ZK@^&/A=@&P[!JAZ$V-,,(#++EN[M] MYZ0=IB6YIG#)=7G5;)_FQ!%X50:<#X+')AZI5Q\E*\Y5C&UB)B2DHP8VF@^% M1WS2&S44HS#<;%;K$3>J;MH!5)N0J%9H)IMHII>(15ENG*3+G4"G-%*:<=?$!(30:%0I2O MJEZ9)V"=.:V(\3[ H];.G+%H MBXZ A8L!2<99'#^(909LB0EELNFX;4D2'@Y\])10P]8AD:1*V[48[.(;+P-- M0L(PJ^EB_UXD!0-L,R'+,&!.QI>G_;4(T]\EWBEVBW>ZQ3N]3[P31##Y"81G MU<)7Y=:^LYARV55]&1^V^])6*CYTX97_1G9MCVRU5HE-YLC?6D^B06,C!0&ZV.D?"KQ>2V^J;7:VUD^AT8FST?>]X^1]D/YZ3",;0?Y^"IJ M5A;:?A*?<.T M6O?+@T$_AT;Z5I\N1Z/LY'$Z64GJHI,<-P:G=F$^2?A77SX\:L/$?'._.M:[ MUL-IE1N4A/TDZ1]9&.>VXOW1J)0*K=UQM=6&92Z;FZ3\(X^YTJ07VVM)KI#= MZP>^\J3,5_-)VC]R)22S VO[J);J#^7$++\SQV*M.\GX1V:5>;4Z7S4:7/]) M5<;=>MKB:KE)UC]R,U&'4>&AV.!BVWVJ)6W[UFXZGT0Y_U!]TKR?Q7,/_&K] MT%A/8JVQN1_M)]&H?^CL81W?E*HZ-QS'U,DT\QBKG6:Y233@0D^)SKI.N?A@7^NX^62L>Y:&0*I5':5-_K[M^[30'NL6#+ M+:0S"))9%'YC2-_9'^Y-P3-/-P3OGT#>32:D89F"MTR-?4 $"OR)1^YP=9B@ M8_QRG:FSC=$%H^30KVM:EH[?);+/=5QS/>JN^<%[.5.T/8,:^W<$VF=\)U(: M:,$O2D=47L4+LZ'\U- 4RY0^0E#R]-:X@"C1UR.*2];]Y>8C\?CM7J[O7J(O M="B\W^+LO$' ^&U MQWY7N?.ZSXQT,?CP_[XEO_WL^1-WT?15-3?WVMF#03;U+.JV@D")H#.7 ^L9 M.W7![D8:7X$TW#U_+_;_M6D@]K,T$.7N4IG?B@; QN5%^/>2:#_C862K%- ) MIKJ,9KV'2EAP*EB!5XV(?YD?>4AOF/4<9L7>@I5>69M9<,I;4(+F2OC$(^[]V]L9D;FWDFR>,MV$S.FEC+_#)W M6ATW0E461]VH5\G/2S^MY"&/#NY%W:C]0?RD'NK M4S^D@(>$L\^IW7]%@:HLJ4C/+%T*0PMH. /FJ5Q M,TC]&9KBVW+'/UY=_#FARZ9"-*Y,R9!RR.YAG-7&M4F%XZN9]4H?)_I"JOMQ M'+*7M3K]WD/$&O;S@\/NF!WW$XON) E25BR[U!4)7E<&Q!NWN0+Q M[!END\C48]6#E8^7Y$5FNAR:<;54^D!Y;)52)M+X&*FNQKGXYK*J8):DZC;U>,R7^SLH?('$JD0XD[W9HZY:TKHR(-X8SB?*8Z]C.!(_[!PR M^WUGR$M)LR&TQ-%D]H$A4WK;S(O*X[X]C R:QUB![T>A)D\:)+)$.!%_CN%\ M/9,4W, [B%M7PRAO2N5-J7Q[J2F(;SUVC,,BM^L\K"J5]*.F/@CWC=T'FM+; MN43$RG;E=JG2TON3^CRM/&SFDPQVW"7#7.(Y6_K- '4S0-UXQ;L(/$&\HB=& MFXE^8F]PQX)0:'1+:N&4^$"EJKCF)^53;5TKI;B#D5E&%OGB>H]X!;C=,N$$ M]_9AX5>F"%PH!(?[]FAS73*,[S?;TTT5_*JJX!5<^LV&-HF-*:MO2Y606^J*3_\6?^ U6"GS ?($(+T@J>(HTTO^RH M/8[?3Y\>UQ4N<\I]H"]ZLS0BN9F520\CC:)XJNJCTKK0A2K?8$*(A3.IFPGA M>J2"JX'8C;%8&K;CKRFNSGQN. M^X:0,2()P1+VP%A2F+'$WL&I>^.F/# M9U?'^E2=ZK,/?UVL]2=D-MS1E?1Q+>SZF(A9#&&]T5V4JOE=B9-D-9H[B*J\ MD3Y0;IO&EO-8RDJWN/53LCE3"F=2S_G#;X:O/\?P=:/S M7Q%DR@=]67JJ:E9)&C2+BT6U.G]H?V!H[^XQ-B^/COOD*E*SIJW[9GXX2^=@ MARE,Y_%4]O>U0Y$E&A#9$LH)@K6V%!X:28O21D?P)1UBP2S%KS5TJA/^X&:6 MNJEZ?ZJJYX-&Z*\O)@BYR+SHHG+TMR+!'XAGYES$?I&?!K#2JC9KTQ6)45=(C3=6="VLZ,UEM7=D1?KC M?"D?A]*2XZW'+B@^M>5E5CB%9%11+1#OQ M!R(+?22%5 M,T-'R0Q-)0FMH2!V(<)J", [69 X_$RT.B&5X]P=='T?PPTQ)005,6094C$ M>JB3N6RSHB3>7=/5%I\S=X:DPT92#7Q(QZ]6JM7Q^V!H*PJ3Y52J[\5 M%R?!F]&>_ %>Z(;\F;IGL\(4884M7MHNZUFERE1SFR&[=8@4CSF'EL9N?MA$.=[ MDUTM:HY+JTJ^K3PL=ZHN=G( <;\&':+ QOC^WO".>N =?3-X=[(Q<57D.O'2 M6C5B/64\72XW'P=O\TG1,IO6H,OU:_$(:G[F(7X1U&?-_82 +T MF5>.'\E:_3*IBZU65Q1_O>,62X#&2T:-XX4&:'F_( M1)"IBF HZS!_>];0U'D#7;A(@KJ0MB26-7UH2(%H)>6J][-A;W6_DM:SZ'+< M'<^S!D*K^#-HA;"*N .1$ +7,Y-UPXS,)54BP(-KDR)3B5^C$9IB8($ <*6 M=?8+29>0P""@'1Q!FL&W;2#9Z8CE@2EZ5"T%25&(0C2DJH"4&A(1/J %D;2Q M@@40>JTD$!W6^&%&_YM94*T\I$J2:##,8;*4P8020R)[(L1P+OCR&#"3["P= M2TE\?)*)"]%)(CN+3Z;1A#1)23$Q,>5%/CY#,O9__\VS7R!Q/#46=ZVGRK#& M57;S^_XA):3X]1ZPZ'PDGTVLI[OUM,Y5%H6JWK8RCT^]^23F'\D=]T8E.Y&F MJPC'UPH/)?7^,.JBD6ALYLY_$)]SYR(:^3HFQFKSA4GI&XL>(Z40J7332M\]Y>Y$= M+CJ[!">/^;6^2 P'U3F,].V32T[FB511;)4*2K537?6:764-/09]^[QO<(/F M2.?44BI7Z1>.U814V>XG"?\^*^W07\\E M:Y*O53E).M;,HUJQ'BLP9_9\9+0Q&&<*QK"P&D]'Y7AOV5F-EE!KWK>ZEE_N M1N58YZ&T/CPB*.R4AUH*2CG[1B9[(TO3M<<>MTWVJ]/"=+7A]K1\JW?DV%#& MS<+#HEGJMY.E?3;2>CCA\M"^?6Y6F91:FTCK4B&V:>UK?.ZT6$#%0]_J!ZM> MG#TUS%2IOWTJQ9*5R,.D#:7*?+>YU8?=;/,I=A@>TX/,JM@;G=((D]/^VUS& M\Y/5B&^IJTAW)#;XRFF<6\"<[#8]Y/5#438$13,01QB@-?.*)JRHZCR=/"XG%:XV M[79+D>:<-];2;B#5]N0ED)%*)>;,9\9-8%CT6TA"['2#-H-4)^G-;!SXG^[V MYI>?T<1=J-)N%\?51B.4:Q5#U=8@UZI4\XU2*-?OEP;]CWOOHYEG'_R!ZYT7 MT/\K$GX]T*>\@!Y&I.?25Z/!0R=X-=3DA86,GI-C**?RRM&4!2,"W Q4L"ROH#G)0WOVM,'^ MYA3!\ ,CVRA&M74R(9H)_6"F:^BY6\B&^TP?*'*YKR!(E\WA-S$83DP/C1&1 MS'Z6D;IK@8E@YL#A/734G[&]_XATQ+A$H "TG^A)[G":M%>Q;?DALE72^_4" M"4#1(-7Q7169G[$OOAD8#J:P&>9CV?:PD-H9\:KB8 G)GC< MNSXQ[VV7I?=.9J!. P%A!;\QI._L#_>F(.N5;FC-'R+XPE2VK8@BS?4#<#&>/R.] Q\ GUTW#,DD._SI^?2M[%GO7GB_(N M8'Y086:(*!C4V+\CX&'Y/M4E?A79(SC]9Z.19^,[?H4049W-25TO>&$VE)\: MFF*9TME!W]JO=!DS?L37ALYB__<7'97 ]F<"]F M?Z7;)Y3I_^_MFOW7'/NZU_SI1)[\\K5[A54&"H/FIA#Y6 MP>VHS7 0]IMA]FQSOT7>$K$\75G;")JJ]&7SE'QQ!*[BS=N3 M.1I5]XE2A3MNAILGA=.S\PDN]!!-A*.Q=ZJ-=:/3&YU^=3J-3AYS\>S&&E42 MJ[$6D=:S2CT;B;P+G4I"O]N(UQX*7&6'=IE>;62AM>K-VS9JLAON?KXO[#)T^/!WSL\I)?1QN^\WDF,M9]7@/ MWM,L!"B&TR^G^%ZW22I'@W#_/#7T??Q&O\4A7W(7?WV.\K-AJ+_(8'(0F*Y+ M(EH>@;.#P**) 4PGMN:[36,G+;EZ[E1ZBI8[NT.V.\&E1S(!]9%NQ'LCWFLF M7EQ_(/86Y>!N:/J['/(EO_\UH.G7M,DV)1Z2[G""]@8_,9XD+UZ$Y"7X]J90 M?G&%\LVJ;/Z1UI^WEP%/DJZ)O+&X)/YU+%U8\(:4$P1(ZT/0S-G$&%0!7>8? M#V:FL1F5UKU%)W-:M_OR%'*@XP2E,;.Z68EN1'TCZM?6_MD9DP&?:]3SJ\C3 M:I&YCR^M7NE#B?K^<7V,IJ?+/5=?35NSTSHGS=)[1-2I&U'?B/HKVG__\PX5 MKE\J [39J3UNK4Y_V4#S$C&CXZ.9 ZBZDUA7E&GN2>2D MZ<+B5YEB=I_+(:H&.W$XE?2GO/L!.7-5U"&PD)EJY+JG D&>0*_UXJ MQ9_!E:ZF@O\G6JH^&PC7)*V\DQD:ZJ!]=S&R@<;X'2)K2MD%2M@#AZZ#A)>Q MF)?,\>@TC#Q8ZCZG/\YZN]PDA<-+GFL+?F,'-W;P^[&#FV'[AN8_*<%_:33_ MFH9Q5["RI(JW,.7WTZT_O5'!Q\5'?OI1KR@PZ\U[MCP3F-6O==:6AERR]P U,N,X,(N+/=<<]$;I-TJ_4?H726F(G#9#^7@ZZ*M(M_W$CU;C M6C+:191^"Y6^4?J[V-(__:A71.D?F101G71:M5Y!D[EML9XNK[FX^; '2L^^ M@M(]_92NA13/JMO[_HWK=KC*D0@*TD@ <1=T<1L)81/O48_D8A9K+.&@&46U M=/R\YLC_\]12L2D)JHUJ^G=&+JY3T1HN,4PY#=>[, MWMEJ\G>;X@ ,H2AW%T_^*^3Z&\#A@R54,G5!S%.IE/[,6ZR4??A"R1AZ,::V M^1Z+WJ7>Z5Y<%(^IWKF%__*AA0Z4^C^#=B&PA@S\C? ,$:3B*6=./_KVSP 7 MB$4*<$'#E5X-&VEY=UF92XCIA6L0N&@;AW1B%HM.$](DDQ*$26*:2D[X3#0Z MF<424HQ+9GDQZRMIOS5*8NEI7U.&O)0^=KE.NR5+.<0;$NC6 M5^/-\.%16DXR6RN'1OJ6;R[&E49E&=FNCH?6<2 WN80Z@SFCOM+_3TNEGVN. MY3"YF$,[OAU0A.^\(PGY1Y[9YO33--+;#R3P'0WV0VN:SDW8\ M68YQ*75L=+7)QMP587T_I&:E6,V*UYO:JBUV"OGE8/]OMZ:=]%('_07E0)6GGXH)_O//3Y]' YX0JYH?0HU5?=G0FM//S0S\NEP][8K;G5 M%JW?28C;P:X&R_NA?[]74HUYK;=?\5-9K(X?-2[:P;/ZH%^0RIUFQ)P,A_51 MNW:_RSR6!PLX?@">5N/K-;>3'U>Q\E-M7Q/;O0.7"VHFLAAS[>8Q,4VOQIV] MK)M";W@J=H.:B4SF#R5^))9VPZ,@E(OE]J95V.TG&?^/J3VEA MMRP@_(C#2-^X^EHO9=J1WC_@^YY_T44V45MU88["*#6:- M!WT['&@T>CZVGI8+HF+FLMPZ)NKII]3IT#C.T4#_M,=\JUC@JLLI%TDF MJEM=+;3 I!0->'K4^DAHW"_'S1*O;U+K46LYZ&;QK#[\L^3E;")6MY-2(9I/ MG;9&OA6-YF"H'P&S,N*\^D[I(DK)9Z)&/FO( S+6AX$+OM^O+'95N60=S'R7 M3Q>D5)Z,]:%@;9EXZ@SFT5/I&#L<^N-ZZE0:D[%^#K#/]?7) ]]?I>K+I)$9 M991A.;"-TJ(K%$X/C]O>:ES0GM+E['I1RP8^JJEV-CZZSW2VI4(B6"VBB)^<2ZE7IL"\/88K81EZO!PSVN M=."#ZGQ76CP62T]5;GP8]J/&2:C%:_.@=S+5C8]CC5:I7ZH,T+,:BQS3F59@ M&Z5[N?Y4G"S3VC!27?'M\N%I-^EV@]HH/37WN6R78JFCU>O=EYZ>DH%M ME%*CC! W1\,85QA,BSU](\O\.I#W)F>Y^TXM4+E^Z)D&DI[.X8Y?2=ZZ/"/C9U5.:UX22Q9BZ:Q*N1A3M^)]O5( MK"VE$_>KU.A^7^O$ZD>YAY#?OT_5M-*"*HYC*VD]6E@9Q-@ZLWD0+CVU^&9Z M.%K,A]OBK!AO-^+1A0HMN7QSCEO]3 Z]=RN.1X_J\/&T+RS5P.9=4DU5*N5M M)\)MC_U5=8&TW78EL-&6F5.T>7&0Z@_',4OJ*3MK<4QW@^ZH=-A-J[OJ(E** M3>JK8KFWR11;@7?4*JC"L315UJO^K+,]K0>U8ZK1#7H?^[719&"MXSVNHD8K M0MDX3"/I?1#7C[0Z$7XU6ABKV'@R,DY',1?K!/)RW9H:>SX;4596JU,XM++< MK)G)N7@YTD1I)PP2P_5L8R;:#>/BKY[MH7$='9"JYZV#0E/J#OR*#77.>VVU M)+-T@'['2)M]MLN,4!&RX^E:7PVEA+(4VB?QL;XDS792OU>SG9\&45-\4$HI MZ4GFQF*3DX5"YS#3 4299QKQ(*1Z578@:TA_@9"TE&M=8JG:7UH;:WIH-T1E;PR][4$ M>JMF.Q_<22>6O4NG_LS"R\2B><2O4O\H77*K_M> MHG>IQ.U>KN]>N+OL']I@X;KO)767_D,[D%SWO=SXV+7>RY_:*.:Z[P4IX[=[ MN<)[N?&QZ[R7FSQVG?>2NLO>],HKO)<;'[O.>[GQL>N\EQ1N.':[EVN[EQL? MN]9[N>F5UW@O-[WR.N_EQL>N\UYN\MAUWDOJ+AF[W/\VE5\ 2"^]^U\:;WZ]T7_X&],'+FU MALYWXDG'M]^?F[[9^_S3KG##KI^K/GR#VXTJWR]&^(9=/Q=9?(/;C2IO;^7UP(U4AKW![4:5-ZJ\'KB1 M.J6VM MF[B&VH2VT9T\TSPW?VSR2TTO*+QAX%G8;Q@R]=RX1.DZ7Z8WH; M6^VMU+;1]31WCAB2\%VT]*/$Z^==?9F7[9EMC3'-2F(.73 _EX:&-+.4ACR3 M7(V>C:-@991#O,AM4^-]=]7D%$N=/\L/OOT3M^9F)>_% M*HZG@55K-Y/)$A\WJN5M_K[V:,R_A41)D->\8OS?MTC&9[N+3.MY"!+AK]($Y;M@N3R$(J#3N"L1P6I.EVR@V3FZK5G:0FR6__9,-) M+L,X 8/MC15\B=H\'\$*WKV\SDNLP'>JT%\W3O 2)W"E);KC#P-X0VS7Y7?Q M:$Y<%0R1"[#-X*"][L,..D, MD*:3%!A[V6XLV8DI %,!@@/UXU_RA4P1D<\060H?[< 760JAA(?K/H-6PVB] M+EHD32)J9S4V2GUT#:$ 0Z#/0&&W?(:OG=GFG0WGA;6@Z$N!CUD"-]=T11>= MKYG+]N##XO!??PCG^?&>X7I[?NM A L0@21HWJC5^QLZIZHFG7>&)DH^_ QY MU1MGV HQ1! )S]?J)K41&3+SQL$D\0W/D-\BUY0L,Z)56B_D^&+,\DFYUR_U M'GZ.C$B]7II7M21=Y*UE*\6F)FG^K7/D]+V/D;_._;MO>]WN84KA&1F0X3,4 M?R^X_!;6+,H27UXL>S@S4+9Y:L9E6LGR0\-*1K?ND%HJ4Y$%,E6I#/.KQ0B8 MBQ0\B,:)%S*)W"^L%*')TZ_4/PQ-GG'O/71!J>\")N\/3)6)8H8H[X:&+-$H M,[:6T\%6AO"2 LXH]H*D[QF8BO#E3[)6'I^#&EDK]P*8ZZ$M>2F.+8?(T3)6 M3]?5_&@AB&,()O X',5>DDDR,E8B,/F:J;/A Y/?BY&_!29IIKHH%A5\P@Q* MQ6&27C134K7]2-?'K$V916J(, B[(G6D-"3(934#X80 O@_^0EZY:1?!2>3[ M1+[/GXPF[_=]:B5J1M17DHTX:\RI]B8];+1V\84"YDKZA20NK^Q$SD]DKWST M #]< !/9*Y_K_(QGADELE30A=_-TL9]:YOJ=G@C0!)[KH_A+.G4K9^C+97CW M#!8@ =BR&&"*F 5_ \/E*,<[RO'^B'3W]@R4T7CWEP;@K4"VYXU\3A#'Y1:R MTOL#N]+)9!W^X2?TC4JC30[MS1A1:W&A35DEJ]9^Z\@7^X8G]+>)99!9IJNW MC273+%>S'(/%9\/NP\_GI7I2:>)7M_ M*F+D-Z1:W7"I*2(1N=(R72MCO/S0=.\ALG(FZ]5NRE1W9IV?.J;6'(B3%#QE M1U^2Z2C=^WOF;GQR".E/BA=]#T#XA:SO7(K9=/I# UDM!JA0TK6:U840D8(0 M@6!1UG=D-42IW]\2)*X'?+;#68FTNYB#",H:*PO#%M9#,@ 0X&EW,DK]CN @ MRO_^U CP;3C(%DA15YW)B%;-NK1<]+"B,7CH>?5XB-!8=HU*R&! -,5V')4= MLPT!@8B\B,B+B+R(;XL([_I8?$;?0(R@?OR;1B\1 M(G(B(JLAR@7_!AAQW8D8[1X?Q1I3MDS88J5'+FK->(E+)DV):P-L,0]BZ926)2W$-DA4=+V M'XTFU^--M-)DD$5)TQC,GO?X+=FJ82I$#GAHC5^)/T>X$>%&E)_]A+CU*6X4 M9DHU.^;3%;D:1^A&4>L0S&CS2/_%(3HB-3;%%5))XI+EJ*7,U85'V[@6 "4Z]?R/1EH9C(@XDLD8\> MEX<+32)+Y'<\&*:;RE2G8R7-"&I2J73ZPWQ_":$#GI@3R&6]NB^<9-W0-4Y7 MEX(EN4S!BH8@J) 649;UM\VR_AU)W?.+D-FS2G!;WE&I>"YN4 PFQ3-)>]+; MJ \M<@Y$UZ(U%3WF7%"8I,L#>.5_$H+_?N!H!N\((1]P;_ M1)?;F*DK$A_[+\3]W[> "O]<];DK#9=I<#? 68P;]'8RS'%TPSEA^Q^I_$ZN3S5QHNP_SW8G8W="DNU^K94GR]E.V)-%:GZ05*5AYJ MF)>D&=$@Z$$&46M8L]/;DF,CO8&:$YXE1I9Y9)E'EGF$)A^WS-%29FR,Y;*( ML'2+0=M.NM!<>OA"_?@W>:40:V2:1_;*!XX5PPLPD;WR:0>.>*H[GC?Y38V) M5TI-6MZER'7/11.W8S/Y?7-TO3?T=(M5OF:*;N@1\ZND]C[=/&06\//%IM[X\6K-XJ? MO?!010@>"1?O=^65O7\?%XNB\/F0ZNR2-ILBB8%.B\W53*^ M&,V)PLKP (, '@KU[Z$0K46^5LS4\K(TU$>] M\1C9F0W70X&'C5CZ)8E?M@*(7)3(YOALF^.51,=G+_S/M3FNNRCY&KE<=MFX M2 _RX/_B_71-*[LA4;=1;.H%2=YJ:^^>*/Z/Q8*WW.$L:&&;EC1SO(\D#0BI M]1,]8E\4\_DW^ &>#\Z%V,;/_8JQ7O)7C#T"S=@2O%;GX9[&6#^/#.P&>+8T MD^!"8M)^YV*LNW6Q#6O&;B31O=OQ?&=ZVPTJ=@25!7_5Q&,]T')7A!Y5#V:R3S1:V2T$SX9[&+/"@G*ZYEQ*@)HL! MZ;&\LW7XZIRN+@UA#D:#=B/U5 X;RW[&_W*_KM@G$S?S[I\=_9[EW M'\]Q+"JM26^J2A7:L:K"H+MRDNA(_!7U?+1BVEMP#^Y3#\P@J^B<[(O;=-+O MH8.%(+,XLYIMR)XR9RIS#;Q* (*Y!"^S#%OX/,TH:?&Y*PI $9VJRM=U(_)^ MW>CS@O<$']@YP"GLTA1^!C\<3PJF$?L34MEMW*61ML?YN"+,K&/@CQO>W,$G MOHV!(/^!,[>,X*W^TU!O1>^[UD F$UCZUM4H7EI?>;X.GCD#4A!L2?!['*J] MGU-#8.7X!FS"/TO==!.D?QH"L-@ OYP]T]=][HN#H>P4B(5M"6<+?9J%A/Z" MA026MO_WMXP&+('<[&,:T>4Y='FKHTU$E^?0!?CID;R$D"X1CH63+A&.A9,N M$8Z%DRX1CH63+A&.A9,N ,=NEGZ*Z/);=/G%[(4WW?P';\)##AS>@NQPKYG3 M%?CA__U(_?C@^G'LV:G;'\EGF)Z\U(M>@Z4J//CC2&"-&*WQ K\/SGIY8SCZ M$B2033^>XQ-)R5/6[%'N\M_KXH!]5!S2"2+]K:0!QNM/^3UB@C^1";"("7Z9 M"9+?C0G0S]!\(;NQ3E6T#_WAM@&,L:,[. M+QU;U([G>'K0-IR/W_O[9:AP^J2&-3?Q$8*-!W0S4R^4 MT5H&0 7I0@5ZET3H""J^/50\O7Y(&* "/8$*]#>AHBGUIME^C9"9IE(=6[TL M2Z5FXN.@0I3[N;72GYF,1*H5H^6(A<52!%"1AE"!4.G/JS@4@FCDJP[8Y477 MI2&8T(L%2Q.6+& !07%.?#+ 1L$%V,]SROY(K'QRW.)192*?VPXBC%#Z.PY: MTYH+AG\?V\?2E3/AK=FNN:#C_"H^[TQILK=[():BG1U/#>QMF\$(O5C@AA,5 M;,&$@!X:^H*E;N5:1+@1X4:$&P_PUJ[@QC97Q&O9YD)@XO*.C:L+;#?4'AC9 MZ6V:D]JHS Z0KM4AM(&=9&Y#AS#BQN^X;E=P MH]TMUA9TKUF0B]E*,\ZL\&ZU_, PSVJ2:IOR&<^-F#]]Y2$#V_FQF5HU*\?'\CQ5PA=VAWX*08 1QH"!X[? HZ3*CSG=5&^1BV1T-0.@F5H6,UQS^TX M]PQ/LV]ZD+2M0&]THO52:GKS/.%/[V4C3D"2Y)?1U6'$JF]Q9>E-'R""HD^'(FA( M]S;Z%03JM I\B]KA-21>;CO,0$^3 USTTDWQ%X3"/AV!0J9P 7'(R*;ZUC;5 M9T-79%B% ,WFAB!2CA,K[1;' F# GLS!*,R!+['8#[$]+U A +SUE;A&@9*+HW8"V);P0M MSV8'S&J-2RMM9"#]37M"^>G^Z.=[E"'3]5[ZWE_+EI>;S<[V"U3>CM/=^A0\"LP-;I/QS?(O)_^C'O])^4_;LY_[G M/:M0=[95SJ38K(S9/7VJE5?UAO*457!SP,6P=MK)$F#G9E'7^8VD**X;=9EV M 8< Y\KC;Z_!L7"]AT8,\J3[+^8^"Z8%)?8-AB%?2YK->DAT[SR-F@!F+S27 M GR8)M8$UA3,R\R+:G.>=7;+79\N[F8YI-]EDY-LVQ-",%F!SU@WQDW@,/1. M>1H7-^K.=/\1"B43L1J=Z=+=QP%C.H$G;T-C67,YX<5O5NVG K&&XL2 I0^T M@]NXFH4I0#.)$V(*))&[\1 FO&;9P4 _4\B:2Z8_SA!XFQ/XXX=#'8%2_Y@Q M/:"Z/[;39/8-M0%;>A\J$NLJ&0GLRM2)L?&_NW"G/ M=R#_-&>,Z:%XAH?$A%A6T T:$J-WV.(]K)-'L&[.5N;$'J-;9I 5<7,T:HS: M/(!U)'$92(H!5E/@=L%M_CY[6/-9Q;GY>5I;8,^B&-<$&<]"G"7H_F +XDR:^ MQ$1! ]3WU"'+@_=+IF6X:0R!IQUS$P^!AN0X#WH@UN1TS0T?N;"VKVX$B0+Q MR1#FX)OP&37=W"O5&-2G9^HTYFM2[* ZCXUS+\W@*)F" XQ@0,=N'F3(!3X: MQ.%[9%.\>D<<(P*_=*\%*.(\1>+_G62"[!U-F".H&S\#;_)H5;X3@;F.I2C$ MO403-]3[DU4VK&/ZJZ2 4@JB>C_W#BGNZB4$Z*O_Q(Y^AMMQL9B2YG!@)^H,+_LK&Y 27XOWK-W%7GZTW[ MT4U=];C9S<\\6)+L<1;,:XQYNJ\7VW7D+*)X(A5,&@KY!$U.J60RB4\('DM. M" )E)U."%"8\Q1(8BN#8E,!_>/-@ ^=X:6W57'6='3)L?5ZM[0R+)@8B1*WS MD<.DR8]K%%UBBI-9NCPIJL/<+#/!+D?F&%E,+F?%C*RR'85LKOM.>0-O"2?/ M1XK3P9BW!T)2)CO#-KIIJ>O2&CXS=3Y2F [SY:%,]1G5P@D^T/. M1V[3LSZVG!-M1%"SGSDY#QL77$Q M3Z1A; 1YV*DCMHWE2NOU>D;C;3#R8I[%&KN=J-JLQ:P*^553FB[:3$><$)?S M++#K=F%&#]N(M,&1?%U.#5495NVX&)DB$+RQV;7[--9(=N-4NXI*&WA ?[&B M-NE4:3F.#>05-ITO^8W5M%28T'^QHDZQLU6MX6),8VJ?72QGRT[&0OK.<5R?(YAJ'9*>CE2)F3(:I9GL9@VCE5'.VN4KWJ4*71J)$(@,, M(_+-5(\89]O7=K[14.35KAFO,]*TG5F3,SRE$; @+G'!=0LYDZ,<-27G1*J, M% ;3-"M :E(G(RST M[2ASC?>GO4&AC;0&F4D">B*0T]F$2$^%R903N F+"3,3*7];YR%#6Y[[;XW_H3( MX!67W#5?]_8B-#>AJ6A()K#T7$]6\,M80-/Q&84LW G"#@FOU*3@QC39Z>>: M:09K)AM29@Q;*($$\G1"J!4A$A0D"(")I"0H@(FD)"B B:0D*(")I"0H@( MFD)""*_L;$2()Y7@>LN?OO>B'W*M]=%-B'YSD?N:6JF/UM3"L009@A9$MVIJ MP;>\I_;:M?M6UTJO17P?"KY_4-&X=()(?VW^AA'K3RL>&)$YQ&3&(C*_3>;D MERZ2GRT'5_4H\0*JPY\'=+ M@'I0Q['@?/KT"BX\J+Z2 X6+I56[0^^RM-TJ5/BBW;>=JE\V#7U)WNST$J?'7+\EO7VB5S*SL#)!X-CX>IL.,RP\?T F!&R9@VO0=69:X!]GFOP9^!0: K-_/.)E65\RR(\+OS38>J> MC8E= 87RF='XOB^7M^"J/>U,:]AB,$1(BG"T^<+,5ZV,5Y4TC=VJ(!-)="31 MD43?OV/PKTKTI-RJ:QN]2C%=0:++AEC0BQC,9'$=" 2_53<]DND_6*;QYZ\M M3#)]SV:^ORK36;&KCJA&LR>K_-A)48Q"-])02P.G(H5]8B>$'7=3KR) M*,CQK1N7WSN*^?2EA@G9[GQ,<0O(XN,ML3&*,'47I8OUV4IAJY085""/HIN1 MX$>"_^7FLQR;4^&DH^&3J3>$T+^$]5:7VJ1/;*X]S M7YT@A< ]Q)()9%]."M!,V.]GC+4M/8;$$/C>X]2#7Z@S\'LTO;%S[ASB"NOH MMO5S)FT%_EHIBZ.]"PIF>5QRZC[[P]R"3/]S_(??6L,9[+G3 ]._@?&I"^!R M[^*=HND9LCVZPFI#<*N]N57Z8&TY40-/X&/V$D#J)_1%E B9M4 MNDK.86ER-68$?5JE,USF>EG 9Q%B7X[0KR?X1C5 'X@OE$6$.H]#'2QLJ.-5 M-HYM)&L.B^G"(MT2J[A0 S$&Q;RHN:K#WME?DC#AT]D8K*()YQY7 M)$V(35E3 G\ 1#FK9IJ(]:]?L0AJ9B[!=NF\&5L:X T:G.C2 #AA@%T&R^<4 M&ZZ'TU45OM40V)@*,,(2-'<%0&#+A/4FW5+^+&XEYEO(L)7$XW)S7J,W)CO?;7=1<:N0 M%+>B,+>HZI^8#/U&]YLG)ZEC">P/K180;KJ@"2(B2_C(FN?,<6F6^Y N%>\[Y60_*CM1HP M/)$D0W6']*)8PY4MNU6[X5WEA>X&6<_8CO/[Q)'*F"#$3/!9=9B^+Z*'K/_YP*4@[)4)YLZ*L//]U\=T/W\_;9O&U MB;I=,"$0VHPGLYU 9/?W5]#]I4'3XE;K8AGK,F2SG\LOS5TG'Q0QBA$)XK(% MY"A2-!_H:"C$T*6V-!C\NZ30N]>GX^+Y?%83-S?T%>#.I<8;!8YVBI M7M0-1-V4J8Y?S2B63.!W$&3/"/LN+/SU'/ +VXR73 X0PHH!%O*N+)UW(S]J M//Z-_/'/0N,OR;?W.5UY"LZ^-SEC:1O"I"'BZQ7#53M,?%01U'J\&D\USBX' MO]O,.MP&)CY7C:OGB6^MHD_HW2)=9U1CXJQ6 MX^Q=UA#<LG]?8U34$XE:W@/K03K/*5OK]CM&91?+909'*I M+;,9YYD-,=W\X5>C'WP!.@6LCN@"= @OWF ),KH0%4*ZH D*B^@20KH@"3(B M3&ANJKVI5QZP">]I=@;-KOM>1WH+R$-WS_?B$2P]8 O]>MQXRJAN2 M=4L&'&_7Q\0G9-%VX!<0GR81SST(>@^=GW!("&V+D!'],ZH)^>7%(QW%CV4?B:&W4I5ARE)7:07,U$KU61^>[65;D5[:L'HA0(5O= MTT K,J:>BF-S0Q"N()EBUQ8YX,$NY*YIYY7QH)-'DZ)WP(^^X,GD=[.BJ,B* MBJRHR(IZ+/H4=-NX CXF2EFYCK["D2HO*N,DVCM1^%S,J M%9E1D1D5F5%?!Z2:3;$]+KGG>KIOV7M*'2 MD0T5V5 >&H7G).Q/AJ;,S!*,&_B44CACKLQ9#LD)RVRC4R0G$C"T*(A/=PB4 MATQ7>VW$9K9E&T),E31)M8.VQ4M_#[^K$1:="4;6VI\)B5=0D!^9RPG)S@KT MH,Q-\56MCU45<9)R4? EC7ZO6!?2FA7>]"LQ)\LI?^.=!9,CV*D1VX-,;LCWO M\MC3E_[-;<-7,/4*=N[$>+>*;;(BLM)K:KJX82?L?#-!$<\61%.W,IM/D@H_ MH_$;\EKCM_MV>K.B3F_/Z;F4@J+V35N]96YF@,(F198;CGE-$>\;%9G?I@G< M1V#OW5W?7L$\SVKL>&V.>CJ]M03-!&MISO;5>:[VAF.U30NM;K,&'<<;L,==7$"$]#=_DGP%P&NEH^QQT4 K3EKQ203?(M*FIC%PY(#5T?NQRK<+;'Z;8)$1,@ MI!%T/ .[;.@;[U,_U+.OKR2PW-R3@8BWPL%;>-AXJQPH6ZB9.=LPH$>]U(V@ M$>LM?_D;]6F]EXI^PS/)>1M^51-/L%F]LI)0GL9X"5^K=D]M6&VHB:_%J9]# MAGV7UEMU/WZAH23\'9)%TFS66]B]ZX'D=%65+#="E-%XKZ&B*&@=LK[KQ>,KMR)BQ;HR;P&'HG0J'O%'IY2@" M_-WKE1I%NY,IT=Y]"^CDK.6)"":@Z MB?OG8DYGL9SCMJ 65(,B8)H6:UB:8)AS:>GU@LWP:Q;PD6D]I[[.M4H'+V[,KXZ9X]+;[S&F*?[>FV[SG3^;14;J,Y?4+38 MI^WS;Z%;&4"-JDDSX$.X?9Y#@VZ]H[[EP/0!&*PH3FQIZ&L).@9L; /,4: J M'(B $E O -( S !=X@=5P$>F/K,VL+S;!AB$L TYM(QCICTU@24.NZZ[#\P^C<5MRIG#%!!%3\\6\:.0=R M3V^ YP>%\*#"XP4%2(/AUM>#^[GT7F0F8L?4 7X'H$# 1X V003K0)&9H<-8 MEV3P<:CQG1BGL)+J6N?E%FR!;D#[%NZY%SV#+P=DA7K)-H7+UY]%FX7X(8$9S=BW$--V*304!( U@29>HFG6Z$@D:*2ZPP' = M8%D5QBS@+ !BN*>W2QV"#>">2V DX* MC773L@UN#C5]%_MJ@8* 2PY,$!#2"E &:!UP*5P=1Q&2)OC[3CS>2#S;212Y5UP0+XA#/JL#)\#Z$G@80#&AY*(H@PN7Y MG[A*2#)B,PDH2,G]GGVH?.N_!7QO_Y*7&+"#76^<=9?%N;VGX&TE@[5Y.-3[ M.S2<9K8"9-4$@@:U[V=RYN\1N@PL-^#\6'L,R3J E*:_&WMJ^B:C9Q5:I]K> M$%:V9'A&0V#!.+=H(ZR!_;"9"]K!X/$%8Z/;"N_MVD8"F#_U_&Q#@'\%%'EQ MGW3C_2R,?'#PQ&\I:) :OEW[RDP\'H616E=Y >IH@J=+7(4(5LT) E1#8*@( M5*/I+EYU&&@(X^V*5@W*QJ"X 5XW!??F#*$ M:K\/VEZF?&L=RB94W\!/\EQQ4^ENR M[ZWWQK)\(IW0[KW\$FS]\0&%NV"X[ZSA,HKCG_X>Q!A8$);M"JQOIYS(\>D; MCN08DO:D[#5X/MQLU_J^E&3X/A88Z#EF16\V>X;<\QL+_2_/ MKG4?XDF9SV^G[,:Z?'S$<)PK)Z =0] MG*8$IK!F)<4+"6B'PW3OD-V\Y&CO/0+_OC<=7P+9OQ.PB'N9P8UQ JKB?:?YQU+7P&@1!]V4^EY[_'>P.0$3#2<2Z$GP?NW=!#L;D.=(!0($^#J 7 M4/*2!;Q4R$C"J^\(\-((%-L-(8!3=;UH7EC"6PRZ]\@9R_E_Y"0#>,W0]N6$ MO5!#_H8!1I])?(_(<_X\S(:58H$VVZ_.V]1@9<>&,W#7/ _N^+)$X*3QH3&8 M:D#VO"F'1E$67.\;O,#UC<%_7\[9QK2G"R '\.]K0#4=@(_OH4/2 EL#P.:Q M1CDB[WL7(0Z68#:/?BVV_X=\*6$\"6 O3@O2,X:'\)BGYF/&Y83PJ].(=[ M!PAJ60!$[AHNMO*@CUEO'? !P1)=6R] &OJVUX.(F&"?EK8E@)W- M'5[O/U]P]9,0K"["(GOZ@LX:+\=D. 7! 9_"(]1VM1B=;!AI,LUR)F@ M =]>D2 WZII(/?JO ?-UE*"G\:N_8CX6FC*\/ M(3/"*, 9,IB"(+O6 E#)4"UXX3]MR4J\^W @[S!^H;#^1#WAA9OF+OQX&H>C MQOV[ J#R==!?;OQ6L57 -#"NYSGUKO?F@TKPS;\]G/&"C*QIZIQ'0Y=24_A^ M-UHY%UXA:<*;'F >N/R#+0$?>L8' IYH^_+=2U=$Z&H4G@ ML] $RT'W@BX=5%H-!BL"543%XQ:ZF6I<=XHL.B]>@;]@O%, ; $_% M-6MY MNM,-'#"ZS91[H[!8^.YV \6Z#^^W#%TT6#5,-DC%UH08<<4(.3A_.FNXNB!_ M"%;P^M*U3L :X!*-PQ*7WA)C?\%'^08"?':P]KVAX*KO_=?L)?S@/J<=Y(2 M0H),?#&8 '/&$ YD\6>6V4KF!$;P)\#6@.-=\ET,J[LV_V0S7HS:*T++R7%C M(JS3\^T.38L?/C>Y_JZ,;CZ[Y=(4 &#CP.O#F@8EOR((5A".6AK0&%@ZP #1! MU'V+%9@HFNF]#!AB7G3H')!#^!1@EX0^!WQ7R7"WMY;Z*?"0EO3D:<3!;J3;0J8W3%K!H[NYQN MB3]N BYV KC8I_)2/#?)2BJYYA%RP(H5!,^S ^2D\2+R<5;BO4WT3J'+.:LD<75;$'.0B-/622J8N&^;\%]:P&_!Y#7'7"5M-HBF9](G8+.V.Q:;M<6 M2I(J9-S35N(*0BP!O=S=]>ZNP.B>: !GW IRW]Y+K5_&ZW 1ZOU);$=D:^$0?004 M03^7,FIZS(N9IDVK62YG$KAC=6KB@^&PM2842J.,">UP)2HO#+-);N@J5?0% M0Z]<4OBZ#K&QF*5LW6G2V"3.\H9384HJ("V:2B"7G0]"!(?/)=0= MX;#<97O:,AO'Z6:?:98(9])&-1'V>+[,%3K 85GS"'!7O-L[#_?31'5ZI?<& MDFH@=H-:99-.&ZV:FP?C73$E*"V&SNT0C#.6[72G-MJU-H $%/*"4%>LA-?P M+DP %PKB/1[@NE6NYK273ION;HA"JU&=3_6V:\HGTK< [N5Y"!<*2MT1X9:C M,=I.5V8ZDNL7TR@YY\IJ$>H<)'%9OW0/<6$*%&4 $R@Q=.]RN_>H+D-#\!Z% M>Z6-O\ [WCD$#O2P.1?"1=A3PP7$1/T%[GO.MO!1_BL-\M(':O;%P6Y275V MI:3D(.G:QR_9_DZP*$GU-HI2HG9(5ZA;K4ENCB-QH&KQKQ(LFET>9_]F_ A_ MA,-T'K#_--X2D[/==I4G*S1KQ$>[9*F4F&[VR&:YIR6$Z:T'KM.M.^\>_2(+Z[:A1J(/H;Y)%*RBR MTJHWA,%#M.@\@^=8].Z(@0>_XDZZB6P9[8R2%,8T65FL MI*U)U=#.HT%P2SF%_&"XH.CN+-\:,O,%VIP"8:'PY$OZABD8)I + :4>CW(4 MP6>STRZ9I#$*VZQRA64:J;==E",OBW&' >5"0*8[PEP'FXU:ZJS,,NR\2^9S MC#-,4K!^%I6X["MX&C$Z+[W"!F6#L[L.GLGG!)F)KT<9=5Z2I^HJ Y7%#^\R MW'[D!C,ZC%-O;QFIFK7,5%-OX6YW^HN1^F9MY^EFJD4WQ\5=6:85)%<0)_CE M2(J8US%L717I:B.KCZL[45W2L.LT>3ZRJ52YI,EU\XC:5G:;5:M?&7IRI#SFNDP!8QRZZRB-%BZGY?8 CKQX>SL7 MYZ1V(TLSZD#M8>.*NDD/-V#D!3O)58S$.PM'0E9&?!)7"DXC0\%GHL'K'U"F M#:;&N4_*:#RM+A7=$82LH DSR6K!R-;EW;AL%QHJE.%=5,7Q*( A"'K] M-JIY=(79SY.!57;8)4-\.:V/Z\ ?SQY_O&IA5_,V:T<#@LY^Z%TR"+[,#=,!$(I M[Q)N(L8@EM;A**-+6MX'#DG587L$J$24/$URN& MJW:8^*@BJ/5X-9YJO%4Y)#"SX+0:8%\.AE4P8_@7V-4/+@.@'KRSX%M6 P5; MM5!QV9,E9HV.LUR_M48_; "[AEX6BN$)SAY2U[+.88A?E2.S :NO>[FD :MT M 2MPAN36X>X TN_MLCAV9)B-'(=2JQHI("1EMXJ4D$,-; ./\B[,LO\<,K6/ M\>'%S0T$R'^4?'Y&94N'\S,O"M/XWA+XJ94OG)Z_0%?I8'5_-OGW>I!R]2"" MOF)T?X0;K#C6&^N"M9";\6V17BU1">]_^,ZD2^KIV]PP/>>&_43A'IX8Z"'&% @L)G/S$^-!OSA M'Y9YS8#\'*RI +#2K8(09#G/9H(;S W*B1G'N5HGO.*-\/+F+F$DJ'7!N][; M>\R?!Y+]2I&=C0Z$0=!./*H/2WW3WT4OEG%\BM7>C!E3L6? ]BRLD_U%:U M7-K&O091/TON?R9;NU\4D69NQ;#9 =;NZ_2($C?/J%MN@KGYK.2GHKG_.9=? M-QG5K]QSPF&O"K:P7;IU8G0WO=@OR+LW+6C $98'*&<,:Y\9'8IO4[B.QMY0 M<9-78>$TSDVI(JI:.W>?U0#D'8[ J3RNV=*F/M;0WO+$=B M 1X4 DLT#L\ +_#+M4S/[N"@5VU:2&-HGHB"7_;)ST*_9JH>/6]/F5/O(S"4 M/79V:[! 37;Y=C>[_[0>IRD!"64-+XM<]\RCZS.!F_VD:/^Z_9-N:5VK?GZ<)'^H:;&W,?:=!O26$O"XA;WWQL%3?!;][5BTW%WA; 2;C=7OC5:GM@TEZ1LMA MK6ZN\F4LJ+.TD-8G3<(Q>9-HWRFZ<]2W[;BUVZL]/MQOPC^^LS/C M+[1L\28%L\[]"<%T;,Y+XPYJ!K@I[K";6_"!E]_N?G*2!H\<&IKX8R[+#%A& M,+&C/G,_WMMI-(DFTC<;#!_EF!\]'UY@FP%^#G8M^#T.V['\](H&0'WP9K+^ M48N:_5!V:NJ*;9VWVGMPT\ZC[[V?48[;\KVOJ:7?NY,@(B(\CPBO]U3%\(@N M(:0+FB CNH2/+EB"2D9T"1]=(AR+Z!+1Y?UT22726$27\-$ETB^A<%8BT JC M<$1T"2E=(F+VG3UM%/U;@<@';\)[E_UY0;YP+Y#3%?CA__U MD1_O62V!)U)!?=B@2"ZZW,8 @TM\+*@\>^_=>+5Z[O7]N=6+]_*,;=]]][XX M])2=^"BG1%(?2?UWDGIX*R)&GR0@[Z]<>S]$*!"AP!= @1CXWZ<@ ?86$+SJ M!V&)%/ZMP %>N?C&XA\T7#__]Q.6^U:LXDNAW>=(!Y) D]]-.K!O+!UWUQ@A MEY +BG_J'MP&CF=+2=@WR8TX/GN3CGC+O;MVO&MX(OG+SOW'+.I# MQY^?_\5Q@C";/54TZ*#MDB+-A-A?DN:5O?O[8]9TR!9W/WWP!A8^?AMN2788 M]L6#OW#MRS7$^_@][U])Z=CG"/HCJ'O0S\^7)&F+*.UT4AF>ZU+&:I"9$!,<.+" W9,7 ME4(^2Q^$#$P^V=$*V>HBJ S+OG@7G4*V+[\'E:_5D/LEJ.S,DDK%T09S9E6M M(S4K/76:^>MI;T^"RG31Z!NYY;:$="U^MYXU&OJ0A5!)?4.H#(D4A09*OI2O M_L>RRQ]DG[[6Z.670!=;-ZAF?,XJ,ML?C^M-<3*LU$(%NL6*)?;7>KLBKRHB MA\RG2H9O9-RZ?M\0=7_%0/UZ)WY]'5[+@J+^]0[SGF5 1\!]\R;G4U#Z?D5; M'A%[.%1K(1Y1/^L6U!\ X6HI+0#_N8G4X_K\1&#LWC*^&\F]>*,&BV?B/_XE M\ 1Y65O[R\2K;PG:?[[DX6_(H"/"S[?3JKXG?MXU(/&E\%-2&HO*+(=-&6$C M%2?%FJT/&%A2F +XF4I0EXW%_FC\C.X!1'@:V:./C35\*3S=992QU>L,6HS# M*&9O6%UL=CM8]AV&(P"@7FGA\YT!]5OA(IAR?&8(0DR ."Z85@XTRHBL2 M40CZ#PQ!1\&-WU0F$$X* $W*/IB\IDH6M1;=K]NU+9)3T#HV(+5ZNK*9D#"T MD4R@EY6AOVM@^S[!CI M,@+BL.S+5[F $45)'@3$I6V:M.?(;BRO%H/*=&+D M"FL+=C.B?OP+ 3,"XNB21@3,D84#,P*/5;XTK2@(UV>CR]P>9/'.1&V MF4-A0VOTLKWX'X;,7^\*R#X?A7?;KVI\=!,DBKQ'D?=G!TO.>F?M!$/G67/^ MD*![WD>"U[1 FIW.LT9O4:9S0W)>I_56?)BT5A9BTR3:KBAK"9^) #.I;X"9(1&ZZ*Y(A+Z1 MQ?JLX$68T9==\I49)VLEA&7C1H%O3T=5 Z(OC%M\>?B]?XY*R((O@]>[Q]UJ ME'?1!B^Z4/*UPN6WMN&_HWAWH#(\-)PPW?S$ZSP^T82YU=+F0YHNYOKSDC)9 MS%I;,8R!COO$O)N>NBA"(##+FM>].$"1C V-XVW!(\'&U M1'"RW3Y*"H0\TF:#^G !X!#O1-GPN^GZ3:R"?@[[/"9F$''V[ M9M909XO=G"YJA>9TD-U)^:T(T)<"Z(O<]:IWR.0M@IUH&R+;]V[H^YR02SI!J O#**0D>W[WIX _^-V4O_WHDK*IXO3PC8M M:>9X'TD:F)K7._UHZ\[6XOUE7RX76[Z_]=%YR1>W"=)1JR=. =(!R3W_Y_0M M.)S'/7H]O1JCQXB J'N*4M1Y Z?_=]*G:L]_L.6];OP,Z@TR[_PS?:-S0V( MQ__5:^:N'9NX/P,^ YBI_'-\D.)_]./?'I0M& 3,07@'B+=G4O;?(Q*_QIBG M^WIMNP"?0\TA:;8+P!XX3B>#3:V@J@.V*,?CK6*ITF;S@_YF H>BGJX!WP!X M:[TU&KL'_U]# C1U20LH\3XM\H=@J5N@.":<-(")X>A+#,:%8JS&PQ^PEQ@; MLW2+5>#NO_-,PU?1(TXF"_4F6I4QNF)6C9U=3K?"$9Y"?D5%6SHGETT3T-G; M/4_7NFK9I-6EHCN"X YJ;C3!,.?2$L[I7-4V6,.8C)UB;J22NSPBR&49K5!# M+(MM?OR+8?@+B:0N5*U+AOOO^H/!< MIK 7)'59FB'F;>5+#/P#3Z( 1BC.2VPC&$),/XWA82A;R6A'D@RJD8)F+O5&%8H,+0QVJPWZ$LBOB4'9;(9&6% M#[8(NQC+Y:94%>KY=ABPU!(JXE+-"R/9'BDTN5N16L-J__@W^0)\AV?IK]]Q M[/=[OJC&US:1Y;9RE37KZZRRU8ED*/370M!GE=)X.)15L9MNQ9&9DE^CI OG0B>44$7U5?&1-*SH7#]0+(9 B<+FK MTX-=UP[10/ ++)4"O57P%TM_Q>R,;5CS+>+OP1:2OSU.Q9>82 ML#> UZVZM#@C&: 2_'.0>@4H-15B1R-@0_4C8-W?<_*N+1V9)V'OF_)!0G2\ M3^&/GC8\HD>_3A15N2.GZ6:15HU55FBG&D"ZT,1%X6G/[$NX<9\PQ%1.)7K? M0]<7Z\^W?AXED[]B[MP&7P]>R^[/5[%UBIO%N8B) E+E'+.W0FIB#85699IX MP9'T:Q:.9]*P:U92W AF&YL9ENV;^>P&C!3;GGJG\E#1Y%,"3@;$G<2R72O MA+_.0NZVQ%.S@P-@S>U6 -@EZNO4!(R-@K8&VXIE&Y6<]R[MM0_ M)I@K6,< ^0!P"EH,Y;_&6Q%\ M!H;\XTX23LK]'?WG[T2,.3:947_&1V^/J2Q8*3R;\]X?T[TCNA?_5SAI(#R> M2O?OL/[EOZZ;Z9C!FX+Q[OU6 "V&_SL$#A, 5 :T/_U)0 NZLH. /M!U37_ MFT 1";Y\@MGP$IB&I1O@1R!2\> OA\_=+8: Z4-_ [5'I R8(0*(B#!T7;Z M@8G'+S-S+N4\Q.SX&UO0C8(+ M:V4?U:Z:--D&41WPHU5*CA<5>K!=LP)+MUVOX4IDV;=I]K[B4K$!U9:06;X( MD>CM$K L[]D?<.O\;Z10DL)&?:XH=[?]3;7#=S?&, P$$MHU8]VC:Q6D2@^- M7$YBZ74^ VW.*_&O4_H GUM82[IM C2]XL(C :*Z[2W&EX,X=/='^U!$.5-(A,&S WW;: !EE# MB'25B+ 5#$XRO4F:@F4IWIIGMJ+$P/["><'3W$L5EP#Z*<9!6P% G3]+W5T\ M>*T6P#M\ (1O3Q>\!R6O0>,&4!MZ"X '#<'=/C<& ^MC/O?@[5XH.ISB&;8X M*:M(5>QDQS4+T1;-7_;]/1G]Z!V:4QG.^UOO9QL!6PD Q55K-5ZWI5Q7T%M, M<5DKK8S=VBD+,#R3P%\-Q@5,#>0#(H3+^:8-Q-!C+$_'!KSJ1]AF>]T?\)H* MC+>8* #SVK6K ,, -G$'FT"9QQ3!-#WFA-SEIL\ JTX6+#^+!@H+^ /O<7BZ+V8GY_70&XQ+V[AW:>1GR?W/I&';=F-:QTU$=1AA(^Z*)BUG MKJ9(?H)Y?>NB@"5H^ZL![G_\,X*9H:N7:W^F3P[AQX M/OLG..;7)>G4<7)I\%MR533C'-XN;58,BR(]NF]IXSC>ONK1;W3 >(+V:5?2 MW'_Z,#H21+O1(Z'9+=?%Q:Z<5)EX$<5[_0$QV\ SN9EN&W%(I LWWPN+_+E^ M?O@A^OUV5(;GW;@/J_CF$V3W'+N$KO)'3*DDW63SZT(OR=@SHB:W6D9OL($0 M3"2N0/"9+06H>.(?N5&$O7H&P.PZ6=X?XU-/&[_JU;S QWD6U1>QFQ_@W/PV MEC1"" ]@#G>-5WDBWF< 9B.Y"=V,M_)Q-H5MYA,WI$N]R1*O!Y)\ M)0G5\^LFG1N4V'_[JN^K<8K-"_?P@!^!$Z_Y6A4=K_.I;A&3R58&[_:HYI34 MQ,?SBW\=NN!Y)+8;;0QBS%=8!4N6S!92&$@,FU\,L-T-%\KS4UPW@_?,M2#\<^ S:V[HMCA_ M14V='S^=*S'HW0C>[+X(F'T\"(!<&D6 -S_;*/(9LVE;)MPR8!IYT';5L<@: MH^**98J(/,#';;*V,BG1;O_X5],ON5(_/#'@O@-G!KGQ<)#$"R=L GALSXQF M["].5Y3#'8&C&, AH+ /33[)%@MLL&-CK'8Z\(OB=<&P],!KCT.?">ZGO_QX6$P1.H9'+KGP\TE8(48,+/B M>-1[@KZN"0-'J=[I,=3YP4DC' AXV#:"H(D[\'"N>;*BU]YVXIF>K2CX'H0[ M-R)^O*ZC-<$O&)( P_%PH_Q%PX#./@KMV8W[0+)B(O83<,/45> ^Z_K;AQ!Q)4,![;?!IS&,$][ !\ M\T$SW]O0#&Q0>T0F; M!?(H%_A)T'^:HE4T=-.\"OZ.V#35!5(LTLT%P2^EM-AE# #^C2O@_XZ83(:4 M4=%"LHJ\FF,6E:>Z:G?6?D9,QI6#LZC,.Q8@B?C.F,TG':9JU[2=:M>7LO.4 M!?@B?+:$$T7+OS.OXNQJ:GB"&]TC9_?D\M')A1<_@.@%S]Q0VHFVB7SY"X,T Q@V08+MSJN2)K[*#!FK[?67B3)UUGFRU%D\AWO9QK8G/B4D"0-+19HD)NO[3U4,YIY:<\YZ>$)^FG\%+H\ M)G1BI%E, _QNFJSA0#,(^D>FL+(/AH<)QP ,LX'J/WHML(MF,T!U/TBKFX?W M^GKS?\[RL[Y>)F(JRD2,,A'?DXG(!HG9U=DT/E3Y>)YQ9NB@1RXJTRHG0@/K MA_>V_YJIZX)F(+E\7"CD,Y6-T&E/L,N1M8HB$44[FV%R6-&@^:9@M6=W#+-[TP-OOUBGG0[4^L6I[S%2,12QSK O+('FPEQ M.<\U7VSG4:9*T)@ZZJL-"QLV&-@,_6+DN-VT1#I;,V2UIHC-?%?5NFQ[0EZ. M3 E495R;QMMT,U^V&RB=-7D4-K^Y6/MDM%D;[3[5IGSD?QHO$U5 M4@+8>2S)MP4RMQ%*D.X7N\0G-U2\3SL$&)G%FNG5-#^A1##R8IXMHA&W5_W6 MF"G.:EJ=V*TW5<=O#'TZ,B,[1-XPRCA#5CIHJ3I#*NDB;'EZ,<^M5*>'Z6R[ MQ3CFKM1S*).>+S?7>*G%8TMIWAF9NWAU4,E,J"L(EAV/B_$*WZ2;D^QHTAKQ(B]LP,B+>4Y+S4F*LFH(@I'# M.5=O8IHUR'@5ET]'+G8:7C0'NRJ=6TB,AC*U9J\-Z]E?S).<9'A%P[<#69I: M2J93UE)8'Y; N)#B92/>)NO=J4(/NF-S3BUQQ!K!D1?S%"B):VI.@4)6R6X/ M^&!F71 WD_3E,ROK"8,JX^)$)E/=K51M-O!F6@0C+ZF9KFI.K9CFF:(VQ:NB M/1G(_0P8>8$,EMHNCCH;?2&3@[J^)=N+LE9M3U#D\O5#89[;%/1*BE&5A-U 7Q*X67\_: M<.@%_\6+I;93YHLM)M[6DST^G:,[.3#TBFIBP4O+NWX*89K3)K'* _3+ 9$ MKR"DV=\U,CCA8$C7;+":H(H+;BC"H1<32/<&H]IDPZ21JF[:[( 8=\8Y,/2* MQM,:CDVBE2HKDPB9:5NM1CXSWL"A%Q,8C 0[1U3-C&Q7K)7%\=N9572?>C&! M.CENSENJ/J>;1'S1KEFE 2I=U4]I=;G($.( /+25;]-I%BF6 4Y=X0"VCV>D M^":>HNVIMAMO6NRVT\Q7FU; M*;I*Q"N$6AYES4[[FJV3D[4:FVPN:7JU[8U'B^Y4&G>OVCI.9==.4Z9<0:IQ M;$S.T>Y$G6:NV3H]O+W0&BT'D85E.EXCB^FQG6D?V3J_7L4"^Z4J%GA(JEB\ M&JSP'6;S/%OJ>FAVZ9Z N!'ZX!*T_X=]IJ,[PCL<5A2=\SQA$SBOX+>-&?M+ M@H$/W3;!0\R_?[H.P,=O"A65UJ0W5:4*[5A58=!=.4ET)%[$([DY\.,5H3G; M!TX%8RUQPBN!2F_>X*?FK+./(WC!R)QN6F8/3"\+QL@_ GX1T\EAS@%X+1=Y MLX2P^HJ2*YL?P"GGV"68B678PN=Y:\ A]%U;)'&[CM'AF\C[2QBY99GV?K;K M%$,?6V&7IO S^.%X4M M]2<$_37.\_."H(+K [.VI0 ZP^\F)GWQ4PLH? M]7ZAU=8C-_&9U,SR!WFP'$]'E M.71!$VDJHDL(Z8(E;G8QB>@2X5A$EPC'0D^7",="29<(Q\))EPC'0DH7+(&E M(L+"&R,AV[+IR4N/JZ'\^!?>VXS1)Q?E]@D)08>[Z;]G==8CN?ER M,CE%-^'E_*P#/SQ*N'VM[.=9SE99@V55NK!H'\R(JOF7$$XROZ!@ M-V==5A&"M%UQ/"L@LEG4&:&[LQJ99K9E6:?U!_!?R"?/!);$KR4@__XEWA!R2IBX[FT28%&'2^V+]$2B]UM$@I*!$3CK%5FO!-YG!2L-7S*S5'!%/ M "5:7DRMYGHPIYLE26^BE>QH5H9WDM,0E)+D936NKQS/A47*6 -6;=1XL-5K M0=&7D&A?)A 31E1]YIJO!);N<_?C6V)FJ)W+0%8S&I\_2*J/9/[SED@Y-1:S MB$/GJJGF5AH5\\OR$U"T@$[Y0=*N5.3JB*0%0V.5# -S%(&[2;U0Z%V:,$>( M$R'.5T.<4+N.[T$<%A?GJ\Q&:=(.W^S9_=6&TN-/"' M:_6*RG5;-::9+\S: M%-UBEKD,0!S@3*9?\'2$.!'B_/*]L&\).:%V#-\#.46:T\EM8SJ05Q:9Y RJ MB,O<$XP<=$%V:6O$IN5JO[D:6#15$28;KQ!#\B5YI0GL-SO'[ J* EZXKV3U MXM4-YE5)DV I+'@5,@K9W3UD]^P#_P=:AR%UR9"-57?,D\P+3ECWEM20MZBA=22+Q?'@]JX"@O9 MX-"T))'HG"("O0CT(B_Z4T!O5<]M]8W:Y1B[*_>*+2.'U(;B$T OUYF4BE1+ M83 C9XSD84[)Z!#T2!C!PU(1Z$6@=U>O/(3+#QGJA=J1_S74<_H(3V=39I51 MUYI,4;X$N'+'X(O#W=U M4_U1!YW+K1'239O+Y':\K5&=)T3A)+7!3/4=&4<&BWC''N^*EFC (M' (473 M+R1QQQ2&"%^^)[ZX?N:SUQDR@'FX5UDK&6RUW*HLY:J"$"B6D68R]83CW%F? MK9EB?"[(-DVL[,F '.;2HE<''L5>TOBM*R2N\_<_;FW6?\\;/W^1PK*AZ.7V MJDO*>;V5O9Y!7G>FXX],?69M8(.?HTO,X $PS];O5.M^#7:^ RCA>$625[;D M#GR):0+X9\.:L?]^DGO0\B<&Y<+*:#P=S"WK7/27Z_IK/;H@X8M2EQ[.XV@O MR7"V$KNT.L=0(@G M/)#YW#ZC0-\M_9;)?E>]HQ[)7D=:R3RJL/[HDNJ_V^RQ+YA E4) \CNQ]73X MT5'[7[>!U&7-=2NCFL-%M>LP*[$\H2712JI\.ZJY'K*:ZSB9(*(:GR&L68BY MQ=$BNH2-+BB9H"*!"2%A(H$))UW01#*B2QCI@B2(J(IT" D3 5DXZ0($ADQ& MA D?82*!"2==T$C!A),N1"(9$28TY?#?#,%\QS/FMS#[&80_KCW[T6KXQ$>+ M]^)(@KHXC?[2Q7N/8L3>.8P?4OZD0L\AXZ#'W,QXRP3]:ETD(M)_EC'U+=?\ MEJ'RI=@],@N^G&3_KEEPIR.&+\7V$2_<,WK^'4'@SW_9^]+>U37 ME;6_WU\1K7//J[VE3I\,C+W/71)#F&<(TYY:->J(Y@QQ -*) F[H\IJ# MG$8_D?/?HFK@%CG^]TQROU&$;N@>XE]^NE##L7A=L/Z^'7@\"Y.<35&Z(8:9 M;WV/?F9$Q##G4Z5NB$G^&L LI@A.+J1FW1*GO+'__#Q];.]6_P-6XG6'-SUL MDV#Y)@3A?'7LOMVE=,[R 1;<^RQN,%9CN6J=+*L44[+*YMHI)AOR88[SE,75 MI6^M2<(8N$=[G5R7P8=JI:H-RGR_[GZY9,"?)DG>DXG@Z/)$=8$>UYW7)@4U MPO"56=W1=)P?3%PNP5&_?L<2ERA=I%!414KD5ZU/L^,Z'X* $KTUV^P]9!O52OYP9ARONWYV[V[1T+V MRN3.-L5;HA:ZXA%B#OV:&1.:.M^PU@=X1QZ MG\][TR"%YKY7<:PN<+T/JNQ M0)$DJ?-!:<@H>BW]&BU#H* C";@VZ<^M#8:,HM^C(-XL3:\EI"$#JT"-_)FL M_9,\YUO( ML8IZ@$J?]*%S_(CME9DF329SL0819L0E@(G.AU#3G3D1+\=:B$G>H@Y M]#:'XL:\J(C+_I/H2CRHB,O^GU+ /*B(YHB+SKRHH?+BSY73.1##_OE MO*MLGW>&/,BGBQ@YS*"$?( _B5K(!QAB#OWA/L#@%0=7!+/B6'S.YDB3#\&' MLUX7#-G\O\%%>*@!TD #% QGI(FA50$O?NOP&PX_*4N9JU:2^6S+D?2?MS%!:\=ADPDD8]W?N;+B2%S MA%SIOF(H4.=GW%?,#PNCQB"AE]1RT>[.)29B+SM-"$4PUB+ZF*3N!HUNW-]^ M0A8WH@CV*=#;^&?$-.W)%&Z)XR?!,3V1-T]*U.A]B1I]6J)VM2#V,A[##'_4 M3J9&PWE+FL?B"N',F&9@AB5^_8V3RC=W\)QU'!:_HBA; 90RL#2:NYN(8 M_F$;V!(\_AX7QVVH*Z>.KY#SXAZA)A"HE"XP&W'J&/#11WP:#C&3ZN*BER?R M)6O>RF>TI)L"R!.YM$_CWO2;:Q\[HE1*R#5Q5DCYI,?"-*AX@6DU>ZPXCI>' MTUXRNBZY$&@V'@N48BGT)\/(%_$97\2G1>@U%P6Y$Z)2OFJS$8>B&:77M5HX MOV7U_[8/^,SH>000;R-'S[7KVK>OJN)R*5'9F,10\E N8!%4=\W$;^;$TX4;X'B+9!3X[R@\UGO1;*8B\\S3(G-]P93 M?3;W%AR9@E 4>"\2D;M!(Q1O@7P<'Y"H]YT9K;::8)=>-L7F228^22S76FDB M0YF"S@SZ,1E'\18HW@+%6]R3%^0\4'3HY2!/F!9<.AI)#WIN@BA+.7-5C%J- M5<[''NCFB";?=7/\QX8O^GV$4&>2$D7')T'=*\ T!V+S$BZ>?PF__"!XG)WC MIXYE*Y(7/%)T\&+[B4P\#QS>0_8%?OL!C*LS$3%^ZYC"E"W-L"4D&N;7^1(Q M?YDQ?F0L119#D1LK&*WONQ9+) M-:&D4RVRC;MEKM#8 MV]0C>:SC8KP%UV_K)L/H3>VR!PP ]'B"N8:C"=B$!\0;B:(.*#@6P30%;.3Y M]#%\T<4FAB8 6 (-!8S7M)>/Q6TN3/@;Q=Q\;6U>;D]X&Q, "SUBX>+MT_P) M1KP=__.\!#\7J+\D4$L#7X'7"*?6%9;U\2.GP <2 MN:P[$ \Z8 II#8CP!L]'7(KM9#&C&KW"?R/I.S<$U4;+W]1[< M#,8.GFPM,>+?<.2VN7WKIC_^S@7_ =,;??OG]H\"427\-&%?*1)1)?PT27Q2+P9(8WH@G ,T07A6-CI MDGBD(H@NX:,+PK%PT@7A6#CI G#LS2A&1)<_HLLGP_;>-?-O\;SL/<@.]YS' MA@8?_M^OQ*\OSI^F'F-DJ')E0H^Y:+Z]9*.#E[H!-HP,30!?0C<[QARX65]$ M>?[W/Z.O![:!)= ]F3P6I0G=:HZ6GMI-,$4).$4)., MOY5A&(7(GRF,V \A-K=7J8!DF.+8D'70/W1>/',#^,.R,?\ *TBFZ.C+(,MB M$.I^&#+]:KRV8AUD9!R)F.1HFH?MO571X2\B#WX0LY MVIO5AMLI'[9E$0^.,'D)O/B)UUS>LS:SC"QQ-N'[QRE;@AC&_,GBGR,78@N+S96^ID*_^6QB0GW MB']UZIF3* $_ [0"T*S]L^\=VSP"(ND'9P,^SP11UM8.-/C]\]77&/-P74\M M%^\#,"<1R7@B28K27)\!/P9B\:B$4(B18HD?P5OY7<)$R)"ABAP M&9-=N(M,-Z;,)&W1!+M@Y&7+@D142'/$&(SC9N*L0ZU:W#S%4<M^+SPJ#)18[[3'>;BP*74HJ,:)4J"2M9(>.#%&AYU&=>J5=:Z9[J M,/7.9**:+8]DYC(7Y8B7+85YIC50"IV%ZJ67L]34+M/., 5:'O7)+D2)1[ZEM;<3RN* 6J4*3BQ^WE+)5/4OUK!I1 MG\83716LUB#?Y!+'+?-6)IMD>YTU&YNG(V9%IDC5;G+)XY9Z=N+01F9/$OT MI_U>,4GT((<M75&T3=B1L5 ME5$+;+H)6B:.^LQEM>RP,NLP,RG#)>,ZWLOV(2\=KU(MTA2*NA-ARU)WO6B/ M73XKI$[QIY&(.\VH2UJ$LNH9,:JP4%L$5&B.QEG/\RVBVFPPJIAMYS1[0C)U M"[;#1M,JE@IL9EQF";[8 M5ZJ52UW%^81^11RK5S5CIR4%2LM?YF[2&\4)VB+6WY@KFN+>3:NGL][3V>R* M_N[*.[:Q?1!LK?Z3[[[*DT2AHZ$,A7LO%R.BRY5"1RG_'!@1)FR$00(33KH MZP_%P(>1+M0CC2[QAB?8^CU%[$;#2,.4 M6X+'M[C>/VZP3MVQ0YQPOU@(4[UA.1A)X@$,,T1!/S]]9S8&?(XJ%W)_4/6(G7'=[TL$V\X*WF MA#]??/L&&6\F#OSK99:>KYGX@2P=;QXD8=X^/17RTFJSF[#N=CHI%Z>E?H_E MM4:KJD_C>;IPA;!N9N$ 3:*H@[$Z\*%5MR>BV9GP^B;@>R,EEJTV7\PLK40\D=3_53*Y1>B$6OMLT9RF]$!P=_GB@.4NZ]TM# MS;>43?HXTKPH_K)+W@T-NL,+)L\UE7J"X50GXEAF>M%9K5&0T\:*AW&X40!" MY"-UQE*35S4(8< A>(>_)O 4Y :4^',K)S\+(+ZBB7STHOU7T((T9WDG2\3* M3"R=)XEZ>2P.'3>$BLEAAO\3>DE>=XKKRFJ8)!8U<1H1Q)%,V"DN!O62>(*^ MS0KQUU)![FS.[P4VA1%IOJ:*7!=KPJ&9'$+-5]03D6JEHU(]F2-F?); >6I=S=2&S1G;SJ_)%3LIXZLF!"*HO\0?8^?77T)F=NS% MT+Q2\0+%T_R1N^=0*:*!4B08#DP1$@:MZ"H!-W\&3 PEIBUCUI59:MCUZNMU M:]F5?F; #6[86D6MY"EUL111#,AE% 3?WY0-" 3=G#KBY M--2$0P?ZHX ;+5>*)$QNB!.]G%;.FIEIOM&&:>*BT!1[)-XZ7T<97<^4T74B M8NZ&=AB_N?\G0^IA KP!\YQ+U<_4>CH?6?"#Y^RJD@)IO4F?"H//_.2L,-EQ MD+CL?Y%)$LI3YAIOFIQ=7KG+%J7HK#-HXT.W.$R0I/O:&?/#]Q#SM?3\7R%F M/F.5,K*U5%DE/:Z0F?3']%GJ^E@/]*_3,-=64I"1HEO &;;Z;F"[ZN?&-TE-*J]W6;#+BV5B6 M,!?Z.*I634!/,OD8.:;G \1KF#Y;68J:]XB%:]LYE:S[E?WE,'GW6]L+;^VE MQ<0.[ZP%63*OGGIVM(K5;4X:Q/\*).E MRHM"MN$T+Y3T]-**TKGRFGYWTM+W2JZBU&6HWCVB"ZIW'W:Z!,4($5W"1A>$ M8^&D"\*Q<-(E@9+(AY(N",?"21>$8^&D2U!($=$E)"FQWS/S;_$,^SW(#O>< M=]F:$E_-UD13CS$R5&''?YJM:0 +(3*G"R&>2GJ%I.0G2,GK"9VHXWPZY7:[T8H+ MH2,&%"SJ(19'T(&@X]"]C:#C>V-DPPH=Z?; 20CFPF#$_J(YE9KJDAU#Z$C^ M^DW2#S$RCFZ)7#Q<-^5?_CCR"V]"<&&*;=%<*F/Q=+#O[GZ4/V"K T.>][_/&)9=,^R!".8[-F0=$.PY:45L+_"[ MM1RMEV:M-F,H.I-O9]19PG7E7[\CTCFKG^PPL\# M ']8-N:?](%O;.,55\ CUIGP=M!8L3!Q$X,,?S 2L;V^X:DBQA]?*9K[D@X& MM-G_OAZ%?0GC:X_HN"6.GP3']$3>_#:2;W#0,#>/8#MR_QI'=UQSIFUQK&:: ML<4XZ>JBK#>![O08?0EKP?K"T0.BM4[[=00#TPT;FP#B8/Y.9T%""O[-#EVP ML#D8C0D?P8F ;?;QC$@4_ D[>E+ RBCC?XZ<;B\4C#T:X#$YG4/L^9@IS-,"XA#,&Y #ELQ_?T1VQ\]]A= 4 QB M/T7\LVD*G_M/R'_^!N(!I C>?+"_(\:(O78'D3T%P$^[N& M\<^[/+9PP$I)"N@%Z&E0\.=STP#< V\.@D]PBP-KX,,0&%(1>F)UT$5+7(JZ M \3AP]VLX:7.D"'@$4V\?^P5XUWP00##F#]=\*?[TWN 1,!\13XB]V* M8#/> _^K<% B;O.K[:0 E_,2&)3_;'\A+,R90P'XX'XV=TR1J\GTIL14Q]^4+CYA69O06$K]X,/:7K M#H3 O=4%>+?%4O 1NNAWFQY.[>%>T7:\DC.39@15KLD6D^\[U37 O1/)4?X- MN8SW7W6PP3W ^T!;7A]Y+]GE$7 E!HV)H.VX!JC&E.3@289/253" *O1"6V$8GALM@B5655 M5$VC%L^4^RE@\I[(:^E#'X2HW8ZWV_4/-O=@2^.!$/KK"7^%B'M9XM8E_\O3 M-,XXPTQ2S:TE)I]M5!.\)N!&&M#XV*#[]U:%.B)P8-X]JSR\J4.]\K0.>!JZ MMQO1_M[#R[(IRKY->&Z;_J/VW9^R0())U)8EREP^T9 FE0$3!TA,/A[[M'8F_0>NZ%_L MT.)/29*;3'-UC\NO"'X9:Y1*BYF9S[AA(DELV9DN"JE^CQ%-8<*,!Y(3T2'L M/AZ?4.Q((AF!%>(;W9AX$$.);=UD.X7H$:L9+U2JK79T*)9^JI09+XA; ?4E MTYZ8AB-/CEY GM-(?]V'^=&X2;!6<#8*T,6"AP&3S>MV MB>K@:R\11_YJ5! 5V9YE[ SY!/$R./Q_#F+@=Z<3\":Z83YM(YOV9K7Q"E/^ M<84LXD&(O6]O/O&:RWO69I;QY".]C9EZV@5'T;YK@8"1E=C>9[@<1VL);[GO MK=C!1??-SP[ONF\?OA/JOR&,;N:D M-]UW).D0,;0#1]+FT:_??H($N'UF@BP UHY-^?WX_]<8\W!=3RW7"T[?9F#H MN97<;-;C\RJ.-_*%4I//]KHN!YM&?IT2D&NXK]Z^0'$HEGX>\@^*/^^O C>* M\J-X8DQPD;%(7Z]3U9A27B=ECCIN230$?%#,]#TU)BH= MG(^F>@O6!2VC+UNVE/DJ/6WP/8*:S"+ZM+,@IW1(H1HES,Z%?U9;LPN4B'/&RY;S-%%,E72)51YH: ME4%$Z:096('PJ&5^6EAUQ;E88Q:>ER?(>F?(=)M!P=3#EK(]LT;Y;G1,+#A# MDBL=M:ZYFZJ&ARU[2=S3I*I)JXLU+BAFB[2:!1FT/)J[7+>RI>X\%5';RZ&\ MK/%]HK%TN=CQ. NR&L,7ZRI!Y%E^W-96Q:A.P5(C1RT;-;=;CYAQFBB/:CI# M\8.YH,!TN$EVM;PVJS6&6DA+R6:G M;*'I-SU:_'1)3(MU7J!8JCIPM674%*F)#)L>K3[!+U)DN^]YZFRF-MA2M<#: M>A,V/5I^E[:FT8[57[-E+I)E^H0P:3;D4R*B3[,Z+5%*GU5R+6O*V>J"Z*1. MB<@P'2W.B=1T0#%28I36:"(YBV6R.9=/B4A! ML@M\0HL2A*/B4F$RU/,#7T2.EK0W6S75=KXF$=YX6N$2?8Z,KYLGA:FYM!EI M.4@RY8(H MNMC-*SFFO-"C9MW4 MF435/24B@S59=UK2!$!\FABQXS0G6FTQJ1#4U&"Z)?,%4+:H!_:AB^RF#U@BD\\["] -^MO M;"0""U/"IA]#LPP M$W C6,KZ;I9I?TUV3"Y:6? !4&A\TJS7V+8:E]4R"^:[%F<3 !Z1N/OK-_UX M7.UL:]8_8']]MY]E:7$=/E4IIU5\J$X2!7KJM)AKK2)@>O"^D\M9FI)>5V;I M.JM4!IGR;&$/:A/?2W*B>-R!Y^KB2_HR:&Z^U%O$S,0;:F]AIJM*=T0EDU]W M.5UL2462Y8JI])PF,EYCG9S,VKE.*4CL>.P,_/N91_<3/#[X2[R!B7= WX) MAH-P(Q(&F^MH3;J-+-- M(V80]5(ZL^YGEG$N\@$G=Q#B<7]P\=9:TI&^FV0UL:IFDME"L^3D%^[0Y\?7 M8P!?Y(#]YA2HT+-MZ'XV7&DW228 HLW9P"L93/L-+F5$$SS/>JM5C^Z[PL@3 M4 ;3[\Y@FD"9F4*8 >B]BG*(+M?*F$6BS$PAI O*F!5.N@ 2M,<&Y,IB^9^*$&_T0;WP\L>D+ MS9MX11$]6%:2V*WKP;S_@[;9G['-AD(9_4'2\U=1#[:@Y_*BY] N0Y;.#886 MGHV]0S:W[Y?RX'3P[I G63TQ_Q49QS2!4GSWULQE(K]^4NKE4(D7]M>5\L_LPI53#K#Q3, ^ M!\E.MM\R1%%]W*F&ZNKF8ZF*T62Z#A5EXOZU1JB]/&=DIMP%%]KKT:"_P,3 MK+^6YNA+DA_1=0*WM2'-4H;3TZJYJ+J*-B\H^2\%OE3KQ5-N_M3 23Q][75OU91X4L"3Q5;_7F-) 9$)KM<> N; MT)3N)07^U:T^G5L7A9;J,D2]+PQBC%RLBS$H^C),Z,%RR?F;J M<]6I0X[JD#JJS^9D"J5;(415[<)@^&QE>@.'KUP=/8&%W14[CW>*?(WM+5+] M4G_6ZEE:DXOY9L^%BDPA7UU(798(,N[(8OHR9$S7HC(LSY(VD:=+/%>+$+7H M&*;J@H;313 #'7,@S+@;S BST?5ES,!;]*1=828\H12JO7B_PE;6I PP U:E M>Z#)Q'M%Z7[(T5#PBDU.$G0T]$./ALZ,::%R&ITY @$=82 $#(H\[8M#P M!K"$1IF_3$Q+:*:'/,/(9 N=9WAC)AQ:;+&LLE29[)13<3U7KF6'U;I:^O.( MF.!5'S'5)IU">2+F2EVFS"VI=$TC9U(*YD*G8?5DY!-&_AT$%E?P"9\$B[Q4 M:+JLD%T3L^R4S717[5ZKD?I&L&AKK?2P.U95IIQ5QXO&/)G,RQ L8K]^1^/' M9^G(&8S H'%Q9W!)\&BD,]EYW(UR[(S* ML!O&GJ2>P*RBL6[(GACKL^59=-HB8G597+M<$EI#Y$,\?I$H8>141^+^T\0] MA&;-%\3=DM1X@QFUX^Q"9;RH'17J0ED&X@[L&>J!)$ET*0").Q+W4!HF7Q#W M165%5^JMQ8CI=;*]H3[5$@4=5G/TPU*BR;?$_28.?-!=@&\[\;EV*K3K^FVN M/?MP7:P*H6UT%.+W D@_?KV*X#O9C$5D6$8LK"/)2H_N.9)?11K:3$3R@E>I M$?J\YA6^MOPA] D/^H305#L?^B3H272NQM,I1LE8D0PZ/_-D M*WA%Q[!Y[42=9'3,]2?VX@%&T C!,.!-5## )'G2Y]Q]6F&# N_4-[[,WCV M<0 ;1<>C=&15'S"QLJ;'NQ%.J-, P,C-.5?LN& R.N?Z$R7IVH* Y#T,AV0? M*$5_&7D7VBE#(Z*ZKO;D3CRQ,.4&D6Q">0=6$OV02!Y[:=!!%Y)W).]_9NO, MEWJ+F)EX0^TMS'15Z8ZH9/+K]LK'Y;UG6= MC+][TO4?FP>$_+UM5G-F@ #CL[&GHN/;^BF/A_SZ4FJ??PF__* ,GYV[IHYE M*Y(7/%)T\&+[B4P\#YRD-I*V_0 MIXEXPF["!$4"9J>%2:8QPVS0AI]!(Q># MU_D!'X@"-O(P?C[7/" N?@/+YFW'-DP/DX*+^/O= @X4/^Q"G#NFR-5D>KE@ MQ^46BP]*XJR*E_%$[5.<37-\M]03)+Z_4F=",B,-FN)H;1WX :E/,#8#5F0, M"U'N.+P%9M42P8C&@-C^2%+;W&_M[6H<--X) 4X%4E#C39-+V'/)+605EJ&H MDLEV1^UX&VRXOZEC_O\W'"X&)_< _Z4PL&2!LPA._V__6T@,R= TPX6D,47> M,G0+^TO1L>1+"4<_ RVW3$\^U(%Q9Y'Z^V/6PVIC&@ M%3^WQ*?MA_U!P1/QS8!F_ KW::1OAX5KHF0_\8#/M@_\_25XLMG*@C9[>]NF M#7QR6"7UJ&@4&4SZ@TZ@V",10>5@WV24JY3I?<]_A>ARK;+6;U?+0G2Y5EEK MDD1T"1]=$(Z%DR[D(_FFOQ31!>$8H@O"L;#3!>%8..D"<.Q-_SRBRQ_1Y;.Q M'N^9^;=X7/*S0T#.4-F9?$S<5MWT@8\WX2O%6M,0)YCYPO9M8/-H>S>&?4E8H1#-NEKA!7!(XV0+<-Y HF@+PUE_OJN MT.##P(!7(HH^&FOQ''#$#I-#S6:5%>LE*7.2KE7PK-WDZ"">F"!C%XHG1MBP M=:^%;!D0-OR\,.(+88-B3RLN2\U%8B;T2+:KQPA)D $VP!N:!$(&A Q?]%R' M#!F.9OKM!7LO%6]\)F!X]1(W(S6XE".FHX02%595$E\F8EX*((0?K9R(G+5( M[_4=B'"!@N#=N6E (#!0[:C+1'K]J/OD;P<5W")^7*L7-'@N:F)4J=EKM10?N(@7D&-@BRF69BV[RN+SM.4$(<8/N5800MV#2G \A5#:5&E*IJJ&V MY<8X(JY,!H^Z "& Q9-()A ^('Q 9S _SE0Z'SZD1M%IE9CE3#:CT&V;<>Q% MI]D$^ LJ9 *I.W7X6Q-R MR78_2K*+:K^]ZE3;>G[@-CBMIK MI/FXEM%&TSF477B$\A"+'P=F_K'J'S)3>)/W'T9B/6"Z:"//!SH[^;&>T;NY ML_*R6@<,+LWZ.55%W59@-T=09[O$J&8H48GHY2?35J0Y5C)&BHL'IR2)Z 7C M/D(F \@)BJ#@=FR3+T !$V.\>+U2, FQ:J_Q2B\>=\DF@(*@XG/R.)8300&" M@A]['G(WL6-?@(*^:[N6.,WP1)UBZD.Y:V8*)1E @5\-.A:ESQY%%@)C!Q? M+Y>B@"DZ(+0,CX^VV>3_RF6+Q;^QS;D2NI/R8T](OG_.]^B.O;#U\Y&\_CE! M45)^]8@3\&9-TZ32B^%CU8NV5CF/K=K>P.42@=$3NU!MU/N4^&O[9I'$W\ ! MS!]+?'5NKXJ)E9ID%2O=627;CI6WH<3#4"^:0/*.Y/T'']J<,F7@-$GJGQL[ ME\A,@&8.U7)LR6M.<+V#AU6'>'V,+GB@0PKDF0R/FOZ*.R(0X:*^+3$.ZYQ; MEFA;W:U$I[8"?6(C7W5*+#ZEDRR3R=$]7)!9N[9LB>2I-:)Y*;NK)V##;J,T6^361-\F1 MN>SIM4Z_R9$DU/;?=%H@]+A!5R9"CQNS$BZ+'HF.ETJH9)53>S%V'?6BJ[AI MR! ]8$T1&M440?#Q+?9%R.#C:%U^ZKWV\Z+'J[FO8GUEO+!K$YUH%Y5LVM + MF577AQ%X!21*WE;R*]\+@UPH?V)R7;D&B(2G\FH(8.XZIR>^P.X>Z7+1 M%F=OXMFL+%1+YK)&LS-GQ;H%TV8%LND/_-?O$UG140#X'^E " WN$PVN<[#R M:308"YDBO8PW6:*MUZKU44I3+34%!PY/5]Y,[X/0 *'!&U9/B-'@;J+&7H.# MERA@5#U5)YP8K\9RN%!8FUUC8?LH (LK7N"2>\A< QW#YK7M%7=4F_X[CZ,. M<8(&."$8#DPX$ 9,O&B!ZJO//&00^5WVTV%%VA-HV,Y,"M'&)$\3L[)9D^O" MJKK2 !IN"M7'8Q<,,T- \9KK^.KB@H B)$#Q7:;5NT"1G%:,P4C.&2P_+MJ> MNU*ZAN)"H(CY-:G1$34"BLL Q>ECI:O//&1 \5U&U[M P5:=1#PRSGGL+-$< M=.KYKF9V?8W"+UY/QH]/D5Y86/^Q>4#(W]MF-6<&"# ^&\ ($. M6/BE;#__$G[Y04D_.W=-'.$EMA&_[ 8PK96&&A&7% ML3@;B6;@[J#)!PPJFP\8L)0Q6!*'USULP@N8) )1 D8A8$$L UX*N$)7>)@! M&C/F(N0S7<8TP[*P,6^:'@Z^=P&O6MA?V;63UE<7=K7GC=,RNV8-.78$\,$E$JM%&OW=19\"99RG('I8DRO MZJ_-&S^N 0DXZ* (QF#JO-82EZ+NB&W17"ICL=AJ;[H:=5BC4:FF9FQ^+AJX MM\JGDY'4@W:5\#29^#*;Q=^)W:Q0.QJX$NNNC+6TXZVKH-U7'57 MRXXW*DO-7[_CC\>!XQC@2LU/HP%(?C/T>>9=,!5]/%$LV#YM@,%O.FO7Y9@> MGS%%54R178]8&_IM@(Q!(=X*+I2_!XP?+QS%% 6,M[ Y;]J^)()/EAU\92FV MW]^$7XK0ZZ,$.XB%\7: $+!+$3"$W[MB89(")X%Y(F_ZC&+H_MP>_#]\$'D& M"S@$;"0"0 JZAI !/@/Z)[:_>[P./A+GA$<+EF3V([EY MH>1)\\LRM:O1L"]/+U)\[0M5?T81T_(<'Q#U >X-1D"VNJLFK'K]AE"%"O<. MRGR7'%.Q!,4?T&:!NZFN&)NH@[1*D7R$9GJ1=,_X.FA]=H&')6<5$7-ZA/7* M+I^K#H85HP@7./)XG!SZ-=3J[*'5AOTA6@!=RS8"P! W<$$]8, : (K\"X#9 M_LI'+]W8 ["@=T %((*P._!S()K[^/@LN1N)?"%Q8S".D8@Y%KRQ80 !E"R@ M^TB.[9B!CUQ3>%_U4T3K<&8/V(SWX&_]F]>B\ "H A1D:&X V/,'L1D8D&K# MU473FBCS[140S%4 T$)N]$!34Q1Q'VLAGA@!C)O&4A'\[+1^7[!>'^ U0&HL M-?;[)).)V"D\SA@Z; 9X;:]E_'H0#$\>]G"5MRP1_H=!D@J;B_[^4O/^57_( MSF"AQP:P%X.E]^!Z\N"9[&A@C4:\I6QV(A? K0@A4P.&); >L3\,I18,!R,7_**!D>*B9"Z8&S@MV#7P.8&W*,!?\-IZ4 \ MX!^'&Y(@ AT4V#!PFP>]@]Y.3=4%O -( M\%=Y*YJ4#FAVL*U_M8+("J'^R" MITBQW;ZRG=3SGL4?;*'8;O<,N@$O!*0';(4),+LRD"Y Z4]^C@)1MI[F2G#WUY@S.B> M2MS*/E<_VFPLE<),8LE!JL0L)*I0RH^U>23W]9W[,_DZ]C<8,;8<+O+#<9%8 M%+PZV5P45O$4V&!BD2M;+M0E%MUTJ@19UNII)H^7*U.6]#KEN/SMBRX-LATF M*P\51F2Q,EFK]EY!.&>L_&>$L2_+^+W&XO0 M(;#=Y*C(U@FZLS,29# +?]3^O_^S/_AGMR8^-C3#?-KZ+O=FM7%54;X;4Q;Q M$5A&%> MBFV\IK@F2F W#WZV?>9[/' M_4R%__(8T*V >/^K4\^<=/'!SX#/@,AI0;=NL.J;1[!.,MRM >MG(%KHL%KR MQN/'_]XC\6N,>;BNIY:+W[I/^5ERR-?:XRZC)*4A)S3BC+)J0A_OK^!MNY:1 M#JUDBYTA3K1MIZEJM)E?%E,<==R2K\\+(I,L9]D9&ZTG\^L.N>C*H&7T9GB?8BZ:YKTXDW*<@*-V'Q@)C,?:+AIIH+-M&$J1^.FE9MO*:6 M1K;)YJE)IJ1,M#[?=^$MC>,Y68MX07:M'%,?,*,TI5FS5D>&.]Q14Z&\LK2V ML(P3#D/4NIZ2TNMI&?KMCYJVR2B-DXO$E!")?HQ(%CF#8U,<>6+Y%7*T7NJ, M,2;:5#RB]_76M!<#TSJQ_A5<=-A&W %\LIQ+@XZ489,,Z/4$ ?)X*3X>V[K! MB/-&@:RMJVPN <9Z@@)%>4PMU_%,5N4C,I6/\_7FR@2+=8($\])$=?0XUU7+ M-BTG)!:O,RN7HTZLZUI9NA-W['F$XV9:L7C6IJA<$S8]8FJB:)?MTG31)18+ MIS$O*561U?RF6ZX&>QQ40A1]LR/Z/QQQO4E<&_0BQ1E1[A:\W'R=8HF!S,&F M9*"V@%^(0LI^KS5UB;UO:_*][F3;Z 44U*>/[ 1?@SYI)>@'NL*8GROVQJ1Z MW>NV"6&S_&^VC@)9U*%W]MD6\XT-8,?Y-G;@)#!%WV5ZVF!\Q*J\#O9<^)+ MC-@NNF\B!+\(#$A=!*^!YM5IRQ,."_H)QIM$UF!T,$Y1UURSDG9I\)5_,J>-"J*&/P=(:.M1MMJ<+^NG5P'@S:&TJ/I-* MV%_^4AN.!:9F_?WDS^M <3]++-RAW=,>3T3!T<2Z=&0!05?JL[_.5]TZX.5I MS1BKO[;H&@>XHN=Z#89IM_!"G^RO@+8!WB("6VD.WF.;CG@^W?3"9\[^@?G. MJ@@B(X!%H?%S2WS:?M@?%%3"-P."VNDXT&JW)I2O\?..;6P?!.J^_^3 *M@+ MKMBT.;:Z;',[L,T+R6#2'XNACM./B3<3,NZIW'O]0X>2!"1SNVK;OW$86O(4 MV% N6*=W;9>-->F_>-N4'UF&YMCB=Y@QKP<>[?WNXXRR9XG^<606_68^*427 MZ]"%?(PD$%W"1Y?D(_7F=7=$%X1CB"X(Q\).%X!C;UYH173Y([I\\HKAN^KQ M+4;#OP?9X9XS,,?@P__[%?WUU?D#HH72@ MN+V@/?KZ[5LD&E>968WF>J*BUEAO5NA52YQGD.D4 M%_%S=3X0Q/%E(R2Q]RVQWY!9,5P22W&YE3EEAD7#8<1.-3N9%(MROYZZDL3: MFE,O=^D5P7CC2&Q23T_=2+T))#9("1-[-]/#SS5K-SI%:S\D41"7HF;,_7#! MYS"[_1N'9UU\6RD"W#V0RE4-J^MZBHG+P3;6VE^P3TI1*%NL;IPPR; M66D2/DFL6I;8Y**^LD(\Q.BW\H@BH4="_\/< K>HZWQ:Z!,KN3JF6)UD%;4Q M;1671"673P&A!_H.E7@@(F_56?J!'I.<88I@8/NI3)#'Y!;LKS,K*/<%3-?2 M1C;2> *7LO/4LC>GBQ;KR'HCD6,F39V&=QR!,A)_B)%OV6%(^FW;\.%DOG4#4]D1-VT$87" M"^Y,J M%@02]QBI<3_ZT_L@L93+=;=6[%EL3Q7LUL)I#]=I%X $U*.(!R+V5G6"'^B9 M28W'I@/6&RR\X(#YP.O?BHX)B@06%)X_!5D/SJ\WY:=ASPTEU!FML\V M!1$V1;9A\HFM<&X?G<(K0>[2T79:(+SB(#]KUQ?)6E'F$E"IB3P0]''F8B3) M2)*1Q^8B&L]4;L)S'3T$$'<-32>S)[4 YC;% M*JWVA#=%OQ++?H.,89T"/=5.:U'78&M,WB+PRM++%^8#/R&WK_PD+JG\(("X M78"(77^JX0*(:^A YP (SQ6MXH!FZVJ9E\9\,IMS\M$4! A?+4I&$K?K^@E> MT7FE;!9R!B$K$#F#PJ0BY4WCY+FYVFK38RXEF833SE%96FN4\$P3EA(!2DXL M\9"(HN@:)-S(Q1-J]>8UX>X/"_RP)E5D-N]-4[E^3$IJQ104;J"@Q*(/!'7^ MZ.(KGT19UM.IXAS(,$.&V4_WW!S-'?OKIVLE;Y2J?$8Q65E%1;4SSS$+!U=4 MG-5ZPW33'R8L$?I 1H\=,7\C@4<"_],],=\N\)?75#XD\)WI,!ZKR84LP9,3 M.E-:%2;#L0N'&8/E:1\H\C@3U-\WYEDYD2_UP:_'94@7U6]"M@S()+O2,B#' MS#>I0#7QE&LY$\MUU[3'#!FQNYJNN5G+[;:;L!:K'Q\<)RYXH_ON>1]! '+? M?*=2=!H"F-PRUW 7V2E1[S RHT:23D1(00B 6M!#@KB5&TW7XN_[M>_N:\[? M*T$7F?/MF>G:<\UII(S?M#)^V_$/KTSWMFN;(,Z^@\/_ M#W+V3[*>-B??#1-6-K&](''6PE'\+.2^RQBIDS]4G;RA%!!'<_O)9]>59SUO M*W8-C=?ME"XP6\D[X=#1,)]-<$/"'? '"OE'AL&MF;PWHI_ U"Q@(5.FR>NR".'M5)QP3)+3L:H8 M7Q+MHCD:.$UK'FL"?(MOTCS$CLL:G$\W"1F?(W&_1S_ C2@U'Q-WJYY,%EDB M):@4/W',T<+-26U?W(-T#O0%PNNNJKT4=4 ^V<^1>69=Y2Z1ZDZB@]%U@*NH M+'G#$%Q%TX!-]BRW0:#,R[]/8)MN2_E$M8J/U;KDCFH"YQ*Z)W.DGUB3>D@F MW\0VA 8(#=!=@3!I-'^&!FLMWC,,.99@O71=EB+C3'E(-"$:^ 5J8^1QFMW; M<=T0*$+A?NTW=&/@QI2DHCXV9N(A.)Y O/2*;3%]>9I512,_SDWIU:B, _TG M&5P<2,2/TSD@5PZ"@CNX.7 [&M('H: Q3E(2D9M4F/JJEI\*GN*.&BZ$ O\" M03SYYHGS3W+S7(O/[]?JNZ\YHQL$]S'G.^5M=(/@BK.OB?:I!(K87WNV.M+0 M+Z^A'SKWZ/D*$PP'GAB%P9'YOY>TSZ\^\U!I[=]TRG%"7X\W3+,Q6:5(@L=G M.MXCNH-4KLE1?BI&,G[)^% $"_<,"Z=M]:O/_-[2 .RAP^F, )'N2$I)PW22 MP6/1N#RD6E0\+T. @'$;;U4,]#6E_]@\(-_O;;.:,P/+/CX;GRHZ/A$AG9X M60X8]Z5$/_\2?OE!^3X[3TT=RU8D+WBDZ.#%]I,?+[(9.$EM1&[[ 8RK,Q$Q MF!BNYH;EF. +'K0S=!FW17/V MB.WW!IIKC@#[ AP(FMJ8*6J\#75" W"R*8X-60?3"'3$T29=.>8J]D31,?NY M)[AT9/P?:W\ <]. JVSHCUC*@AFDLN)8G(U$,S@@I_(=BSHY^0379O,D ^M]GA=XZWAJCS&B1U*EB1 MG;#& F&M\:;)Y4PJ$6<*9%^=.:VN,&&RE>@T]>LW\7@LJAA@9\TG4-&G9D 8 M3^1-"Q,!;PI?(=D>0?XR1; O6+P&J/$W-IX %A>MH*N 63])T+_.3=&L8_HI MS3B2VY"T8^P3.*\UN,YHII08SRZ+O?;"BY(#>9_ Q"7HNZD6 .@+( ,PT8[0 MQ!ZA#74P8'#)5I@9@)I"SEJR&=8%D!Q] /ODL=KV8:C;7( OQA NO1)U>/I_;+[Z"Y,$* MDMQ\J;>(F8DWU-["3%>5[HA*)MUPK*";;=333H)1 :D=O=6F6XE(**8X 2,!/\&"46)_50S+ M^OOQ.KLS\>;FO-L$;;] !3\#FJV?.O%54'L NS3<@>$5ERT:/L#]VI "F#R- MOY@+FOR4W6TN2-9KG,=L9U_<3#ZE"SLF/+F]F=61PT73M$NT^6PI55@51NV" MCWJ/QYFIMOO; R0"L$7&DQ^S:N^(;&?"VSW#T80BX+RQS4A2(%B@20N(T,FE M*YI>=*G=^S%D@#6_H>:EI91"3"DV#H?!2G>Z7U%RA MX%/S^-K,'C7UEW!SVVOYQ@(*WB)9&PC\4.4SS7*UDK<'HX'[MJ+\<&!+[1D[ M8,.9\QZT=.&^!EGT8%]+\QK,EXNU)Z)H!R:8*4^"FK_Q:0%_67CH6V M,YH"(.@8.4?3WDC O$^2CKB>QRL% &M@L9>0.B?,P8B:+^ M#!P;^S3;28$=-L!]Q<*L8$30RN Q"8SJ5$KC0_M8, !A=<.&QK2X 3Q@QNBR M3^8W\ F8/7YC'1 %LUU16VZ,JQD@U 1J"!A8;*".@!=[6SB%OP0BZ6@!PAG! M[5? 1[[N*2DZ&"#X 0;L>@4^#Y0@N"Z0_(H>S 4\$93E[_^"?[;JT5@#)AWT MR4TVBLS.OP9UF(TODB#^?1$OVEB$2+/5H*C(UJ6XTZ!@1= M,Y'V=3KBD8[^&]O[#)?C:"UG_ K?6[&-#Q+71 FHBL'/ML]\_^'NX89H3[ZQ M"_9'V/M!OSYA;&/^1)&/L0O1Y84>2S]3X;\\-C$A?/RK4\^<=)W!ST " 4IH M0;=NL.J;1T 5]O'/5]P!R75XX6GC2>-_[Y'X-<8\7-=3R\5O?9(EQ6JOAWR: M9,NMH;LJN.5X79>A"?4K>-NNI5QQQ\2T;1<(OE+N1J?C**[R,D=QQ,N6M?:< M9O*T7E?S%"LG9RM-(B*PY5&??0F75R-\:A/>H"\1]J06,6V7HX_[S%@X6?0J MW01;;W5S4R^]L/5XBHL,?5I$0BG^*BQRV56*)7FG9$ ME^6=$=F6RGHR4FMRL>.6 RM=)%;:H,&6B4RU)[M=-II+VYD5&0'9(I+'K>,V1.6<))V1L49 MNV7RC,AW-+].X?&4-*>TR)7%+M%.UYQY*9K,K),RK!ATU'3",M4(.YM,"<4N M"A9E&K5B-@5WNZ.F5F.5C)L9+T+P;8]6H]-HKTSXV:R/!S!0X_6ZU%L1"LD7 M%_4NHU1BH-<3A%KQ%:W1J>HFX\T+7B*U$HU1RF]ZQ">E=+]OFXD:I_)SO5Y, M#++\<.*>XM)!:K[VC"&+JPL<+T3QF96M<9"?HR];+IO9"$$GHQ'6J_;GS>DB MW2F5P*2XQ-'T[4ZWK>9$@>C%L[8Q[&=CU35\.TF^;&I/LOGNZBA5F[,(@:(;'F7EMU<[RJ0SL\WB@LVH_G5,U<\6VO45Z,6%J0WZ9 M I)W--"(.T^61M&FPF06L38Q7]:2[9X,6AX--%W-#]G6M%9G8YJ5S;=HO4 " M-J&/!SKA*V:]8P QY(M%HP9;' RUZE.PHW%M17A"#U9JI9;[F@)^TP>,5[" ME6BC6*RS^3K7,(K#I)PC89_'D^\8&35X!>O_4R^$2T6Y+3KEG \!;P);'DR^Q,\6U18K) MS,=ULZ;K_5R^"5H>31XG+,!2)=QE%NI4[[MJNT*HL,^CR2?[>5G/9HP6DQ_& M)+>8M$93!?9Y//GRH$W5,_W24,UWBH.\[+8+J;)["IZUM) G33E59C.>V\_. M*HN,84$@/YI\5JK9&7?.YMB9E\^V:(-65C+L\VCR8ISDTE0[WU'S"IV=--O] M7I> ?1Y-GL)[?#26BPW9&2G,\H0=8\V2#%H>33ZE1,K:.N'66'S2G\72A#M9 MEU*@Y6[R+S30X():X->I#@CRMV"EYNO4RPQD#G8E+J$IOD%[UW*-QJ M6JTIP="!]@+U]I$(?N!;9WYF.]TWF3_@T(-V!@^/XJ ]86%_^4Y.P[% +];? M3[X2=' .>I;3B$/CN#V>B(*CB77I%5NM!0:7,TP7V)2^QM8![T]KQEC]M25< MI!X=51IKIJ3VU+A36,<+\XKN_L)$8+/-P:ML8%2?3R6]\!&N?_Z\,R:"\ )@ M2&C\W!*?MA_V!P5U[\V H%(Z#I39K>7D*_J\8QO;!X&6[S\Y, ;V(A0V;8Z- M+=O<#FSS0C*8],=""Q.1Q^2;T>][FO9>_] XE0![;E=M^S<.XS.> M/)!>OT MKLFR,2+]%V^;\B/+T!Q;_ [KY?7HG;W??9Q1]@S0/PYOBB417<)'%_(Q3B&Z MA) NQ&,,$>9RA/EDR/J[^\HMQF*^A]G?,.?1P2LVWK61H0F[I!+'__[W/Z/# MV0.-!B[)__VB?GU5&JE'.EQ9: Y=R)]?O)2ON!\NU==D(F0ARWX)[K?""TH\ ML,E,#PL.6\FSR4G(UN$:H=M0E0C9,IPC,GNS%X?L&O7W1UX3W#2?+J26GIMC MQ7E+JI<<3F5=^N9$P'U?2B)F19KS49J,/- G M@JO^%->NE"B/F@>)\L8FS.]K^3%A,')XHX0%,NCR2M:HY M/IKAU4S&LF+-U2*9*,)C& !EB>AQ5IB;T<\^!FUSL(2F#VSGR8R%5+.PJF;G MQK_[T\_"#(D-*,RU1+^)U M*36?:X"N(TUL!Z)>ERK/@GX"!>>S*F4OK?:D"R6,< M_'J&L+#IA1_TVVWO2F T\MPA]1"IAY]VWY'<($4GYTXW'U%[!B[.I'PYB>-? M3YSPX[Y+Z[=_?= MYR_&A\-]9]9J_#K?C>OJ3,LE\%Z+44S>Y?P*7AWRWR'_'?+? MA0_W0N"_*VAD8C1))/-J>35PC)QA3.)SE_/+?<2H^+*A5?8:3_/'DDR MT.S,R)N'=#2DH]T+*G[:?NU@L#EM=7<:Z]6!)VI^G/X]?O) K'0_H< M_,[CQR9?'D@&JUV7*ZFDI.1ND!/7)AIC2 @W$:^?/>\.?12%>\ MN*YX]:) U[MT>_6IA\L9>/8Z:1]W!LX*U$(N,4U6S9?5<;U1M.PX(\/$CX$S M,$FC6DC?6PMIEYW9KS0DB <5+<%7/O<)BF6;RLB!:;B!:0]SNCV75X 9VP"K M@$7387IH2Q$4WE3\DDG;!GZB=%WP4S;#,4H*X&-1@W5N%'T)$ZC;$P,HUMN^ M0UF9 HH4U!@L;.18BBZ"S4[6C)&??!H(I)_6G-_DGG[ )$6#"PNYTW L^-OG M3.8P'9XESGF8V'^_V),IVHZI6]NJ'NQC^W%3Z$<$^,5K#]@2K"SL#IH?8I#1 M>K/R4\=4+$$)%)I'+&>8_N^QS4_]MAFP#*"]KO '):8<'!HXFS]US[Q8/9U"^;8UN$X=K\_+H$$VT':>$W;IA:LU2M!0N_6_^-G\W^R&+!A03-LS)NFATM!8C[ ;A/> MQF:\!Y00S+&!=*[]$EB8Y("%/ACFIM%>>O/]A0N66UP!%M3]97A1 2R0H.>5 M 1(COJ@CMOOI 7DQOX(3!CLQP#,3S@_*TXR?@F].2=6F1L0+>H<'6[K'Z>!] MQR#,(Q\DD)^!7P>5K:Z1V-%_O5>7CK/I'Z=PC+=YN[Z6/)TH3]9FKP34>S$8^&D"[)?PDF7Y&,\/^_S3]_Z;ZBL#G\-1!C7(@Q@';ULQ@CNXNO_ ]B"K2+ MO+^+($4*B< =B,"V*BH"1:1"!2Q1# +%.OP*\032G@*>Z)EP*H8D6=LH3,0; M: ?Q68/1A=,\@12H'\'^(2E1&?!]B&XB_JE<;"\D!->6;PM%/7U:]QOCW3CNC]Q MJ7N=T!1OF(^I3+V<*T1'VL#M5E-!.;YH\H$BHV_>^>ZS?@2B7=L,KRV!H0LWZ&5+UEKBCJE\*53?Q Q\@8E@V>;XRR$SA3 M+1?!$-M4@\%Y.6[F!9Q2,K#L9^S7[\@[J2,0S)PC1#UDRW >F(G_")395<= M'(TT<*2!?R3+T3?LE$7/R0ZX3E)E,JU$2F#B\57K#[*J?U4#3P@S=<1$E"+A M"42$IW$GJ5E0 R>I7[]CD0IQ^[B:)VB@3.61R=F.$EHOW]+@7/Z*SEQ9PF6!PGLMT!KV74>"JH;1TE'Z*) MV.5T_7O#@[?OT/\,/'COQOE-X,%[5;"^ 1XZ]0R3;=2'>88?%*U^>I+PTLM+ MZ3L?]PRLY:'52HK+,3.KYY(=6W06\583P$7LU^_X0XQZJRP#0HLSWE3_*6CQ MO;& 5S'P[XTQD5K[0[:Q.SXI&TU*33E1X%)JW58+%M$JE$T.[E/03G_WJ.Q6 MP@C(NW!B'KP%9MX=F0KHM2!J2Q'.%+Z!URW\^#6?N8R.7*#(!?HJM!+? :UE M>M:DY$HRK_:B %E+BE8WM.^'5D7KE&@J*[ JE1NF'\\<0%*Q7[]3C[$J3L-8?@1(!5"91H%0"!Y0+8# MLAW0:>,?V0Y:IN5IK0(])/!B79C6JRX]4F2P*_MNF?>.&R]IC&'3V#GV* M@/6'7*WH 2=\4U4A(@V>=$K#4=QB=R*K]Z4 MHB);0-XA5()^F3#Q?P[R0NX@%M:A,*2C_\;V/L/E.%I+6.-F;\4.:MAL?G98 MQF;[\)WTEQO"V,;\B2(?8Q>BRXM=D7ZFPG]Y;&)"@/]7IYXYR9CP,P M ++: M/_LWVC:/?OWN^*6## G+&'X-(&O'E/Q'&/-P74\M%[]%XDE'T'%^[315SY.( M\3*&DX.V"ZW(7\';=BTK(ZI9KE1S-.M5NDER[(J5UK3)4<N"9P MK3C/-I*J6*+=_\_>MS:GBJP+?S^_@EKG3-7,6R'#15$S>T\5*M[OBK7&AVG-2J2=6% M:66]'LQ .X8.K1^-#-KI:J=7+"IBF4\-.GEU8L]--/)H1Z9!K4I;0CPU&+F?90F8@983Z= M.*5",F^BU,31.AUKE3"IEE4VN&9=F]:TS""G(A_V:&1G(Z42^6J<-YBVWW+[ M'2\_D (I<3PRW5WG^^(DUA#S/IWJD;S\3JU%&<99LJ7 MK):7&8SAR-3+D8.LXW3[R?E -GD7!F)JDQB-&Q1@O4;* ML*J:9; M/LGX/+1Z9@VKK(KP7[\5CWDM7D(C8R]'-I.Y>8\QT@,Q;\1ZM050LN("C3PB M/TLUO?ZT/=H8>MSJ%?UV9D9ZS5.,/UP(<4]N5^N&[XX+4JSFU/KT&(X\6F?9 M3Y9BPI 9">NVLJDMG$0NUCTI(HQ):E+?&$65ZJEV5UZ+XX0,QJ>8E)8: R?A M4WFC'#0';E::F&PK@"./WMZ4S%%*7-0&!ID71^7ZK!N7)LT#=KYT2SYAU_2S M 9SV1'9.].&S>^-5?R5UQB+CZLDRM6Y.ZLRE^O =W>E^H5H/>AU""X"H"1VB M6,O4JP+Q9Z7>;O^UJT$BM(AV@6\)T>G,F)9=B#\+>/O&E'^:MNONUCL'#N$B MZ*,>C?#7>=CK=;0FH%+7D='SVH-PR!98J*\I=+6AE8:ZGHZVO2SA\!ET3<.9 M7<+V/1>YI6@ZU!,2=<&R*KF^'*CU9+G-XAZN0Z#A=RCEW,3=_=_FTC.TF730)H&EHG MG$5%2X,&#^$"Q7>@$03G"B:Z,B'0HB!?A8$*9&GI%MS6\Y?^^;10#]K KN^L M=\"9 6]BJW_=$1""8(YV32@0%F&;T>WTZ*'=,@+;-U74Z%2&JR/W*]IV,]5L MY#6CM^C;1K9P20IT2K;=/'>-5\.&MK)G.UML0,*SP\:FZ O?W797W0(7330* M22X<^!I>7I+?LZ:@^ST]_2S/4!V.SVH6JDR ZIN@KKV442$O\9:Z([?00#Z6 M6TW53:W6N90C,AW63AMR6IN5 MP_=!RM_J%<_)Y)X08)/PU<7*/1"VXH$D&\ MT/,%R+)IXP7(LFGA)WC,QC)?HX07+L6CB!B_N9R([VGA_KRR8_6E^69>XY^J8*S Z [!""I0*5 MR (E/$>UC:&R]-VI,KV82[X"E[Q>(1)H)?(H+P*/M- M$0&#B>"7B2!V:T1 GT/S1>Q(>VV?<'TX&W5';([SC9EM%B!B M%QC>%'.8LC%EOS\NC"G[^KC'E'UVRF:^*F5_O0!#[>4AM)MP'*Y1=(L]BJVQ MT(=0;1^=%?LL)^+2-T)W!M6UMQFQH@[O/5+YP;NW;9$KD$%/W-FTV_.A M&C3*IMANI:E.(=G@&O'QMND,>T=3E^HY@YG\5IF<.8J'1(S)C_9-_/G)%6:7 MKM21^4HY;9!#8Y(LL%._)9R/Q^&NX0PGF)UTTORS3-EU:+FCEDP^@MG'15[XZ85.KC-93> MS>V,[27]>CJH"66'!\G.))-57*3:4S_^9>B[6#+Y%KO?1-0W^W2OYF;COE<3 M;M$"P]E"*3CN&Q648LH^-V7CN&\T4(HI^^R4C>.^GX V;OYT _[HHO?QO6[L M/%[D'/J78LRWK])%.J2[)6AIH!A0==;%6 MXYB7OS(OOWV=[%9Y^<+1V]_EY4IY41[G0:XGU.-5;S2)EWBAT-S6PF83=RQU MJ8K]F)>_-"^_>:7J5GGYPK'9W^7E>=WSV^GB1*;\<9'/Y5BMFZVB"KJID)=I M]CAD>S,1VZUO(9RH\W18O.H.$L42N,CO@"#U'%U!'[=#$+G 0?EK0Z*3H4C MP&H.P@<\&U5OTEW71\6K+!4X!)C-37L-]N_;%\,BYJ9L_7G&LRV1 7CD0A'7 M/D5_W?#RM7: M)X\5B68%ER@8#^M7=_U:8DF"\P7[R2#KCV[G^;+[Y2LF#[ MBGTE69PN^,9GSZF>?5@>W+0\B/QQ\^^4M/@%>9#N::IEI8H%H:YT1AFJ#:3^#,D# MG+; \N"6#Z1_I\3'+\B#>DDT.+8J4H*L3EO,-7_\X MX+5LQ.^U9TS;WV//GW.^/5I[QK3]/?;\.>>](V1K1A'<^7ES'EG4+QN$-7AV60\+3+R&->D+0C[3G11,::HU5F<_%<'\0M+C M9#?CQ]0&]9C:Z%H65$2C(I&:XL2+]$T.OL @?)69@-+"BPI+GHX M.&*2X@@4/RO7=1Y!\>O')-?M5@XLSO:R+*1,WJ#U;+BCNCDNMM$2[R\ MDX-Y_S9Y/^J'O[^%K_(.WH]KG80)@)DW%GQ]Y1CY\FI AVK_O=[*WYX,D?KO M?ES8WU%7SD:JND7N>LE#=#VCW9<<_/0D^O&=_'QV2D/5*71MO?U*M^"+O0,@"+[+@B? MR=@SN)DU$<@NH5N$3*!#1<3<=G6$+3@VK!%J 6_WP_ZP$:&[X?,NI" "/JON MK@>?&"EO1^J68OHNX@Q;"[^8VQ[) ]LW56(B+P%<*8!K@H/( M?16A^^B O0/WH-FF:0>0:8B0C D7>"YB.&]RL+U7BAAY$]DC$( LV]M"!R$. M(@$!YQ">KYSW(B S*KX9"@A"'MDAO':8M:&P)%Q[!\L1> Y$M,(M"B!<;!5A M7H7R&;WOS_#]MN]"\:99_%&GLN=MC(!JF^"NL;#5>X7V0:*[T J M!*ZPVL(FY]@S1*^^%[ZTKKT46!VXKK0)8;N33R,IWG$SOY!]S]Y_$6JY[3<[A;H=>3:B =?;/23[(D>7E(8 M+Y'$"^:7:.(%\TLT\8+Y)9IXP?QR4;S\:I[V9^;Q+08[?R8:HKUGZ(ZA+__[ M(_[C@_MGF?MD\F48]*JE[A3H/ +G;9"-GKUT6RP.;M54X8\#(#N$\"P\M2T8 MPM)W^\HAH]\X,8ZYY!I[/NR&=.:>7ULM=$,<@()BSVD<(_Z[()[!B/^>B*?/ MH=4B=IKWH ;4OJ/#V4@[8EL]-VU'JY;"I:MX8X1& *&?7Z9RE]J3?C.AEUZ? MGH!?Z>[C.X1=PYIO)>=V-GBC,Y$)L2*\5^_!OG+G-P$O/EM^#+EP>& MHL&7%<^3IUHM;XKEW'*5RK19.^Y^O(CMQ?C29;PE7Y58@W$9EK+:.;N41GS) M_?B73E!GK&-Y_3&6JNTHJC"PQE-4OIM,&89%.*24U[_&W^'"IT:=C.)161XC:YEG62>DFQ%+%N04+M!>*X%4?Z$]KD*>Z4C&7?=^U1$B$*B ML6]NVS!E"\<%/AH7B%"^ 0=HKZ>.;H R;M/"G*N:^SR?HVPG%C-GFDYM^7HIMBJXAY.*N1HD9<2[*FQ9C2C0/V09:N"D& MQTXQVWSIWIB78INA-4O8BUIO+>A\19U7K=)F/1Y#MD''#.[HQ%OZYED)E4^O MBG&" Y[?C]H5%MA[6,S\_5>F7I2#>?GWQ6M2@/$,;K<%YC9D3FNV^,D] P^D(E*8Y.)+]1SX2F M[XF,V.[4JT*+X&M9(B_4\RV^42AFB&(M5V]5^4ZQ7KM. 1;J>+WU.4"8ML:$ MNT66&U9348&F6T!%96<4R(^V%?YB:P0DTO P]]S178 *IO@> 86L,H'/SV4X M%2#@D[*EH)HMNK65"TA2Z7#BI:R;8?F-L&H+_ 8L9=.7M^=EQKXI.^::&*W# MJBK*1 <:83\N#\F3L/#-3#: HY[8 :K;(IN0MM!: MH!2T?4>! $65>U!M'M<%KHN&PIG#U5G*M>KAG$!'YZF:4!B?3OSC_A023] " M*RA1P]HTMJ;I"OK1 4L=!*BTD*LXX%7LS"&@$%Y5 I7!04P71G%"U*#J16$] M'F+N.W/;W5;A>4(87,;V!/O+!;IW>T3L"A8]8N,N1,<3+IX6=8@5@E<4J*#A M '-]]ZS0$EJ?#C6W2^B>"TP-X7R$JB.]5T'"G0"I-F:7"U$IMT1R4 *S*EDF MDS7^W,X8Y/IG^I%T@8)T)+K#"V'^4F;NNT4_,N9.B+HO"X?59,>16FPW(6GD M-"\NAO,\N2EZ96_*__@7,NR1PCO $(+^,XV#%D7J*W*K31X*X7\D=KRPJAE2 M[1N9I#@DJ_5$CLZ,3VJKWY*MX41PK1!&YC-IN_OJQ[_.7H4\JK?P/WNA=4>X M\K9<%W+W4D!1 5J[JF 2?Y1!*([^_+[U_SR[5OX8 T9UDVSG M86\K'^QJ=YV=">WN=IF =OC>#']X-+?94"I2]VS\ M#^+@,P+'$2Q13:8#B#VKN;1[['G9I?V7/[D]OT.,9\\?&/J>NQ!>7F@"]@D+ M_Y&)B8,DT/]VZIF3]N%/F:83ZEI(_AD[K%GE/C*/?'BE_C7"? [7(W =%.JB MV?OD?M%(-$E,+!FC9"HA46J,D6)4BI-&=)R6M%%2!9RBC.0$^V.[#GEOP5KR$B-1+T>Z M*7V5X@9@*6:8[D)3)JNELQS#D4=S9F6-]8>QREJ45ZZC\R[9;F<#.#+^I7ZQS+AOK M6*_?I?S\1-<*P7*R&:(Y4R]'IH6F.XC7U9*1V<2&.MOOC3HU7HH=K].I3TO% MSMH6J3I3K!5RO-=)LKN#E\]';I)))U^:B#VAKC9YX+C, .Z^7V6+0D?GL8Y?G(@KS.ZD+&80UY !I*1JCHT]$8CCR"O!IK--=, MISNB=-&6^AMW4?5R:.31WH6T7T_T;9 4,[KI%N9^QDZM4,[A:.],;E1IU%5R M1"TLS>J/VY.* ^>,'^^]V975HM=,#HUV*>,9%3[6[\_0R*.]KSBAT';HU4I@ MFO%%=;(00^MOMME5HG@%(]2OME5XLTZ*<@;=UD6D[.,EFN>XM%JO]S1"G%V)' ) M2Q?E@%JF@^ 4Y\TX*NBL5_F"N$Y8E0EDO'9?/LEY2EV QA[768AY '1:9]+. MIL>?XKR.*8RFQAQ08J\D%S(\X)-M-CC%3\E-"M2F2MTW2& K&[M14[G)27Z* ME]U"B5T41=%O-V;MXICOLGYPBI^X>-:WQJ.D3I%L><:ES%Y!IILG^6G @TPR MW:Q2,VN3RJ^<=BX_.DG[J5)NWBU(N9FA4RRG)_/,9M%OGJ+]:5#?C(-)/VTL MVO)BM7:3#%\]2?ORTFIOC+Y9$GJUKJ +HZ1KM<>G*-K0E[.U4DLYE%^E&)HM MNYV6B$*B1^MLM]MJ9F)#>*XK:\O/#&9EQT-1H*.WM]*=TD"4:@[5KI>-HMYM M+'L9-.<1+4F)XB@.E*(ORKWD&AQ MO)PU3W%'J]/PH9IGLD(O*:_JN8%%=J23>BE%"FM:CK6ZXLQ6,LE",3;J9$]J MF^%H/;$2 [%L@'4.,&M.FTY-Q$=T[.50+^''UI-4)6_H_4U)K+E@7: 1>QQM MGN]K!L#%% MG8H/EXH-@A(9#CU"U"@V55PYZ[("-VF8K9;=(G43;>H8IBP89[M.S:J)G #* MV46MV@5T\Q0S9^4LZV7\5HQB5NELC](#&53MHM] >BN:1Z&;\<+Q>H3+: 1A[!E(:TOVHE:WV!F\NUQ#!5+XM#Q/;T ML4VV&LRSRFIHB" ;='P_EM-'X>N/ 06*JV&EL*ZP@EYU6KWJJK')3L*A1PLH MLTI;+(]F+:@;!B2MK_MDY[0T*2295MJK]0:4GJHSZ;3:[63XL90X'KGRNR46 M=%13:.O=3<66:W:MRDO)XY&- 5BQ&RJ[,NI@Z2>4Q;!EU (I=3P2[D/JJC-C M(Y3-->A0U>P* 3]UC":9*:QU>PR:XH(V*\5,GADMECP<>80FL5;(9":U@!9F MLH837%NNJ:JGK0P%C.GD*QFQ:50;L*1QV@*6HQ)E^K5N0 \ M:;YNF+P_),.A1VCJ<_I(B&G5)I49#$FK)>G%)D![>H$F^)882&EJ0HK%Y)04 MXY24-$HF&4F5DS*7&*5D;G0D ;(&Y*B>8?B&K'>G>IVF%J7J20?"+#;[>;IC M#XQZ769CJUYUT$WRI\2OW9[V1%HK651^+FFVH@/;Z/&G3([-3!\(,UV6*(9) MC28)M1WO9D\:^QFG/)![XB@F9%C*J^3M98Q-($/BZ.U+RQ"6TZ0K4?6!R#%< MH3_QPCO-1V\7^2SOVHNT)Y+-RF:4#]K-2>FD"3]/#')]OY8WC;:9HI*,-<$3?V!PNXSVP'[\O-'L>K#P+&'#CFA"/3V?;LR]MMJ M[^[#C5?CCB=Q->[3^?WK5TO%>(D@7E)A7QZ,EZCAA;E/=Q@O6(YAO& Y%G6\,)A?+HF77[Q+]E,W_Q8/S__,A8[V MGA^["B0^W%6 N[4*R[_:5>!BTNOS+RQ^C.&OC?L/8WH?W#Y?(?4KBX++%E(_ M:A7]I=G\K*T3W@X+?6G$_\PGB;:"P\1^_G81;\<.OM U>TS:MT':-#;(GAMD MT:K0PY_-MHK8QJ[&O3=3B?YL=\]'UAYJ@6T_XK?E0#:%R'*V!82/MN) M6[IKI-=I8"D3N#7C6:'+MFP"=W=6I :\GT_36<_!LQGV2S@:NYNK**=Y2V7C M-:K'Z3.J&N0K2NI9R3'F%RZ6'[VE 1STA3P&]./5.9)YO# ND -MM5)2'L4, MU_U5999G-O%@>PJ+C5^FS *RF"/&SG]6+RZP%-YIM MJE074.VDKY=I/ICZN4^361,K6=ET9W7# DE5YB-<6T? .T',G(:S:ZOID8>%5'20"96L?\^7JNCDI=H_E9 MOEG?H5>3VECLBWFVW6/K<9;BPX)RR0OZ9M%CYY>V\=6*NY\J$9YW;-Q=P@$*T)=A'8R1;*+"QR[QIVZA@OAAJ=[9=MAC30[?@K+)!.I?%RG@,?[9 MXKY9&0\.^DH,OFYU0DM>_QH<1DOTT$)3]RG,+Q%$#"[C$4V\T/<<%F11Q L6 M9-%$#%3\N"Y!9.Z__]0^OL78S4]LSVAO^?'Z>^RCU]\9[I[A;NH^U<7OO']" M$O2"5ZQV3'YMA$?GSON5V?^2-Y^W9L^U48WOO+]7X1]N]E.4W\\YLVB\Q3"YH[NX&I_#=X-^R'"*VR>L9 M$UAN?>KEX$^16PO5:)M!?V4*[>$D*0NC)6W(GW8RWVK;G%Y;V2K%<90T)?5: MDP]V?;V8"\FM^'5.,5WF9'0$HIGGN7<7B0#%^61EQ 0CODZ' P-1IL](*NX/ MWZ?[%,6=:-#I>4_V;:&IU8?%K$=OP?/' M+EB$"30W?2=1"!/MKG ?'L3_^[ONGM^]/](3?P#_WY\;O MZ128G3@1_OR8]^'A\$=S"%U_M)V'_-=CM*OL3RWV_03TB2<.UO\,;1 M?.>EFL>36,S35R$P7^>!JZW& 7,'N !=JC6!&U[1M="%W%=(?*=O:CY4F+H2 MD9O+NXOS[O;F\=-UX]&:& -[#!$_T15T05@F1K(+5 +:/>B2L6DKH1K>7SI^ M?')W[9@(;,<@(%O J9]?+T8WH>$CMN]">\G]:WO;^!EH?LE(RIL-J3.:Z25A M[95!K[U8Q^G!^*7IT%8F0/5-4-=V&\[![0HK#SB6;#Z95Y[GZ"/? VK'SMD. M9' K@XPD1P=N>IU_A PK?BHP@7A+W27R].X)XP7(LFGB!_A^^=A]% MO-QCL#D64;Q@L#D64;Q@<^R":/G%(\,_S1W?XG&WGTGL:._YL?8AS7VT^"&7ND\D M;JH4U #(#B%8*E")R]9!_(GTBGR=*,SP7V[/9RAV2M_'V)OB]S,61(P<1U_, M<\=D_@7)_%P5#C&98S*/,)G3MTKFV#Z[=?OL)J38$5=^"A!^%M.^BJ2Z/EB^ M)3_\)%P;.:7U=!?W5E77K<@V+,^Q/,?R',MS+,]O0[9A>8[E.9;G6)Y_=WF. M0TM?@57?U>CL,2K,?#0JG+Q/IFXJ*+POU'&V#D]?@A!^1SC?$/)M;0N;,Q-! MY$3XK9BGNTI16OA_\,?_>S/UA84<%G)8R&$AAX4<%G)8R&$A=PM"[F/.>,1J MCZ.ZSD EVI[L(4R=B54CMLEKQ9(C!H;_.UM\^'9Z08CMK-0<)LFY8FU2U*(U MLU<;D.SUV0\4,@^9: :EYU,93=D,BXF'=RM :\#Y0P M?UK.:T7,,ZV95NQ*(XGJM>CZ+-\SNFW]61L(DOV%*N8'!4CA&SV$@I[N3?9% M2(N68OJ(0GC7!?!_:D=>/18W9Q]KF^M@Y$SIQ=HQ9NM&ML.MIFO51MTAV!__ MIIB[1"IYF?KF$11@YS8V;H9]S]J(X);Y]Y)-"/I++M_GV;QI],@VIY2!F$_R MP;:-2YR[!).&MF#$>/2/6S4;L/6$K:DK:VNY,*EG#(%1,[6* M48^U?&=\9>O)8(L]3:CD-@97Z/FZV,ZP.LU#H9SZ\6^"O>.8^+>QGJYU=.)V M^/RL'?-NF=$O:6;YLCNO#_-T7?2' 3_R@%B6 V1FT32TLRAL9WUQ P/;6=C. M.K.=13\3O_07%[]&TN*#9*;;%?-4U4H,]59%+%W;SJ(SV<7:R8]J(M=0I(Q5 M2"J; HI2T[81 P;6MC0NK2A]=TX_9*&EN,:CNL4FA-JIDWS;6%49@ ; M&EJ)'__&+N(W1=S0^GKGCC,3W9)OXNC!=[P(<[9\QZ=?9XF"U?>QW$:F%DU= M,.UQ!<%*U"3#SY3JZK)8G_OY:^,]?1LI^2_/G8SF'J K9G$[3ZF;3*%%YM582FEQ_'#>N;?ZTNN;2 M$_NQA> W4\T\V<\E8[TQE+TI:/[$[F*I"\:\OIDP^I9VTG=CX4O:28I?-.Q< MR2"-&3U,UQI&P L<0ZL"NF!*1@S:SHP0%I2FG8H?)&7&KMCN 2VE+"E]-EYOZ_+ MPY>TE-:]*57Q9#\EE!=RW&-ERFS+R*M!>3^:Q9;2X99OXO9C28:;PJ># 9\^^YUL1ZD13=W4':YMF4_[+M7K#)66[>5CU.K:I\]:4J-4J]!>(.HR MV6FT_/AB(/!2 N4A:>HNQN%3_OCP6433FE^7T2]IA";HKM[/U1*,J*Q/$Q4!7NFF2*YI:FTA+72JTP$RNOG M@FM'"$?TQBT.G$99U">CQL"?ZEIMT(3R/H5B#G>IRV1HL 6'+;COS.B7M.!J MXU372,74M%CWYJF).$C,V=""0PG7%#;AL.V"P8!-N&@G>:,JV=MR'UBSQ=2F MUG&R%ALET;AK!^%6P+'DXJ@[%\E20QC.TUI,+(<"'R5YZ3LJ=<$D[[=G=&S# M?5-.OZ0-QPKCDML;CMI&OM2N6WRSO'*F 6)IE K^-K4V/CD[?,VMMH#K$;9& M>!- !+9CJO@8SN^8GUT+NEL0&9:R6Y*9/J3H%MJ+0)7;D*.A?XB MP^!SAC=R.P$;7]CXBG*^]HO)[(E.]EBU"P1*7FPFQ9Y7,>09?V7CJUC,ZX#I M^2513O;*WKRW*L)GV-7*R7TQHMUPO*3*D",1> MU3$[XGAF.ORU8V2Y LE.:WTF*_IIP9;6?$W-C'@DRZ'+S<;OV,NXW=A.NS&. M_Z3D[,VQ_"7M-"T-%B;3S<=$D+0G5+G;9J=;WDY WL;AM-N[MMNQ/=DDG"U1 MXY,T%S\Y^%R8LU"8J[8_,D$D3-6+]HNX^LXC9KF^3 I%4AU5'=E-2UK6$-HU M2NP$.E?J7;V;:2S=[S'E3#E)Y25GF9K1^5R'&DNI\*8N%[]+LM_GJN[EVYG> M*M^>+9O[11GWHO&^Q 30*;%+4W[;T65CRM0W&@\Y%)WBI;[-F3_<7PL;5-B@ MNE;&-I)R>66(F5EU056,?"SP*YL)94^2U[YU,:[)12]K.S25&1>/7>2N'3:H;HIOSY9X_:*,>TF#:CZW MN3QAY6%L46&+"EM4V**Z='(UFH)YLY2MBEJPA38YX8?%F6EQU:N'J*9J)^Y- M#9)B,MW4.C:?E(^5OJ.XB\AL;%+=%..>+4?Z13GWDB95OM/W[41V M/A;EQ2S9'#FI7HKIQM);I%3@!BD0>X MBF=+>VD%/3V)?GRG371V=IY"P:]KZ^U7N@5?[#W0R:>%T\P.J/L/<%T5VQJ3 MIKX$*B%#'>&Y=X0%/&*T)L:/3$'(#I )W84C((V;IAVXQ)^Z17@3VWH:%7XI+Y\V&U!G-])*P]LJ@UUZLX_1@_))MVLH$J+X)ZII@>1"Z/5T% M6=U53-N%PJ=N/;$Q#Q?LHJU5T,[X<&-%JVBI^E)7?=G,V0Y$K)4);\/KP$VO MMQ_7';CBM&DKQH[W1E)VHG*U9643,Q8;,#.KGK/0-W!I ++I'"[.)%(A1>>Z"A_V'PT5Q<.[=@F;RB@QQ:CUR/FD"S3L4!:2S73O\ M9J\&J3_0RCUG_];=;/1V1^\[CY"@[]_LTP'1>F)Z&TZI06+=0V3_-XFDW,,( MDHA!!A &_\QM5T?4^> $Y+I$KR8KPQ?OA\HCUS9]#[S8YR=[7P?/O9\( M_H9;>_SW-TTXYLT3,1@OU\$+?1][\P BQLN5\$+]I. %1@P69!@O6)!%'B]8 MD%T4,;]X7O=G]O$MY@1^)K+/[EVC UP+@8%Z'VA+__[(_[CHQ#A[FDZ4G

    '7W\;#OFE6@@?HO*XW]/,P7S M4::@Z?M4!&Y=GI$I4,#L.0=@NL!T$=(%X]#$SCNYG>+ [ST4P;M27?OUEEQB6VH.VF2^8N@;JB?E M.;E1ZE;GFX^?]:S9EN([#GSI-O=RXM@!95:9?K_"3\1%T?03Z]S23%=YB44W M8V+Q.XZ^T#E.S/J8]6^?]=_;RP6ROM1**1XW<#6Q-T];V4:&$MSD/5C=PGVK0,-7\[=NTR)Z<\PW",IL[Y# M^9R]%(N.;NAV>,I<7 M-GNJ6KK1JXJ=,I6IMIP*.?=G ]"$0H%#0B$6>ZOEXRV$O1$IJL5!*T?C;9I49&WA+;-0C1L9#Y^$64]UA$2N#6R=[4 M,CA[/4KU654KS (I'H9[N+M4DL;A'BP3L$RXGB&56SE385BT?0%TJMG)I%@< M]^L?+[3^#IF0,N.3F&G$ED*^&R@;L24LVPLD$[A0)M")GUI$^PL@OX^1^2_= MI#C!R*KNSDUY_:!;IFX!,IPRBV4'WTKG?0]W0*S$X<='M^>NWPS-NC#$-7-FSG M82^H#@[8'4_GV?,'ZIX#CZ4=X_?4WHE$G 4>29J0?<\F*()"[ST\D?:^2R.[ M*:GM;8]#D;W;4?*E(/W[#;D>,AY<^QN2_6B^\^JD9[2S^RH$9OBJ5Q+15UO/ M]JXO<'<^%13:<]->(Q_+(Y3=?6 "T@8< 2&J3* J\$V5& '"]CU75T$8GA;O MV_?OO&*'_D;J1+=\>2N9+WW[*Z=;LJ7HLEFT7,_QD;OO/MW^.G%Q2RZG&@G% M6PKEFMFJ]01O7@G&6R4(5PU4WGMCG(2&T1>ZYG5T>N.%&71P/P_*$B+'%UM$ MEZ^( E$5^#;4DU6AUFE?^1(A];C&G*P[Q%(V?8 N"2)" BO=(^:0#L =83OA M5_(,I9S@1TB1P9[X'*" ,!0 )8\+3). $CRD8/347-;#'SQ'MEP-TJ],F+J\ M%>&$;J&QHN"'KX0+"MX0 MLE':ZG@PV*XZF$ 0RTM9-]&O]T3]:"0$APD4[QDH3^%D2PQH?1 2B&;0,@[I MX GI(QF]VG[$+42<#-?HR=#P4 G-L6<$HM@Y",F6<&W?4;82#R[KU-8?UP@_ MS6VX*/AJ$-XM198!G?C');;R\*7T"Q7C@7)63" [R!N9O!#7+&*12YQ(?_7D M&!,[8M!D_.4Q\_]YEV5QL*N=D<&$2G<,S;SPL+ZLP1<_R&8@K]U]Z#%US_[Q M9 WL%L6&8HVZ9^-_$ >?GTR-@^6@BZ8'$'MVUW3WV//KIOLO?W)IX$!I,O0] M=R&\O!#E[!,6_@.E@(/TX?]VZIF3UP;09TAGT,,RG^F(W5<__NV$Q OY.+.] MB.L^6J[RX4V"UPCS.5R/P'5HGK+WR?VB=]Z:NS%K\3DWT8R9TEHD!KD6[Y2: M2*/_V+[_<:3A@^[(=E-Q01<7BU26-1AC-9885%+S^U Z;F@R%I4N9V7>ER) M=PLBRKTE7XX44_U%KVI4 M[2[1R*,Y:_' K$][U:91GB6KL_2L-U"K33@25=1Z/G21]@2;Z\QHJDR6I7S? M+[I-#W4P/T*235E]-TXN JIL9;J29TQ+=A^-/%HH8U6&=@',*@+P;"L&O%DV MU>'AR*.%UL58#51;E1%5'S*3B=/R*U9CC/JG'R_4'C:U02L&A$5Q$A>KFVRO MO4+E^ZF7(RN;=795F0\+1CZ^7);BC4E#ZZ-&MT=;BJ7KFD8:N8ZX<&+)%,C[ M\S* YC[:4+#3%C+NB$Y1L))?%_$BL M6<&^'=3SH12_8"E]R$ XM4K]>&F3C"<,5/CL:$M5LE2VR+P],A9:>C2K<'JW M1?(231T/;5"Z7\BE6KP<9$[4P@4./MI^H2R Q7^NJJ ^7C%5DW>%, M&J.A1_LOD6%MY9W"8N4FAFH3#3T"@#Z<^+,:TTP)Y7K0F6]H9KE6 M C0T]7+HJ&(5NP6#U@UY(78]/E7TVK5PZ#&P^IFL(G7EY49HN_Z\P'CJ/)/< MCCW:F*E6J';+&P\-9EYKQLD5-: 9" /Z&%Q6H+=SM8V?-;6S>K3DI95)U!9V5EJ;:S%=F7A,- M/5[L3+.LN2?[KLA1V66;(N5:EH$K8(]7L*AG.^V*GVB((!\?E_(%.L]-FFCH MT:QY/=7(Q3:EE5".:<5>,%A,6,@$] E)J1G-T7@J#YKC"C?+X;SGJ$ MVW26Z:=7D[$MUJF:FB\*;(:7P[4>@P%'3A=^:3RM= MMWE*#W47F=%D2/=& E3Q()>7&]7<9GQ*#SDN12F,.%F)>7W16Z7K_44A%IS2 M0T8[;G5Y6JPG!R+I6O!*94U&%<;\T'%71@,.THTAH%KUO3F*96EM9N!5*9 1LCH MJE0<>8ER9AR<5%ECBFY#VV $RJK[1=J9C,O5\09F);)7+(9+XK!*94E#OV$.O)-CEK,G*QO\D&) MJYY6617-U0=*(VY28&WWK(PT-^/V^)3*JJW9BE5*].OB+#$R"VS;'_75\2F5 M9=22;=?=]+LB4%/E0F=5^;C"03C$^J+,I-@#FE8N6.5V M?=H\J;(:ZX'&IZ"6-_Q"L%R-W>;8[S=/JRS-JXW7ZTY9H63%3\JJ5:N-X^/3 M*JO4*.8WY'JU@MAR+#[97XZ5T6F513'E7'XL>FU!+JZ'V4%E/"JOFFCHT6IE MI:YV,X$V-\B!H\RF.M5%]A4<>KR"\6+D34AKS8L9VM5S?G6X3&O-DYHPX/-Y M:SPO544FLUX*%3)/DQ1_4F71R8&?F);T&96I*3&=;CM.MG):8^@*$[-793MO M@"F5*2=68E,#S1-: (X54E*L6!X6&*''TGG%*T&7O0#'QHY7X(*J,(A7-V4C M+PFSR:S27^MZ@(8>S9I+=CJ-DJ'5C+PR:RSS_G QSO%HZ!%U"8+EE>@Z6(ED M7#'RTPI3\N@Q&GHLVD CTYN0G";F62<7DX-\QIB%0X] 0.5Z,=/A:FTQWZ,@ M8@O-94H+AYY0FE:^Z:;%$F/H9%O)*5URK@_"?3V"ZT7(]>U YSZ ^0OA3N82 MP8E]//'U$.<^YK.-[OASM#//)>S@,XJ]A=$M^#[;@:[O/C2VFVH7X=N"U@/*Q-(7/G@*_^TBAL]"=!8* M3T*G'A CQY95P@1+8+KW9ZVUM0M;A.$/E*+9?[&-?83??'(Y+CIVGV2_1O6' M7R]Y$3Z>C-_37Z3BV =J1X1YM?=A\CSB($P,/R8^F<31L0\D$+;QI@KB(((F MR'<<_GC:QT_Q=:%]O"GGPK3V4'K&*"\''S[\]<]/G20+ FS2>&D4"DYC@V5F>R%F:MPKFU" M&3T#55R8S8-S62B]8YKK;58&+O+9DZ/UX?P'V9P;(W'V]DA\C^,0KR<-)DB" M6Y*P+8 P/[/A8RZ<6]?@IBWOD0;W9I2*9G2VTQ]FZ5X[BQ")PKDH7;PMAAN: MG"$A.V#N0./4\K:&9<:>S67K*96XX]B=(1F>S3@P)B$041H2'9K;6 U#/PUA?K66 Y<1[%>'PM'MRH]V8J#ICU87C[/AC:0(U>KZW>KBX1W/ M,*%#5)]22RXANG#5'RT[CCGM>W/:92R8[PJ6GP6FORE<;IZ+SM ,@[J/IR(' MH[?443,\M'2V-B@W3B&7B7A]4[#\+.#T3<&"F0@;*V>,=GQMN/QBN=Y/\G<^ MOO<0CBI0[.W10!(=('WP+51\!WXZ^CFTP1XC(L?+#'A+GH6WM,?'A5 M'GM*GT@AU"P5_ :K=11335,(%@E8W_@M^Y+8/,?F_]18"HL:[#YC[GH M6YO_Q7WA76S68;O_5;O_L6 MII)/HQ+V/O6UJ.35G!$V=[&Y&S7N8N[CGU!. M_8S<=50<>_L!"V1LV[UZS",L3(XI!!MVKUK_89\"3"'8J'N-0L2#;A7GL.JN M73 ("],/[7YK;!S_>P2/LYEFUR:4,P(/-17!A'-YPMD::#=$.'^&/9:V */_ MPB3T&22$++@;)2$&D] GD-#6Q+LA$MHZ"5N '9(3^]=9#$)9,<:.[5OJP_\J M"@":=E4;,".[$P(L?'TIFZC\X]FX)6+[W-/_F9+($=O=YU>RW"6-KP"' TX/ M&YN] ^UG0_ZMDW8L>@+J\TD[;*.""?OZJ#\G85\'I=$B[&W5#DS9U\<]MD8N MQU_NC-AUQLXYLA(V-OG^5_/.NFS;M273MLG[UKD"T]-LA.K\/D2<:479=?Z>[CB)!M MMA>0&ICL"09)4<%:9FMQQ(-"6Q/_Y-LG=)FOK/W\_A^74";%'C M^;>[:'X-GO])STG,\2QVQ#E.$ >C3?)<40Y@?(\V;R$6U)[;CD1YP9H1N+8'K M;1N2_2DO9=U$![)(J+Y(%VH;J-5&'N$"Q7=T3P?N7[<:*+H6WT8,#.>+E^&T M551P>BV/*V)@.!N2<=HJ(AB]EA<0,3"<#HG/6]8N%P\7V$_=E;&>^NS+N M\I;*CX&E0$YL/_+D+K"]B2OZ++WB!T);*592M+1V^,7'LV/\/IB0LYVV;(*G M]V7!R'OZZT1<>UKS6VR_4>$HT!EX:Z686" UBEN/FL%=$K1^-MFE1D;>$MLU"-&QD/GX M\;&PR- "F^J-&Y3F\TCH<%CH7#%M?77>^YP#KU'<^;4];,P4W]=:?S4;?O6M MG\WR,FVD UT_H-# !$![P#3M .*8".%).&#N #<\*@P- M ")CS^":UR$*$O^XA!P:!,0,R,@*4 G9(S1H'1!+9!X0T%"2X0R*[SAHQI'L MZN@1PM:VL:6C,L0$-(88 AI3X$AXN^%.WX)>V[\*Q[E\/ M(0PAXI&-I5M^F*0([9 \I/6YU-+9:;8SS-2I==R7LJG,L-'/!1*S-O?\B9-7M-SNIL!US("9V8] W^Y !]0?:G.?L%[9[(;W=]#OC:MQ/ M[N6H^O+$_"B1I4':WD-M_S>)I.3#R &R00803O_,;5='!/3@ %-&O:U?S+F3 ME.&+]T/ED6N;O@=>;/0:Q>6WS[V?4/Z&6WO\]Z)A?(R7Z^ %6CTQC)<(XH6Z M3[Q9!!XC!@LRC)=G,8TW"YYCO%P'+ZE[&AMD$<0+EF/1Q N48Q@MT4-+\I[# MZB6">,%B+)IXH3&_1!,OU'WLS?(@&#&_A9CWGP-\#4,_#6%>O;T5[BWY^-YS M-/FBZ8^V@(C3]W$F4H=G?[<%!#H^0H3G1XCJ4TK')407KOJC72 PIWUO3KM, M9/R[@N5G@>EO"I>;YZ+OV-BVZ=L>4&^YF=7U&>CG\-I'D)7 M%PL?["A%#BS84?J>7/0=':6&HROPW;J%?27L*V%?*1)@P3R$?27L*V%?"?M* M$>(R["MA7PEST;?VE7@%G8O"CM(G4@@5/8OO+0IIPTET#6[1\C"98%\ ^P+8 M%\"^0%2I"?L"V!? 7!052^^+^0+5L$-U6,@&6WK8(7B-3,("BYA /HU F'N: MC1R,/N0Q8EL7V[H1,%ZPK8MM7)?B[V.:B_OVWUAB8R-NU<.-83%OC&%8,ON M5?,_;$.#*01;=6]3R"E=\S&K[MIU<; P_=#NMP1P_.\1/,YFFEV;4,X(/-0D M Q/.Y0EG:Z#=$.'\&3:(VP*,_@N3T&>0$++@;I2$&$Q"GZ*^Z-M27XRB2H;WFK_OO,UB \SQU?8W5NMY][V_3XS=1QUP#R7 M@)C6W]'#).HH_7Q:W_80B3I<,*G_:B6+J&/T\RE]6\HBZG#!E/[+=\RBCM*K M&#"QTPV7(P68T[3^E8X9H"Z^Z*J!;8$U,0LO'! SW_-ED] @V,_G@D3F%,4- M'6E]:\]GZ?W]Z2=0W]7'^S_;3MTY1U;"?LV^I7LMH/WWAP@_2&U/ME39426Q MG96:PR0Y5ZQ-BEJT9O9J Y*]/LMOVS?#MX9/\:Y4UR2:D5A:0A%RR7?)L2S/ M)=1O(&PWD%Z'29>,*;LNO]+=QQ$AVVROZ>00MU3#DQ&2(E5$/9.O#T103-:D MTF:<7V6#'X0*%'TFF^Y_?Y#L#W2M9R9[__VAK[P'RY^IMK?[_0=AR3,(U-U; M'E!8@+=4]!_A*3CPN+JL[BJFC=HA_"!Y<<234GLCW\3\;L$F]QW/M_#\^L$YJ+&\V\WF?P://^SEHR8Y4^R M_(D)'C\6=.#(CC)9A_'+9[,]CMFFM\,!]&[*,JV1<,->WUB;G>&,SRZFSH*_ MBA0ICH!DMCN-A9$W_,+2:3E3-Q\@*<)A*?(%JSA>6HA\>M'%=PD1A"N:.9]3 M^MT(\S-P^@DF[2=7+_D8:7[Q?-;.K13OV_=$'O4#M%"K+L(%BN_HG@[?\"T7;GA7;3_R9L9WY[K*("TU%?@PL!?)J^Y%K=Y9IHN&J MB4)V7#/T7*FCYDQ:R4R:5[%,LP*I]^UZ92HR-<6C;T73_AB@GT!M-X9\/>]7-YF#YO,9MWOC.T MUT_IO9-"<5(/.^5G2.I=^TIGQ,#T:M+OVG#Z7N'Y,R<%^7T8(&<[;=D$3^_+ M@I'W]->)4+H6'_7%@C!6Q%YY-!MW1(U,=L<2S88YP=1=/)[ L?3/3PI>FQT_ MT9N+X.Z_ES"*?J[P-^2;XZS*CM[D^P8CSG/#^@A86CM \HW#\NUJN<)K,_@G M!@,BN'N<0KPZ6T24,CXS!A'![7_#S&+']E ? 1P7_'C0X1G1LI!H5=N'MDHD MF/:,-UNOOL^H6>6YE3,5AD7;%T"GFIU,BL5QO_[Q.V=A:[)MP=+WG8)+,!Q7 M&LDIUEAW=8JJ2MEARX*F;0RY[JG$'9.,XXMF9_73K\T!GW.?]>K;C!JC7\!! MSL9*Q:Q6J)%BOI\0J'8YL[8R'P\ _K+L:&G]H%T8J#RE-_N[-7W>1[W]&\/15+__8^J+W]_ M5?=/\-\#)OP&_CG9UJ.E[^D4F/TSMUT=:9$'!YBRIR_!(VRI/Q"$#E;S%!@@ M%=NTG8<]?/3>?9\P?JG@-[WYJ)WU-[G"$U!AZA1V[[WH.DKH!ZB M?>J[GJZM#V&WV^&.T)[''G;#DNBWOP]_^*T]O."><'EP^6_P3_*((\+##\^9 M\@7+0.-#LVW/LCU K&;F@RE;X__^ !8IMK=6C$2K204D$B.)!G%-BG&4*J64 M%"NI&L=11/:(P/9-=?OH1%8)F7#UQP[)!- TH,#M6>'V M#A:VW; +GNW!15\?M<0BH(W-AJM$QO;]HW8Z(("?B*\#%MH=N]FS-9P#6?:Z MY>WN=IE(W;-/ F:_* 0& DI^-OX' MK/,+,B#R"V8W'2!)KWL'ML_YVSE>V[+X_$^X_7,,Y (^1">'EA5[!/ M6/B/3$P>.25CWB$F0F4#&2*#7,^P@/F.\.5_#U#\&F$^A^LI<+V@ M]*WG-Y*R4BC7S%:M)WCS2C"6T%#FE:?RD*#F4DMGI]G.,%.GUG%? MRJ8RPT8_%TA,^"C]XWWNW%.DX/QB\=X18" % ;LN.M.XYLN5O?U7URACOPA6G35HP? M>X@LU&%^QE"KFKAN#ZO]P9S7LO7@!P&@USR'T$);J?T%D2(#M MB(QF[XEVI\5WA'PQ0S3X5JHVF3!M*!Y"M>9ZD$; &%+.'"+8 HX[T>=$H'L3 M@E>74"%!;4H<''N 4T/2'4\('6JZ8 (MN#5I!Q:CUQTLGT*J1TB?D,9QMC P&*&3>&2)S)[(#7&F@&%RN6J?+!B.4 MW+*S\8NIQOC':7Y-;/F50OR:V+$K]1@$>XTAT^O#7\*XF>MX$J]IT&E%WPM0 M;'CK%T=4.NLYJ&N\XR"+!0'J6< M@TST48C[)3@8M)LDOVXU2]UT?2%F8D&[ MU:3]5,M[=BB%^H606]N#,J08H@2" FJP!D2 K;9#"$)&"G]Z.I%";<5-#1J& MDE#G_[!U+<7B.VB$&81*2LV+.9C10. M7,(=6O(!LJ'V=UT"6HL* &KXQ/^=.3YZBY@GX[^ ^L8.N#G'GB$T(VNYKF5" MI(1D\8AU[@#KS77:'S)I3Q "#3+BM%E2QW_^)>+WS/'"(=BV80?_H'2(A07 MAU:W_"@F$.H10?G0O&C>0$D2")<7K@^1)+ M4739/%@>I,*ECJR[\%5(EL&7P\EV3HONJ*$@U[>4#86:OUU8N A([[X)MPB! M'#YZN*O =HSM*/C>D6X!XIG<#9TK]$?H@AUN&0G/PSW-(24BO/\3_O*GOD1[ M>8^5\N5I_X#:2>BD/:B^LX;VY4M:KT#EBW3O7DY, MJ8F&W#$-LM#(6#D;BK7'3,(.H/^2Z$7/R!*I8\71YZ%X0K3R!LTA1#E;*!*H M=3FD*/<^,J8-_[A@!WG8T!5V@&)#WMW Y8:T_,1Q:J@W$'%OS0P$%G=O JEP M_&E?.?R7V7O,-!% Z^-B,OX5:QQ1+12#JJ]X=:>]Q4)(E7-5@,I/'5_7'!F+\'O+HX;YAENF*OB)C-MI19,8]BB2)/K]!J+I3U; M_+JF_0!NZFXLS2793D_H#956B[6"3JP70"^*NF=?14[(1)?&#_T,/_15\3,: MQ\75),F)E%Y3:%5@FNU,J_D9^!DI'%F304X2?;:9I"I-O56K\2%^N#>8!UH! M\[WG=4_PBH+BJ4BX*D!?AB&4%T(U0)'.RYX(8,^,E'JVIHZ=?&9A<,V2YRP@ M%RET\W7')-37$"_0"E)=8)T\#-!Z!-!I'R0>(YFD72I25'E=2YN#>+^[B3=_ M_&O91\CP4#@9JDIDVCT+X1+/HK?;4/?6+3XW2[UZ).,\"& :079*\QXO+F;& M?-IGYDQ[].M<\5,$'/+#<)BI9&0R4S;JZWZRY=>6TR$/$?"VN#H)?^8>?K6+ M2>RMCD_$QG6M@=Y4*YNI+NT80"T(Q7Y1 ";XN&^'HK$(3#W=FV2@^6=#D[6B MR]M4^DE$3@HM(UUO!'U#=OA*;3I,:]78&!D%)_SX2^J=(R:Y)EK4=+!F\X9% M&UR^S:M#B>/;>O"):&DT75L%\41@+&+2E,LG9@LP@_HF<4^_E[]>25&]4$J1 M<3TZ+^.H* L9^M8^].X/,/DR8HHV[LP>'6<30)=O M&^-V28WKYP!B]T1:;!=K0KM-9.K5=+'&HUA^9(BNO@OEQW=,\B<*U>QCX9*2(+)<132/P@K'WWGB ]BFIE9$M6Y3NBDBL#=Z(U*# M[Q2MB4FZ)Y* $9E6R3"9K)V5K0HH_M__V-'FPTV>Q&2AT(0/6 MM:*EZDM=]66XN>)L;TZ=>/K_M_>EW6DSR[K?[Z_0RE[GWF1O@S4Q^=TW:V&, M8Q)/,7:F+ZQ&:HQBD(@DC,FO/U7=DA"3#9A!R'WV67D-:.BNKJYZ:NBJ4!B? M?+W(-!^L=O^!YIVN6O-O!_7QW')U">DYXT77L+5A>MN_9OY\_W>\3QTS;P_X2)#]BGV<=5 MY*_ Y3Q'X>/:T@4QVC X6.-((?$@AM2FQ/S3!V43!(.BM292SP5HY8/TS;1I MQPS\C "(X'68W--ESB&@Q#WE'B3/XJZ_%L7$"!C/DQ]R1KEV>'$^\BZA\\G MN Q,'=[)Y7R@L+O4=YV.0]CWJ1,Y1B3 F%Y2-M6T8'?;0U /4G4;C,'[ZQ$DA?< M93T. H \@!)A+!ZB0ALD!/Y(@6&9HS2C@G]MC[J ^R]#=O# M0Z*3R&GGXZ!);--OU#,5;4;F@=W6QOSY]/"S<*;9()#S@T+ET;MQ;SZ_(I1 MABS]Y]8)=EWX:HPA^5N:;/,QY'1:KA]+Y7I%NG5ZL'N+,BB__UHS M\C\LV"R6 2,)5U6*@1XO(U:0V;2'RB$?:@<4MP^K!?+U1_&DT&,=] M "8R:" ^D98C(0B?"7/>8S56H%&OY[@^RCQ<,A"[+0>4ARNU^BYZ"48#N7>= M@=\&2SY*Z0-1P915L!0Q!,\!5#1MH)9C,!.,\V0 ;;\4%$H1)@]&5[ M@#SA\O4/.64RME)[FOY>27 F!?W%;:N#;=,5$^8+^9XVNHZ+=U8JOR*!QU:^>+_.5AV/WJW!DUQ;UO*(W<._ZVZ,K/ M ZUU7->UBZKZS>V7?U6^^-^/RPVUH4Y>Z10>AMKWC'PF]PL9U?UR4:H=5^[A MRJEGN@\-\^[ZT^5M]]6;:NGLS&[):D>WAK)>(KF?]R#%IZZDGYNT\^NDW)/[];O3 M89[\_"O?X953,VK<>+52KUW//]2'C4^/NEVMZ.?E1G[ZF:[\Q]2^#W/G,C7< M;X//Q#I[JM^#%IFZ,E.U/^75^LFMK*IG+;U:O#8_^8-&2ZU;=ZC!_0;X]Z/3O9Q.OG*)\Y9=\6]8& M^?(#U2^N/Q]_,AZ^WI>QG^C40^UOCW\>?O5^G#[0QL6/RRNE_C/S4,:^*-.K M-&@8UWE--:IU]_['G]YCHW-Q]Q6], M)92F!W"K#C,/QYF[NV[[MF\/ZK=/#_?L2/K4I<;7;YY>+)[^O1O>N?YU7'RS\EU?M:WEQP;!7"'8P3 MF6O<"%;W0+G-@UTCE&X&69X3P.\ D1]J> =>,/"D]RRAU.E[H/K!6$,4#^, MG.;ZUE_^_AY+ZOEPQ$37ICVZ=:,-D+1#KUJSL-;Q,/9IVK]KGS[]6[1^34'-EIX]]!I3>['GHW78 HX,21)^SN"9 ML2..8S"V_2)^B!VCBRXE399'.'F^<,O';V/W+-C]. M5.L12B#I3/_)Q10Q!S]]&I1G^(D')S^L0WHFK33]L_MC+&P0%9&XQI#!T5JW3<*H MLKY*] P])VQVNP+4">OD/6?5U]S(,F%KOS[.#@3^3M=T 1F_EMZ/24"^SPIJ MELV8&B"S9O'[%F5M^@5K.A@TB=Z$=8K,A*F_T_$"HA/9X.]Y"34\CA!FIV[F M"&V2CGDMU09@QA')FRC_OQ;+M><:*A<09D?*V!)Q[99A4M@13"S M<;*- $L]_O:MULGG'$VY^][T+JZOVY_:%_W!NX]J?KJ!@.AWO&:_?\+(L)X^ M @FT1;;6=$1('I0\?=?%(F?L2E9+8T8#D\IO[R13K99.J];QGVO]^Z>S\N5Y M&2HVVS>6X]@"D0XA\/[ MX^$%^>VXE0Z@GK&71OO[-MK>-TBR\-E_W-/,IY,_)W)CM_G?1]XR[CORE?E)H_OK\H_3;*F,-Z7.SDE:[:#Z5&T4&6F84 M_DN%7$JW;R E8&25[;8)(-(M6=\R=R?J\*[>]\Y[7[7J:>4&:X0 $,FO&X@D M!LAS;/(I*$265D,E0?Z776=P[]8_L^O9OS$8M.88<2@F9N"+5H%\.1O6CA\> M:*W7^'%O/.J:];510GQ1+$UGDJ15TKPYE\CE87D_K?+@%<^E_=ZR6LD3I4Q3 MDP6\,Z688 VXLZ,;0B_NL5YOY]-HJM2XZ]UA% M$%2L>J#G-JADTZ11DZ4^4QG@7T"UQA@_S0<=$V1XOBTR)#)#8,'=GZXM\.8L MHK3DMT8=";'/0"_(J=1T#/%Z;[I*=5[@DC>$^-X 7B@S,Z.HH8H8@1BABA MT,0;TL3/V];F_<7CE?*WJS^00?'A?-#^>SDLW6,++]"Y6KZ03MM:A GWU!Y> M0,-.-%,;=5L3H<,=F,H::![3Z:/K(@GJ>*,UBW8^P=4?*^9#UA?PX M=7QD/YI:;KV]:MA6-=Y?]=IU^(:77.KU.S[KF>KT*.]?ZDEM\D@EV_&E)J4V M( 3J4=:TODD-T@?,@"U5@6>HX<]HL,KZI^/-H6S"7O>QCNE(%*7PCR>U0'S8 M!EX0C"(;-3&/]ZW=34O:^8NM1-=%=J.Z^/KS_KT-8JH%HR@7&T9)5AMZJU1H M%(UBKE$H%IMZ087]61COXESS:;=4:1/[GGI(-_/$\LB]2VD7JU .++_-/8?! M3>LAV11ZG-BR,9;"\?'M6LI*\WJ&6X \+2/:WL%T),MF 9NQ&4DX)2GPAA+\ M C@K^(C%3O&&TXB!X%:CXWA]E^YTK\V@RZ5CTVQ\Y76YI.AZBS0,VBHU]&*1 M-)JDU6K(6E-5N7+V$G==3K8I1AVKT%-F*L'M^>T4@*6O+SXF@?S M8 LXFLGZEVV)B52QXES4,V+$2]+\C\1Q$4\.M%UQ^(%%.-TQG MBA0"/ _18?!."26@*O]CCFAJQ&G:BVC*+E3^P<[<)H57PT-!+%2?#"8C8.?[ MTDV_ [15-))1&G]@[3ZC!4*^D*0<2XNL#? R\TZ8X[KHZPY!?TH*7+F2U8Z!CO9Q._\-O'#6<>ZC<]X*W M20^&"/A G2*#-A8 M.D-F+GD,';GT'NP]7)Z(7J/%R.Y&A%U$\XC@U8B5:PBW;>"N0)Y)V&(TICWY ME3"AA HVSDE>#XC/BH'"@DO40S/ \MHA&.@2+!=JV>RS"0N#BVB%,S?B,X\# MSV#F!Q."9TS6M,9D#7R:S? ';& QI)N5EA+0:Q08!^R$'6ZW^:)Y8=I([VN5 MTYNY$C8KW:( '8E%9@ T1S(3%LPE73IPW(?1LG$R_]=Z#C%,\BUC;?4?_/K> M9;OX-'KP>U56M ]@/'P$;O$P[ZM28@[(D-_EX7Z7W@83D!23 "N*'7!S8UXENK9;E=)B: A?U(&5EN,"AIT+:, M-JH0[+O&?WT>5\2Z',>Z.!L=N!_]..T)*U-#6FZBC?- MF_G_C+6@COQ*&T+A/[21NM EB&;1=]R?^ZO:K,=%0P06HCONN,P8C@*]B2 M+$\2MB'*5C2X(PN,?%R ,D)" OQE@MQW)&$UE<8D( MF!__P_0M:!, &H"! %@#5K)1S81BD@O-D:SD<@LE9NBP [1+F+1&M Z0AL$O MXCDV\,Q0ZE@/B((;!BEO-PT&BTY7VCH>K[4:!)=;K1H M7E:*5*%%/3_M&#EFO1!J(UNFH18452\FP"ERO+!3A,U!BDTBNW4WU@R!$YO5 MLP'E&L!R!#UET^EQ..M*M]3M!M$A%#*W+F$&4]EUD;.[7. TD^.F.QEMGMF[ M)@8NGBD2!H_A3*C _UAX[]9A)S""3Y\ZUXU;L)D_5X?^%_J]_F>84W[>CT?? MFHX#DM9ND8Y'P^ ;-^_?W1 MA?F88',;ON-ZTY-R0PO("_P;L(3]"&XF8.5NW:[M3TYT^#1HZN>%FXN'[S^? M29CX69.Y_=-SA@,OIY^J7XZ?KIL7G_7"R<_8-W\ MD5"8Q8XD]!;B"R1\0T:1_$!RD)'D"%V%3N1>A =E7KCI(.9@]-OHU\+1>,SM M%;?[Z7V?U\R3ZIDO!Q**X(VV]!G$I6=:!C>>F0%[[=)'M*% M&_2XK]7;OA9;.!BS;H2^:G+1GEE_)6']">MO$>LOD)1JB;1(7I$;I1)5&WI> M,1NEHEYJ%(FL$K-D&I288Y+RNGQS6ZO5&B4Y)^?ES0K,%S-2XAD3,"XN%V%T MB9%GUWW7ZQ,0NF",71.7W+NDUY;>:Q_X4 /4\XG:U 6["R2S[_9#F>TP3Q2_ M$-U1!Q*@)G2@AV I'A^* AW-(;[(CT@1Q<_&'X8FHV4;C@N6'@G\;RX>9*:V M@>Y@I\O Y[7K/ VE.OK3PA",1WW$(6"]-FG'&:!SF4Y=A^[FIQXS4'$B31Z1 MBB)(BBKSH9@@3N*NT7'3-Z[3444J\DD(+*NA__TJ0)/$-BLXF]VK?YC3ME9;,=]]@&6A!]!HI$.)^&EDPW('F:DL1 $_U#M!$%E%*18A%F" M#1$1?>P&Z=(!Z$N!:A@CFG5Q@$YYZ')L[Z!K"$8>WT)9Z26B3$60O#@58GN8 M8]Q9DPPI$G\5:3I]'JR8YJ@(E\\4"R__21)^<] M-0C%'T@6&$SV\& .3Q\P3O+Z1COVBMA-"[!88M8+@ZC'#JX6R\X)-SMZ+ GW M&X#I6'%,1L(J+)GAC8)V8U^'X;O0Z6FQ30$BD\$A'O&7*"RO,\2M.AZD0E*' MK;87B=:.7<,7[Z6P+0\83TP%!_E(K Z';'RU![0)H L$FR\-!H-LSVQE@2T/ MPGBK93]2#X@TZHLB(=CFRG0RYA8]RS1=#,T%K,GD$*9QHCN7N<* /JV^S24> MTEYJ#WO4!8Y]X-PVN9&"P^N"\GI5^.GVI2X:PYI[#-CV0#"9E.+UAZ!R;7 D0M:[%%@R>Z %5 M\,\A7AG>CT#LY%2J.YT^H_M!(&5M(WL@E7W$V@B507P'*Q25Z =,4LP5 :I( MY\#-;O^O=-QY-.&N.@ \@BK#)0=2!7814-BVB%3* 48&1=!"H=(E#UCU8H@I M.1[F2[*X,$@"DV=3!EIA8D+P?H","+S@S@&!>]PXE^.W%@H[ [1I^#,#;X1S MB1Z74-)I-72$-LZ2;#;U$20,6I=4PB\6\ MHA3 P%6-*<^.HD3S0UZGML>];UH![LDG #$J"R/&T4+%9Y(X1'B[D,I>0,F% M^M\+@!QN3Q\MB4!]S*9'"'1FJ]XQALI1A;0H;39:>M-HZ(I<;! JJXV6++<, MH]C427/:5:BHH/W[(&F&5P,PW;![A].J<.OL&(PYV"=6 MA*79BMPNE(T7P8 M9 [LS7!** /8[TR.7\0R\^ CDY.P,'7?,1[:,$;8\!<$!*J;/#?CUMCS=71] M@8VE,BK&^7K4\J8T?IB]R:#**!.J3;D[/MQ40 U_.+:CI.L.L>,VS1);3%.+ MFBPK9J-%*,ALC9!&*9^C#;64TPQ5*98T=<86TP(JC;7( ?H$?'8+:C$!6TQ; M/*\^6/2Q^8SM')R2Q\_)>0?!@0N.I8'P80Y4 LW_K>VFY4@8M]@C8V/:FR*% MQO1,8B_!YC1GEA0\)]14]&9#S\FM1E.5:8,433U?**E%0F= $_TZM$!&1VE. MP;:!4=>I^PB RTL F^L+LWDTG=C1( DGQ-8AG%+B>/@Y;\UB4WK>HPJ/F7!? M29'G2CV2;@@>RC6B=(QRK^> 6 AD[='5J(7!^F64W M'5V;XK)TAMM*L@BWB7#;$N$VA>1;I@:&!LD5M88.Z*=!\FJ^(1.EF,L9A9R< M:TV'V[XU%+THZX5$1MN^Q74@RZ-0/IK&L7\?HZS@S"0#_N4UIA0>]8%_&DR?BD=?BG*CIT;)BG4\(45( _1 ^&!QVC&,R M><1W 2";QKR^&[XU>)H2[*2%BJ/E9I=\RZHY_I38XL8>CZ9S"P@9(OGPX*LUMQI">2>I[/<*'@G<2,-BM\N1X M9/T@!B>K2AKXORCX?V?\7[^]JGPYNSH_J=[4JU_O:FOG_UAJE1=DZTI!KL[* M["^EA?-+@O-W)_G+];/3\ZOO]48NKRGY=0"8".< M?GEU6T5Y'F/XT]HE(/5:^7S$^0UU-4Z_=/RP/J;O2"_&;M+ M.J<(O&[JIW# MPD/%Z6#=C,+AP5=13&;!7"81C]U>/%9-6CQVL820O8VFECOQ$J=>-$4OG"+O M4, J/#KLC"^6%;98)F0[5L9X+#>=GPN+G??CER M*#]<'SR1%SSVXL>>PB&Q0FGQ_@@S4Y9Y$B>/!@?)\D9^G@+XQSE5)!HF+12BG4BDBA%BG4BZ10ITY=[EXK-I.J%>=K MNJ2>7 D2X$VU65!;Q5Q#;])\0R?Y7*/8HGI#S96:LM*BN68N;!ZT@S1^S'6_ M/*G^D&ZOI.J/L]IQ[;:>F"-8JRB[=>5=OC*IDFT\]HA2-C>WCZZ4RX;ZC_VU MA<2\Z6R\4))M5K_,W%51<[:ED,PBZ9 C^FN@XC6Q +M;@%(V7Q3TWQW] 7#. M;4HNZ+\5^FM" ^Q4 )7$!MCM!M#% FQJ 98,^"X+1S?E_UFBD<5:R@@L'B!= M&C"FC$1@).&7K*W[(N0">+'4[EX/N4*G6AB678B"@3T8WI/%YN4LDB.%3L1G M:/Q\/Y7Q,A\W89F/\=,IBV[1Y?15ROAO 0HMK5'21**]$/C)VIZ!$Y%MQN>N M^V_3/?SXXE67?4PJ6V5G[TBU++T8S"^WZ=603JAGN%;0+6<5,;F<7R&-C(U) M!*O0;EF?0"IIQ[N)GX#.7I&$RYGU::1AN)57%XF[ 3N;IV)&SRJYD)(9-:OG M7J8F-D(_Q3[MJY-S1\@H65QY'99#/P,0CK7[ECTCOGKT9O= 4\O*R@)<\XH MR1KGN!AT)N$+,QXU,G"?2PS_B'+9,Q;?_[]_^H[_SXMCX9?]\RY(<6C[?L\[ M.CS$NOSPANR]\WA8=HVV]4B]0VK>$_?0)#XY5!15+BGZ(?)FL:3DE:*LY.#_ M<]IA*Z^55)T4Z),&F]U_\M<0*G\YP:)MN:94[O):_[R<3]#I&@NC\OJ1E-?V M">W3( ]R7L7[Y1++5P_R['Z?U#/*87FI.>X&-,7FR!*(EIABX;!TJ,I+BH,= MX9K7B3QU269-O(-E'#[DLR4.'S1-R^B:4EINOOON+EFO=V3/E?MR2R^4^PK* M7=&U0D$O*250\[HJ']*GAJ*K.;F8;?O=;2CVF2K]>-@A T\H;QQ"$5/?TZRZ MJ M* "8MZ6ZX\V.ROX)T7-#*#=JC>OP5T2!5T0&>#G/I0 PQ9*0CP(,"# _CX$'X M&[86EE 1LAYC?D;T-T@ZZK6,&E+T\@K8Z5;\Y1XV%[*>I.465&A_H?W? M@/9?SI\FM/\KH@V:+!?@NT._V\1@@R;G%>TI(=J_BM>U9Q\F4&5%"0 !7 MK M@*X!@0C2B @*B B6$PD"$21HH@(1"$3P6D2@"T2PK1,&+$^QJ!W2)T7.*%L[ M7S 60N"*_:HW$3]X?^G8&00 ?=]QAQ\D$!?4G1]-F(L11+ @10A!.U1R>"XA M]8D&&"PH"G @P($ !^/@("? P6[ 06F'X.#.MOP8-!!00$"!MP4%EDN.$%! M0($W 7R @HL!07"0P9:<,A D4TYORVM?NP0U\0\OY,PBT\J&P;M4'F5]W8:]?F&B;%O6G^3Y$@)/N"7C[H@!Y]YFSO\8IIL,R'%ZQAKWP#%C[<$ M$9;+MQ40X545#V2]P"L>*(5-6"-X0UWH1#0'X350O$00+A$%C5(;"MIJ6B0_6K62*8U:P. MU:KH4"TZ5*^Y0_52W6B7:/ZR9SAI_7;W9 <6.9=H$^,5\U^V254IOO5? MFCMWY7= T/0X=I+0RB*AP:($B/5D;=P$]?3:A49)Y&*\OJ67O@_MT39*RI5; M>@$&5]\\\5[=TTMY\PRXCIY>NX!!V^[I-<).B_7T*++G>AEY[9A%C M'&VY5/3D&[F)CJ.-5P[?6B'0NM/R!\2ETKD%/.+1X QNAUFF=>H^PM?>YFJ* M7Q"@3Q">RP5%Q=FM>"*8O1 DF(*%15WJ.U.%R-42O^<_JX?T=H']7AG26[(0 M^6X@VBMB>BM7(M\%C'IM3&_9"'0:7#TBI+?%'-_] Q[+Y;T+W/&J4N1*0=>T MJ!0Y7*#)/$M8V6K?,:;K_Z6P-)Z)SVN%*-(SZ(3]%J4.]6TJ<4BB'KSRF0*> MI R>\)RCI0\A[2$^6;+(LP H J"D'Z HRUDF J&\KGR9FBOF1PAE=(Y)V9J7 M) 9)U"1 % \8#)Y\Z3Q2=)=+BK(>H!+#*?])/U!9,C5Z[X!*T)]EZ<)J>PA3 ME&4;M B8(F!*ZF'*T@U:!$Q95P!'WVG7]@N"O=JD$_I(.TZ/08XMM(45T9@T MHHBW%(U9MC&L0!$"1:0>12S=J46@B-6='8I6TN3(V:')^3 X_A822X57 M(MU(XBUY)41L0T ) 24FH,32_6($E%@7E)"W=CB%&GW7\BUX6-035B &@1@$ M8GBVH9XX5"( @P ,<;*HRK*)S (P3!:.5Q53WMJ9D'J_Z5FF15S4_4Y+NJ'W ME@4V4G1=EYW=1=E[-YK6E*\]K M>V:%;+[R?&Y78"UQE>?E;'X'37^25=1RS97G2[NRAU.!]J9JKB:=FNO:O$M7 MGM^%6$_6QDU0Y?E=:)1$+L;K*\_GWWP1_Y4KSX,V?_,EJE]?>5Y[\PRXCLKS MNX!!Z:T\GTIB+L.2:ZT\OV\6L;9*KD["C=QMQ^6T;>;J5'!=6K R+/,6/4Q^ MFTH]U[(-JTFCS MQA]6IP:.F=^BR6HX]CIQF\2F7N;JJ4.'[%7P"^9!OZ)U]%NQ[1;L,KU?;:8W M3(U=H+"D,L?;=2J].EZ8=+I-<-'*J4;["&F6KJ(B(,T4I-E2#10!:02D$9!& M0!H!:02D$9!F#J11A9?FU9!&W9679@PR*$7I+EO/5K+CX$'1' M&1N?* H<5?]'P!H!:P2L$;!&P!H!:Y:#-<)3\WI8LQM/C8 U M8(6"-@C8 U M M8(6!.;:*D@O#6OA36EPE;/NG=[U/8XJKFAA@,+-92NG8YE# 4$$!! 0 ! M 00$$!!@F0J?*0, MV"7MYQ.QQE@8L4HXX*UP,,"L9[4#] HE M[''30KWMHS?!LJ6:W;%L*OTXOCD_DMY;0?H&5J_!W'!V\/*8=&"T5*JW*85Q M$I9B,OOA+(.$]_9];\U\6'TT87:ZN]MS:1O Z:GX''/+I7>GSN>]V%\6C]A M6IY4?79>^-YP H;P"(C8-DL'I*B[CO&0]OIF-3U N)+U3]]D#=K&,OC D,A M7ELZ!1;Q7OT^_.M]^,I+QP^S='Q'&AO :<2(HZ$<2#ZYO\$H1 ML#I[K&4;G3YN+X$NDMI1:)]*P6DBU) HA30 MBZ6 ND"=8)T5+5OD@UYW<2!YZ?'6!==<* MTA/.;LD!75-'XO>L$N3V"@/M0JHG:Y*] MOC"0$*SK* R42D[<56&@-X_(UUH8:-\,8D5>NN?GSBSZ9K,N MDO$(TF[)D;0(TIZ)BPU'D)*^59+CS-CKGA:O\V2L+=ZDC4_C=]_SK=;PF7G MR*09H0%&D]%*APA%77RM8T&!E1=%SK!H(B1MK8XQ&RM#K.(.21\'-FX)+>$0_G#8 & M+X;1HM])T\.NW<%23$TR3NF%Q?,<(9/XN2T#X!=8P@V'B+F8^?=RFO.EI=E M:+YFFWA $!X MP+:9MWC<=(1H6838THS48IK]&&3O5"HT@,^$ZR6*?RLE#3]@%W$NS.[^*XV 631[PPE@_0]/.R 4,/E M9W%@'$TPIF$Z\ / PO&T:1MTFEA!A(^"(0#=?D%[,DN[=MP%WL@F.AMQP7: M!)AQ7:9YW%&&;H!Q3QG[9IO6>TZ9>]@C\2;N0L!=GG.X+A6S*\YM0YB&Z>6S MN7U=O&6,RT6VX 8@(I>[_-_9^:WJO/S6T=AU)5O8P=BO3TZE^M7YW6WMZK)^ M$(0\+RO+'7-;@+VV1O9]YIYJ;7+2[J1UZAWQII,].VY:^9*4O5I.X%K'7OUMVSG1"$>QX MN..)Z+O1!9-\+O1!8MACS[AYY[#FVJ4>B^ZP.%RE;=&65(U:WESQ'C:"OY/( M,(*_%QCO^^OYG9R6RYE-'%]O-4KZ? 1K74'2!$QE]<&GV .]KTE6P@.=>@_T MOLYN66BR@UPA 4V2.=X%N#ZQ"/LY-MZY3_EDT;\-D-^4O6N4UV MSFU" PA7XL?-\+;@X[?$QSM',B.'X3?+H%+D4SP(2N32F'-Q5#1W1>>BX'O! M]PGA^YAS\:4V\$O[&I/%Y@FKIKJ=\@URE#N+Q76.I%/:=/O$'4IJ@=4,U\7I M@-5/!^3%Z0!Q.F"1TP'[D#N_8&K\*/<=\^+9T;D@_;U).\X@3'L?M;KH4==C MA_3L,#,^>)D[2K'G;078MP;I$8,/ ;]U^+6GZ'KEXK\/V2W>D7?$?>H?2YZNS2W98H79O.I>TCXNP$ZW^PB(L>.) ;.W$OJ\$Y>.= M*@0NWQ47C2?O[2@L]7]>KUF723E8YOKB[K5R)ZM_UU.*?$E&JV27N4)8OS M684Q/:&I=RV+DZJI7PS6>;379EO;=6S/$=&Z_5?C8LON]Y85X#H)@Q;@>L] MVQZ":\#6E;-:YO3JZA+^$%EQ.UB"$$'OT_9?8%J;41M)XZ1(VOW \^>1R7]!C;3I=VUT&WM"STMD72%A=Z MWT69L$B2;Y&@N_^R?%GY*55OCD5"X.[L$>$>W+4#**GNP1<8Z)+8QE"JNDV1 MXK?_3D.Q5_=[KPI7?A(&+8#SGN&R/07.%[7*6;EZ+AUGI4]W]=ORJ4B5$1!: MJ.7DJ>47&.C",MJ$=J1/?<\G+9$4DP:=+;;L?F]9@:23,&B!I/<,GNTAD@8@ M_;,J?2Y?5J7S6MK7)\'P>>\T\DY28A*G-)((J']2Z3.QJ71NI9[\23SSN7<[ M6>S;/1GT/A):H&J!JM\DJOY2N[BZ#)W4];2OD4#6 EFG0$._0/HO5M>QILCD+5 UBG0 MSB^0OM[N.](O[*":>O+O#:I>;P/P%[KQRI.4G7.,2XFNBW05=H/>?A/Q=$QE M_CC%,-Y 1_9";-2O[L@>3##>(3WX:JQ!>O ="$1.A.E&[H^.90:TF>CC_BX: M;-,QA_"?MM_M?/Q?4$L#!!0 ( #N"6UBD<\E8&K4 .K\ 8 <&1F M^UG9>WU?;*?Y_K']09 ]5A-4PW P04 G)L/<+T,/ 3P<''_ M^MXT_)LO 1$! 3X^ 0D(1$A$1D)&1DI"2DI.04-%3D%-04I*Q4!%34M'3T]/ M1LG(Q$#'1$-'3_>7$AR\&QE\ F(" F(Z#@\ "XU M#AXUSG4_P'DS3P*<_]2 _ZOAX-[,D1!$1$Q">L/00 7@XN#AX>+C_37KF]& MFW$ GYJ AONN"B&MWDL0CQO=O9"DKT2\#VIZZ)]-(_@D7KT+)29A8&1B9N&_ M)2!X6TA22EKFOJSJ:NH:FH^?ZQL8&AF;F%J_MGEC:V?OX.[AZ>4-\?$- M>Q\>$1D5'9.<\C$U+?U31F9>?D%A47%):5EM77U#8U-S2VMO7__ X-#WX9&9 MV;GYA<4?2U 8?'-K^^?.[MX^\M?I[[/S"]2?R[_\P@'PNE&RW,OA(CN0=+7FAYB7HEG"/I7[Z9) M&/@D8?S(OUS[3Y[]]SD6^C_DV?_MV#_Y!07(\'!N+AX>-0 &KI[GQ0@"_V8J M*RJWX3\PJ=QNLZ@VQB][S8X]=E<_KTQ?5LU9%L4N!&VOCUM)% 4>N\\$B^H9 M&#VOZDM PK2:-+(M'D](I7JK3(A@1 M(CJI++1+%>-Q%SJ)$P[K"% ON2A:=C!,3QZE[YBC':7NCV8+R5#*Y1#$':=_ MMFA0V^'S;.W7&@Q^#1C7/*YX?A VH.C)JJZ1Y?+R=4:C6J]*I N$HSBL^W;[?<'J']>?;,*4,*?;!:FM[5_K^BT9$CR"A[.M4 W/JI-"G ME'0X+C&AT/.U&')$_$OMYIQG,5_$75-\/+TC6O^HKO15P-TO M/X,E!4N>_2(6>]UDLND8U2U.]=9"95=C7ZC=]/BSXN)2_IPS7_.P%;_MLS_L M:A*90(>J8<#C&>'^>K\2FKU!0\(/H)?[C+**E-LZ;>U-W]Z/NRMX(2G(DIL- M.*-SB4O*IO<-4T3(V>?$ZI)YA+EX'L@=[61GE=8Z+-RY!BHZFG36?*PDRY2" MCL\.CI09=LMJ]QMUQT6>69H-B6C^U(@7BE#%(IDWWLD6#P ^8 M (W(-IT_21M>W_0/:%= MER!36-%?I;#A>Q-+ZM=FT;H1VJJKM4\3[CH="_57TJH)QUCH@AIKJ/:]K[R+ M^%,$4*&/T+4L5V?Z_J;SFN51;)51QH.NJ1W"V Y'G=D1TG*TXZO-=]%%^BN* M:CJ2.%XQ95)FO*YD\%\K/1)."3I27FVV3,^_T.8\_K32+X9/J$][$V8K,O03 MQ$/F?E/X'_6-C-X:=\^:C[.W"\?//.[1?[WQ.L>WFJ&I6,>9O]_HO-9LX&); M\V->P-.W@KA'])F=?#,<,DF>9K?B[[:$][YTGQ50T$^[//[L)4'XU?'."NW= MB/(O147[Z5NXO/VF]<;\C,_)I>$YLQ.XQSB7J^*8:W\&G4MFB7@MFB!', MQ?U?37EMIX&C,DE-$S^693Q6$R10<_6ZH._KM5?I?44HLPW2:X".G%M)=-3[ M;DOVU;R4]_R%!K^Z+ UM#ZO.:#W%W9A3^4\8A9PZIA2*6V=JJK8X*T_-HLK*1G-LS,4:X?TJ&'RG MW8HQJEX\!LQ<4;^=$3E@1;L?2-9Y)^"[F.CXESU>CO66YDX@[G?5^L9):#5& MI\R?8ZH^B 1E.Y BT_NYF69]P#O1U95(YC!4=]A95NS>?9)VVE.2*X):)#BD MJEVJ$)6\_3M ;.@YGEZ$L_IP2%Q"KD3R^J]9?&&VG49'K<=S&#:.XX![)P_) M"U2W5C3M^61KXY*7V4JOH,D%&QMO P3Q-H*@E-VMG^V5B%%W6A-:X.1FL)WW M9N9R"?%%*VMW%W &(F TLO$/56^1?>I-Y5M8C%42T$;ZP5U[NZ(Z.5%^^?Z/ M_=8C%C/+4:[/VZBP""W*+#K5W$^2WV%3MTF3*<T-G MKG2\[NJ#Z'>TO!PN;]$^[$]E2R;R-Q*)58N?N+2#\P81LK4?AO%QOH+;W:DW M!0.1RT.^ "K_W$K.#5E]>,6?T)[9T=Y)OO@FS2XI2:3 +RKKR,#JIT%P39Q+ M3R]>,!%>!H(OFQOE5H1YC#"*S)U2L"U?@0CHS[4K(EE[G]OJMC29]/QRM;9L M8MU^59VL:4ZV=81V'\H6G>ZDW\C.D,4 E#3\TNY%.WA:7 M3"H+K;D+EM;$;49S)G2R336PR\T^0KF5JL/'78U:IXNG#[]^"]T6<][PRU#8 M>S)*2RG"@"__.N>Y,H>\'RA,\DAGXRY*MU&S8E5=YGQXQNVG=N$U8#MBZ[C: MGD;+],WF3U-*@KN5'(:F%6D5)K6^M-AS6;OB8$FSV/XZ^_:4U#T<,W7JU3Z_ MUSM5#X?)2D/B:V5DZ2\^H69A063&*IY%_N".V/[6HLY.UK:IBHW:T#-Q%F87 M(&.LG/:VQB@AS1WY08D4BZN$_&(SR-V&U:!>]=ZT2Z%QKT;OFF5M_C*>-/OG MAR<\<7%7LSD.P"^=V"E[F?4&]9#*=H^T6A0?R@MY^&K^P6?&>?SA+!CV 9RS MK>VJPFBLTMZSPC$;J)FJ=P;WKU%R,DA!_ 6*(*$PV&SQ-PM%[*.4X4^Q-A^T MMU/C%TEP,C/<8QB^VJK$_35MU*43-A?0Q*Y/[Q MJ9KB9'K@$,-")_5<^_,-3>KG[FM)F<%GIVS"[!6Q M\NY'H*;"8B,$#5\/\\?;T-8:D,,VO.[D;*CU6RJ,7W"5QND1C$WAX@L)!_'! MRR%6@VN4,Q52+QT9LF !#(-(YX6CM37HS%ZV5-+KZ-1O#PF9)HA[-MFF0&-8 M"A0OU=4W3T[\R5+)=0J,:"+[7C;[+T32OLP3:YR$M];1:2;T;GU:1_I!K\9Y M']A;%S\"1W_B[HLXR3(7'R9_6M[G:]C"^V7J!3$)G@SC.SNEWHA6$\P^H M&]9*\W_L-T4EY6N[T;E/%&3%W'MX1^ ^I[FA!]'5X\I^$Y78*0X65)\G89/+.DW#N);&G$W[ MK(MU+<,]'\>"J&-F?#'&PQ96D^C32066GPHD\:XO840-8/+=-;9I*.[:2+)4W]Z'>IH[ M;W?M/?E"A5? B[XK#//UA.IEBPQ@2@#>_A6J Z.IFM)W4 )X)2C1Q1! M?]W5(;;%FCTM&"6]0WS%7OZC!2EAM5]FNO54DY(B.*Q/8I.+\>-L M6PI0B3?)KB\;M-!0S5A8CG+7:O0[Z/,A&64I<##.>L\^E P"P#O[/!^ZD0C M4:PJJ&@TV*&3/$6K'N&2LZG]0'BY0TE7I-+%IB9+.FVB?Y5[.22D>;.T.A,K M#WD]*&>Q)?HQ-7]F^S;/'5APLL)K7Q8TNB>'3HD5H_)9 M%Q$>YZM;U^#H&=J[[;Q .LVG]38>WT0^F(SXCQH1V/3P]QDB=6!CZE M5G0A MV7^Z:/D/_^'PIG>:;.()]1>*SM\X?\ O/2LQ+Y#> U91M$L6C>6;U>&ME?,= M*54VQB]:&QOBO1)VOGMMHN=_NPX&&(X.9'/5MTV[BIZ9.8,WULK/6YRV30S) MX?S*VYI0XW* $GS[=W6QR1>'@-4.VVRED.R2SQ:E15KD@F M/\0+^U)$GT%DU4DTP13W!RN,44($A?OSEZO""NMJD'V/0DG-B/0K7%I.Q92Y MG"PV:-.VNWZ7TG/X)TYB3)GT&O@?[-WD:6P"Q;:[E1M_.EC00F M956^8XJ-3[SQM[T3 EWXXM@941_^.KAP[?*E1 MM3S<$J^%IV#YQFN#L=H1:16KP+XASK!FEZG>)[U8_7N4R#-+M5Y1:5C["Z$Z MM6;#*H?:V#.J&M#+NB*-L:_*I M+KXM&R/4P NF?#QM(;U_L9G5=3C"[590G+@^F"Y$]^D:J.&-/8IEME.D[H8!X=S>16G,4YZ+*X&M^Q"+.O'9<"4:)-ELQ;C7X*0_3 M@ ^O06PTDOY&2%KM*04?MY=YJ'OH@;7;C=_,8O]X1%4FFVEY@7F&16;4DPY*U>P7 MYZOI[K-JE:MV?_ZO^^N4[5(E5G;0@",4\FF\@UB5Z#/-1Z*^G_-7U+S8QU,G M*'0J?8NB?1";)@A?C$K3].]/]6?1)P5=Z4_C!=X7::7_\08]*Z!>Y,F 54>? M8Q7F/-K(C7I8)E+LRQXMMEHLU+CB?UB)ZNUT8TN8ZF0V>?25>(>MM!OT 16I MC'"N/M(KV5-2FOT=:T4(1=U;QU*WL3]EVIRE^AR-A5JKX=Z]PV'I=HH_>%]J MDV4G\A42=.@)"WAH.9.BJX\*(6^,]"Y?)A;KJEDVY5F2T9 YM&L,IC18MGKG M8-H4TFY1H.D9Y ,[S@:Q3#9 7^':& MEP[RH%_KBH[="V&A49@WSTE]G//I+4DV))\<./N?QD)1LGZK/L,E!9UZX^I$P(F4H MW7O!UXEEL;=\V$9BK&:(O:>K@::?E'JDM?GLC^/^$;A?B;X%.S]?X:G(854G M)D5ZX!>5^+&,N'^"<@08_I.()Q5?JHJ8T*;4F9/"1^3;33PQ]#;B^;&0W&.HBJJ4^H\1VL)#IE?X"2SC+.5EG1Z,\6@;Z]=7$\/FMR30I M(5ZI9;GPGF[K(Z#H^WM.J(ZF>5?%4Z M)< Y#QD5\T6E]"J)S35(QGMH.^J&WK4/+.'.-IY*?O3LC(NFX,CE!BQRR&QT M 2C?H @L;^,<+:PKBL&"[[$H1@;VXXA9>G#(HZ=*8$U%."R\!U0%05A1HFP? M3X&M)Y<.S.IF*NKG6+"QGF56/2Y)-H\F\%/NXW$Q#/Y4>--9BRB.4^*TA^[$ M'SK7CXOWQL.6=^NS'AQ#G(]XFNU%7[7@&%.W>#W)C1CB;AX2,!L,O(]0#^UD M777P/MV[!W&1)W9Y49>@H5#^?3-N>+N[X/V[!P@08; 2!PJ;W\]Q&S5;NO?! MQ#'3G]G1969,:%(\4%Q<9SG?./$N6.0QMR>XE M>WP!BU*VE#RDP4R;>H%HNT_0TXT(RWVU04%T,&#O$TB#%#FXM[PHGJOZ^P6YKP4I,*$I8@#MCY$(M8_$)W/K60W+=CR^!@@@II3XD.=/IIRK!%J;9F%4ZE*CA$D? M/424F:7R,FV^F+YO&K;'M7H<*BMF*$4CEQ!CQLSE:U &".;%_(<@X1'L/8P< MDG* /:B7Q2*MQ@^60[FW>,^1,;/QD[/EUNHC7&AOSV A_-U_?O%!'Q M&97I*7,*J*"E4*VB#Q]--W"*]U^"(JNDD"]+]JM==[0)CO+^L&[&4].GO4E5 MTM?%+07>E($/>^"?%<$ZL4]G*T3SFQ )B2^];=F^1P=X._J>CI)NAC(S!>_$ M-5(R5U>">>\WQNNF%4T?U0CGJN M@5UZYTF3F;.X06-[C&N3)I\;M8*3-8&I $4+?\ NGDQO3MU:&SCQ=P[5_B5% MCG6>%MQ9W32(4B%I+-/IV8\!EQA@1$(A26&,-OB-XJF5$L8"(5:*&-V@00GT M&YH^;8(?7 .1TIULC;/%73I*4*2-8-&J64:L1"XNE=F[JD-QW@-2':A]0_G] M"H]U8BMM>%] Z=X%R_W6V"OFBL].,S[%VVYC-FZ+$#9W\\+BP1,F$^SW')). MKJO0R0$.L04CE81?9OT)5$?>DG='-@0-U)1>XMGA:(+PR71!!?YO4,\]D1*# M8/+B54^&I'P';R/3]PLL7Q88B1)M)#6W1_$*PN[)X=)'J,A^_UYE.Q@$$FNG MA0=%F#8%MTM)U]C#KJQUYSR%?3RU%[W)W:TE.:QU/+GM6?UCDR>>@AIT49YH M=8W46J-JLCR@+\,,X^8GL,/];QZ\H4E<=T3LG[UH+O'[F>!RQ@ MN:WL+YNB/81!%EI#'R"1SZ==WF@FKPVRRYEI3"<*\^Z,OF)4J.FY7^VK1!?9 MUTG2,JT@4&SO^ZJP/=K65A)TZ'"4$OF(ZY#O-/&Y)2-\G1.UT]M%W4"XV'#D MV'MILD##SO]9H[$%<320<]QM%CUSJR7":&7372.*DUV=L#$%N6[:>E5\7$]: M33M@"^-O:XY8%><))9<[)JJ$/6B<;7]EXDKSZUE5.7<<-R"VH0WHQ6Z HL\< M+7P7^[(Y.(DVYB591\D?3\P:G%:(NVR%6T=H.,/?)1$(N7/IOZL "=P/Z.J> M9#C@$)E54.&,<&KGMBRB?C=M^F3BM):OIN5@8/9%I]C4?)K;NBB\C? M##G85;XZ?)/SZ0Y8MBQE.F9T(J\!&%LDFET25;T5^;FP]AG)@]QCM(I\!)% MS&].J #4JC3#;>F.<7 M2DB'-VXQ0*9'G-$,A=T<.($Y.AMIISQO;>9@\&LFI('W$AD^J?EU\6A:SAKL MI29\(E:-G.V7Z12I6ZBWHHU=)S5>@UB.09=^](LV?&JP9Y!N&;I0R3Y-1 EB?*(; CGG;T&;DK#30]/%5Y7 M7.TUZV^C8JO-6WBQ04M6 XX;70P_=.R+'5@Z)L,\.CB?M$C@;5L\E!I++I/P M_U[&%T6X*:]>Z*G$CK* G^!AWK0@M8N2)$W)7$O6UGKR"UP!T45.[,W+Y&*)QTX'^?"7 MON0&/ICD\=WE(K@_Z+.MX(S6D:9^I0@[=$X/SY96"JCU(^C/SI",;$Q,&000WR90VZJKW5#^OIO>-/:+B% M2RE;4G4-.)2W@6FM[-2[Y=ZGIYD.-$7^O!V$HQ*D^%%&DTEQCK@Q?9=D!R2) M,^O/.7V60V9_GG8!IA!1D.*33O/U6)0V^J:0\L?NH68X6W_Q\793ULXVVT)3 M8GUY=1P8K]TQKZ^X,\>O8B\S.X6@ \6F&9T;/^E<\:!9Z3W+:1 =%LK"&:[$ MM(0:.5#[96U=RC\?OE;NZ"SYS'B<3X:ZGSVD.0"I-!_'%L5R_;-6'.CW_\03*_:*QU=&T #F:W$\R!0*?-#@N4+%H>TM73Q5QQ MEN5R8M!6,^LJY==\HGV%+59S_CNRQT^;>GYN[=9F^GGP$=!1680 M'5TD^63XV7TGM3@%E<)7QJ,.AFH>[^5.T8UC25F5$VQ^B_G^,J@D\7X(1LO: MK= WN+ \(U!?J,44>15Z'Z^JVHS[*4 M-$2D_$**UB .5U_8TPT16JP5,;)$\(>L>//FB^(%@6.!=Y&#L;;%J/Q^:$[H MBQE_ 4?8Z'T/PF_-C)0\Q.*OW=U<[^K]%"$JDF -W/B"Z6,'A6)4X.+D$#1\ M=3(F\!8DT02Q&&+3^+J^I69F3IMT;]I\^">34_Z[A_+./T:G\++?==)<-;2+ MPX_ SZ4--;W+S2ICE_/9A&;Z!UZ]W>V9;M$+^RZ)DP)WC>"0 M00:&Y%?'^.,5.UH*1#Z*6)CMSY2NO,HIV?/^7F@!A;TVNBMQE/K(/-C$Q'A3 M[A(4@;WM?Q^9'NTIZ ]FC)<2-7LP4\EH[(AR?N%W .'3Y,M@#BN33& ZQ-_X M0H;4QWBC52%]W5BYAN8.1"K&5#$G0DK1RG *.^UD>==1X<4*WZJYCTU,":]\ M"S/]W##ZJ>DUT.LD"?&7"A!+:"W**ABN9-[4-ZE^:?*BWPJ2F*6?W7^12T&K M?974,/Z\;QIEJX_,KOYJ=VD4+HH1=KF4]*(1RV>.E;FGT20]RQ2F&>#N%[''R M]WY,Q?U\..A(3^*F#!K_&5YD:3>32 $)O4%Y2EPI(YG"+;]WMRBP>B"71=T1 M/GRYA*SR@ND@>S]93VVAF1/UCA2-["O)VPJ/*K*-SA.7,+/,4?X]3QWDX]60!7WOU-U%P^7 M7"QA?J0YTJM.H7$B9G#D^/9X\V9*SY-BAT-_3?AZM#,,C'<@7@J)(6=\5ML\ MYQE[ K)O-$I/2_ZN=Y1K;!NAO;";L/%1[>.G1;ZMGYT=:#N4*ZPZ#",C$"5E M(=Z?GBXGL;^8?KZH9S\]CN]B[17!&F'D$VUX#:CK-=^KO=0%Y4! &U8Q_C:( MZM[,A2S8 3L)=+D/RP;^8>_)F0KG=G0C7PE]D$_"IRJDT#./?=DD-0N)/ ]$ M&A872N>#(H\]VI;C7:X!O8;9W\X/>G*>1$!H>$G[O.D:4]2YM8\!LLKZK\/6 MEC4^R(5C[&;_'91ZK[<<-B>?5_DRSUR=3-C]W*J>A^X5ZYN%.$9VT@2YS1A$ MXI&WNWB?**A?[B3\9Z9=/;F\.5)T,$N(R -5I=P?%:=U'^\>'7ZJY=842"RG M+C'AYX*'MM7S;S-5XH?MSXL<9JY"DN]C2GZ;.+VQ2XV",I@8A%Y0(Z&-06^J MERX&S MNE,OHM(WL\O]8#I,D$3UV2K)2ID>TZ]:+<7)S(S/8T#+G@QC#"K;-38O]$\, M]MM2VW2B H6Z=&A1 GTL4LC98T]T],_,<[[X-6$M2/LP"3']QSJ)!U]*N]_Y MABAS&)7YXRZ>N<;XKE5[%R]9V#5E*]0NSM]*9?4L,-67'AN@=!-QDKXD6Z3W M1LN@-G40?+[N$'<=I$C*KB7W5/[L3GLT[ZSI,=;^J(JJ:T3]XW0IZ:G8/%[< MHH5-&>1 "^DZ^+T(E05G?SS;D^DOP^+9,)^03+UF!OJ2\<1+8[RAFY< PB1; M,1D61-^N"I]DA#!J?4.>1+<;N97N'@7 617=51IKM)6D(R^\J>26E,TD_&/' M8M0"))2936T/AS?].&-,+4N]W4HG"Z^*'W8-Q)]GD7=\K:V+N57(^:Y]V+8Y_4/'+[.DT<6," MXYBJIG0"CK]7U7$PB6#>OP\)R_=S\,RT"Q28.[2N%=OF[WEU2RXVG590]1-W MBQPJLWV05=R/+^ZG)%U':;8_=X0KWMKL$Z9] ATSJFGX=+-%9X0Y=0\)W,\E MOQ1.1X(&Q DA.@8U,V==#':^2H6!H5I:\E=J3&^:GWE%Q#.'O-!A!DZ-)$_8 M(:Y&2/8;=%3AKU*X=K! VGFBU=0>?^R\F/ ZBGU$EEUY7Q#OW;_QKTRR$^I= MAD A!+8PWX%HQMB!X9?I1,RRIOJSRK ?&XNI]E:U3>$>!XOM.8:+9UK#C$_4 M,R^/I?F=^-.T='$'R[[Z+SRC(PLF_A-[]]Q!$&_$)<=E$T[WV3TH#'OT?EM# 3GNJTJ'\_-\'<"($ERE+E>NCD+W%R^_ M)_@8)&L>PR"V%&T^#Y*E&6O.RM?) VE,_,5CO]F24@FWY@4KM.E>9=>SJZ%U*AW8J7;$B+GZ M598".JR.ROJ>H*WN (WJ,_=!8I",\55:NVCE@6G V6!Y=06+90ET+;5X"!+K M6K0NP7"# ](-10G8SU2_XCTUK] 3O;9Y/AD* MYO:#C#7[M\J<8A=.%'WLCA)P\=YX>;ALJ.:9HM&CCACB2J7E_!41":GVW)N: M-35BH7L+Z [6#QOWFM,%I24N]?5,0<)4YIRLVV9%?D,J7D6JU:<:#NJ])JJ[ MQ_VLO^^#$9FLP<1;8?4^*WP/2A+4_L& =-WZJ#MWBY^?<'3J444V+.G8E![* M_"2>A6&4XXNU@%*8*N!S$H,%05P'3:L:2JP:=IOG/VLY)MYZ49ZE=' DC5:; M35P+.-$;8G>HZ*I;?._B63!7Q=O6DN1I=F61F_;B5;+CZ)O&+&/GX8>LC83O M*&6KG]PL;>#DN07BBW0ZU>JZHUQ%-7U6A8Q,D\:,*10Z]B84*EH"Q,GR)9,V MJOV\;^XTCF#LDX D7P/F;SK1SB=17$B1YD].:'/I&F@1X1KM:/2[SA;9(\M$ M50"24(KFA4@\G[DU>[,W6=0VM,0:-+8QI$?%NQ/FO[U@O--R-YEJF-?:9880 MA\]6WA$MBWKIKVI=P5JI_;.^K:;+F&QX6^&\\9?9$"^0P3^ON36PSG*)4&F;*KH_%PO2\X MB:HW=6+].HFC)?^\2-S@3C]C>9#/SV8;&I';1#_N=B^S("=EJR)B@,U9F$XD M=G73+V,C&>G_RAH[WY1UROJ^T>Q%&4"@$D_HJT"8L_X+P#8"S_U$7E&H>..%+6.A: M$F]F@B1L\2G9O;CDGS_/]^?+U/*K)6O&P553!@15]765CC5OS01.=C(DV'Z0 MPOZ<^[UJC,4$5=?$\X:A H]Y+?JZ%&)^MPKB#54%V>2 +%6J377]05HBR4=@UT'/$ MV9TP[N[H7!P0 U=[-W[7AD=-Q(;M3-6T!Q7+F6K>][B-R X?DBU6ZBES^%P#)%H:B0.+OMN- MY95+*@'W5M;MSIO:1$YLC=N_BG2+?]K*U34*'(06?DPR[^>L]7[/-?7[B!6M M;A8@M-:[_+BMWO'3N4.:UU$KD9@;DTB9DOG7!Z-]#/1'^KJ@CZCRC?9W$%Y3 M1.-[$R>,3H740IW4RKKDV\>P8_]OC,DC;?1^/AG#@Y0/-W,(5_?7>!!>785, MX=@P"#HOM;&BL4[M589$6*B2.@<29ZW-5! O+@6F%GWKZ^;G7I?V$Z;E(>=2 M[.\7/,HOK,03/QX*5/F4\*/4\Y?![\5%QE=,(]]79BX_39/M5?CVJ9?IUJOB M=])S B$C8="VLAM-**V-T2Y\R*/E?7?^P;H2RU4':&R_.U-S2\9/#QU];;B4 M0'*)Q+B7AYXR =V_#W%HH;6'"CDCIK4KM$J6S)8=#)NH]UL]J,%.5I"0, M1WD7./PK1J.P7',8SDU&I$L\7/-W%ZN%'8MV?&1(M>3'-"U$W<@XT2=&"N.Q M[D^L%Z]Q^^->B;^_NV+N;X2P3-_6Y(SR4-09D#'%O.'A8'+AMQ+\OGI76)*L M'0._I[YR_Q(: Q27J0?Q-[-XG"^<[J2UAA>:!]#/[2 K= CW67ZVY/YP\&YB M"5Q>MJNB$?8S>LYQ1A[Z)/+^9&Y5=LMZ)/B73KO$-?!BU/6*KAZGKO84ZZ=R M#00F7@/T:J.3?XY 5Y=@C(%)7K"P4_LUD#T5M)Y_#0SH_2.?H5TNR;(X>*>> M\V+W&D#J_R.C0:8@;N,_Z6'])S:#-S% Y=_F_C;WM[F_S?WO: Z?N7O2U/2? M(:5_EI$;IHWD$3M8S8N(H$-FYVL@+RU83NC?"VS^!R$%]&9QK/_#C1Q NPSB M,+5B63E'/7[OQZB_L_-2=[*;*^.DV#1&^""E6VI+B?NJR+,2[_QEY #4&1L. MOP:8+>QGUQ]XS-UV)'G(Y!>9>6\[97BEIM96R7JPV.58<1D.#A/S=X=-?C,^ M2,_FZ(IYW=S46><$6P2+1'_@BP_A3FJ6G<3'57 &OW(E=> DJVY7K-AOK5R, MDF)E%A4[0PLO'8Z>J#Y'1Q48+P$&O.S6^7,[Z])=#9X(SOY%G$\MC=75?*QK(@ MI8[K7A9#'[H,NSDLB/^2_VX^6 MRGJT]O.G+P30_E[O,EZ,56F5CMZK&18I9K.6E(>>+G3=_!K7VJ*"__G ?!!2?_O.H*B_;;0UL;0#A5FIMF1+BR-Y\VV1?&+-$7W)+BJ\'CV[K( MI5B(*;]*M[D&E#X$K1?>E+#@VL.NG1E*].\NF#)#25G7DI?5Z=[-3\ *D8\6 M&\4&<%T#75I8.AR'O^7^EOM;[F^YO^7^!^64 0 G6)[$]+\\[Y.%K/L,]D\UV7'#07V0"&(B\[E)H3O&IAR-[_H!B^Y M=V>SZ]#N,ZX3>523D7:\+)KU.'H*G?CIYZ?G[!),2Y>B)L'SI!L$]A-@KG:( MA.6$'5T#\Y#GCV*OQN6HKX':*5 &%+O"B5/UHPSS'/';^/[X0,_[0!>@*D7U MJEB)"I5@$*N%RH*)/C#<3;L<;ZO!X"T^!_=9$:V4FK0+YSTN3N9\&AZ"66A9 M=3QW0YG !3-%'\)V(JJH6Q,/OQM= RIZRNP="5V%^S&5MB50BX@M)@&CR2V' M*_^+(#0^AO9+G?T:;1#%XY4_F>28G^J\C(]+-G(0H!'D&.ZK!S MIY_FQ-%:K<%**7F=5E8,V/D@&DX6HU %>L3G)T%_($B.TEN5_HPUQKEZ3*[G MYE@IN\#A-2EDT"22Q4J[,GTADX'_]G*V[(K+6JK6QC]JUHEEOUK@.Y0\H@3SAC5D'5/]-8;-&=? M24&[7VR7+&XH8=VWJ.DM'O9U\62V\"1*C'_NUB1Z M5L+(H Q#5I_8[V4Z^=ZS/!%8,3/NS)[:-62PU)^6C+D&[FGA!:NHA-Z=FP+= MW9ALVNNB"F0W5ZF&-%K(]+?2'V$NP3&WGDNU"4$5'/E>!GD+^4Q4W'O[3G; MK])G(0R1KU>#;/P,MW <8IF,/I8\,/MLYNBX;";X2D4VJBT0CO\JR*-Y>,A2 M>-KNKR2!6U5<9K+;2&OEP/C6V$2YK;"E)[^6#^@U) AGJ@@09AC'20> M5?_IT#5GM+[5;_>]$?D>JTL?Y\O,TQ-H KF0:\3=SLK2HG@ZEJP"Q/JJR>=R MP3?JJ\RMB;Z!6TGU-9XD)D_5A'>.> F!UJ-]ZU !MX M!Y<[@6S7P+ 28O(J3+3K][.%QI(+Y')8\4-GA3_;+H5VBYP&AK(8X724M=BW M-<(I@H&&&&7)@Z#;^;SA,-]\* O=_WPJ6?RS4>##Y9P=TA0%CM%FKP3M? M."\0-X!6$N=-3&7K*=;G)J\%4=X$O=H_L0$F>>4N?P':MT'K?== __0_\BDS MV)4M_X.>?V2<(LC\V]S?YOZGFFOI8D)M/D'YP="5[OVM:9_S[!E&6\U&EW-$ M&9&\*8>R4J=-&'&KFQQ7[^%N@F&:^HI(C^ ;">KM14JU41UA*0 MDZ%T9AE+$:143TO[.]^H$(MOQ7FY;-9\\(XZSQW,:1@6RXF]%:P@T=U5XQJL M(%,V4 WYM ^F:3DMU=?I2DRC) 0UX6 M!1AP!%.D4OP'N4X9(IH*SFPEM6I]9 GWB"[H_Z5Y;5N"KY(#:3"/LZH:$@GL MD0X"185%A+5M.A=[?QBIP:$#0<]_T'']]V476"(,+P MCNHD^ F!G=RO:X L73=,B-/@@Z"-TD:8,L?["O:'M\D*7E-/S2R.G*"94;'= MM 'Y&SL#U;3^X/BGSQ_.N70UUG\ MW*W/#O8R]JZ-%A Q:,?^TO&VD9WLJ*" MX!9?K+/4>]*/;-]N>$LO,A,DUH5D?\3YO4I_:IB!AJ!(H,?RG,S+#EWDGHSR M"CGT/[2=F5U5/W&K78;%G$\2^S^:P@38B?E+5>UF_F9:L7HZQ^!/&= RM*G, MKDUO]D\A%K^8P:P!N]U_PY9)*&CC_DQZ9?^##'?]'8S4*6IN5O#T??*#8AKS=)&NO*W5= M#4+P!B27(CGFSX[%51N6TF[1V=9UDY23R@$/:U[/]+/SXQ6^VQ>L9W)7PS40 MTZ[;HT".D!_T106U>);V2I: VI@1W0%T4Z#9CT9CL]IH0\CEO6\J&Y3A:8F8 M=_70\5^4YQI+#(%E#J'8024!9-B?+MI &=3F8,SZ@>21]!])"R4=W9=-<;2H M^[F4+LC%(9W(+C*8CX+>IB+CHZ6+_-8.E1O(%6SKO6>IXX9^A[(V^[B,PNM9 MNX=*S2])O_.CU/).4J]^5;K)&[@N%VE,N#Q-:#&-B\*POJP#FMA;7BMHT:U3F MV6<_NTINX]QH[F@U>E[=,J5@?;-_[V3\P19/T?[_K/)D-V+V&2/L9NR^.$.V M=$?ZIL(6\;C-D&^ ')2?'MAC9J\[^L^O7$YI:7_46Z25\G JP=.B#"TB*RA*(Q-I=DN M]+654,;3UUF3&O X_QG9PS+B7(J13C]4$MK$M ]>GH.#$9YAA5OU,WUK8EB@ M"'.QB;]A&QY# M7'*(:]PU\%(\E$.B'1V$X3I?8YLW:!HJ05G:2V;DNYY0UM7>!I_CGE?>DT^%OS*\,-2+ M$I;B!>/P=484&OZT'&ZU9*2,+*J^U49BKAW@]M)3]*N%6+\(KF8*O]=12@+. MQX26ZL[RR;/$D&RZA7:5,L=G[($CUX!^JD"[G%%T@SQ14=*K!*J?@F+4,CYN M:BVDR51O@I7,46:;X.@U0E38YF _99ZK'@L$ZZ;R!4 R5=H_K&AYLD=Z1$C++/Q2BEZWW6 MT#IOF2-[L[_S?-ZE@;C@!Y'*3W,M7@"/#5#>0EIH _[0-U?E#0F\8;"<2 G, M\\]MJUVA'\>Y45IHC8-VAR!VR43*\@ 8[(2DCYOSX5O+SI2;-7Z=@73"K)(@)Y?^-SD=3F(N2EX949D'W6WE^)P/K5X-[9VY3Q5 KTQ?HTH' MZ/V_D3EX4#Q:&U'=LVDU"6/[1F%S=9 MN8I5'W4!/Q*&244F"" (PAN:?G ^[S+KHE7[P(?S,&]9XUN=CDC,NQ)D_STB MD?;7>"MVU4S(H".Z-0XD;I\MK"_@ZY*I?5/FZM7 SE)QC=9>G&[4QJ_E<1OH M))0W$GK594&I%ADGUL4_HJ#YBMK5>TJ<)$-XQWD85HZWE M)8.@.2 LQ?>W5>NMBV=SD[K@[04&]C_O*%VZV:T&**%EALC7ZY1*E+LYB)I M'IS8M CE5LL8B3#^[2%E=F,N(&.!/E]E5)D;K9_RM(Q+_3$%V1 M8F=^1T):)J\=1Z/%5]CKU*R)J:)-;4;:,F1N]SIS=ZS]=:#'GL%WOCGTG* Y MBGW9.&D29M[5QTF^UYA-."40,?W,Y/>!5U((^.ZONPXXTWN_C# M4\F@-\M!D]Q_,NM4 <._._^_V&D.&CA)R"9#<>:K!\''7\G+"LB+2J(B/WM# M=H(_]+;8\B&[AJ74*)4:($8PS8F/*GS?/U,[WM?D?P^'0H]75Q+%#W[17 MFKF4;"AK-!_ET0]_9V20J54TA](PY'W2X4Q]Q9>H(]%)/%>=NYW6BS&7M&CI M9:P/Y=A\IB!NT[ES$^879T;^WWW_._?]];)(.9+_U8=@A&F'. 03>SA(D*"H MGR''7V$JBL2D,;]T. *G?1=[3\@HJ5!=?9:&%= M;(B?79QMA\=C!>6%:!4C/ M]BRJ>R:7P'U6Y%(M_B;5EFO^*JAX#_",OQ'\%NW3EOVTO0O1V2DN$!N-FO#R MRPAY2+)@DG4\8/"(B02D#'JI\[_L;7B47%>EDATRYB@;AL^E^VFM3MZ^A05O MATK-AA53M[Y>\#>,%(&]N2VZ[I*8O9#]#MI))!._0;&L_A13_MRN&Z(\Z,%) M5Z64_"7)[(#XSSYZ]9=?7#:=ZS4F"K. ( GJKV]XP4Z.IK>RX-I"!T_F*YS/ M%*7WR-RA%OVU T*7][YQ)5:ZTV!H4#YNQ?8+M"C&OG1I7R=I7ZKOD@ MZ$7S@&D=HBJVV-$[<[PH\:5C^5J)5N4#UM=:T7,>E%RLG\@H"J8(XI]=.BNM M:!+FN)JW8I==:J7FP6GJ8>7)$_:FGD M5+#9-893-?-?GQD^;PG:&0E"[X.Q0HD-H]> TO-K8%WO/Y^.^WOT_[^CA-5P MT K( D=0RX%PG M&IO1Z!S!.2\'(\JO ;N3*&LE853Q5PCAB$Y',8I5V_ZGKA]I^1>JH W"8,53 M2V1$!LR1V+6A_)-DK&#$GICK\==028["C&[Z#=/JHX.-2AW#SX]0;KFH%/A: M!S/T):(P)&U"^AHH2H^D*KL&ZIG#[>VLOC7U$8G#YS &KJ48M05>^8&3V.JM M#NA:.;,\XRXC_0F+6'@1RO5IK,Z,!]KBWB!WU%$%S#A?)Z\$T 4-YU![Z$## M-A-#VC6M11/"$4-/VF==7B:JU6>*:NFUB]+BD(Y-?!MHSBJ(V^"89^S+"69A M#&LPTZ$ZZ,(/Y(:@!Y \B4==# Y0L:\B3B!,K8F4:%+(#X)-//IS*3J<')\K^8&I^4+F1#RL4N9I1Q/- %<,I-(Z076ERN#;B)H*UV:8Q05T M^QK(N7T-G)1< ZBRORI.M'G7Z3;XZHSS&J!7_P\TK&NY;F:?5FN^NJ+JZ,RT M*A"B3/[_('1Z0H>= 9-A.&&W,=I!<#2QAX988/^%G)OCBD[<'[,7 M% /?5 :%TY'B1SITEN2(DZAV>L3._\'>>X9%U6QIPQO)D@3)J1%0E*B25*(! M$)$@"D@6$#?Z\8P?H9\!>_1-IUWA[5QB0&*P?'\[_4 MDE\VZ5/0?RS?_O7J\?V@.WP<:J3JSXP\%EO]#LX4&R\[EK5+516 MYY@WEUBE=;)2 !!)PGG8=<) >ZV1FE2EGD:1;EA8PO'"0;3@,6.RN_O;6L=N M_GA+82TF+OJ/_,7.LL\Y S1(9XW_6)."/[:#L9B;.DJG5X0=*HK9*ET6799C M6)Q5=LQ?'[/6-)SU*G++1<3J,T\F6BO51&W0)$<_V6S6Q>YVRU[ UH9FK*63 M075*5J=7;=D7N3&-"E[FM@[7&"8G*OLJLCD-RM7D9:X3SGA/B^".U,\ +Z7? MIMI_$$WUADP' : SBB9$IY6X"FN8B+O&&"NF:3'-MES_5FM^4:^O^"= HJS: MR;$^PA-_31[;V)@6D<_M<^6?=6;]F?Q/EVP0W2W""O=MON+L;LEJL"Y)6>MA M5@S9GWZ?&G-.9.XPP/FUQ%.#5(]:'LTY4=,.Y<2^+2^WD#S7M;_7P9@L7$DZ M7WB^F*7?NJL\"@OD?5!"^OKQIN'F7VR+,0SA[IX!L5[(]!,2?=A*;EG8WP"Y MT?]T(_>/0356(91EP8\[HNI6&^'$]$=P^Z $5,:@'E(WH DALF,*-$.F5O!^G!T]_V71_K9@L2F9Q,$8>HCIE5X$RY.FL8'$VU!Q0 MC:#<;JI_'"2W_$AGZ O^:SH=])4K3N$T2UJ_D.?]@2QM==W()O:T0\OPL]<. M>6DJVP$E*)+_A&\">DLRK*RJX1=6(MNA(%$VU^Q]>FP8,(F5W"S$Z'2,M[3T M1N_-K7>M6^9LMR;CP8!;IP*)L#DMG&*3- '&$R42:0B?7."XX;0NBM^KHRR! M'W9[PH*\F=T>MG_@O<<4)!;)+7:2-?3U#A;T-90!H+\M!.TW3=&U9T"HO>\Y MBZ^#Q_THCK>VVJM,D]H+#)*>D@QFL+=+X:W";,WV)P^M32#;LZ"4ZG*%3 MY::// R2IK'[XN;9B7@;SAJ9\1+!J\3Y0_Y:X\6_8ZGYQ;[9'7FN5/DK-$Y7 MKSB'[OZP''1*MX@CY*/]Y7 .2'ZV,I[F[9U775*6NPHC%PA]6&:XZE(N)FHT MTYIJ[GX[A4S3W8=%;K&=>=CH(\$FP_/GDR5.^HJ-$R)"&T*)VZJ._#W^6-Z+ M6"&I)^ F]CGRH,H2):.D",J4S"\\.M>CG!G-S-/L57\(LR"BHO5/0O6'')J7?1D4NK&!MEJ)]]Q:Q\YXA[Y/C/$J8+QSE@K M&AI+R$5#' M]7UVKT$1-0>GT (_@B#ZQ^8>(0X$^GJB:U7MR04[I-+.S",LD MV]+(FA0!6UOV2T4AKSEHW]UYMJKG1( V8L"0]E"4,Z]++MX&X_/@0797TA## M#S '$4+? ^1HO]FESAYF]!(XI-O=@'*<"+@][$SBA.=92R8M12&G8^_LBX!/ M:IA:=#OH7MC<4?A^!ER,6'[;$ML "X'02U_%Y"L9/N_&7QG'2;WZIF4.3U'D M\.FG2%/N-9&G Q\BAP-Q!-G7XI##-*L(X:3RG^'6 F:1DFBV+Z1\@.-4XSVT M+"/4&%/>$TF"UL5$92'R/A-WZB5'7T5KO\NL;/*9KS?I0S7O*H*)V-ZNUKO5 M-=%(SL](.%GN2M2ZUE3S@W*G R1FFZ/Y\;LY=XU!_Y['Z_*

    7_RO*S\0&@1<,E:T2M)G]WN,885,<,&0?BV>*> MU&-AH=*V8E5BPP5@%M;.[K;\T8LBKA?,RP3R',2]X4Y2*A-5Z;KCR"87LB_* MSJQ]WSR G._I5E_!4*S^[SGC5" NP@+&J6$F W:.: VLGH?$*M_4M^ K;./C MG.RVA%7RM9_R=!MC8CN756\;.ADD=[4V:J<]_CFO[Y'(9]D_S-SM$52%W!3I MTNBE+LY#6#DHXE]?G:?@+_;P:5L^&2&5PTRC#OV];UDF>D3[X13,4%)LNJW# MXMT1R:.\;3;F*_?+1!Y,04VQ?H=&$WL0^EZD$*':Q)93^)VL\:RFA#45=TK- MP1MQ6X4QAEI,I!2Q2Q*D)99),D'AY,'J%;5? J/0'-4"K''K@1>:M\X%GER( M6*K]BV:,4D1?"TDM#R]?X6^_. &\+1VYWF]Y8ZGV^U.8D(-OD1'ZE ME1HC,Y6/%7DY+BWNF+M6N>*:&/%#R+Q>GL5(>B=SI-CV+D+9(.7- 81&5MA- M!#49W_W+7UH]SRT)L> W()S\OHJL?X7ZGB;X')D6C8RF* L7--=32MW:*A-7 MT/W>6._8\!,:8<=[P$P(O!,P?H!)"T7ZOW/RXNY](DG):5^AGV-DLF^;\=:' M?]ZBE0E+4E^G.;NJ^W.!JGDT#8@7DU^*KU1A-H MCY+1[_1(*[? SK47S/<7K$[%)5!>T[=D*^!AIB1A'H<:G[#A;F#SPZ]A91;] MG?6*+4>M+FIY]&"?R///O_&CX; @'/[M8\F8SIL6*M$TZ2T,OA6A,]8S#G=P MQJPMJI1+C!3(624LJI9R4KL2"6T(3$A?QO)TPB\U2V6OZPEGQ>FNC8I-6=_[ M]#9&*ZQN*X64Z":7WQWQ;SCZ<6^A50E$37FWC'D'XD@IPC(1SU&5-J5[F>HG MVZ>%,)*AP59CB*=,<0?^'@A'JDY$&M_*Z07KP#!-[GE/5HU!=,S-ILJY& M',9@CA$1]63R"G,V0TB\ MNBKG@UZIW2R1]*!V;F7V'O$F!QN*UQIE PL&.%MR*Y@:9;-MKY9^YY)8^'D# MD%)>Z?27YXSY+Y[6_V6X[^QI_R8P_S,W@2ZF-Q;HYW)M8T"SBFQR>HNX67>_ MQ_&,FF-)BO,4(#/"^_5F%6/;;\SY7=0&$LD(3*L=VXC,N0@1/^*O1.;$3(D] M2WA[!_"(,]+'0@[B,,&=]G06BQRIXH:>7:R-O%-)=K[Y_>X\CX:_//D&Y\Z[ M__W+23Y+F8>Z3](9T*,>[.$2AVTRC-:V[U$IOX<,3[ MHUH\$V:I8_W&S2=&Y?%PU-S%Q[>AZIA-!Q^[]C?G[8.#W.T UNHXBG@_9511^-BIU# MDI :!G>3*FM?VXN//BWQQL;;%E$0=,0J+VN0,/G+LKIU*H)QCJA2S^YCQ6*& M09^JI-ZG(YR]@V8VO3Q2ABJQ&5]Z%EV=42V*]>KDT(<3VSAUOJ!F]0R^X)HJ M.[O-P)IMQ.96%I$ ?=QK]D(>_A?.'-9-_[+72:V$@G4]EF4![8345&716FFH M+38V?0'-HG%5 =MG#2%:',J\!V4/C*.2VC ORH;?/,9K?]EY@"R:RHQI1&Y5TI!^"1(0E60VM M=:8WK :O'62^WJH"=5>D-3K ME2[1RW[?Z#F*;EL=!K9*S;AE]SJ 7F+A<_I2#?:;>PM&V@^I-FKMBM\596P9 M,%Y5(:CGH1VKEPN!$$NKHM0OK=]:;31*M\T$RP84:^&#BSUCK;U2HD5_^*%4"D8D-A"& S;G MN3PDGD?;H!KL@SC9JJLQLO[2CL95P_GZ5>3.;*&7($+J7TN^7S_0( 9<)K2, M-V;@<(]M]>A*-(XL[%TP9%"_^)R52)'NJ"+@+"POS^I%];!H0 M&B_*BLJ)G;G0ZHU5W\S$H*;UTSL7R>\-=QO3=W=:>E/MVFN+CKC'!>U\>.6DPMWIY/3'Q.(#5N26^N9_6_2KO!=T^#1(:O=TS@,-[ M-/$<$.W5B\-8W81P=[-J)AAW%N?7$Y0&Z)[$;,] '(F7&OR^;Q(=E-."Q=G> M8S F)Z]K>Q9?<%*CMC7ZUKD5HUN)SZ=C7J0O^@N&VI4TW#5(-]5EDJN,#A)G MWMBR]V;#/<+615V;%%OEQ2I%BV0TW7I4]Z7YESTB+,M=A:LC\PXZ"=B?*Y\+ M[L1?2]WT9@*5NI88[ CIF>Y=#0WK=7$8_-;TG+#UMA4+Z:82]KX#>RLM*)JG M? 8($9GK3TQX1,Z9D,X4'D^/:CSW/6(O0!2($72[,5 M,&_T&7"!]_<>!^'/ =C,\\?81P..6"647%3KC:=J/ZLG:EPK?]]]J:EMRYYS M8%A?) (),4O(B/O20LM>%(]L7@W8OO;3/K0D$^R=C[6NP0^&GQQ"0%J^WYKE M@8WQ4OT9T!8J!Q8!E47T X74@H.@/^T)_9)Q(BV_.PY4?I."U +^N?+K%R M7W)<3(7%WIGM#/BBVR6I[.#L,=KC/U%UDQ!;+@@&GSR%BH$.SEFZAM:2QXNY MI6W">P,0ZMR>;*'YJ[5'H=^W-!M(4P[$"#;VHQ9%1I]W6R(3)DI[6@_R]IUV MEEINDB#>].:YE?-AH[LAK!;>8K%CGUB MR1'T?W?%YX>Z%281+%V6VB9<@"HU@O'(+BQN.K*XF[BV@M6@/7_S>L)%E5AV M^??W^W9#[V30U-9XO>[L/#8;RBXRFEM%>%6R\#4UQ;\.N\JA(GH).!3_@8!O M*B_?@;(XHXQI%@W!K:^(4Z?IZ Z76*O;%$&:[8\CV"EI6@X5E:2GI3#!!\:@ MLRU2?^%9C8PK2BLX0O!*PMIN#VMU8ZSQG.S5Z%OP_KJ?E++&3P[D:$">9_5+I4,@)UTYW2DM&N)-!(X2EZ5(/3Q/!Y <[TP1S$H_O-:6J#$JF M8U(,JFGR ?F(:EJSG'D*=A*#5QX3:7P@$VHIQ)M_9#_5%547LB=%<5T( :," MGRA45">M4K]YFTQB'AG-QM+H6O[J[X\^M%.Z+X3&28[="!P:;C]^ZBW8_+GL MVE3:O+*381!S261LPYX!=;.CX1AW3Z;6@X(-$F)W\RYC! U2J<,:W)#602]( M/I[(B3$UE*EA2EAW6'Y++XB^RQ[?;0-5G6Q6R@"5[7&7D0W2QL4#W(+:FFNE MELS:9T!"Q(8ZX0CE"*GGBQI5:_71*\K.;"?69*E=%H?/!:V^J5WPZWH3AVC> M7AY,[%HO%GKR"^5AD2!YNR_O:V?GH,N)#/S)Q!?8A:ZG[I3;JQ M*F@88?\0-^J9X3,!(<9XH]1 /JL5?3XF?__@1Q>P.K@D?7;$/X0J1UL0-= MAQZ&I=N($IP4$[4E'JI9XB(5".#+!Z-M5>\V_*_3);3=-JD(4B&ZU,Z_$%&C($6A._M.M2O\H M<3KRJL&]8)8AYK?%?[\MW\LQR5*".NC@()T'6+/4[LF4]^$AO-7-25,65X'- M&-[0CWZB2SP3K&AIIA,A2UE&C'DH]%8!V-3M+5@Y]5JBWZO4BJ"&C9GL#-!B MF+>*M24ELN-C)HQ).:'YXU20JWJ-/^W%$YVO$]T:I%T(2/=2-+Q*[%R_. ,Z MU1F@!F.*E9C512[5!Q3)'\=#NUXK/7K.VT(N7'3WKIW &IP29XH9@E^+-'&& M4?NB5#5'1;@Q/\OY[Q?P5_"0T+U7TVHTSW7^BX6E>-#[EO? &4#9*M-NU7H' MTZPW.9B/\U@ZS7I9MGF,B>,)IHA+;4"HD9->\)'1##LJ1Z9WR(7"@?W!ARHU M6#9P%^D]$%Y\Q]ES[K-XJEA(?Q1"4OC1Z'=B8).';T:'Z>06?E:6%YQ#JY13 MK"U1VV\*VY1)1S[8ZM6(T7_*YZ!>H_]4\^4A\5IFD-L@X!6CX.A1?MYLF=9) MWI&%;D'#ZE/BEU03TIV+W)_/^\C+&M@@TXFB?/89:DZ3F0ZWY##803#T8MN*D:L"=E6:[.)@S'*H>R% M$/[O9?<' 8_>[N'(12J0+?-A$=C[4O4V6RBEQ)"W!@'71K[JR(JF/GR&7[ M+D@K($^IUY]@[ .\&7!/L20I22EQBVYU/;<&:*.0;;IV=?/U;X=&TX64O.^* M;T&8I06P/'HUXYMX=K>X)YBYJINM39/(M,W)6SM'3W@I4GYMO]$@XN0\36X6 MRL+I3\CR+AJM>U_!OMCFF[TV).>_FKSCN+/"9B!%ADQBC(%:V0,LC2,[WA3"I%S1=%H)UM%YF=0W'F7NA M4W6_N\8]3[I:=:2?8\W^"""]PY?^W*#7#V9Z!OC#J/?WIYT@P&H" O74CF>2 M[[;!@M(5WD1E,Q-OK4ZC66TTWM? MQY\WCTR'D'Y=YJ0<5%90$>Q0*9:F/5MW GJU$.0_4.9]O-=BFRVZ"7&>&W@+ M2.8Y&JK_E@?I_XK[_KAHRG->14B-,PN@VWZZD'<]4+240B-SDM MWS2$I_ ,2@<4KKS_=*QCB=ZF6,>"G4K8X"#3.CC\2VU"#UJE,?&K?@BOV>MG MQP+%7#V*9->:TO^N7*0F[.2$8"5#I&%,X5!54^NLJY$1"1*L;RZ'AY)^^CJF MS.M/"-(3]%#E8@8\/,9&_F+SX*]M35>*_]K]@#P'P]_SQ,?P'<8$LTH/ MAA#_4.&PUKL7'?(6-=>9Q"[D56AP:X61;$?12]_J9#I%H]%XK_Z>15W9IWFR?)"K573B?&L"TK9C]^EW<+6V\KV)YY@VJ,E M3*+NMY&V"E2 CB<<4"G,MZW$\/<))@U$* M;H58O%M99!D5%*/BAS28Y^OGT!*NU\BS'*[K._V=;1D&CNXN[0_*TCN\-WMR MTY29^0LXE/DR,LBOEPMCE3;YEL_QG8K^]-[ILV93QFAIET07([KH$\U5OK@M M1=-@*>7]UZ2%)51**-+NX9 T@A%Q6' K114F'I\IV+$SA[KRR-$\6F-?9*8F_/KJ!4RJ0&%#EMEY)V'+T6^)5J.,D MD+YXKI0Q04FGO7G79%G@YR@2=FFU.%]//WR3KU.4@DUJH%HJ35/^-K%IS^!, M&^%4$QN-_SFZE';T0DO!+EJJH)JFZ=1+:BIK!FYJ^ 3?Y7?QD370(&5!TB"$ MT2B[*I2A2(6.VIRJGB3)9@ZNSOSMMD2V@I4-'5G7^_EF .NO2KU")GN* MV'MNA"_L28A.'D_@1R&(I.ER!'&>Y,;<[N;0*;PS38 "U=L."UNZ[+Q@-S6' MFO=FPFCM75L4$E$=Y;'.58RV\?WE*E7IRDG_BMUET"CH$!6?[S_=7KP\ WD6 M-6+9CW(HD!=#^4J0?Y/";YF@:6K<++YLY"G5!G6Y)\LL*CD6(TS(I@\K/##$O26R;/EYR M2.%4,(&R@&:H)> ,L#)T@Z-D\]&;#S5H<77:(W-S>K8+,90.!3VN[Y5YESUT M\D;EV>T^8\S;]$3"MW$ZILL+U'-=TV.?MYP#QE$G!E$>%8EV&VF@]+39_\Z) MZ/\5='BP?$@7?ZQ.Q^$Q8PU#EX:1C9!S_KQXS81=L)-=;"8EBSI/78WSA 9I M_Q*KG+FA*9ZA/+A:/YUD%5XM?>_->'@0UGE,WYI[8>[]U98I8#Z;(L%LP4?Y M6E-T,/X>Z(H94!_WIE[EY#$F!R>KNQO&]VCH%OIEOM'<$8P)CJD=K.AGXW$Y MR:'1.TQJQXKX-$NBV4IOKQN.5)\:_7I:K]+$LBT4JU0;__)VLXWB"S\"])B/ M="\R M%GISXLBQG*DYX"^-UI$$_!5!O;C51+I9R@J-4C&+KZ4Q(WOL*<^KU?V]N3"N M74+F78V2T?O%FZ+/5$*3.UGG_5"#PL97625YOH42PBZFF/H(T#P$!]%RE"!? M=U)ZSW!P(3*9BOI.^!HGI!X_4S.!CCD052"R,M=HT&P?WZKU()3G;$&J,UFT MWL5L)K0@3S6G7XZ6F^[:;I?RTM 7KY&5FKWJY/*347"'^S4[8H91VYT/%IDG MG>:6R(Q#!27T+EMDQ$NA9AZ(V?NIS1,N-IP!0;#*\D#ORV#EG!%FJ@E5GQG* M01+C7*[NF/^A$[)F$,^\H50#>*J:@.F]1FR8IQK]*)%+JWJ4CAP5LOF>'%\< M5W)GS#%E$-1A)SS$6V32QAY*BQ7"76:_]"FO*DXE;(=ESN5A:M?-.^BR.V40 MI%D&QC6Z6=T2:VT\[KS$O%%W0EWG];;VW?RLNTK,A5O\.7YM1.&*O>'^IP/J-K2?9C>+U[,5:>_[&-\Z!K.K,83=CQY%"*-[M;E3QF M@BQ">/KE6!(VQP:72^;%;FU/[? 9H M_[*T\?2[3KC@H<%\LX\KVNIH^R"S%50NF7=S50)]L;?/@ XFA>8Y5:E'TV:5 M]2VZ9 I"['R>>3_:[K0=-:QK>3-;C^*N8Z=Q_-$7$MDH%-Z#D6:4M$YQO'Q@D MUVK9B]T8NK LZ6BXW0F9'6B'4U1'/NB9HAATW[\1BSI8[W*U+U!QX$XIOO4Q MYH/'*TH-TD]N @=IX&=L.5(B!@4/3B=+Y9LLYZN+QM-Q: EEUH1*;-9_L*5> MZ_I"0'^ZV#Q)>IKD+0Y5QKJ$ED(5P%&AH'@3:1U59#G)7$MD=40)VYO8[<5E M-%$<>/&XY@6_#P"\ S95Y#F?8]D.SB4DUN@Z"BOB+W92KX"VHNNV89VTLV,V MR4EYI#-H[SK\?,VZ"D/3&4V!$\3L6!A=&A$[ Z@MR7X:5ZR."#XV\*'X(+M[ M*5OPO1JI^.CHWW>JS/ SO9KOX ATT^FL/!JM 9.!BX]J[MGN) BRV7K,C-<+%8Y; 5_ M&_7^*ZT<=..-6)8JT/#:4%I\S/@XK;BF*"* MD05K\*PM=[WGY^;5O/MBMK>+W(&BDD]LE22*CJU,X"^C"=FKH))VNNY$.1?6 M*!O%)M B83F T.^V.JJ]I:C&L:*K\=+)ZH3RHJ6FI[MQ-Y4&OOM2Z5N M+A'OKGX&>$="[(R/?LB='O_+!>F#'V= VF^CUFRE?R/X[7'!JP'VZ[=!XVZ+",H& 0]<:'7' M1F]F(^MK/*.IH7=']HW#\"(1'^^Y!F>? 8J^\-66<>^MFU)HAX,R/8AO.H.W MM,K!<*21:#WF# C^+A77YDV\9$^]M+5@E+ZHNG79HJ]/IH"P"8PY>>T&:?=H M EWE5;9#%L7E!+W9,2ERUI\D[27NG]0K%;H,W06F.>PQ<^C>30)\S#D:_(+C MP>3D"R#5R51_66GFYPYBF1].VPW9?SWF_/?"'Y?:/_?ZZLBV5SV5XQ19D0^HBPL?!GE/%CC MS6B,8[O1M;C.1GC4WH"A X7 2WLA+A,<$4&GN<^]GSXR:6%'<5WP6NIZ:0:4 MH>E]4 G-;#1%;,C]2V]<]]6$L&YMT=&[Q(_79&V[E=@=>MR7_/3RN\\ A ZR M-V1#EC^:'BK2*HD9-'=&%A/DB9),'NX2^D)>$FA14(X64'W M/(ELE)>GVHC@"SH[<;:/@7?6!VB-W%'GG,Q51J#/,BWN,04TZZ";2HT6%P\$ MX-26'=;72\UX;+;?;17662[LQ#JLQABQH41FAU&MF066BYQC3O#@2E"R\_"V M1%RI&V+QQ&A*U[!..K+)YE4%WX\ADIO4 JOP4$ZR,R#0?[D*.:=^R2V\7;GQ MM@A.6!OQ@Q;V(ZE*$?DBZB:IR2#@.%6(K7H.-EUIDJ49]6;1EPX+MYMFTBO= M^=2GS1L8QVX8>@H[R MYZD9;VNB.^R!NE [W ,\^=CW:>&E;^D:<4^5DA31/P5U[BX[RK,TQD_[P\WE M@BK7TE@QAM\:Y6\QC$NSY99,,Q%C"MJ9[+;(CCYAI,9E*7!F4ZU"@T7],,QP MMRS!^&; VS%T%[:3,C&Y*N51U+?ZMO688;T]Y^9'&L5$7S->$="VY9[\MA3^ M;=4WFD%S&3L5>**PCI>8,,$,A^)(D2(DP<_,G*\&#F46WK9EBZBH>.R[T$3P M,L*TQ4.I2XY KLN81#E#M7RMD>VKZ6VK>[Q+;^NEU!Y3^?O,?]=1_@]'I_NO M]C-@]J031OQVPD[,>L'U6?,$ R/JE_YD?LM;BA33;Z^9"E>(G3O;C%@,WWM9 MN'D^P<^D^ N=R[KLW?FH@-:%WHQM1(WW/'SW*^QDS^(/M:< 7FE.VM>)X';2 M\:>LLO]*\=NSQ[]/VNA_3?_M1.3?,V?_85H+CFJU_D?LQ;3^9/[_&O,QVA@M M_'_ GEH*Q=2V?0'Z'+,R@E,]1]D/5?73:WLO10_G*Y>!]8 M=^#8U#(*O9L'2J+DPO"0]DS]FFK:U3IR!XX..K+=KK4??;VD7-/EI_^1W.74 M0AE30BV">QL-EX*:K9$-TES%]AQ;B26KU'9J\^2IUR)[='L>$P$T!>5BV$-_ MG"%V&\T(7X:P\04,=[9<$]FD4$F]DH\?CU+2%$I8[I,0\&]\JO3!1=@#U9KQ M[S]3QF8(2BW37+:>;IPJ1+)9#^KM938T>;KL7IOQ97+@>%<$'- 3G%>* &J+ M[>R29,4GEEMX$]6,._$VC+]*^+J#%.9MB2"@4+GT()3>G_H)G;R)CSK#F)OV M\$'H)%0(Y0;5*H!*C8BO9D8Z2:73='JZ4]+9G2)3^6;K;7L66LC[AVYZD;:G MD6+@G7W;SSN](=%*^K-$=7)OZ\QV#2A)[#5)&<;^?=$AC6K'1*."X)BQ7_>Q MZCULGYH5Q'?FA5N0MMP<,D@?8:IZG=L7R/N7VE=G'*_5G BXF?9X4V%^!3>; ME;A%]UQ:*1<+=RRPJE2Z.OLQXYEQO]QR/@UCFD"\(SC,T] M]8316&9YW9X4+-GBG.6TN*+>Q-K7]N597(]GNM[J_^.HY?_&,ON_Q_P&01]) MPK]%&HP!&(X_$;%UFMX0H0V]+BTI?OL_/GE/Q)$#:+O_#U_L,PQ9P M@F:F+*AH=-NSU@M-D7YYM5&_O7CX%V[05?I#Q]LWEHCK+-^>L;"*"9MJ";XP%T>< ^:_],EJ MG?4WR!-P>O$OIMI:SC*:PX_&MT3V*>H%;4I'^L4'O_G=03^;_!P*T#C*,Q:Q M#0QXR4[I)Q>B:VM#5?K%AFAIE325ER\>P;5/*R_WLL;W!&.4.NK@].)W4KJ% M*QAMJU5TS@"[U2 (.ZZ O"C&NQ_/!PZZDQ1B#WO&P:1)9F4F/VGI89.L!QZ^ MPF.\#3R3"@?D4H 1>RM8@WK\J6<[%R+PM!9V;.O6^8HS MTQ5BU5]W^ED:ANW8%Q>)EI5TW_-K1V-( WAC!U3NIP36?X+<6S[&M9G?64:U M?L!,!SH9DU@<'*OYYLQ:)!DV!@0-J]<]OA+IQ4 /"&C[W(2R+,M10^^-7AG% MW_WHQ\!1<.^'Z2M/@OWC"*C->F[FF$+"[.S88:*+'4QS_WY R[ M[2X[06 7AL0+02TPT>TT-.TE8.?S>V;Q72@$5<+.TYVO]Z\P/%/F79[2Z3Q' M1VP=L$O20D5N\;!JJ&C&ZD[)>RO.&Y5>PBP$+-21$B/]^&DU"\)QB_((J.N) M@UN^8OV]UIA,-TT8< ;8UL:1P#EKCR/JDMGX!H*F)#MO7VAC1',W#B,H4.5= M$%:<#*8*RC76;&GB7BJ)6,3W/J[1-?%UO1&DU<+UX-OC5VV7 ]&E@)>"02T< M^[P]C;$E:O@E]FUXGI$R=U?"M"M624"*G9A,_RX?HIFF398 /,),OZRK'-N/ MQP9%%IZ+.:67V)]?#IFTAUZXC^C/=?F:$J9%W)>>\'#=$,CO/9%?Q"DV3^ZY MCN? 8X\YJ"$4LTSS2TM-,48&_O[Q L,\] 0;Z6PX2T^D'*7EB*6KG,F$<\N3 M)66_,Z!_5WMZT(8%UDAFL+G0L^&\:B#7]2GW-*6:382U&S5\V9I1HNZ=_EJ2 M2['KM M="VL78.[>[C]W3=N<3^Y17=\2HH;/%EMHS<.L;+J]&XZSR9Q.I8E>BL>$3K/ MYM;N11R2LS_\X?SB$I?KC-KTAPI2]A%2GD+O$5CU89>*I7AY8/I%G QI4/J+ MV+%Q/-U4@]^QM1E7R3:%F-%+$_P!M0=:?.4,H,>S0>W!4:0Q)>(E>#R\O!$) M^5S6F_E@NL[(PC0@:+G21 (M39CVW?F8-0PX&FZ'?QGV@\J@V*A@1EA(I+17 MR:PR1Y^$P?,"$T*R%W"27[!7ET)L<>3(%>>!AJ>[ M:P)YW;\&KJQ].WFOWN+Z4>," "4!#.:H__?N3OY;P4=(2P$Q1'<*4==5NQE M[5D@-GU+5V]F=;1XV%$ZLH9']5N!:+_@1A' ^^5"?:KZ03;&/AA*D GF&X>_ MP*Q._5+QDE.8L'VPQD3]S?]63\G7%:*0'H77OFHJU!\)UO=T4MW&T0FARS F MI8R%&2O7-#V]_@(K"0?%J<;7!D.OZJS]Q@1P.P(T"\7Q%W4[RL726,%?F6!V MKSTRV9-*;;YI4<&L:%Z!N7*"M]I))2YCK]ERI<;*FY 90%$=*26/*=N,Q%Y&R?2-B<$/2Y$?2ZH\WV5/^LUG 4X M2-IC;2M[:G/((WTL7CJKV7''IM0_Z Z1W\,WA/WT!&MUD)JA*NS;-5O)91&_ M+>C[D)\WI T+MRI&,NP"2DHDU91R7N$-QO2\>UV7Z.U+]^VC96\W@Z&\=M?" M.PYR2_;87)AY3CG4WO*PBP4<;EBGU)XVJW:W)D(ZTV=/4.JA.%'>O,4YC< 2I?PO!34LF;QMWW I[8 MZ#:V3:UUAY=K*BY[.&?0>(R*R4AUZFG5?LZ9T;=,LBTB6ZZN"OUMZ,2@)0]X M\6]9_X('X^E.<_;@#/K1#.!V>Q(\6.'KH)3>RDZW(Z^"XHJ&'>*3#;)2U2$- M8=QOND:-O-D0S:^ZH-%&Q;ATKU%6_GLOBH9H2C7A%T,OM(QL,IF*# MVXU)Q![OP]C=DM4P0ZD"GU!)^%=IUKZQ!2T&Z)3KUQKLR;TGSP!RJ/5RJDH/ MJVN46!]4*-^00BK26/-M11U=3+S&;@"ENHVY>&"6=\\B:4W5E"U4H0",Z_VR M]N7HLA*J]+7^1(BY5*:V7*/=7!PI^]O&81+O06,*;PCX>KVS$>(KIF)+M_6F MOKXR:=*.)^G%213*<.Z3"U\N %U"P<'KISW)PLF%*TO4=N)RQ,9K.Y8NK3S! M&BK5+3LIY'K,I0'1J?G\$+OW,NL-IUFRHCBM2>FKR"L8G?9%KJ03?:WFI./U MQPJ,M=\K/WW7_:[.;[!I@$(]:@]ML^E6WS3^W,A&V5",3'0E==U=>&DED,4 MM_JWPU![,)!O@^9$T0CW$$N 6:S(Y7B@,F?M6:S?5/RC?X'Q39)+Q&UVVAJ MN;SJ>@8- R9]8[MX=1?T;=;"ZG3C1>NFA,RJ/*62 ZK]R)8*0TVT9I;?,5^R M4B?$]\+)I8F1"_:/JC&1K87YZ]'TC5G6E:W9!],1/UCOB][DY72[T)(4!O1C M>@.JY8A6;ZUZ(6N"H$W-=6!H]K.4KJN]PH1+V*:>'JU&'QNGD'ZI7['5\=V<84&'8DT/>>=JOPL*G[BR \6QG0S[AO0$ MN]$]-(&M@M/-KJAP6[Z'B<]&F\WLL^\+EW-\O]6;RZ:2:!G1MU5YTR*%?B>^ M_]5#&V8K]: SX").-Q>J@OE1FYNE;':.9,X PPGN*<0.4_BS$VL\DCO2X.O% MG%@6Z2[YB\)CR$K9Z"P?63OP",O6N40I9RD7D 0/+?EQ#YJD5F.5E"1OIG^# M9>/+8)3\*[*^,X!UUSX\'%-\T'V:W2^3+>?4G]5L906HJ[FY:IN'!??"/#UW7VL M# GTR ]J97.#M3>^&J_FX%,;W2!*LY_=*#$)_7W?J4C6QG7=4)6>0']C_%P+ M.E\*EBCP]%Y)L*,3V D2UE$R*L_0.BB'.X6?8N!(I=ESW2B][@QH9<+Q#_Z9 MZ<],?V;Z,]/_T$QD=PCY9/>J_^K([K^\ _$_)S @(35R(3A'I"<-]9*;U1GP M8JR:X'W%VG0C0VG-($IT7E_ITNR]^EL?8]%2]*W82^R,Y:[E]\ FC)(RV)QD M4Z<7E9NYIDTM7:JD'&_ZJ?MGMT#'7'Q\3!+S7,R'/C*9^\#.+:R]EC%G=^&: M$2_6#?2TM\UY:%^ZJB>3HV?X?9=QE[?>,LO2KTKZ\:.7.WVOYM15CFFZY1@, MH!KCXN3[R:%.0CH]2>D!L"^LB[3$S=H'X]*.Q0&[T(Z#$GW'^*X<8F:2IH/3 M5&FQU^,EBIEE(L$EW;506><+!Z+51,RSD[XV6UIO+WXM47S)GK)JN40D+9,' ME8 '+B@$0GE.;JNG!,:N(X+I[9)(-"(9N?)XF[ S7[^81=!<@6_@V4X5%Z5, MNSCB;]RP20;8G\7\6I,-&A-E"Y$K>@ ?4I M^R=D0E=-&\)C+_-2"C^^,Z_TI"8;^@0##X$^@R$'I?1KFJ8V'HIW?[1QS="^ M>/K%I>JZS64_^3N#T.F3^U:N>#KP-&LMC:5J\@Q 7FV(O3ZNW#">L*T\+>? M+6#_8I<[AO CWZ""8=$/=G/G)?]&V>(S@$*NW<.FT?FTY@P(RL?R(@:[#NS9 M%83-H_LH;A"\V26GEHCK>I.B03I9\U=.<4IM-06.2CM6IR6FXGXE-M993G,F M:XW\6A(?LFAEQTH$9L^LUAYOQ6)TVQ*PU4F/HBYP!5S7.N_O_"(66=N\#K)9/BDB(6 -T M-'4 882/VBF= NS0<%R_/P? GQ3^F MT-*WI>C6KG.-B[YD:6=G:)"]>CO^Z76#ZR?JA!&GRAG4E6&_O#M1P\=4*TL@ M7^+Y<"LXH0F76Y',ABVG&>.?9%"'_4GP'Q,4Y221AN5.VFY'AXAUNYDD$-"M MWCZRXGSB]@H]AMG@/**RW+4 M_,<9\+T(6"GXD^2_2)+=,-:LXVPKR&O6+?BN$(9"/MSGNA^N17K/3F5^T\P)_^6(#MSM33;(LD[[9#&92H! MVV9W]60L7J,INJ$'QMKR;]L/9"_HR(&8D6.=-*@*.)<-%9V&BFLN30_)Y+.JN M]*JIMGW25=ZLRNS;L>K,?2QM75BE3:ES:$=A$;-V>S4I=;D>2^'F/2O$94D4 MD9@UI#S;-L=N?<,D@4?*;Z.G&AEW\)=(82/D#%^9$H;P@!'4MO2KBK'1XT&Q\,>8 MP#/@.4\>2C+PZ@"#8,;TJ-@_OII"BPU'3<5A]-N9TG@G2\O+LP)N1HVKU;KG M?NZH>D5,=+VC0G!&@_1:DP<:?Q/4/.PUII#60FZ*==4=IZ6*EY"X\/O./F8+ M(27$9%![GG=O63,+552A9$!Y/J8K_*V=0KY02]>5 C#3R?^L+V< M^7J/ER*@DF:NR%,1/0QGJ+VEH M\CF2A3.0#U=BW(,;YF$L7N7@$)3E]=,QS M0!KM,R# %<5F?/K).NU:4XO3SG_E<*MD M9JAX]GJ"-RL<7IG<@7'KU)H5LT#8I?*^?C CMVZHXS[3XL+ISK YY?IN"7'? MV9Y[T/Z>8$Q?\)6)"#^9$/&=NBCX6\@E,'^Y+@!*URC[X;A9EJH.4[H='/?HGDJ\4[(+;(Q7N"AW M7Y[)XA\\]2(@VK7(78E)\/4JL;IF8F9.FV!S*N<8IAA/VRU6.=PMI=/%$1B7RM?NO/^0L(NO>-X^I-=A0.:HNG1,3;WNSE-RCO#>=.E@LMKAD:8<(7Y^HJ#.L7=, MU'JI49TU+Y\Q*8FK)2(GS:QIGERA1R* MN<(S>5SJZ]<"?1"Z\N%M%*,XI1- MV+_H6TF@3"B7R;GM(ME,([^V?T37EU..MEYR&W\:WHGGXH2,_\0&Q9?*%L-D MMFI^RM:.S4G353WY0D#=UE]Q(5Y+/IO#>KKU(LCX"UG>L4T#OC]XF==:[9OT M8WDXX6T,0EG"/#5SP6?XU77"VG_TC'6>"G_[Y;Y?5MP)IBND>E[T!-^]&4XS M7X&!D(C$#F^FR1I].+75.\NWBZO$<0;5'Q3N?"1_IRD36SA &>-'*N[:>0:P M;SJ74U$<.5D7VEITAK<-7")4%8Y"V MYFC.JN6]L9R)9N/2EX:68P8+GP9;FCULPLWN!NHVX1$O2SH["G8984]:$F$7=SS,1/UI 8/P+N&6S MW[]W!C" QL\P&?C!1.TZ=T.[116W>0&2*(YOE="!DXKZE&4ZZVQ0&2L[@#H# M_..Z/+PB?R;;3+M*I+^=X-GYI1VD'5J7CTG)/%+GR2SC6]X.Q#DR18H;T^'D M,?C/G"U>EQ\T1D:5V9E6U]%\VGP5TA'X//7;C\K!?C3@#"&2IBB$2F,B\9^+ MQ*@<9.L*U\ALYRN/=)AB!SF5"5/+;DNQ[V?0W/]/7A4G_/83Q.; N]F6+LQ8 MZI7E%B$L75GC!A@JHEA8^10LN-TE2J(_,UU5&WE,](OK81[.@;&W^P-8+)_> M,9W&/J;8X,B>>,.!37?S0R(='T'PQ^7"U5X]8Q90H"L6:C".L\QL-W4]3466 M/E0+0FPALW:%>-V2:"AD=@!>?;!8MTP/+'X^/=\GR-%;; M>NKA)T[4$9NQ"K?U%9@#B31*3+(?$6$VOJF(W@(V[?#B:WH2%4C0.9UP34\[ ML61!?W74N-_Q M/(3;I% L"G47-P<3-9G7^!!%?;M!QHV/86 -SX+=:L#F"=EK8Q83BT!SQ40\ M+YEX'-/L0O;I+SOFHSV\V; ED:'UI1? D_NCV=A.?,O MZ3JK"+V8SWDF<)FCY!;S\S=6+%'*5Y-Y]Y<)9_^1@_?2+ M1BOOUK:=D@SWIFF5#_Q)A5K%>'M8O,WZ[Q*9DX:EH_)]G458K#DO-'ZQ8)2A M,0Y_WKB;4GA+4//&G,_[68=>B!ZR6H02IYK>V\J%U88C6QC1+U4\!XQIU!H' MQ%L"^*[1[S3[N'[5%A78XG4B)/Q !;N,'TEDI0FH26?4 T4U)G!"6:>MMDJ: M*@6FY/:68C&#O!9J;[@>\A S]Q$2?=?NQ+V-'4=!@G%27LCB.2')+E$5VURK M;3$;X:M1LV74)D2-5R(AU)YE9"P,O_ BH#*:)\--JFVJ\5HJRCX8891ZT:HV M\5Y%=:)VPU-H%?['X8.73&9]BVIL/_JDTJZ!SJ@E%IP^)JU%.#33@N3:2KD2]X \I3!L)U M)DM%1-"UHYQ?Y?@IS.N4.1!K/XE/IM_YT%?&?I%5?C.=/[2>?& I3P#:?F$WB$$I <(17JO @H"*AVD M0^@U5)'>)/30I">@(5+"\?_IO/-[SIF'F?<]<\X['9U"%GM*F=H9,6,MQ]\(SB"A"9CE._ BC+ M]'#@@/ K .KG/Z?VW%1QS:M5--",;032+=:K_,!C?CL1(D=>X)3O:%KP38\M M-)ZL>E]5W+.'@Q;V9/UWJQOE'C*H29"-9ZO?.W.8Q]:!/;\0X/F/W?S'A#$N M"A/V$@?YVY[)G:1KE2!%>S3.C)(L#2.#L?Q,!US&QA]I0V_)>CR)/S$Q<>M; M(0++L4__7N"@WS$TD7B/-SOX9:AFW>A"C( 'Z4;JCI5\HM#&.5F$Y_W2;>/Z MV_&'W?!"2?\Y\?=B<7GJF,@4JO(OSA+(RIPG]V3*U0G[>]EH4Q9I%"JD 2=N M__HE[;RQ_^?R&-J_L$TPET]U+GLRDP;WB'][^YK*K.O7&84/UF MT<$)%2(2_"]5^"OK^ J0T'G7!7]K$2>V*VUZB@SJ+,N11ATR2UP!'/JY4@V: MO+L7XS9/!KND#F(!>7@6PS6^2_JC6\&KQPM7@+C\_YPH&\,LC]+CR@5:P'YR MQ"V1$RPR(0.O_;S.P4T]E/E6]BU&(<.V(9ZCQ/K;!TS)%]SC%\;L,?0FLX6E M0E&\:27.' Z-U=//JR@PIF9^D!KNU(>,WVE3?Y@*CW01GUZ#)$W#5SC:G,^N M %$7XF#TN:8.VJX=1)4RJW%E@:1X8Y6$ 5FDRXP M*9?F5#!ZS.G_+3A M)C#H"3EI?DS'ZQ$!%PWU!K57H,867/::#,<=X4A7H'*Q HHA;I3%-I.LD54B M8[3'\U1!7B$+L/V?!?2?GV$6]6X].Y.220-X#J_DYSJ9K^(CZ0 VG-OY-Q[[ M>X)\.N^TL0:BAH!/W%"!0FZTJMR*9]9F7#EF>J(/7VR_>4TEO3I.3'V=9NA^ M889^T=BR] 5:K@ZNH)/(?AUM5K3W7#?2B3CH%?5-K/@PK@X;BYZ+^G5 8ES3 M.M702;FB#FLT28<7D[%ZP^NRUBZ:?FSY7HY.QBJ\ZDLB<[QQ=(VPNE"E]2M M2!N8/00NQU.=]&I.8*V];DI(B!OT)?6A+1$A^QMJ0&X4J?, ^#FZK@#T MOY+N+B__ "%W_0W*[>,$SESK;.X7]O3WAB?S)WU0UPTEW1FE!-A< ?ZUDG?$ M-SOO!#U9P7'WG9%$>,FROI@1'S&?W,5+S'FG%1I'?W),2;&G^6YN[Y3F8O6D MP33#%-#%\&^\MQ5T'S_I>0%$9X;_=@+>!_J>H89X6NRK?+$/!T@YM MO?!790+(47_/S_J!">[+HT=>/*]&)X5?\!7L27K^=*O4DFNNU"SZJA/S6E[@ MUH$0N80IN\_;L&>,G?\2>TR^_LZ[*P"AF'RTC__S,0EXQH31#J/H5YZE%RCQ M1/5J?1VCU,F0KGNB@$5"RJ/^)#IC: !BYPIP*S%;,JYAZ:69](!V5.\-+6F] MQ(>\ 2G09%&_ &ZK,$#@AM"XG#-@]GJIC,S&UB9"9%[,U!]1L.8PR)#?5;+( M#7RF+/$^4U+>@9S-6L(8*6',C(?V]W[+L&9H%QWHO,V-%HZ%D>8/VV#?852* MY7)=7^"-ZFGGQSQLN9U64H@7;6U\//MO$3M< TA&07*7Y1T<..VN,VQ[(2Y) M!7-G-)/>U<5R6D=2+/76E&?(@EY--Z28"/O\S^ Y,IF2W)2C,N])Q'%>+ MFN<+9)]Z=;M:('M049^Y7^KFEU2IKD\4_VB4_Y@H;+W\TL%D%%A\P"X[SG4N M*J+5@7]2DWE$..;"=F:3-0G'#:]J#@N:'U(S.IZ8[! 9X&W;%.%]B3/+GOW: MA-._KA.C%N9YKH-C[3YSB'*M^ W2>#5#CNYI.O&%+AO':HH^IHU\ MXA=0_RD;E/#HWTWXLD4,T*=8U@*^&D$B9KS>X M=]X.XL>==+/+H _#"J'"B*R^S.@J]N&7[6T8V;Z"[,FE+4\QS>)O--:2A.!F M>:%G0UW$G=?(J-E-CMM ,: 68\1AP\$CZCOOPX8*5*%5C^ZV1@-"U : (6K; M-YJ.F/"3RY1H?(BW&;_A%%")LJ/"KLB"'/3[QG?3E_=.3$,6A;__.*J/3ZPG MR+^&U9K)KD(2KC5DI(%+Q]83J 3E?@YR-H&GR?DRW'FI@L/1@3*S'348[6X\ M1]LDQ%OXMI./)$NUDA7;J5K1AA0!F>TQ4S7@=/ 35?"_RQH\Q^5GF*#G)W@Q M2E 1T?.V =0N=.OHR/#TX&:1R#H.]^DY61Y8IIU"$<6V;]$<14^-;]@;G M+W32Z:0M+[HU2WB\%F7!89B!@=9@4A/HY.Z*!GZB 3T]F^55US >*=F9-VQ% M_N0U=P(=].[FMF-:A'7!*Z*C?ZW;)%(8J#E-??8(YE:TTW&G8>J&UF6%77E@ MIWISQ+&DJM>$HF8Y/S]7O.5!-V31:1D&05/EK>W)^FSWLP"E9=?;?$ZK?$*E MC$78"'/+P_(T -^O142[Y!9(P[7]EK$XL;TJ&I,=M[7R)H$COH[.L5^L(2+_QY%>@;)4^J\[@GYNVQ#Q/ MN@9OVL8"OEV/ #4LXE@T8(\L[I:U[AS9-S[IHAX=_4'.>-XW:%'AGBN!:\>P M]BP_0<.CP*O"E.;"T1N.+D7-&+->:K88MVTU7N6ICP^(S!0,7%;I&'D 5%'_ M6D&5MT&7A6VZ^2#)B'8<7ZQYK!AI6) MK6#UK\$J\ZDVYT9SX Q0T!.,!96#C:HJ"NE<&5])/1J)IRPTM4ST+QW[&]GS M7R-7J7\) 2[\KUU6F=]]!:"Y$,20(;?6>Y:Y)]M4B>I#'VY.5MDT&WV,C[ . M7UT-"T.VL)RX :X 0^:XO^;5K'[EDH>>8$?L__GH:&NE7O@B3?0*8%7!> 5X M"6_8$1^Y4$(__^M#[WM_6G1F;/FK6&\78G,V_=#J%$-BKKG.TG3LXFLI;YF9 M/E&EQO[U,S@].?Z_"F)E?>SBQKC\'T/5BT<<=ZX $VZ8;3R!(\=%^2?J5U_: M.O%WJ&.O #\;<2=7 $ ]-5[_+[^01?4%_P)=^/W5>"8D5X!'/PFG'U0)7P$B ME%"=9X)XX!6@2_"OMT_W"N[YC+&X9+@"L >O,KR] GQK ?PFXQ_^"^U7N"I\ M7'"2/)K\V15@\Z\C+H$9_BV\SH$\'-&GX./*$"D.>GPO!P70!B6K:3JM&H-? M*7DY=_LRNT\Z_LF135H#G669; C \"/T"$]:LZ:E:S3I37T+EZ0[GCM+'A?P MOJ%"U6!ZUIU;\9M._C1D6:1#UY;XT4*_BH[:J<4U[IP.37)QV[?;A$>Z/O?1 MG'A"P*OVUML%+7)593O)?4R13WOHP3M+"P]&VC_FO7\ >%!Y@LBKGNLY(@8,%(=\GTE\S9%N2C.+]5?9:,XYF__!SOT/-HT@!Y4TOZZ*.>T/ MU.X+XIOZ*I[ L(Z813Z72 /F6@^F+:ISV3&]CK#7F?X%I/HMOD((4T /]"4X M]"X33USP!1<[L]PI2J>0[J]RMX:PD[P/O1<[^6HGAG&3*FJ3F[O"]9\YD?_/ M; \\)27[R$P293VK:&R8'MHOL;XA=C9BUIG@]C)17/9@9S[7='E]_B?>(;, M,P_(@CMQ^6L07Q!Z*:(JTGK\T&!V2[)YW/LGR0]Q&/[,/7->Z_ C3^>PD;5]<./!IWAEI&"N_QEV#CMV]G<-R4\+- M$3OL8;G\-'V+BK,KZ(9EQM<13ZP:AKUT;81:.\YH,C]W"N$_FB/#\5A%Z,CU MP/65RHTK0*FNZZXZPK*4S(]PMO,:UX!0O\R]");O94UB<=Y&O%E9 F/]\YUF M32)Z4Y0I3(QJO.D:6C*#))-2%$9)F88&)X-M.YE^XJDF89)W\6&>1*=17@GD M)FU9?FW#A#:BFEOSQ:G/6Q'5B'J0FL&?CH, R?\LN_Q_8&V-G5U M;?G?1U*RBM=ETJH'N+QS$1P?ZBCVZX42BN.@K@2IDO)<[-+G\$QHGX0&W<_E.8>Z);I'<6M!Q># MW7J+>GXO"GL.;][6NQ!'R_3EHT[? E7]UMPH"&<+1*^A6 E/I"^VN>=IND M^;V.)CG=9-"P\,/C!4[84*@L6*G/@K"BP1X'*9J/+D2O1/(U@'F"V0)F:IP@1P<6-KK<[0;P.-%(YE)6TL?27OA;J,ZB"'>%D9?5EAKR6;.>GJ^H5[$[#.V*$4R&D^SX.N - T:@(5B3M_" M(/G05D2+=O@GD/'A#R@0W/AJ!TL[3*VT8RSRQ8?9A?V[I"G"XF?L>/\9R M!8BUJY5[,'VP&GH%Z*6#9H/BGG?D,FI&KY/:$+5]IOUPS[)6+,I*F"XYA(UJ M['KY"..H,^A<:QV#0SV-0E&!A+VJO;DL9J['?G%ML[6@9>22FOY[GE GC<'6 M;QFZ]0>/%CIOPD@PK!JXS'5Y!IA:%.+88A>>D2$-.Z/Z+-B#<"+\OD=1?K]> M*LT;49.BPF3IHM4,N4[!4[!21^71M=WVK7!DIVM#7P31SWC[>1LUQ"W$1'XN M)(^)GWMRORIUPA2VOWFW,(G=GAED#R(QON)[Q1\"L86@NTZ*W&P;4T M4$[$I42]/CJ@P!0;6GK'H0@CS:V'^C[: JM/CJ[32:R#?_S=WF,8=UK/3O#G MRJ(@9M75^CS8%_'VU^2:>?QR.IPY/Y;P(R T'T+X-JX1U1EGFS6E-043+KI0 MA 0<[!]7YKOS&+A_>9[R)X#"Q>(#<#1VN/IP4=;S>AGYQH@UP>CWE3L9%B,D M_5\F%.\Q^&LN:KXY=NYT:T[T$%;\PJ1X"QN9L''_O?K;1ALMR+D8;DX_#J'] MU;D%9C%_!J_PQR:4CI4TM#&:Z/=]=&Q\K< ZNFS;/91B2*9&!(\_2[I.A49# M^;#*F,2WE497 ,>1OU2>9K;CG[Y>V5E" )$MH%5\+:.7^/20X%Q:6NV(67&_ MD(=,,C#8W.*:@F67WC#S"G -7>$?<6?S6N#^K.QW+>25&(9#,[$".#!JC,D" ME_WJ"A#^?C>S$1(@F8(*5'P ZUE(_)%A&=N,IP$,,%7F72]E;J@QA!TN;ZT< MS/3[H5B@MO:T8 -$\M7S$X/E0Q+JVT#0.XT/JY\Y:?Q#">B!Y*MNM[M1"YUW MH&.&4^*49OO]>1!POO&0&\3MEL<&_EC5P>?I$ ]!/<%B5O U^NT5(#'8)CA* MGA9H$8@R<\#3*969J_%D[N?>[X1'<0(D^MBZZ=W'R:9Q5>@5B[DIK?K)7Q;D MT&&$NS'KPPL9U+SY(G>\2W/L 6?.*825F0PV3W%7(WGN.CA)ZENIK8KWIB:' MZFK"9\1R_-K_20">X%,7WN&BLVJO:WKPVTVI9X:A. M^P0E,PQ?1(-VS.N=9?XT=71;UMV_GM8I9Z.EY5RCJ?E/2!=T3J P<=;Z4S5! MDMLU*TJX+RE<8OD)SK,8&J!<,\5EQG X>OYRRHV^,.WR T*P=?]F@K.R=.@N,4\?Q]C+@=Z))PE,8X^RR&L /UK M8^B!81-$<71#&B6G:]<6QD?B2?58_:ZM?-T5((8+%R$36*SF1J:%FL'$3,-V MB(O2R+VBD7[FYOU:$QN:6Z&T<+]@H?7Y:\'6K_+MN3 T3!.-#;,2WTH\WL'F M\H6J&":7RQ6ZBR6G?P_NJ0WY\U.A?S?T".N JQ&2RB=OLJ;X'#O*IWK)0$3(V]G<9P] M#$-5&="7)6>J5["!4@(UT9WSR8DG@[=Y*>/5_1_J3UQ[#IWRZE1C]X6\VN]6 M_E('2B/A"94KSKFP3K?&W)X'42DWS0WFU-F)V&W4(EZKLC+]_M5Y#46JW1-< MAVU>NP+00AE?I9YH/?EISC?[N[7F=L>.57OHUM-T.85,8EL!*F+ZU8\4IW]M M/HP@&+7">B$]"^&#QRX@L@I.&]5%'_O1'O"&WT(7W&Y1!J9T ;%?QZXA'_EG M@FT//'5PA2A^;&=#'D)ZMNGL"H#XBA:,S2G'=.J!1OL]H0X5NP:3 ZI18F)"99 M"@U"]WNX)Y0$#2\__LO&CQ80$HU9=[ZS=(:+59'M^39Z?N>9PG_[;(Z:>"[ MQ\/PJ-(*\:C&58V]ZIK,L"F/_IXK-FZ./5)K0F-+O4N-]UAD1SI*/<5T%" ! M7G6%O2[5S4Z,KK/19>6;P=!6.5?&]NKE#F'(!-$"+OU3! M(].JPM[+$#Y/WO?84MUR4G4CV>AH$7"F=#U8QE[F LE][3#R*';XZ8V]'BRC M6R'4TD^+(YW^N] 1=KOLLDB!AIN0H?CEOA(] 1/Q*'+G.G2=IW>9?J%4A0ON'2/J"%N- M*]\[I]280Y@0EWJ(8/RPU2^6V:L,[=]%!?"#,P/%?BQRZ4?:N-([S;M^ZT*V@AGPYI58SIQ%4_+(:-]!TWC_>$-/5">) M&?2T7YX2J%NL?=/?)\Y3]M>.>[-="F\#=)H3Z4?4S9G2[UQU'>F1O??7@RGM MW;YX-I=>/X;3_,U!GT3K:"BJS@^"))+;)BX?/ F-1ZLW$;F0&-RL[OJ5(#1Y M!3#%_?16KU"N]U>-FORV^<4'FK7K=#-2S*.\7=_PR#)PK6OTP?\NAWK]9WW\ M(VU_+^M^ "KSTFRWC_"-LJQP\3<",S!C7-R?+-MAJ5[(GV"(X?U\.CU MX7B5V'*P&QD <%BPW0[P>?=_P%$"_W?\OSB&X?N%,BZL\.(QNF(L6CRB)8") M63]CE%#@@S5@U6<[]0V1UPSE3 %C]?M*KD34/86'CXA-$S^R ([K+PO$P"ML M3GB6R0LIE);5(=U2\;2@P#J-L=\$Z2N-6K7:#17];%M7^L>C4OTYG0<$JWM5 M;-#,'HSYM],@MJF"Z=^:G0_B0-!UCU2N8)0WY\:#IP,\[/S?Y![#A#']S9A. MI6F8S%HK__U((X;AOC,]%!+$KZQ_4G%$TV'W)[Q546BR[E$RV=^@27BJW2 Q MS';8Z= T.< MZ>/+I]F-GJI9)%V%_O MP*J=ND4^(K1IPS4L4KV3+ MR;?*M=2GS.P-QZH1G?;4=YQRZ>&,TH+1&**.QC7-DD/8SRRU@Z_Y=:#J6@=. MZD?N]1SO_;?@XO+SF7U9>1%X[IW0+7)CF]H\530L1>W3@)W8%<#Y(ULHS>#R M"S[.>% I9U@HP:]23&)(B]K,R^:B!,%LRW9)]S_WZ^+=1A>WX6")%51FA"O, MJAQG)EYN<5#!VT^I@26&W8)L"7%[;&]N#]O$;]PH6'T\]MT=/VK.)4?5[@>3 M01FVYIDEZ<3^V&/A0U; YP,_#L++[>%$K.\<%]PY244XR)A1\O-U V M09V&'%FO(9"M;]'N$W*X6A=L]6/H4UF%KU51>71>>3$^<9$9U$$+S$?D:LT7H]K_B7&!]MJK*%?:PPED: MK-8#AJ(T(]2X(B?OL8B\ +=>6@7VO2_9J:]ZV\%??YGHQ1%UX :ACJ[O:\A8 M?Z&9;-FFYF;@)W"Q3#R?K\3^DF3LQ-(^1/90F\GQ\4Z-LPC8W\/I.)6[%=S4 MJYW8!%O%>POEHV1%-<:%Q%NS?]I,0E;!'X0)7>.?$VMN>#/]JLH6Z_QK 4QG M+MS7*AQTT.T9.6N;&*'/Y5IK.YN1^C616B*:T.-8$Y&1)P://A!R8L7W+0A@ MK*50CM7_>G=,IK(K965^0,"CATVMK,C!%I!X"VFX,QGRR-&"W05HLZI)38\S M1,AQ8V0;?B]BDXU_+"C1;W]S,$R)/QY@SMOPNY&(?R) M8\3["TO!C6,EICNG&<.R.>%UPWP?J+/O<:6GIZMH#S75W"S1G<#)=[>L1%;V M5Q3BQ+WVS,@1.D[^Q&$!);VU'\P= AK\;$0X!:J15LU#E*DB:H!Q^?K.B/HC M$ER5^=R!N#:%?*0P<5[ICDFXSI#OW>Y0J?6$YW0:J8R)1C]EP! MUMDS'=:.*)V3G?SA!7BN6DFL=&!"RY#7T$;,&UTH8"T=RG-C,5E$]2-.?DVN MDS$B2+@,YR-,;@S]0LRB&FF^^S!K>7T?0I\FP^4X_FT3:O#T%E.RT=O/3FOR M;%!Y1-;+_")OY,<&CO6"V_)@2<#G]Q#BO\Z&2U$'2^Y4C:_CN/.$ 7<=/M(0^#3 M>OX*RH<((AR_T"E1#Z3W_^O8[1JF& "GN1[?N#(D]*W+;'P0\(/\&BGFDV'M M2'8!?/>X]Q:ZLMA[W8R[%XOGFN&9/A+(SP39N FV=:C%^B;>2>#C?9K31<[T M^KNZS]QT$"DN-G@^8[UG MFU_*!C>DH_X\?W5DL1YU(_ 47%-SZL- M )\.[LO/]<*44*P;Q5C!WNT!L*]-\?+>8V72NKKFMJ?P&(3&?>O>DL64VDI, M4Z+[#V>\9-WXA6[QS\PWIL^%]BN%$[\L,$P217QY72MEJ23YD6Q-K0>NMB[' MN'X%"%M^/(OGW\U*AZ=F-C+ZP[,#"G#5RZHL/V>3H_OZ6A5?8@5K32$&U-L) M?3XS5T@]W/+#YP93[>+2(&$IL7=5X!(DZC_^BD13*<9/]I0 M_9>O%\AS1):7TFWB^*&\;2"OLJUZ.8X3;7] MC3"M65>OO>:"#$I%J8ML<-.D9"HM3;J2>1!Z4T3%)$1N*,Y\BG3R9\LC((U#=.(6_;N#+/X+)BA*:C7M-BK:O2Y;/FR+LT,)ZF)MIR](*1OR M(B^>>\U[_5P>2A?<\O[S/-]>@_39$$GZ X?8.8V9KQN&'^Z132%8GN?SO-%(&=#8 M]%Z9/^KU8>?&$&%3/AF;.G*XH"_/H/[,UI&"VOO5PW>_VZG?JLB(>0LC?B " M_43MCD[JMR#'(5Y,_V9R6Y_:_^H=D,,Z-LT;RY/K" *+O6"+5-DMYDSY86C( MVUBLS-U_BBV]]R)COT(DM+9#@HMY+9N;L'2P#Z;I=RZ,PU3<[V AFDE/[R^L M6J2F^.F;99SZX,B,G:UA0Z3KTP-;Z["_;59 ^O1,M4O[CA,' XP:Q3C^J7.B M3K @K"OJTG[2+=$-\2O90MUJSRWJ9J MD IZU.?7V9_#:( ;.Y>!UJE/B U!?@>:?P.#P/S;:@O^P_5VM7J$C9S;G^]L M49]+0=^#SPR*G:R3*-//U'[ M8B3[.JEPMDX?6LU>K#ACD;QB.]SONMU%[VA+;K/JT7A.G[/L&)I.Y7![3PL: M\\04J]Q^2,FR[IGHIY.2-F[?83[500HMVGN&-D_N $S]8ATAT9EDU9D+6B'( M? WRLQ51*_EP'V#])R4LC8M5.FO;YC*WX[XSGF6\GG'B\R35VS5*)03J6$N% M-Q'OT%*??B/\?L9#.I+71CJY&,S^9Q7$B6XI!'"'\OPZR/&6G(;HE\ M>ZO4$2"N,,7B.YV#<[2QT3IG\F,_;G@=QCZJ1,E7O+*N>!%A7WAH&[ESU_*5 MB&9RD$Z(MESZL=X5H&X[_GGCO M/H&(.ON-M'3.5*I-$^G_LI@.71QDGU)1CH3[[:*@J8963_=B"^1*E_0P6&0P'_-:^74P*]1' M1K\Y,%@39)\V9)RP846^+D.PE/!C^RZX-]CNP]I<$:ZB;*=%$!Y3Y,SR@P&. M]>P34X5\=>X%\O2^/&QE*I$]R3J15<4:8R!)H7*L2$21Z:#7&*6IXUENYN>1 MPH(XWX?Q?_J.+#/N%7"I>+%;7[3Z4L0"SFJIHUNTL8G-X*"1+T7I7AD)WJ5# M;(\7ZQ1KMWB%!\G4I ";H'B*V5YSSLGM2'6;Z:\;L0]2?;USR H@.8DOH;H- MU?YL'!I_P,J7'V#JC EBI-YF(I3:S^LP9D6E4IWMB0>Y2,$;FB*C&E7OE_UT M3NGSVNO)@J,Z[:L8G,XL0@Y8R$$!?@<%$VT@5WN#):N[:RT-#Q3^Q.*QG%( MTUPY$\!9K#R-DZ>SAU/-KH%;27^H:KWQ^+>R9URQ#IR681]]*X--<>VK*U3S M.Z>^N?>J)>;.PDU,Z;I%OE=X\BW%OQN5]@92_3[)2#D7AU9.H5Q;/4N0N_X- M[Y#+I65*T):*B)R$7L8G3Q-);!L"+B+<275Y^V@C=4-*]<4XYO?Z#9"0<*VU MQD#A%S->H!\NXD63*SK!=;?7C7Y1CRI[ M*&7UJRH=)GHNL#M[FJ'KW,$VQ2MG&#LRK#:A9JXY/)E+>7"3X;:3*&T@BSWE%H[LE MP>_9SQA"A+\MR[NZO18H?J0Q]?!0K%DUE2G9;BF9+40N73CJPN$++K_'P)QW MJN&6W7B58,8AZQPDVMHJ>OOX%HML.)WX:2RKWD>@ M76%C>ZR""T=KZ):(84[34#\_O!VGBV(=FP_HP=-&:29.F4Q^F3+94Q55X6YE MF.P_ 1WIUM&5/1YZ^B?R4/39W2M 7) H+KBGI3A<[.?PGF_NPU:PF;2L1( ' MTR/1ML*"=$;K""FD)MTS0%IL.T84E?$6G8_P->EO])#HRK6>5^()=OKHJB]G M(B.TS\"\U:;]5P,0-/P$.JPN!1TAL":0].+8WQ"W\\=#M^%I8'='F]C[2(T, M$>K'7VW+/E"1]CMS($57\V+;P*A@!E.G7)8&C"T[Y\17 1>A2M?/X3]3%TS5 M>8KIV [>J14P=(R%+??4UN\1B]D;9X)>? MI"XG]@?85_4D.&Z+@0IF-ELRS^_-O6P_IVF9MHM]4/F^OY8XHC'GF]*JP\UD MZ(#X2?O*_OPZ>>3T132D(LT<(U?E]M7>^WL+Y?[/0P42F6_<#TPWF#T4^A_U M'755T3MVTC6XT5T!>AZ"4>T$O\MWN-!'2,MGUEG?9A]4ZJDIWD@@_/Q:B2CM M$;4&X+3SYH4A^C01QK]VX+-\X/6CXBEI:D5(;9C MG3,_7]P"S](S%6D*L.I\I&"Z.@<+MC^Z7515L#(_C]PYR\*M&,P(>>MER,NZ M" D(K<7$48%.4WLT?/K=^P !61<.Z/H\&E#/DY4!P45_/63;W,3(;1,%>EW5 MVP5)G?R\.WJK\392W"$!@O(Z]3-?4:TUS9''LSKOMQN3U1)EE:@H878V?Z51 MY=9OEI.U"P,);!#I%2#<'V4F8P0/W7[=IKGG%XZ!SYG>4;43I?[0R!_!)'BT M4O=?'DM[-8^X**5JQUY8YG5'TUNL<9\8PQ$7%#\-7[!R^O#AS]L;ZZ[/(+TA M_NW_L[_S^U\Q_"0/%%"7;MTPM3.C"WF17-8@V'/8E"W[+>"3-K\Z$E; MZ/ =:^)-;O$]\5'<41?2MU>64JQ"9UO3MB44S>I+MK"68OM2#>BJD^<,P 3C M7O[N) !!K8]>8_B2O/4Z9[9C-3EH'5NLE\;8##R^62LWA++QW[E)PSPLM$P@ M7KJ6A.Q4QSA$<,_4']"!%H9;]R#RVE/[#:R@-&\!S(<[FOGI,>GZPP+9&@<[ M(_Z&B1TL.Q8TQ1-VT\4=C6GJ3:E;\_M")DN(-F%2F;DM)F.FT$*UIYP84PW\ M=Q/Z!,\ /Q0'C3,[MV]]0##MV/VRY?G+]X-6Q]AG-1+ >041EP)LN]>3P& G,$>4,,G.-1G"YW"JJ!7 MDGZU[@DZ]+$+-$OG?I!++S.%?V;5*E$22'BX/$)[#&^U>TTM"""08,)K_$JB MA)(-=PVAP#F/32W,P(9)I8NJWH_>\FSQ:)4IAI0]!^^%:D^& (]Z@QORPB_D MU\H3WO3Q((.18GLRH!B^V%NNKL+WZ J"7.(9'D?[RD@!+$]1M=[!"_(]+;Z( M$=&^:N.*S<+IS!I-IAF7=:/EZ;*K:^*]6-[411S]L@\/?A MD[/GO1T/,K"C_5< K6P=\,]E%!:)60^(WA"DU2/ZG.26ROV F)$P%K""INXO M#XY>%IL5T^)_WG;.D$Y4,,?R=5*EQGX+*1.=KBL3@\0!WZ@V52K+NU"3J&/D M3KKCPF0[2B5B><\AG=GW-W3<, MGN(6^*F[RDE'DT=$/9AM4I7>O41%YFY!ECAKM9S+KTKS.6P,1JNXG])^H)>_ MQ#'+)\^_VXLH=#(04Y0I./PPQZ_;EH*)SD/B(\5<8>=^U6IIFVBAHZY$L7CB MA[5I]$B-I(*MIA=T6DZV: )[4 MQ16+142+2H!JO3S/FR^M 5J/ M3K2FX<9VY\O3"):[/X$,MV5KIE8;I+#!_=F((\&F 1W2K)!'9BMR(7[I%7'\A>?X&RM'[L'2PIE:5.%NH MU!%^FG'Z>K$WM4#9Y&E.%BFY)@/=JX)(^:6G^S".Z;*JJT=9^\OH]T9!$ M WW3;9WEO9BECU(5*B0;G,2?J23DF+8.]JN]<#OO1_Q%P11,%E>61^M]!:"; M__%S3N+,-0:*I2P=$0@0XGU5$/[,UP87F"I RHP6C.<%%\WUDA5L>'3^%-/6+SM\/&;CM.-.#M3N[K@Q!:,4:N;] M>$KEG:"HI;%^0$?26TE/TT;82":]<3Y+G(0VU)Z"0>Q0H*7@7G;.O!>2JNIU M,T<,CF)3[F\?QH?322$E"$4'=32)'C%M$-[&NF.JXMJ\\NB7 MG%+ZBHH$5R.XWF:(\1##&-URFGERPP#^OSWD6'$0F[7;51)IP<&.9\OU9YL+ MAPE#'V;%O2/(]DK^YX?>:-WT?=RFJU+;NUK.':(?]9FD0BX6 M$#DYNMQ#%(F\=;!FGM+[5B_H1M&_'!7R?\?_-^-J_K\!4$L#!!0 ( #N" M6UA)BYK'(A$ #Z" 9 <&1F#$P9# V+FAT;>U= M>U/;2!+_*G-<[2VILN4'A@23I"HAY):JA*3 J=3]M366QO9L9(UN)&%\G_ZZ M>V;TL 48 F&-326 I=$\>KI__1SQ^A_-YDDTX9$O O;'X/,G%B@_FXHH9;X6 M/(6K,YE.V$#%,8_89Z&U#$/V7LM@+!CKM+U]K]/M>NUF\^UKZ.O8/J2B/NNV MNB];W7:WQ]H'_4Z[O]]C7S^SW6^#XQ?4^L.7X\%_OIZ88;]^>__I])CM-%NM M[WO'K=:'P0=SH^>U.VR@>93(5*J(AZW6R=D.VYFD:=QOM6:SF3?;\Y0>MP;G MK4DZ#7NM4*E$>$$:[+Q]C5?@N^#!V]=3D7+F3[A.1/IFY]O@8_,5M$AE&HJW MKUONIVD[5,'\[>M 7K(DG8?BSZ'-57,F@W0" MRVW_=A3S()#1N!F*4=KO=+R7!\4U+<>3XJ(RB^MK$?)47@KL_8:QI_!A(JB' M'NP 7"F-"H_&[L&1BM+FB$]E..__/I!3D; S,6/G:LJCWQOF"OQ,A):CWX^H M=2+_)_J=+O09RDBX83I>Y_#(3F.HTE1-^S01"7O0[\NQ)7G7;0/FBW.]Y?\7B'\1#V[-^:QQ/I M[[CU!3*)0S[ORX@F.PR5_^/(3KG[TGN)I#&3*RA?FO[R?-S,#3V[[4/O\*79 M;"2.&W:A*V!_[*RRL_;:\@#B*FW*"*AA*/8_^G#5[QP-N?]CK%46!?W91*9$ MFQ:.6AW;+;FRUDY\=91O0CXH'R8JS*"G$G>X\=K0_;_^^:K;[AW5C0*[QM,^ M+:7*Q@^ZKE;\R+Q*-]FAMP>,P [@OY7<8>V@[[3D(0SQAP@O12I]CL,!\#3+ M8\[,($,5!M#3N^/CDT\GY^\&IU_.V+M_GY^$##F*ZJV.""M^[ M73[T]GL6H R9'V@BM'O-).:^Z,=:-&<@C#@[]_6PBSX9C82/K/7 _7X _=1_ MX#[_+']1U\C92^K!#P77\$PZ.5K4%'7 ^$B209+*0SF.^CY(J]!.5FIEH[Q0 M>C(0OM(<)]OT5:AT_Y]M^EJZBP/W0>J%QM^6;M,@?0 H27+D^R(4YA9[-]9" MH V2D_*)2%%!Q-NH<8?U7LI$#F4HT[G3C!:,]XX>%AK;MZSZKRQ)Y6A^V[(K MHL'.N-9J]CO-N7/0/KK?]Q7 *1^I1N0&?YQ>L'KT74++&]? =M.)8$C];OLH MYSSZW#EZP63"B#/ II51JAA/F!K]Y-R7\?S&&>+\"C1$_&JPX9SQ*&!#DQ+*\6^_SZX2.[0+L!N#9IL-/(]QJ,LP^ 3/"48,#1 ML67J2I_':@HNPMSUY;$G966K[-W_.[%UQUN%@5FMW713OQ_$2$:$\XG'!D"Y MD0K!.@;;B@7%+99,.+A8/([#.;30##_%&1 ] 6(1P+!T GR9,VO_:4G]*U%C ME[]8<5>R%>;RJQ3:R24IL^P.1/)R45WJR$H8FPJP2AA*H/+]3&L!3CR $\CJ M,3CT8_K]&,;0*@1_G"$GC5)BGD4\,3Z^%DD,%QF@W#%Z;@!YA!/))O'7<$WX MRVZQC-P6WY.]EOIQW.60I\H*ENGXPN,%I[G'04\2II'>9!?(;,"#W=WQ"VR, M+-AM=SKL(@7/!74,\#5RX]>0@U:!ASD 6R""IU8COY3W_'7AO3)+W)?ORGU4 M$0V,"";^FX%US#C9*6/-(PPJ C AXRP8+V@+X65K?S38;"+@LV9)YD^J',:FS'=1S)CWHL()#M--DDTU]'LN*MDGJD4[8 D!2\ M;5(0)K SX1P M830J-%%SRNSE0H;2J$A7%I=<2*&D4NNT;H-B!:5&^;QBH* O16("%/-FR&>) M:;TK5UD7"(Q/P0?CRXR!E!I(K$$T>6+%V$0_4/+\D,MI0I"$X# %BHO$UW*( M*KYB&&R2E*V+)7ER!= HV(!?B3O+V:GA44$8;C :^,)*'K"++\"&(R98-!C+ M.JLJ*FRFLA!M0\#ZX5_6&:91S$13?@5 CY$8ZK@BR;W#PT.G<$XQ9!C!A,]Q M>AGR8$"LVSE\==!@A7]3B: 5U'!!--*"T=("*E5Z&@M1RE4C%_!O& M%H#%:_%Z\%4:"PH.0K,-P1\1%L#J<"1$#0/VL,J8M5-&BD+[%>96SXT MJ 0_S!+T70A\I3&$LEA%MQ)C,=)H(I0W/6&&'64ZDLG$\4!Y7<1G,D)8-A/% M7EQ]28)2L/C$E,^!TCQ1$1A(#HXJC6P!P"PD6([R#.+40M4&2 ';LN[A, 3OMDVR+^T>\H^.XVB#)@G#\! M8[+!R*9LL*G08Z$;"*"T8*( W)4 ^N9#;BJCI@"]G,.$ C@?YRZCT&2$+E@5 M5L,EH/0!OZ((]6Z4Q[/H,A"?5%)5:^7F2*Y^2H/(O&,^3(K@OZ4MS'F3Y&A= M_,KKO)[[R].@RFO.,:+:K5S++>IN8&1AE*9A9' DP0VU#.EL:#5JV"PS&)K M M^4P2P4^&XA+$$&KS;%_O+S&8=K>(^G3SS+Q11CR2*@L85\Q M$)&8U//FH,*Z:-+@:B%": "E(/]V< M(-#H INER2G.AB)A*?4S4=.\C0UL8Z(=\1)T M.$R$YABEL.2"X$6.RBGP@JJUL\US5BO-$AUO5WT#,Q0\^&_&-=#2QM?PF:4> MC 54S(RG:&A8GQY[/)Y(,6(?P96*?.2P+Z,1]* W"2;6Q7CXSE&V[@X3)@R= MY(&<>@28JH!$L<%FG$)G"FWI! ],C"GPD0=53$O?6LG46E=:8]E<$=58A!;8 M[B(ZNQ24H:@QA7NR=*(T, _,Q/#D@MBP765#7CRJZ^L%K=U.#_JT$;(89&;N MXLA#+3C(-IHZBOI?B*7;2)"+SV.CFXAI%Z5* Y6C,XD,"/EX3C0S"X?<]:/D MZR9/X9I6%/^T] AW"3Q79=H]_>) O.Y5-W\4X8^*G8NL5X"V NY@VQMC%6Y ML!].RV5#K97@GD[R/$^=_)5E#'0[#E/* [NH[Q15B:X1 A+R#(T"$8BD2)T6 MHQ=%&@IS.V56-57SYOM$.](4AT@6-J144U^]X4X!+?!M>^$4T][B,29[),M> MJAS36CR&%8,QTD0 ^=&DT'2?AS,^3^Q!C)<'7N_E;T=#BES:8O_VTL&N7W-@ M[!<>#T/1=R=N5G:'[G+HR24K)XL2#"6707J2U-.H9AH;-(!F#58X-M%"C36)(L28,>8%)<&[TTWWX44:.(Q&_ MLBB/Q%*/SH&H> OYA^L1##P%QJG0U=39E8:H'\!Z-/DPAN%LGM]VJL44+$57 MU<:H&Y-SI9$VB3M':\*=X!^_2] AOY]#(FY),Y"Y84M&ZDXNE;C154Z4:DJL MDCN7]T:BUV5J<%KU"=^F)'] MM.L@/I13:=3+"S;DT0^=Q:D/J@> 'XLJ;/5>FG)_4JW7\\'TDJG21=)%*[2N M;" 0K3FCIT 8P0H,\YD0_3'5:FM7$U$]5RXP.TYR=Q/ MA@\"!;N'@H=Q_'KA=>)MQ!AC\UR6[)A2C-M42\7H%G'WR-:0FT*A-6/5?3P!F%+?]DK-_Z&B\*8)PW^9@['1W5L*5MO<4N'+3"]96 M#D(M&/R/?7CDGEMU^VL*EXT6RZ4TTH+Y,M2U+\%\0O!949(WW)8I@&P+/E7P ML=:V+3_IQ%>, GS,Q0C7F%+OY]4W16UU_A8IME[/BCCY3%R>AW!\GC%$;AVC M+4AN07(+DMOHT-%'K!'Z1.=#S_A4;#'Q>DS,'8W]E1P-"K8_4XJT*'7AJKF? M*EVSOEF5?:_W+,5E1>ST]KN;N_H#K_,<%,=]][[K]39X^9WGNOP[956>,?SE M1L+>:M'(KM?IK&LNA/Y&Q9=/W_ /?UPTV.G9L??8?RMFK8I0'C*CLT6=APA9 M/&/@N0UTU][H>C_OW^:WWS$5M/?*VW^U#71N46.+&EMOK0XSU]Y5PY#>K:BY M]=JV2+A%PBT2/FLD'. ;VM<$"O^&AQ>V8+G-!3UE+NCZ>=_IO4./_T*KGW][ M%9[\ONWE5:VA"N;P8Y).P[?_!U!+ P04 " [@EM8"PC+T&8$ D,P M&0 '!D9G,M,C R,S$R,S%X97@R,60P,2YH=&WM6VEOVS@0_2M_.I]_F=UPXOI#-)>8%U11P3'SO(O; M 1JD2N6AYY5EZ9;'KI")-[_W4I6Q$X\)48!+%!E,)T:B7P&3Z20#A5&<8EF M>CMXG%\Z(]U#4<5@.O':][IO),AZ.B%TA0JU9O!VD&&94.XHD8?'?J[&>J2G MFY_U>7)*2E2JW?5?C7-,".6)PV"APE-W-/HNDC1)-S)1NQ9*8%C1%1C=6UIC M!EB&D5#I^/D$/QJ9M^,6@BMG@3/*UN'^G&90H%LHT;W(,-\_JB7ZO0!)%_OC MJG=!OX%6K=U3\*0#SQ3,?_ MSHR_ N-A&1644"RIGD LT#TDM%":W&IGR&QU-*OW#X&JF*YPQ*#5$PE)0#JQ M8 SG!83MAVU+SO0$:0V 86ZL6W1F:8RKPP(OE6@%=5!4DD[H&"^Z@6,D6W$P M0!53=:AH]2!-4,O6SF;^88V$(AN&@%0TQJPA>::=9] H/=4ZMQ!LY@Y]-SBM MU6Q%YY9^H74NF"A;)-MKIY0X#R.=&K\ZI8;M;R-^TXZC0K"E@K%).\8JPY5B M(6065I_T:#CPCQS==-@!I$U.S:LB_VO7/24-)5X,@UVGC5N<@4D7%UQ_2:TW MJ>(EEW77+GU>2EH0&INU-JY]XK&0N9"X%DCT12:8TV_5===C"U;S]=[PS!_; ML$C/+;4 W)GNJB1]VN(,$!NPOH45)M@JK'LB[X;(>M?"?*5JM@[CF\"PX_B(4JL01T\)!BGJ28'J*9<(_0M2)6 M9.=92GF?G'MB-R;?G5]J3NM?U'J34:!W!<7H >2*QE#8L^,X!X9-4%J%?$_K MG=%ZAKG>D=J3HBMSK<*[)_/.R/PABS[: /0'D'K,VBJD>QKOC,:=FQO]GJ/G M]R_&[_XV1T]ARRE\AV.ZH'&?G'MF_V+,?GAW?VT#T)?2E.!9!73/XMVQ&#(: M"TZ6L1(2S2%.N6 B6:.#*R$!'Z)KFE%+'H)7%ENU%CW1?P*B=Q["V'.#KW\& MTY/]7Y-]CFF)N34DK\VU:B$L9[E756*W):X_22W]=M5MNBF_CG#\-9%BR8DI M%17@--=^IVR\/CG1J1OOB#;'-'*<@%/7'^.% M AGBE:"D6=#1R U.7HV;4O9:YE<5Q/7QC^H\R?1/4$L#!!0 ( #N"6U@. MP+8GJ , /T* 9 <&1F#(S9# Q+FAT;=46:W/: M./"O[-'II9W!;PC&4&8:,#VN"6' F_:9K/,\(C&L,?P=TMQ"+:;2E7$$E*%)X>F,H@$$5!.-Q1*5F> MPXUD<4H!+%/OZY9MZZ:F3<8H:]HR">Z!;=@#PS;M'IC7GF5Z_1ZL[N##0S#] M6%//[J?!7RN_4;MZN+E=3*&C&<8W9VH8LV#6('JZ:4$@"2^98H*3W##\908BA6(JIY.QW774V.^UIH?/E!QH;4XH\KAAC&DD)*FNID4B%])[ M9]:_%]B<<>KM>$QE!;U UTJ\4N0L1JW^8\9"IL!V,"?&1H@1*-[ 7CC]![K= M6%_Q7N1%'>-*T)Z5>,FGQ_YY.KU_6 :+Y1>8+]9W/R^BK_KF M/(C_5=#^WI6*)(!"^K4JP$J(P"X^CQHG4Z(%[2! FQ=B.J MIEC3E)6J)=@H+,55*2^Q',-OZNI5CX>*T\BW+'MAN"YM# MUQQV@?"XW=M]<_@11 *KV1PV(M]5!I1=6/!(KX[%3J*Q:#K:$M<-9DY#N2/R M"/:@"W63:6H@3T_>JIQ7961-GC"./8Z1'"/XY)5*/ZLR [M*1:ZDR$'LJ3PC M;[2BV"X<,A9E0(H"RW'C<%;"9\YW2+:NR9[\;)G:5_VM4N;_49]>376C-. & MAX+;V]4;:OUUG_X&9ZP_<7CIPA2I$B$Y(V^H_L6CJG4W8TZS9O)TD9!$WU,I ML"E<](ZS<>4Y(FO:3Y6C51?1VKTY.D_19B1J3\ZGI,OYJR IU4(<-[]K),$W M[)&]P/;33$>NJ]N]]Z-02&Q9[<1DUB-;,]?5@^+D7U!+ P04 " [@EM8 M)2>ZRJX( !".0 &0 '!D9G,M,C R,S$R,S%X97@S,60P,2YH=&WM6WMO MVS@2_RJ\%+M- -OR(VFS=AJ@S0/K[;8-NB[N[D]*I"Q>*%%+4G9\G_YF2,F1 M$G?CY-*TN5.!.A8Y)(M@ MV!_ND_ZK\: _/AB1BP]D]\OL9,]1GWXZF?WSXLPO>_'EW>_3$[+3#8*_CTZ" MX'1VZCOV>_T!F6F:&6&%RJ@,@K./.V0GL38?!\%RN>PM1SVEY\'L\RRG>,C;(%/3MGQ4'VS5?R MV(X/>H>'UTU:S)-UF_);&VLNJ14+CG/79HTDIWH<*IM,;BZP:61>C8M59KLQ M385=D=$ 5'<4A""H_ G8(M7_P7YOWW.) M@V_HS^D"9UH((T(AA5V-$\$8SV# SR\.A_W1Y"C @=^([0ALB^M[B//D[/-L M>CX]>3N;?OKXQ[>3Y[\*8T6\>GX2OA%0+FG5(Q#52 M$IM0.VZEN)%QUR0R6-B.!X?Y#<,?]'Y^,7C5G_C/*4GH@A/-%X(OP>O;1!A" MLZR@$AISI2T$ G*N= J1HON>J)A,54FJ"*6 H4Q#8864J,E#4BA29U06''4#4=E$?5$1) M"D]@,9+$-((F350J++'*T]TBR'C$C:%ZA20IO>2P;FU. VT,F($E)3HV7 ,) M(J$AU0 R2#X,<,*X)LM$1 DQ!7YQSC;Y2\>;&T@!PYO*B#E(4$@@ M<@IPX98SCI^(FH3$4BU-A4?-Y\)8R#0MH=CH^08N.W58E;S<8K8%UD. M=\ MUJRA!>1R\'IB2NB4P1NM7L6Q@,==L^=4-"54E$0X(#*4P"8Y MLA2<'CH^?&;"1%*9 L:A.]1*>E3D6D$E!,V&[ ((& =4>56?74'ED$'1\Q8\ MS>=" L5@1+N#@UWNN1@<,/_D'P6F>9E'(\Y/T!W50.I1@[QLO5#<6"B&A7"? M-Z$+%!B5V_QFBRQQE^[5\7?*#9""&EP NALC'8R-$2W,]D,P2(4<]%VNY,.> M*C1, !X&I8-^"ZAXYN;!7/7:X]6]IB_Z $!EW+L&0:?TJ-@IP/L!+T9)P5QI M;HK0""8@)<8-"!^=G1_/<*;"8,1T)F=<>'5N#@IJ8 A*9#YA9,M_=-6Z,5 M$+X0#$%(CX.TEAPZ M7W]5;B@O= Y8-2Y5B"*EF6/ I8ESGD$&( &RT,-SM 4D@138PQ)L1N3@;EM@ M;@',J ',LP65A?,NJ#4>QY"5B07(VVS(KM9Q?0MOZ1\W9UP.AS 0/)WQ:5VH M"OMU#K;QYW1-S3%GC>\N*$A89C9"ZAV?#N*JBJ-"HTUH0VS!KJHR%=CRZ@[E,!!/]64 ,A*EWOS(D!G"" MS[E!73(.M0=WE7;6/"W9\UPEU*PC/GHK!V;.G!MW\BA=[ KJZ4LNR[+[!GWG MOQ;1]P'P\\@B_[JJ.7B^Y@ WMP$NX!:\* &/33\Q?RU,C7^9R& M=6=611:YXGRO+5SN7[B\E9 2 ;$ !&$1B.5D)#CHNXRAZP)BR>DE!D6?(KFP MZ)([=\I7G9#<"T5EKN]+\ V>B3(8:/C:,7T5<65*"$, .I"Y=7QD-A"639'" M]D$Z;C-E0-AXEM1&W0=5%F\AN,8:;+P#ZN3.,P$@W&%KB9R.CTTB6RBYX!B@ M,CHOSXQUZ[>V+HBJ9PH!+QSW8V4 ME#0W?%Q]J3/["A9(_-4@W@.CC$#ZDSH/M+"J:O!7S*ZE<1&-?#:OH;&E=JN\ M0YPTWNSXJTJ\(M<5G^7Z R\*RZKV!88QR'1*05J5ES,>P(0UX)4+5_>>M5ON MVLRH=3R9K618/7>7FN;C$+S,97<) KOSYGS=3T.#=TY\@M?W-[?[6$!J7NG6 M85(CW!XD_M<%Y:=E6TE[V#MHQ?UTXA[]TANT G]"@1_V1ONMO!])WH'5Z-H? MP8T_3^VD]$EE0A$J:U4*,+DB[@: O.B[?]]] MKX$);OU YU[[O,L5_."8;(WO!S.^;[G!IDUBS/CQ#+(UQM88_Y^,\;MO432S M.?P^%A9&1-![H;D1>+KL#KQ.$L%C)^6V_-]'ELM#73 M9V*FN^6O!J@D?&V=Y3W.7FN>/[9YGO-0%_BKY>'K#L'WE%H#_!$-\/;!1]T& M'WG3_PLF&+B;A>JHYUN?13W@]"E97R>$-+J<:U5D#*\^E!Y7U5#MG;=F1WFL MA]=M4F2\6SY7]5/]7;O&/4BC:?T27T[GO.L/ &ELN1[3A1*LPL)A;[B_KMI\ M6]^]]^=?#G1O&Q[_!U!+ P04 " [@EM8XFC$ L(( #X. &0 '!D M9G,M,C R,S$R,S%X97@S,60P,BYH=&WM6VU3XS@2_BLZIG8'JI(X"3!0"4,5 MPT!MZG9F*#9S+Q]EJQWKL"VO)"=D?_UU2W9P(+,$#F;@-E21Q')+:JF??KHE MV4=_:[?/\H3G$0CVR_C3KTRHJ,P@MRS2P"V6SJ1-V%@5!<_9)]!:IBG[H*68 M &.];F>_T^OW.]UV^_@(VSJM*JE\P/I!_R#H=_M[K/MNT.L->GUV\8EM?QV? M[CCICU].Q_^^.//=7GS]\.OHE&VU@^"?NZ=!\''\T=_8ZW1[;*QY;J25*N=I M$)Q]WF);B;7%( AFLUEGMMM1>A*,+X/$9NE>D"IEH".LV#H^HA+\!"Z.CS*P MG$4)UP;L^ZVOX_/V(4I8:5,X/@KJ;R\;*C$_/A)RRHR=I_!^*^-Z(O.V5<5@ MMUO8(=8,\/8MF>OV3 J;#'K=[D_#@@LA\TD[A=@.]CN'AS=%6DZ219GR0QMH M2+F54Z"V&ZU&*7 ]")5-AK<[6%6SJ.O%*K?MF&CF4&AGV&&;M4&<_? MMGP)?AO0,GX[=-)&_@'8- [/PK5M\U1.L''2=>C'/ZB&'BYU,@,WG%"E F^> M_>N7T8?1F.WV.MW^41#B1!7/H-9_2F-E/&\HQNK_WEYGS^M)U6]9T%F#VII* M(T.92CL?)%((R+'"SV\.^]W=X5% %9])\0B]"_0#)O3T['(\.A^=GHQ'7S[_ M]GPSNE*QY@S^J!F[:VKL>-1B)R)'4KKD?_ 6BT"3#+,)MX,-XE8J[HIDCAW; M0>^PN.74O<[/;WKOND/_.6()GP+3,)4P0T:WB32,YWG)4RPLE+9(\NQR9RQP--6=E;G4). *,R"ZBHXDXR_!*2S1BS",LTDQETC*K MO-P=@1PB,(;K.8ED_ JPWT:;!LL$*H-=ID19U <)1%)C&H%BF%@8U$2 9K-$ M1@DS)7WPS8=M<#&[!8(MM&A(P;\[40:2B.MW7COLQCY 5./("_H[04V"9"I&&K%L)+ MZG3."K0P@9- BYGE GV5XO..'TB;A(6IVIF M:CQJF$AC,8NTC%.AUQNU;#5@96IE[FB[0=9CD+6WA*SQDAE(R][!T%38J:(W MN;V*8XF7VV;'V6C$N :'!K2N#%,@JS% "(:I- G5(+$,68^8CZZ%-%&J3(GU MB ^U2CTL"JUPF8/%AFTC"@0@K+RISZYQ69#CBN8$J>:R3%&BM\O;O?UM\%KT M]H6_\I>2$J7O)Q3Y4:&T"*H=DAXD(IR%T[ ME*S>4%Z3-OV*#@%4!;X;$+0J2J6;$ND/=3$JE<*MNTT9&BDDUY(&('UX=D2> M4TNEH9#I7,ZX^.IH#E?+J!"N?UVE@B-RHS+EQ,XX+*?$3>C%&CZ0-_,/_!4" M"2*!8GT0WY\P#SK]UX;/\$_PN3;#W('I^MRT-EH1X5,I"(3-VUT3M#ZT;IB'B:V+RAG0(50_("^YDC@OM.&:/5FFS",6N )O,,FDM./BN MJ!8J#/1T3TC4S36PC:A%!C7$T/A-^6OM:O![*5%UYU9E'KG5^P[["#QIWYT MR$MSA+,_;.K 2ZOJ G]^[$J63IE)S^4S9BII'!EO,3<;[[?\81^=?^M:SZK_ MGI\**Q;'?A3&,-.I)M*JHFIQ?Z_3V_^IB;VJ[_KPL'&*W6B<#$^[L_4TUM?M MF>;%($2BN6K/<,[N/1E?W.>AH7,G&-+Q_.T1/Q66EH]HG*W]$P#5IQ5K35J_ M\Q>=LB7G:@BN[UJ/F>[=_<[AWF;"O]^$'VSP_633'5A-!/TT9/Q]-X+\_QGG. R_Y((>/E.>/&$3>.^%=QQ!\^1+F CP+YL"G9./!K&>O& M@5^) V]?^ <"Z"G7A7^2SS:>&:A.;'8V_OK2_?4<0EW2(\K]@Q:C%XXV'OD2 M/?(9A_A_X'*!.S*H=W^>>WOJ$1M2R>*<(.31U40C3PHZTU!Z4*^0&F^J+=^H M=OKH'"V5.;2KZWI-U7Q#;NF 8ZEH\>I=P2?0]GN"/+:@!WRJI*B@<'C8Z=^L MY'Q9U[VMYU_I<^\('O\74$L#!!0 ( #N"6U@$O#N(JP4 $LH 9 M<&1F#,R9# Q+FAT;>U:;5/;.!#^*WMTVL),_)I P4F9 M24.8YMH2AIBY]J-LRXFNLN23%4+NU]_*+VE">P/,0 N=,$,2KZ35[K/[2"O; MO3\L:RAF1,0T@??AIX^0R'B>4:$A5I1HE"Z8GD$H\YP(^$258IS#.\62*07P M7'O?]GS?=BWKN(>Z!O4@*0+P'?^-X[M^!]R#P/,"KP/GGV#W,ASLE;U/QH/P MR_FPFO;\\MW'T0!V+,?YJSUPG)/PI&KHV*X'H2*B8)I)0;CC#,]V8&>F=1XX MSF*QL!=M6ZJI$UXX,YWQCL.E+*B=Z&3GN& M6H?80S/-Z7'/:;ZKOI%,EL>]A%U!H9>A9XKONRFY,D86)J<9KJ8-\^//PF4FPZ6\EDY5J@*">:75&C>TUKS"E1 M023UK'MS@A^-S)MQJ13:2DG&^#)X';*,%G!&%W A,R)>MRH)?A=4L?1UM^Q= ML'\IJD;W-+W6%N%LBLJ-K=W*_Z!V/=J89$%+=R+)$VPC<*H8UIX?6< M"('*'\&LO^>%9NERS3!H_GW//JCL-,-O1+",AM%UQ0H6,<[T,IBQ)*$"![QZ M<>B[[6[/,0,?R? 8V475/0 =#"_"T>EHT ]'XS-DRL7DLG\60CA^/'#O;:-W M")?VQ![8,!D.2CN]]K[;>D(6]B?0/QF?A\.3)PIA ]R1>P#C4PC?#V'2OWC7 M/QM.K/'GC\,OT!^$IL5W77_+J_\UO!0Q@1/KH&WLW0C!2$ LA:"Q63BKS4W/ M*/2%F!,.%S272H-,X?SD%":2STVWH@4C$=NP:WH:5WRW.Y 9[HC+\LKK[N&. M!Z=29;@E6A\@E:K4NL25&RB:DL )C6D6405MKX41]-M "D@9;W98TWU"X[G" M%1T1("*!X35N5@+W69PK8T5A##;3T$C-B5J"_Z;4U-FPJ_*@,0L-;\&? MPG:B6V9^SG)OD M6B6Z)IFVH;DU M-'X5&B9PEN2)HP@5QAHH2ZB1MA"@.7(UU-B%JFF6#]C:\C)/,J2JG+&ZPVWY&@2O+;DTB3AM%D50) M558L.2=Y08/FQ[IE)A"S:L,U9;2!'#'MKMM YEHV@JI"+R4;=;RQ<[.*-Y*U MHGP'RFS NKTL ,P)0S5VUO-[%10Z:>179F6-":\3"0\9M<9]W^XL*9>H,.5RT<#87%L+1?(@PD/:5VN!F-UZ]EBUDZ@PFR'MF@/038\? M/G%N9LI:Q[OG274^JS]UL&I"X9(:BTSS(%KP'1D";QP MR[^?ZYA3.-^=T>[EU&VD?DJIM>7,[^+-)I7,.OZ+>;3ET)9#S\R;6^O?Q_"' M;59!YG? -)H68^N=;@WV''8_/[?L>@*.;=GUR]FUFRLF8I83#G1%*EF1:F_+ MJBVKGH$WOX15C^C/ED4/Y]AWSR:W//EM_'EV/''*9T3-';NG8M[:3<39ZL%0 M1.*O4R7G(C$/L:0*F@/TVLM?FPWUW5D?#>%,4*N^;H[#,R9# R+FAT M;>U:;7/:.!#^*WOIM$UF\"N04D,S0X!,F6M#!IR[]J.P!>AJ2SY9A-!??RO9 MII!V[BZ]YD(Z9(8W::7=?78?K:2X\XME#?B"\(C&\#9\_PYB$2U3RA5$DA*% MK2NF%A"*+",YIX'F!UX2K]W!\'?9.C'1_U L_7@T*M5?7Y^^&/3BR'.?W>L]Q^F&_Z&C8 MK@>A)#QGB@E.$L<97![!T4*I+'"GW5B=@.Y6B?T MS5%*Y)QQ2XDLJ+N9:N-(![OOR-Q:*Q:K1>"Y[O-V1N*8\;F5T)D*FG:K]:5) MLOEBTR8*UP))$Z+8#=5S;\T:)93(8"K4HGU7P;=&9M6XF>#*FI&4)>O@9X&I:>ZLYKVAN5LRA*FUL&" MQ3'E*/#B6Y>AA".'@[<>]OHM>#:GM@]&R:#GK'3JS?=VAY9 MV)U MS^Z"@?]/86P NZU>PJC"PC?#F#2'9]W+P<3:_3AW> C='NA[O'= Z_^ MQG#3Q#@J5D']].Z2.N00"FU]>^P0++UP(F6)EMGZ%F9!FUC46$*!H2@Q] M&M%T2B74O1I&T*\#R6'&DJK0:_$)C982"PLB0'@,@UNLF1S+/>I*69YK@[4: M.I5+(M?@OS(S-5X\\T[=]K9QA1N5;6A]#;HQQWW$F'PF-9P8%>FR!;^QB,*5 MI#G3<-7@@G&])3'J>PM&9V4+0VQ&LQE*2PV.5E4"4 -LT[C7(%O*?$DP,92 MK?6@A-JL!]II$HM,;U6VQ2LAG?OE_!,BIX33W!K=)G0-W=^#?L)&HOC MTC5\XF*%*,YI\ /3ZAO)[S7LQE-/_F/O!$+$MDSSV3))UDB'-$MTSFWR4-(_ METQ2O1O-->CY)H3'!#-=@M<\CD\V@?J2M9N,+:/EO:XWVCJ9#J'YQ]#X16@8 MQ\4C)09O7*@481RYPKB!NHH;81(#ER%O=8AJNIO@Z0"'H3%(5>S(,&9YS8R: M;2B,$\9FXVH(CE++Q,1)9%0:E?D==ML/$KCOW-F:7;\BTX16 Z="QE1:D4@2 MDN4TJ+YLJ]9(+XI"JW?Q&E,$K;V='62I1-50'!!,R\XQ0IN]>XC0+5MG@B,P MX<9C@RG\^H C\15OG-3+9$22,BOP/%..;C:?;V-3*JEP^A_J^W>&PU'QO_+/ MM_? P:)&?OU^+T_J#=M#7\JLPX.A$FG@9;>0BX3%\,PU?X_NJY,[6^7^7AZV M['KC\8/UW=GH&,H=:+:/B3.UC2\-%=9#MJS/> M*1P1Z3O)_W+B[3CL?I _'&8U8TD4B257:"X> M7 U93PYL/;#UIW5P7]CZ@"X>Z/B_.OK5?Q,.A#L0[BEY: CGF&OAZLF0/;FO M+HPIWA=R4:#M1F/9C4S.-Y/?]TM:48S?H$$.R'!5[_7[JS<7IVRKO;O[[[W3W=VSZS/SP7ZGVV/7FB>9S*5*>+R[>WZY MQ;9&>9X.=GMWZ]?MP_AC5SFL3A^N>M^FG>'*IP>OPSE+.=3^V)#//1H-?M_N,HY6$HDYMV+*(<"- Y>%X]T_)F M5#U49G(#+6*>RUN!K7OM!K'@>C!4^>BHV<6\;Z;N>Y%*\G;$QS*>#GXYY;$< M:OE+ZY??1'PK1M:N4D& 7"(T$>&* .@!\/_#LU/',-P[ABNY5AD[%),V'LUY@GT3T]P'-X0 M)J;/H8I#TV>.RQ\I/1X4:2ITP#.F6MV2=&'LY2YVOF(CAL#\NY\.=OK^W(VY\-8 ML*'2H="_;G6W6"#BV(K3\F]D(/>W;=!\HQVH..9I)@;NEZ,5[Q,[<)#2N1KC MYCCRIH)_T@3:,9^J(A]$\I,(_;WU9Y'E,IH>><+=C'Q@]U8.RY:';E;VM4-+ MH3ST/_P"@5--;$;^W J-Y(CM0(U$5FEMRR:*-JPW*KLR=O2]3G.,]<\7<]MG M+XSY$UN"4>DQCVLSLH^V/-Y_+Z)>__#987>__\+ROF7-ATCP^PZ(2!R+' 1K MVW+OH-WM](@L5X4](QG_SP3"C:NK+:%:\W^D]\SAQ%WEUE_C]?GO[*^@N MM[\\Y=7KO*BKKYHX))9X]F+OP>)P#CT-L9H )@DZ;!O%DY&;\=1@;YEG+"N& MF0PEUU+ F_E(L)]_.NSWNT1\@<:!7
    0>=P'9*J&:E$9#EA!I&/4':Q89$! M3@#BX]V)OOX48#2:?A$">[5*\ M]+XQ&_I#_1HRA@3&IS3F,LG89"22VFZ>H.=C*$ 4_%5(;?@H$^(C/+ ;&:@) M0AS$ *+>VE[G$Y!-:+EHD!R2OLKA#?@6/+P2.E-)AUV!F9\)M@J0KT4$4!MZ M<8T57]82*= 0YJ=I'HBBE1[\U*7_S7R*^G=0 !-I_&WF8\,%&6S(D!9W)(_MH+<.CX3D4S(%8,[C&:VBG4L63,"SL%9 MA5X_P&X!3VE,?R,["CW.6)&1LM&JN!F!H6'TCA&"G8W)]81,KOXC-KD07_=> M[/?[!P<'C\SD>BLS('Q@P1[NL=P!BH!4D[)&$CS> HX M)HX=L";AM4 ?1_"%.1KXYY]ZS[M''XI@5"KU%I-FH.AUGC-.APK&/#16! I= ML!9 WY.6A^'+!)92A@5PT$?8M;' V G(CGG'\6=E$Y4WL0YEAIV8'>2 MUQM)^>S46F^HPU!5H3D&MBV[&*>:![FUNZ"O$&"5@I6,X"V 8T(',L/9@O2@ MO5E'4PA:&B#NR0!I 0\"5)(Q_E$DMP 3!'*R"CYV M?BA]6<+/$D0*!S4(Y*'/O709_UF$-[1H!*%\B[JU3*L!5R.ODOM>0?LA6!9: MT$NEPD,O$TD0A"FX=J@I@0C8&THZD_+"N/$50K\4 T^U!/1&.R4,-0Z1F,1' M.2O9"V#B:%#@*]L-->")PP<2R#&P XT_EA^!\4:H_7$7),B9 8Q H'_>TD>. M,1YF((TBPB%598JZMF E*69/[,6MO&K6I%DA$YJI3_(F!O-QV"LWFAAI!J0 MFVN-40MC78,&2)3UQBI,W/<&(1/20(_>_02^"1$4)/ENO0? MNV#ZCRAVNVNW#4EDC3C(@:B WWB1CY1&=RFA7T/KAD1@=S17LS51&F):JPY_>UNYGA=>:ZF-QX%_7]'NA3%//AX0Y9)(R#M4;G^@1UFOS'L[ESRFT=^UKY]5$O: M;QX(2/D-S SLR8]M#SAT\Q.\^!Y9__ B6*;P=]M+.?3.3ZP;AAGX4T) M/SR'DG![-P;!@1"OS!QK@<7^T=J6SD"W0,7@*'@$D"CWGN7E%XR%3O[K0"6) M3>XA@%.3)YZ)"B^!Z'3J\,UG^#IIX2FGK^Z-&4<:^?QER.#>._Q^]L'.UW@2FPW$2( MV7YS;$(M4$HY[R)@( -A,/0'SV,I"L Y+6-6BAOT/F):W%^%-'L],(MQ+RL2 M7:"$W>P;3DJ2X8@?@CPR+KT0I5?,)TPD8-,&QI8&C9H$E/%LTV^5AM^YA[!O M4?:$] IT88QS!Q$EQGI?%QH?&D=MZ>%=+BF=]Y%8C:5@>1<\L6"QHF,9*H<) M<$HH=MX!^\5:U/-^9&H:Q/AZP^*O0=>-%?PDY?;!HY?;)T&9Z4([>=CDX^P( M'B2E"&+G0 V7"(-.K?GNGXW1/ Q>BQBZ?EHX$656.T>'Z SM:4.YHF MM< =++S=;E*&!(YI_J8W1M "?_!\=5C+8P/C-Q%ABUS@F)G&8S#2PZD-GA?0 MJ/&)VZ\&F(2?N32$:3F519G]>#"Y5/T8,4>KJJ1$S?:\JRG@%?PUB^0FT>EI M:?3#QZ_1\700;O4C=EUY(S8*^0Z%_$IA(K ]O+$D480.7]%[EKBB;K09^R*' M+C:"X2D)AA>/^!1'=7!^[_"1G>(H<0XF<&V$U!(A=?XI$"GA-T(P$W2/E.EI ME#TP05\*8)JE3I/6+/PJX1-*K@60A[ R?.^]08#D!9I)0@.DJ1K?*8XST/NA!:KPV"92-,F]5BC/84_)^"Q604L:H8#;*&Y<>@R86M M\O".\11B6!D6V?AHWWLL6G;OT\'V&";78%]9J2.8,KD4:OEHR,NJ&0B04 M"()U-Q:*93,;DVXR^75S>V6%OJ7J.B: UNT(%._1C@"#15S%P?8/^PGG]"LNC+_:,(0XSK;3"282@2 MJW^[>X_F2.1*LLH6$=$*^,-*P%=D_5S:N+RF1 '1:XE%9>MEF424)"OB(")O M=PFC>'.\YY0V"6M?GK#6WR2LK39AK3G2;\T-*]A#WRSQ;G_O[@JNOFA::>'> MM<;WC*EXLMX"N-^4?$OJ'K][\SM6 _[P->H>/T(:?+N*R(^0&&?GKR\N+X@= MV/E_?KMX=7']-:M"SX%QC;+0]3+#SY_U^P?/'EY7T[J-OIK;ZZ0*Y(())%6X M0L\7&PN>F*2Z?*2%<2N"<0#F5D0%B=@45$GIV"Q+O(PQS8_G@FK@B$"4WC)X M.Y9@5,$7MN6.*1UF@DHV)M6B>+V7\N9]8L-5*@)##MO0[M>9 =A;TTSW7E?YWA$+>Z M/,Z42Y[)C%.NO-& I?0J.G(YDH8*2KD"13977=8J$98>.X\U=LAG)\E3[G-% MI.)83$U"XZ'@%&NT0H]AN=!E%;&88B36U383F@(T M;>)/) #M!N?#C*HK*%LERE,)J!_&_$]SULXRT_P!P'1NJ7A(4O'BAM\>PF^^ MGW7U?$8131-9G8Q +1F.P.I?7I9)BX6%=FIC1J]A5(R=EXSVS@&%NLQAKRV0 MX+=*AMPR6JB*(9Z:;$9Y,4:VZ%*/PQ6 1:M^;2TS&.WL^$D#H_?"GP9BA]R@ M%9Q.J;>%K>]GXV:P1356>=DN"PC9B+7;'DC?>43#"'!B#G3),19TY0%LN9VE M]%\%4_Q(6W36C6["-C__5:C\6Q6Q[MN&SE2:SU5Q72 M,_OX:ZWL/)2 $3-"[YB%#O)'I@#J*QQ@C3?_PZBL:3OG0QX$6+:1=+H54FB= MF:*>>'H,K3AGYS5?;=F"94FN\28+O6-.DMW"9^URG'1,=@3,82NJ5GV71;>* M1,)TL'!J9I(N-(N*Q)B1VZ9O@!X\%HT38>Y=FJ"PO1M[STT&M1XH0%0#F+5N MDG;:8TYEVEPGK?*XEJGX8I24+]V3RD".YB\+6(M)OIWM8%/^#1X[]2%D$CB$ MZP4#R,0\*!A%GG@)MJZ:S(//YMP5;+R1L3 _N9NL,MY\A(5-+^ MY\G)E9M/U9:=4=9B;@_F(ZS(9M+9<"P+?!68XP0?9U2?ETY8 %>_Y0FW!TC. M9!846>:.5)PD/)YF,MMIE=ETL\34E#((>PF].,:JH:J)Y#RA\=GO=-@'K&&( M1"QKR>5(&9!! FLEXJE-D1<:=GBCNV7]D#C$SG:J3(H ;;&0@.T29GL,>0W? M[2:N58Q>076_:M\NKU'JE6VLERFVGKLJ/?0^);++JWYJTW$CD=& '+=T^I@\ M<'Y120IM#U%8A_0DF1!;*P*7^P>97.E55::):$6?2 M[<8$@B8FWMU%96)B=3'B(0'+?EG\QK5B#[J1K:-2T,JFH]H(\6?VG\5($/(HVUL>).*'?.D90LCF%QLD[.&1(<=,-2* MAQ@5N.6 RBPW.AN_Z5=MX8=XSI.JF0J1VZ*R%(^PV=H1*QSM';*B2(J,"L0"KL*YY3*=3#? J"YRKI1? P-!,Q-*$ M\S6=6S$MVKBWY43JC*5*Q6Y)YUC26-&>SN=,S2TQGS.A^?.A5?;:5 F->:SP M@+XI.("+6=TY"C]WL7:^":R7!VUPN0S\\,[6F'#_$4,;VY[PJDZ3(38Q![[* MY;S/F-#S)6YD4!FMF.0 /7%;0-X]/ZJ*.4U=/T3256P[W#N6UVJ#Q@"(,;MW MK2S-C?,/@TWNHU4,PK!WDT)([*7F.-O8XU\LR-WAS96:XHO-9GMHSL[1 M=5X:SDM396RNC8VM&?2/KR^3&=4NMFTON^.3[F@@%O1+CAB>G[H"X:1X*L _ MMS45!&#Z>Z=>J3Y 9':KF<;&A_0@GKW#EE]/@H>]$Q';0W ME^&8:#R9]HZJU16L9AEG8_HMXXS"($\H365%[$(LS 'P$B_\]?/1BI5<)A8$ M[\^??*MRE-AV;+:'6?S*,>7&16O+L:BCX06ZK::Z+!J=.8X)$P6)IA:I* M4F,.C< _='.\%CZ7&^Z#E#\U5XZWCV"68N:1/ MS8N(Y:;&5#78;$CK2K5_^6FR=D_>EY:$W"K]N.3*P'*[;4OW#N M@NJ](YZ1C-$F=A'5#YYD BXJ*_G31C/A1U@2B7K^9#NZWSL?.C4YS2>F2BY T-BJ M=7>U6*,$;3/M#H"Q2L("IC+A]B(QW,SO-N^81@^8 8:?G3F7]$F]_;V7B;77GG#='MS>A'R_T ML[\)_6Q"/X\U]//C'MW&TLQ/[)#NYM1VX]1VFYCEUO&K*A5+S_8K FH7.V_9]U_^&C**_+'GG7V+1'IM\6PYP3- MX/LMV:PE5$-S*UPRO]HAAE.HWN'6,1[*&K!'?)E%-:2YA@UNJ @DDN.Z670Z MQ^M8/0*&R?+Z\VHDS3%*.OEK"J7--_UJ%26I?*.K*-GO'.R7IYE@4S"W.>XT MW3RSO,[1;EL5]K]TINCCALLMEW^ Z?.\T!M67S^K'QS8@J3KYW2J7_K4!?ML MW=[[VOS?L;!8HZRXTI*.I%T"R-R(B[6+B^?=#D&ZKR8O7+WC-58TGH7="W*$ M-A[NM7NXGWT##_?#W=F8)'27-WL7BW7!CU$^CH__!U!+ 0(4 Q0 ( #N" M6UBUW1N+A!4 #O? 1 " 0 !P9&9S+3(P,C,Q,C,Q M+GAS9%!+ 0(4 Q0 ( #N"6U@.1R<+W!4 -%& 0 5 " M ;,5 !P9&9S+3(P,C,Q,C,Q7V-A;"YX;6Q02P$"% ,4 " [@EM8&X M M:$([ F 0 %0 @ '"*P <&1F&UL4$L! A0#% @ .X);6'I8H_^*D0 0%() !4 ( ! M-V< '!D9G,M,C R,S$R,S%?;&%B+GAM;%!+ 0(4 Q0 ( #N"6UB*C9H MOV0 &A1!P 5 " ?3X !P9&9S+3(P,C,Q,C,Q7W!R92YX M;6Q02P$"% ,4 " [@EM87%^^93K= P#DUBD %0 @ 'F M70$ <&1F&5X,3!D,#8N:'1M4$L! A0#% @ .X); M6 L(R]!F! )#, !D ( !_ $& '!D9G,M,C R,S$R,S%X M97@R,60P,2YH=&U02P$"% ,4 " [@EM8#L"V)Z@# #]"@ &0 M @ &9!@8 <&1F#(S9# Q+FAT;5!+ 0(4 Q0 M ( #N"6U@E)[K*K@@ $(Y 9 " 7@*!@!P9&9S+3(P M,C,Q,C,Q>&5X,S%D,#$N:'1M4$L! A0#% @ .X);6.)HQ +"" ^#@ M !D ( !71,& '!D9G,M,C R,S$R,S%X97@S,60P,BYH=&U0 M2P$"% ,4 " [@EM8!+P[B*L% !+* &0 @ %6' 8 M<&1F#,R9# Q+FAT;5!+ 0(4 Q0 ( #N"6U@&5X,S)D M,#(N:'1M4$L! A0#% @ .X);6):*"V48&@ R:P !D M ( !XB<& '!D9G,M,C R,S$R,S%X97@Y-V0P,2YH=&U02P4& \ #P , )! ,4(& end XML 102 pdfs-20231231x10k_htm.xml IDEA: XBRL DOCUMENT 0001120914 us-gaap:AllowanceForCreditLossMember 2021-01-01 2021-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2023-01-01 2023-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2023-01-01 2023-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2022-01-01 2022-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2022-01-01 2022-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2021-01-01 2021-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2023-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2023-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2022-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2022-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2021-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2021-12-31 0001120914 us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember 2020-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2020-12-31 0001120914 us-gaap:AccountsReceivableMember 2023-12-31 0001120914 us-gaap:AccountsReceivableMember 2022-12-31 0001120914 us-gaap:StateAndLocalJurisdictionMember 2023-12-31 0001120914 us-gaap:DomesticCountryMember 2023-12-31 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 0001120914 us-gaap:CommonStockMember 2023-01-01 2023-12-31 0001120914 us-gaap:CommonStockMember 2022-01-01 2022-12-31 0001120914 us-gaap:CommonStockMember 2021-01-01 2021-12-31 0001120914 us-gaap:RetainedEarningsMember 2023-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001120914 us-gaap:RetainedEarningsMember 2022-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001120914 us-gaap:RetainedEarningsMember 2021-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0001120914 us-gaap:RetainedEarningsMember 2020-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2023-12-31 0001120914 us-gaap:CommonStockMember 2023-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2022-12-31 0001120914 us-gaap:CommonStockMember 2022-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2021-12-31 0001120914 us-gaap:CommonStockMember 2021-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2020-12-31 0001120914 us-gaap:CommonStockMember 2020-12-31 0001120914 pdfs:IncentivePlanYear2011Member 2023-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2022-12-31 0001120914 us-gaap:EmployeeStockOptionMember pdfs:IncentivePlanYear2011Member 2022-01-01 2022-12-31 0001120914 us-gaap:EmployeeStockOptionMember pdfs:IncentivePlanYear2011Member 2021-01-01 2021-12-31 0001120914 us-gaap:GrantMember pdfs:ExpiredStockPlansMember 2023-01-01 2023-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2023-12-31 0001120914 pdfs:PurchasePlanYear2010And2021Member 2023-12-31 0001120914 pdfs:PurchasePlanYear2021Member 2021-01-01 2021-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2022-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2022-01-01 2022-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-12-31 0001120914 us-gaap:EmployeeStockOptionMember pdfs:IncentivePlanYear2011Member 2023-01-01 2023-12-31 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember srt:MinimumMember 2024-01-01 2023-12-31 0001120914 pdfs:IntegratedYieldRampMember 2023-01-01 2023-12-31 0001120914 pdfs:AnalyticsMember 2023-01-01 2023-12-31 0001120914 pdfs:IntegratedYieldRampMember 2022-01-01 2022-12-31 0001120914 pdfs:AnalyticsMember 2022-01-01 2022-12-31 0001120914 pdfs:IntegratedYieldRampMember 2021-01-01 2021-12-31 0001120914 pdfs:AnalyticsMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember us-gaap:OtherCapitalizedPropertyPlantAndEquipmentMember 2023-12-31 0001120914 srt:MinimumMember us-gaap:FurnitureAndFixturesMember 2023-12-31 0001120914 srt:MaximumMember us-gaap:OtherCapitalizedPropertyPlantAndEquipmentMember 2023-12-31 0001120914 srt:MaximumMember us-gaap:FurnitureAndFixturesMember 2023-12-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2023-12-31 0001120914 us-gaap:LeaseholdImprovementsMember 2023-12-31 0001120914 us-gaap:FurnitureAndFixturesMember 2023-12-31 0001120914 us-gaap:ComputerEquipmentMember 2023-12-31 0001120914 pdfs:TestEquipmentMember 2023-12-31 0001120914 pdfs:OtherAssetsCvSystemsMember 2023-12-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2023-12-31 0001120914 pdfs:DFITestEquipmentMember 2023-12-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2022-12-31 0001120914 us-gaap:LeaseholdImprovementsMember 2022-12-31 0001120914 us-gaap:FurnitureAndFixturesMember 2022-12-31 0001120914 us-gaap:ComputerEquipmentMember 2022-12-31 0001120914 pdfs:TestEquipmentMember 2022-12-31 0001120914 pdfs:OtherAssetsCvSystemsMember 2022-12-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2022-12-31 0001120914 pdfs:DFITestEquipmentMember 2022-12-31 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember 2023-07-05 2023-07-05 0001120914 srt:AffiliatedEntityMember 2023-12-31 0001120914 srt:AffiliatedEntityMember 2022-12-31 0001120914 us-gaap:FairValueInputsLevel1Member 2023-12-31 0001120914 us-gaap:FairValueInputsLevel1Member 2022-12-31 0001120914 us-gaap:DomesticCountryMember us-gaap:InternalRevenueServiceIRSMember 2023-12-31 0001120914 us-gaap:DomesticCountryMember us-gaap:CaliforniaFranchiseTaxBoardMember 2023-12-31 0001120914 pdfs:RestOfTheWorldMember 2023-12-31 0001120914 country:US 2023-12-31 0001120914 pdfs:RestOfTheWorldMember 2022-12-31 0001120914 country:US 2022-12-31 0001120914 srt:AffiliatedEntityMember us-gaap:CollaborativeArrangementMember 2020-07-01 2020-07-31 0001120914 srt:MinimumMember 2023-12-31 0001120914 srt:MaximumMember 2023-12-31 0001120914 us-gaap:TrademarksAndTradeNamesMember 2023-12-31 0001120914 us-gaap:PatentsMember 2023-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2023-12-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2023-12-31 0001120914 us-gaap:CustomerRelationshipsMember 2023-12-31 0001120914 us-gaap:TrademarksAndTradeNamesMember 2022-12-31 0001120914 us-gaap:PatentsMember 2022-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2022-12-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2022-12-31 0001120914 us-gaap:CustomerRelationshipsMember 2022-12-31 0001120914 pdfs:PurchasePlanYear2021Member 2022-01-01 2022-12-31 0001120914 pdfs:PurchasePlanYear2010Member 2022-01-01 2022-12-31 0001120914 pdfs:PurchasePlanYear2010Member 2021-01-01 2021-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-01-01 2023-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-12-31 0001120914 us-gaap:SoftwareDevelopmentMember 2023-01-01 2023-12-31 0001120914 us-gaap:SoftwareDevelopmentMember 2022-01-01 2022-12-31 0001120914 us-gaap:SoftwareDevelopmentMember 2021-01-01 2021-12-31 0001120914 2021-01-01 2023-12-31 0001120914 pdfs:DFITestEquipmentMember 2023-01-01 2023-12-31 0001120914 pdfs:DFITestEquipmentMember 2022-01-01 2022-12-31 0001120914 pdfs:DFITestEquipmentMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember us-gaap:PensionPlansDefinedBenefitMember 2023-01-01 2023-12-31 0001120914 srt:MaximumMember us-gaap:PensionPlansDefinedBenefitMember 2023-01-01 2023-12-31 0001120914 us-gaap:PensionPlansDefinedBenefitMember 2023-01-01 2023-12-31 0001120914 us-gaap:PensionPlansDefinedBenefitMember 2022-01-01 2022-12-31 0001120914 pdfs:CaliforniaRDTaxCreditsMember 2023-12-31 0001120914 pdfs:CaliforniaRDTaxCreditsMember 2022-12-31 0001120914 us-gaap:DomesticCountryMember 2023-01-01 2023-12-31 0001120914 us-gaap:DomesticCountryMember 2022-01-01 2022-12-31 0001120914 us-gaap:DomesticCountryMember 2021-01-01 2021-12-31 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2023-01-01 2023-12-31 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2022-01-01 2022-12-31 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2021-01-01 2021-12-31 0001120914 us-gaap:OtherNoncurrentLiabilitiesMember 2023-12-31 0001120914 us-gaap:OtherNoncurrentLiabilitiesMember 2022-12-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2023-12-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2022-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 pdfs:TwoCustomersMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 pdfs:OneCustomerMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 pdfs:CustomerGMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:TwoCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:ThreeCustomersMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerCMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerBMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerBMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:TwoCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:CustomerDMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:RetainedEarningsMember 2023-01-01 2023-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-12-31 0001120914 us-gaap:RetainedEarningsMember 2022-01-01 2022-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-01-01 2022-12-31 0001120914 us-gaap:RetainedEarningsMember 2021-01-01 2021-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-12-31 0001120914 2021-12-31 0001120914 2020-12-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2023-12-31 0001120914 us-gaap:MoneyMarketFundsMember 2023-12-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2022-12-31 0001120914 us-gaap:MoneyMarketFundsMember 2022-12-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2023-12-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2022-12-31 0001120914 2022-01-01 2023-12-31 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember us-gaap:DevelopedTechnologyRightsMember 2023-07-05 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember us-gaap:CustomerRelationshipsMember 2023-07-05 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember 2023-07-05 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2023-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2023-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2022-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2022-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-01-01 2023-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2022-01-01 2022-12-31 0001120914 us-gaap:EmployeeStockOptionMember 2022-01-01 2022-12-31 0001120914 pdfs:EmployeeStockPlansMember 2022-01-01 2022-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-12-31 0001120914 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPlansMember 2021-01-01 2021-12-31 0001120914 us-gaap:OtherExpenseMember 2023-01-01 2023-12-31 0001120914 us-gaap:CostOfSalesMember 2023-01-01 2023-12-31 0001120914 us-gaap:OtherExpenseMember 2022-01-01 2022-12-31 0001120914 us-gaap:CostOfSalesMember 2022-01-01 2022-12-31 0001120914 us-gaap:OtherExpenseMember 2021-01-01 2021-12-31 0001120914 us-gaap:CostOfSalesMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:ResearchAndDevelopmentExpenseMember 2023-01-01 2023-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:CostOfSalesMember 2023-01-01 2023-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2023-01-01 2023-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:ResearchAndDevelopmentExpenseMember 2022-01-01 2022-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:CostOfSalesMember 2022-01-01 2022-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2022-01-01 2022-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:ResearchAndDevelopmentExpenseMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember us-gaap:CostOfSalesMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2021-01-01 2021-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2023-01-01 2023-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2022-01-01 2022-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember us-gaap:TrademarksAndTradeNamesMember 2023-01-01 2023-12-31 0001120914 srt:MinimumMember us-gaap:PatentsMember 2023-01-01 2023-12-31 0001120914 srt:MinimumMember us-gaap:DevelopedTechnologyRightsMember 2023-01-01 2023-12-31 0001120914 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2023-01-01 2023-12-31 0001120914 srt:MaximumMember us-gaap:TrademarksAndTradeNamesMember 2023-01-01 2023-12-31 0001120914 srt:MaximumMember us-gaap:PatentsMember 2023-01-01 2023-12-31 0001120914 srt:MaximumMember us-gaap:DevelopedTechnologyRightsMember 2023-01-01 2023-12-31 0001120914 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2023-01-01 2023-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2023-01-01 2023-12-31 0001120914 us-gaap:GrantMember pdfs:IncentivePlanYear2011Member 2023-12-31 0001120914 us-gaap:GrantMember pdfs:ExpiredStockPlansMember 2023-12-31 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember srt:MaximumMember 2027-01-01 2023-12-31 0001120914 pdfs:StockRepurchaseProgram2022Member 2023-01-01 2023-12-31 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 2023-12-31 0001120914 pdfs:The2020StockRepurchaseProgramMember 2022-01-01 2022-12-31 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-01-01 2022-12-31 0001120914 pdfs:The2020StockRepurchaseProgramMember 2021-01-01 2021-12-31 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 2022-12-31 0001120914 us-gaap:TransferredOverTimeMember 2023-01-01 2023-12-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2023-01-01 2023-12-31 0001120914 us-gaap:TransferredOverTimeMember 2022-01-01 2022-12-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2022-01-01 2022-12-31 0001120914 us-gaap:TransferredOverTimeMember 2021-01-01 2021-12-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2021-01-01 2021-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:ForeignCountryMember 2023-01-01 2023-12-31 0001120914 us-gaap:ForeignCountryMember 2022-01-01 2022-12-31 0001120914 us-gaap:ForeignCountryMember 2021-01-01 2021-12-31 0001120914 pdfs:PurchasePlanYear2010And2021Member 2001-07-01 2023-12-31 0001120914 pdfs:PurchasePlanYear2021Member 2023-01-01 2023-12-31 0001120914 pdfs:PurchasePlanYear2021Member 2023-12-31 0001120914 2023-12-31 0001120914 2022-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2023-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2022-12-31 0001120914 srt:MinimumMember 2023-01-01 2023-12-31 0001120914 srt:MaximumMember 2023-01-01 2023-12-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2023-01-01 2023-12-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2022-01-01 2022-12-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2021-01-01 2021-12-31 0001120914 2022-01-01 2022-12-31 0001120914 2021-01-01 2021-12-31 0001120914 us-gaap:GrantMember pdfs:IncentivePlanYear2011Member 2023-01-01 2023-12-31 0001120914 2023-06-30 0001120914 2024-02-23 0001120914 2023-01-01 2023-12-31 shares iso4217:USD pure pdfs:item iso4217:USD shares 0001120914 false --12-31 FY 2023 PDF SOLUTIONS INC 0 P1Y 0 0 0 0 0 P1Y P10Y P5Y P6Y P4Y P3Y P3Y 1550000 0 0 P6M P10Y 0 0 P4Y 0 0 1 10-K true 2023-12-31 false 000-31311 DE 25-1701361 2858 De La Cruz Blvd. 95050 Santa Clara CA 408 280-7900 Common Stock, $0.00015 par value PDFS NASDAQ No No Yes Yes Large Accelerated Filer false false true false false 1300000000 38581819 BPM LLP San Jose, California 98978000 119624000 36544000 19557000 44904000 42164000 17422000 12063000 197848000 193408000 37338000 40174000 4926000 6002000 15029000 14123000 15620000 18055000 157000 64000 19218000 6845000 290136000 278671000 2561000 6388000 14800000 16948000 4633000 5581000 1529000 1412000 25750000 26019000 1570000 1852000 50843000 58200000 2972000 2622000 4657000 5932000 2718000 1905000 61190000 68659000 0.00015 5000000 0 0.00015 70000000 49749000 48613000 38289000 37431000 6000 6000 473295000 447415000 11460000 11182000 143923000 133709000 -98045000 -101150000 -2387000 -2550000 228946000 210012000 290136000 278671000 152085000 130480000 93415000 13750000 18069000 17645000 165835000 148549000 111060000 51749000 47907000 44193000 50736000 56126000 43780000 62216000 45338000 37649000 1285000 1270000 1255000 3183000 5020000 2562000 683000 4869000 470000 -18317000 1764000 3899000 3171000 3105000 -3429000 -21488000 148000 -1493000 -825000 15000 7000 -14000 163000 -1486000 -839000 3268000 -4915000 -22327000 0.08 -0.09 -0.58 0.08 -0.09 -0.58 38015000 37309000 37138000 38937000 37309000 37138000 36850000 6000 407173000 9550000 -96215000 -76233000 -225000 234506000 -251000 251000 4523000 4523000 109000 1035000 1035000 216000 1930000 1930000 487000 202000 3967000 3967000 12931000 12931000 -21488000 -839000 -22327000 37411000 6000 423069000 10003000 -104705000 -97721000 -1064000 219585000 -933000 933000 22471000 22471000 187000 3011000 3011000 150000 1686000 1686000 616000 246000 6533000 6533000 19649000 19649000 -3429000 -1486000 -4915000 37431000 6000 447415000 11182000 -133709000 -101150000 -2550000 210012000 -21000 21000 743000 743000 224000 3832000 3832000 30000 492000 492000 625000 257000 9471000 9471000 21556000 21556000 3105000 163000 3268000 38289000 6000 473295000 11460000 -143923000 -98045000 -2387000 228946000 3105000 -3429000 -21488000 4986000 5526000 6218000 21484000 19649000 12931000 3551000 3484000 3334000 2142000 1550000 674000 1174000 187000 14000 3183000 -108000 -4000 1373000 198000 -161000 2748000 2143000 5980000 7329000 5787000 -1136000 1205000 1821000 1414000 4166000 -2258000 1336000 -2145000 -1423000 -86000 -2188000 7720000 1264000 110000 1671000 -648000 -358000 1822000 5028000 -282000 1852000 -1337000 -1287000 -2082000 -1584000 14600000 32298000 4243000 43800000 151500000 171000000 59598000 58321000 168560000 105000 11236000 8409000 3672000 89000 21000 381000 150000 150000 1823000 3054000 -28991000 84599000 -4667000 492000 1686000 1930000 3832000 3011000 1035000 9471000 6533000 3967000 743000 22471000 4523000 -5890000 -24307000 -5525000 -365000 -650000 -182000 -20646000 91940000 -6131000 119624000 27684000 33815000 98978000 119624000 27684000 3783000 2850000 1873000 1648000 1744000 1947000 1599000 3201000 1359000 66000 336000 963000 131000 2502000 161000 8076000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">1. DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Description of Business</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower organizations across the semiconductor and electronics ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (“IP”) for integrated circuit (“IC”) designs, electrical measurement hardware tools, proven methodologies, and professional services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Concentration of Credit Risk</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short-term investments, and accounts receivable. As of December 31, 2023, and periodically throughout the year, the Company had cash balances in various operating accounts in excess of federally insured limits. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company primarily sells its products and services to companies in Asia, Europe, and North America within the semiconductor industry. As of December 31, 2023, two customers accounted for 50% of the Company’s gross accounts receivable and one customer accounted for 35% of the Company’s total revenues for 2023. As of December 31, 2022, three customers accounted for 53% of the Company’s gross accounts receivable and two customers accounted for 41% of the Company’s revenues for 2022. Two customers accounted for 27% of the Company’s revenues for 2021. See Note 11 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The allowance for credit losses, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Supplier Concentration</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Some of the Company’s vendors provide highly specialized, differentiated products and services related to the Company’s eProbe system and some licensors provide key enabling software for the Company’s products and services. In the event any of these suppliers delay or discontinue providing such products and services to the Company, it may be difficult for the Company to replace such suppliers, software, or parts in a timely manner or at all, which could delay or make impossible the Company’s ability to deliver or adequately support its software systems or to complete and deliver its eProbe systems to its customers, and could negatively impact the Company’s future financial results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cash and Cash Equivalents, and Short-term Investments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company considers all highly liquid investments with effective maturities of 90 days or less on the date of purchase to be cash equivalents and investments with effective maturities greater than 90 days but less than <span style="-sec-ix-hidden:Hidden_ObyhMFE_hkqUElWjpjZCSw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one year</span></span> to be short-term investments. The Company classifies its securities with readily determinable market values as “available-for-sale”. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and unrealized non-credit-related losses, net of tax, reported as a component of accumulated other comprehensive income (loss) in stockholders’ equity. Unrealized credit-related losses are recorded to interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss) with a corresponding allowance for credit-related losses in the Consolidated Balance Sheets. Realized gains and losses are based on the specific identification method and are included as a component of interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company periodically reviews short-term investments for impairment. For investments in unrealized loss positions, the Company assesses whether any portion of the decline in fair value below the amortized cost basis is due to credit-related factors if the Company neither intends to sell nor anticipates that it is more likely than not that it will be required to sell prior to recovery of the amortized cost basis. The Company considers factors such as the extent to which the market value has been less than the amortized cost basis, any noted failure of the issuer to make scheduled interest or principal payments, changes to the rating of the security by a rating agency and other relevant credit-related factors in determining whether or not a credit loss exists. There was no <span style="-sec-ix-hidden:Hidden_GdALnVu33UuhY3ebwHe4gA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">allowance</span></span> for credit-related <span style="-sec-ix-hidden:Hidden_hshrHJ_mA06QvKThyLTWwg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">losses</span></span> on any of the Company’s investments recognized in the years ended December 31, 2023, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, and 2022, short-term investments consisted solely of U.S. Government securities. The cost of these securities approximated fair value and there was no material gross <span style="-sec-ix-hidden:Hidden_pjbJ6uvL2kGFHSmhY40U_Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">realized</span></span> or <span style="-sec-ix-hidden:Hidden_yYol9gpqTk2ObiB6XUoN0Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">unrealized</span></span> gains or <span style="-sec-ix-hidden:Hidden_39l2Q2_Sg0CCUVXt16blJw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">losses</span></span> as of December 31, 2023 and 2022. Refer to Note 12, “Fair Value Measurements” for further discussion on the Company’s investments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recorded interest income from its cash, cash equivalents, and short-term investments of $5.5 million, $1.5 million and $0.1 million in the years ended December 31 2023, 2022 and 2021, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable are determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $16.4 million and $13.5 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.1 million and $0.8 million as of December 31, 2023 and 2022, respectively. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The changes in allowance for credit losses are summarized below (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write-offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Receivable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (20)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 963</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (73)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">5-10</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Shorter of estimated useful life or term of lease</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:12pt 0pt 12pt 0pt;">Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets consist of acquired technology, certain contract rights, customer relationships, patents, trademarks and trade names. These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from <span style="-sec-ix-hidden:Hidden_ixaaWURMU0OPky1CDc1hSQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to <span style="-sec-ix-hidden:Hidden_miwcImA3BEyYOjW905Q_Mw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">ten</span></span> years. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">(“ROU”) assets, operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company elected to not separate lease and non-lease components for all of its leases.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines if an arrangement is, or contains, a lease at inception. Operating lease ROU assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of the Company’s overall future business plans and other relevant business economic factors that may affect its business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from the Company’s initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Software Development Costs</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Internally developed software is software developed to meet the Company’s internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally <span style="-sec-ix-hidden:Hidden_MNlvqhU0Tk6cPDIKQrBs8A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">five</span></span> to <span style="-sec-ix-hidden:Hidden_UCUDJqs1gkSEYtvC9U3RMg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">six</span></span> years. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The costs to develop software that is marketed externally consisting of external direct costs and internal compensation related costs are capitalized once technological feasibility of the software product has been established. Costs incurred prior to establishing technological feasibility are expensed as incurred. Technological feasibility is established when the Company has completed all planning, designing, coding, and testing activities that are necessary to establish that the software product can be produced to meet its design specifications. Capitalization of such costs ceases when the software product is generally available to customers. These software development costs are amortized using the greater of the straight-line method or the usage method over its estimated useful life.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cost of Revenues</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Costs of revenues consist primarily of costs incurred to provide and support the Company’s services, costs recognized in connection with licensing its software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type leases), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by the Company in providing services to its customers in solution engagements or sold in conjunction with the Company’s software products.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Research and Development Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities. Research and development expenses are charged to operations as incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Selling, General and Administrative Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Selling, general and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing and general and administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, IT and facilities cost allocations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock-Based Compensation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of <span style="-sec-ix-hidden:Hidden_lkJGZhmzREqWxDlmQ9hD0w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four years</span></span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Income Taxes</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more likely than not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Income (Loss).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Net Income (Loss) Per Share</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Foreign Currency Translation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive income (loss) are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive income (loss). Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Income (Loss).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Derivative Financial Instruments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Business Combinations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over their useful life, whereas any indefinite lived intangible assets, including in-process research and development, and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Litigation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (“FASB”) requirements. See Note 6, “Commitments and Contingencies”.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounting Standards Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In June 2016, the FASB issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to accumulated deficit as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recently Issued Accounting Pronouncements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2023, the FASB issued ASU No. 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which requires disclosure of incremental segment information on an annual and interim basis. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, and requires retrospective application to all prior periods presented in the financial statements. Early adoption is permitted. The Company is currently evaluating the impact of the new standard on the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” Adoption is either prospectively or retrospectively, the Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Description of Business</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower organizations across the semiconductor and electronics ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (“IP”) for integrated circuit (“IC”) designs, electrical measurement hardware tools, proven methodologies, and professional services.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Concentration of Credit Risk</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short-term investments, and accounts receivable. As of December 31, 2023, and periodically throughout the year, the Company had cash balances in various operating accounts in excess of federally insured limits. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company primarily sells its products and services to companies in Asia, Europe, and North America within the semiconductor industry. As of December 31, 2023, two customers accounted for 50% of the Company’s gross accounts receivable and one customer accounted for 35% of the Company’s total revenues for 2023. As of December 31, 2022, three customers accounted for 53% of the Company’s gross accounts receivable and two customers accounted for 41% of the Company’s revenues for 2022. Two customers accounted for 27% of the Company’s revenues for 2021. See Note 11 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The allowance for credit losses, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.</p> 2 0.50 1 0.35 3 0.53 2 0.41 2 0.27 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Supplier Concentration</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Some of the Company’s vendors provide highly specialized, differentiated products and services related to the Company’s eProbe system and some licensors provide key enabling software for the Company’s products and services. In the event any of these suppliers delay or discontinue providing such products and services to the Company, it may be difficult for the Company to replace such suppliers, software, or parts in a timely manner or at all, which could delay or make impossible the Company’s ability to deliver or adequately support its software systems or to complete and deliver its eProbe systems to its customers, and could negatively impact the Company’s future financial results of operations.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cash and Cash Equivalents, and Short-term Investments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company considers all highly liquid investments with effective maturities of 90 days or less on the date of purchase to be cash equivalents and investments with effective maturities greater than 90 days but less than <span style="-sec-ix-hidden:Hidden_ObyhMFE_hkqUElWjpjZCSw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one year</span></span> to be short-term investments. The Company classifies its securities with readily determinable market values as “available-for-sale”. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and unrealized non-credit-related losses, net of tax, reported as a component of accumulated other comprehensive income (loss) in stockholders’ equity. Unrealized credit-related losses are recorded to interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss) with a corresponding allowance for credit-related losses in the Consolidated Balance Sheets. Realized gains and losses are based on the specific identification method and are included as a component of interest and other expense (income), net in the Consolidated Statements of Comprehensive Income (Loss).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company periodically reviews short-term investments for impairment. For investments in unrealized loss positions, the Company assesses whether any portion of the decline in fair value below the amortized cost basis is due to credit-related factors if the Company neither intends to sell nor anticipates that it is more likely than not that it will be required to sell prior to recovery of the amortized cost basis. The Company considers factors such as the extent to which the market value has been less than the amortized cost basis, any noted failure of the issuer to make scheduled interest or principal payments, changes to the rating of the security by a rating agency and other relevant credit-related factors in determining whether or not a credit loss exists. There was no <span style="-sec-ix-hidden:Hidden_GdALnVu33UuhY3ebwHe4gA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">allowance</span></span> for credit-related <span style="-sec-ix-hidden:Hidden_hshrHJ_mA06QvKThyLTWwg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">losses</span></span> on any of the Company’s investments recognized in the years ended December 31, 2023, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, and 2022, short-term investments consisted solely of U.S. Government securities. The cost of these securities approximated fair value and there was no material gross <span style="-sec-ix-hidden:Hidden_pjbJ6uvL2kGFHSmhY40U_Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">realized</span></span> or <span style="-sec-ix-hidden:Hidden_yYol9gpqTk2ObiB6XUoN0Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">unrealized</span></span> gains or <span style="-sec-ix-hidden:Hidden_39l2Q2_Sg0CCUVXt16blJw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">losses</span></span> as of December 31, 2023 and 2022. Refer to Note 12, “Fair Value Measurements” for further discussion on the Company’s investments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recorded interest income from its cash, cash equivalents, and short-term investments of $5.5 million, $1.5 million and $0.1 million in the years ended December 31 2023, 2022 and 2021, respectively.</p> P90D P90D 0 0 5500000 1500000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable are determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $16.4 million and $13.5 million as of December 31, 2023 and 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.1 million and $0.8 million as of December 31, 2023 and 2022, respectively. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The changes in allowance for credit losses are summarized below (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write-offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Receivable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (20)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 963</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (73)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.</span></td></tr></table><div style="margin-top:12pt;"></div> 16400000 13500000 1100000 800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write-offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Receivable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (20)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:31.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 963</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (73)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.</span></td></tr></table><div style="margin-top:12pt;"></div> 890000 20000 20000 890000 890000 11000 11000 890000 963000 73000 890000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">5-10</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Shorter of estimated useful life or term of lease</p></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">5-10</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:59.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:38.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Shorter of estimated useful life or term of lease</p></td></tr></table> P3Y P3Y P5Y P10Y P3Y P10Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:12pt 0pt 12pt 0pt;">Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets consist of acquired technology, certain contract rights, customer relationships, patents, trademarks and trade names. These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from <span style="-sec-ix-hidden:Hidden_ixaaWURMU0OPky1CDc1hSQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to <span style="-sec-ix-hidden:Hidden_miwcImA3BEyYOjW905Q_Mw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">ten</span></span> years. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.</p> 1 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">(“ROU”) assets, operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company elected to not separate lease and non-lease components for all of its leases.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines if an arrangement is, or contains, a lease at inception. Operating lease ROU assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of the Company’s overall future business plans and other relevant business economic factors that may affect its business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from the Company’s initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Software Development Costs</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Internally developed software is software developed to meet the Company’s internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally <span style="-sec-ix-hidden:Hidden_MNlvqhU0Tk6cPDIKQrBs8A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">five</span></span> to <span style="-sec-ix-hidden:Hidden_UCUDJqs1gkSEYtvC9U3RMg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">six</span></span> years. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The costs to develop software that is marketed externally consisting of external direct costs and internal compensation related costs are capitalized once technological feasibility of the software product has been established. Costs incurred prior to establishing technological feasibility are expensed as incurred. Technological feasibility is established when the Company has completed all planning, designing, coding, and testing activities that are necessary to establish that the software product can be produced to meet its design specifications. Capitalization of such costs ceases when the software product is generally available to customers. These software development costs are amortized using the greater of the straight-line method or the usage method over its estimated useful life.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cost of Revenues</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Costs of revenues consist primarily of costs incurred to provide and support the Company’s services, costs recognized in connection with licensing its software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type leases), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by the Company in providing services to its customers in solution engagements or sold in conjunction with the Company’s software products.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Research and Development Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities. Research and development expenses are charged to operations as incurred.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Selling, General and Administrative Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Selling, general and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing and general and administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, IT and facilities cost allocations.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock-Based Compensation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of <span style="-sec-ix-hidden:Hidden_lkJGZhmzREqWxDlmQ9hD0w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four years</span></span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Income Taxes</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more likely than not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Income (Loss).</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Net Income (Loss) Per Share</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Foreign Currency Translation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive income (loss) are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive income (loss). Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Income (Loss).</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Derivative Financial Instruments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months. </p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Business Combinations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over their useful life, whereas any indefinite lived intangible assets, including in-process research and development, and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Litigation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (“FASB”) requirements. See Note 6, “Commitments and Contingencies”.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounting Standards Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In June 2016, the FASB issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to accumulated deficit as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recently Issued Accounting Pronouncements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2023, the FASB issued ASU No. 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures, which requires disclosure of incremental segment information on an annual and interim basis. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, and requires retrospective application to all prior periods presented in the financial statements. Early adoption is permitted. The Company is currently evaluating the impact of the new standard on the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2023, the FASB issued ASU 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” Adoption is either prospectively or retrospectively, the Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">2. REVENUE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes revenue in accordance with FASB Accounting Standard Codification (“ASC”) Topic 606, <i style="font-style:italic;">Revenue from Contracts with Customers</i>, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines revenue recognition through the following five steps:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the contract, or contracts, with a customer</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Determination of the transaction price</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Allocation of the transaction price to the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Recognition of revenue when, or as, performance obligations are satisfied</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contracts with multiple performance obligations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Analytics Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> and Cimetrix<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), SaaS (which is primarily Exensio products), and DFI™ systems and CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under Topic 842, Leases; otherwise it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics Revenue in the Consolidated Statements of Comprehensive Income (Loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in Property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from Property and equipment, net at lease commencement and a net investment in the lease asset is recognized in Prepaid expenses and other current assets and Other non-current assets in the Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue under these project–based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Gainshare royalty contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s IP after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of IP and records it in the same period in which the usage occurs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Disaggregation of Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue by timing of revenue:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:47.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">International revenues accounted for approximately 44%, 50% and 55% of total revenues for the years ended December 31, 2023, 2022 and 2021, respectively. See Note 11, “Customer and Geographic Information”.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Significant Judgments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s contracts with customers often include promises to transfer products, licenses software and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is required to record Gainshare royalty revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contract Balances</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e. contract liabilities) at the contract level. As of December 31, 2023 and 2022, contract assets of $6.8 million and $3.3 million, respectively, are included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets. As of December 31, 2023 and 2022, contract assets of $0.9 million and nil, respectively, are included in other non-current assets in the accompanying Consolidated Balance Sheets. The Company did not record any asset impairment charges related to contract assets during fiscal years 2023, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying Consolidated Balance Sheets. As of December 31, 2023 and 2022, the non-current portion of deferred revenues included in non-current liabilities was $1.8 million and $1.9 million, respectively. Revenue recognized for the years ended December 31, 2023, 2022 and 2021, that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $24.8 million, $24.9 million and $16.9 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $229.8 million. Given the applicable contract terms with customers, the majority of this amount is expected to be recognized as revenue over the next <span style="-sec-ix-hidden:Hidden_-1I1r_1pHE6CYQB4LfXQgg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three years</span></span>, with the remainder in the following <span style="-sec-ix-hidden:Hidden_DW4BLswGI0WttGkA4-q9MQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three years</span></span>. This amount does not include significant contracts to which the customer is not committed, future sales-based or usage-based royalty payments in exchange for a license of IP, and future payments for performance obligations from on-demand arrangements. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The adjustment to revenue recognized in the years ended December 31, 2023, 2022 and 2021 from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $3.7 million, an increase of $0.4 million and a decrease $0.4 million, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare royalty.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Costs to obtain or fulfill a contract</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets as of December 31, 2023 and 2022 was $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying Consolidated Balance Sheets as of December 31, 2023 and 2022 was $2.6 million and $2.1 million, respectively. Amortization of these assets for each of the years ended December 31, 2023, 2022 and 2021 was $2.1 million, <span style="-sec-ix-hidden:Hidden_QhJv_tJNs0anvaEcR-Tx2g;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.5</span></span> million and $0.7 million, respectively. There was no impairment loss in relation to the costs capitalized for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Practical Expedients</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not adjust transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component for the years ended December 31, 2023, 2022 and 2021.</p> 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:47.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:47.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 0.71 0.69 0.65 0.29 0.31 0.35 1 1 1 0.44 0.50 0.55 6800000 3300000 900000 0 1800000 1900000 24800000 24900000 16900000 229800000 3700000 400000 -400000 2000000.0 1700000 2600000 2100000 2100000 700000 0 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">3. PROPERTY AND EQUIPMENT</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Property and equipment consist of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12,515</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11,853</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,596</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,395</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,501</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,484</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,475</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,467</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and other equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,891</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,431</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 25,044</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 28,403</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Property and equipment in progress:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">DFI™ system assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22,231</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">CV® system and other assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,105</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 86,863</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 86,369</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (49,525)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (46,195)</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 40,174</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:9.35pt;margin:12pt 0pt 12pt 0pt;">Test equipment mainly includes DFI™ systems and CV® systems assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:9.35pt;margin:12pt 0pt 12pt 0pt;">Depreciation and amortization expense for the years ended December 31, 2023, 2022 and 2021 was $5.0 million, $5.5 million and $6.2 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:9pt;margin:0pt 0pt 12pt 0pt;">In 2021, the Company wrote down the value of its property and equipment by $3.2 million related to its first-generation of e-beam tools for DFI systems wherein carrying values may not be fully recoverable due to lack of market demand and future needs of its customers for these tools.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12,515</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11,853</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,596</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,395</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,501</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,484</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,475</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,467</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and other equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,891</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,431</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 25,044</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 28,403</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Property and equipment in progress:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">DFI™ system assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22,231</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">CV® system and other assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,105</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 86,863</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 86,369</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (49,525)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (46,195)</p></td></tr><tr><td style="vertical-align:bottom;width:73.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,338</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 40,174</p></td></tr></table> 12515000 11853000 5596000 5395000 2501000 2484000 6475000 6467000 4891000 4431000 25044000 28403000 22864000 22231000 6977000 5105000 86863000 86369000 49525000 46195000 37338000 40174000 5000000.0 5500000 6200000 3200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">4. GOODWILL AND INTANGIBLE ASSETS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company completed the acquisition of Lantern Machinery Analytics, Inc. in the year ended December 31, 2023. Refer to Note 14 for additional information related to the goodwill and intangible assets added from this acquisition.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of December 31, 2023 and 2022, the carrying amount of goodwill was $15.0 million and $14.1 million, respectively. The following table summarizes goodwill transaction for the years ended December 31, 2023, 2022 and 2021 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 15,774</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Addition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 895</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Measurement period acquisition adjustment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,651)</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Foreign currency translation adjustment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 15,029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets balance was $15.6 million and $18.1 million as of December 31, 2023 and 2022, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Intangible assets as of December 31, 2023 and 2022, consist of the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:28.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Acquired identifiable intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">1</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,508</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,335)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,173</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6,684)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,723</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">4</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 34,650</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (22,094)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 12,556</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 33,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (19,647)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 13,988</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">2</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,025)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 573</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (918)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 680</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">6</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,782)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,696)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 404</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (848)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (588)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 260</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 48,704</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (33,084)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 15,620</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 47,588</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (29,533)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 18,055</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The weighted average amortization period for acquired identifiable intangible assets was 5.3 years as of December 31, 2023. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Income (Loss) (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired technology included under costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,266</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,214</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,079</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired intangible assets presented separately under costs and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,270</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,255</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total amortization of acquired intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,551</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,484</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,334</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,237</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,072</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,903</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,750</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,445</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2029 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,213</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,620</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">There were no <span style="-sec-ix-hidden:Hidden_oJv0h-sGlEiJvDndz-LoJw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">impairment</span></span> <span style="-sec-ix-hidden:Hidden_mzutIA8aBk2uTobnIqMNlw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">charges</span></span> for goodwill and intangible assets for the years ended December 31, 2023, 2022 and 2021.</p> 15000000.0 14100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 15,774</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Addition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 895</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Measurement period acquisition adjustment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,651)</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Foreign currency translation adjustment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 15,029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,123</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets balance was $15.6 million and $18.1 million as of December 31, 2023 and 2022, respectively.</p> 14123000 14123000 15774000 895000 0 0 -1651000 11000 15029000 14123000 14123000 15600000 18100000 <table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:28.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Acquired identifiable intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">1</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,508</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,335)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,173</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6,684)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,723</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">4</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 34,650</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (22,094)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 12,556</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 33,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (19,647)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 13,988</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">2</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,025)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 573</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (918)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 680</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">6</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,782)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,696)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 404</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (848)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (588)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 260</p></td></tr><tr><td style="vertical-align:bottom;width:29.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 48,704</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (33,084)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 15,620</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 47,588</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (29,533)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.52%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 18,055</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The weighted average amortization period for acquired identifiable intangible assets was 5.3 years as of December 31, 2023. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Income (Loss) (in thousands):</p> P1Y P10Y 9508000 7335000 2173000 9407000 6684000 2723000 P4Y P9Y 34650000 22094000 12556000 33635000 19647000 13988000 P2Y P10Y 1598000 1025000 573000 1598000 918000 680000 P6Y P10Y 2100000 1782000 318000 2100000 1696000 404000 P3Y 848000 848000 848000 588000 260000 48704000 33084000 15620000 47588000 29533000 18055000 P5Y3M18D <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired technology included under costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,266</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,214</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,079</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired intangible assets presented separately under costs and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,270</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,255</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total amortization of acquired intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,551</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,484</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,334</p></td></tr></table> 2266000 2214000 2079000 1285000 1270000 1255000 3551000 3484000 3334000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,237</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,072</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,903</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,750</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,445</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2029 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,213</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,620</p></td></tr></table> 3237000 3072000 2903000 2750000 2445000 1213000 15620000 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">5. LEASES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:9.35pt;margin:12pt 0pt 12pt 0pt;">In 2022, the Company early terminated an office lease contract. The termination of this lease reduced the Company’s operating lease ROU assets and lease liabilities by approximately $0.5 million and $0.6 million, respectively. The gain from the lease termination of approximately $0.1 million was recorded under selling, general and administrative expense in the accompanying Consolidated Statement of Comprehensive Loss for the year ended December 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Lease expense was comprised of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,534</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,860</p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Short-term lease and variable lease expense (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 923</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,032</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 822</p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,489</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,682</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Net of gain recognized upon lease termination of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$0.1</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million in the year ended December 31, 2022.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Supplemental consolidated balance sheets information related to leases was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.96</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.87</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Maturity of operating lease liabilities as of December 31, 2023, are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount (1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,663</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,611</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,355</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,294</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 929</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 63</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,915</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (729)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,186</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of December 31, 2023, the total operating lease liability includes </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.0 </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">million related to an option to extend a lease term that is reasonably certain to be exercised</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes the current portion of operating lease liabilities of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.5</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million as of December 31, 2023.</span></td></tr></table> 500000 600000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,534</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,860</p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Short-term lease and variable lease expense (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 923</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,032</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 822</p></td></tr><tr><td style="vertical-align:bottom;width:65.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,489</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,682</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Net of gain recognized upon lease termination of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$0.1</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million in the year ended December 31, 2022.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table> 1534000 1457000 1860000 923000 1032000 822000 2457000 2489000 2682000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.96</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.87</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> P4Y4M24D P5Y3M18D 0.0496 0.0487 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount (1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,663</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,611</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,355</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,294</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 929</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 63</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,915</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (729)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,186</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of December 31, 2023, the total operating lease liability includes </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.0 </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">million related to an option to extend a lease term that is reasonably certain to be exercised</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes the current portion of operating lease liabilities of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.5</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million as of December 31, 2023.</span></td></tr></table> 1663000 1611000 1355000 1294000 929000 63000 6915000 729000 6186000 1000000.0 1500000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:12pt 0pt 12pt 0pt;"><b style="font-weight:bold;">6. COMMITMENTS AND CONTINGENCIES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Strategic Partnership with Advantest</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">See Note 13 for the discussion about the Company’s commitments under the strategic partnership with Advantest.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Operating Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Refer to Note 5, “Leases”, for the discussion about the Company’s lease commitments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Indemnifications</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following delivery of its products. The Company also indemnifies certain customers from third-party claims of IP infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Purchase Obligations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company has purchase obligations with certain suppliers for the purchase of goods and services entered in the ordinary course of business. As of December 31, 2023, total outstanding purchase obligations were $26.2 million, the majority of which are due within the next 2 years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Indemnification of Officers and Directors</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Litigation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2023, except as disclosed below, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research &amp; Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023. A decision is currently expected in 2024.</p> P90D 26200000 P2Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">7. STOCKHOLDERS’ EQUITY</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Repurchase Program</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. During the year ended December 31, 2021, 251,212 shares were repurchased by the Company under the 2020 Program at an average price of $18.01 per share for an aggregate total price of $4.5 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years. During the year ended December 31, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. During the year ended December 31, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.</p> 25000000.0 218858 26.40 5800000 251212 18.01 4500000 470070 21.91 10300000 35000000.0 21340 34.81 700000 714600 23.36 16700000 735940 23.69 17400000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">8. EMPLOYEE BENEFIT PLANS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On December 31, 2023, the Company had the following stock-based compensation plans:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Employee Stock Purchase Plans</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four <span style="-sec-ix-hidden:Hidden_xuVGg0OCqUaBW2QVoEY7gw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">six-month</span></span> purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan” and, together with the 2010 Purchase Plan, the “Employee Purchase Plans”). The terms of 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company estimated the fair value of purchase rights granted under the Employee Purchase Plans during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;width:43.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021 Purchase Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;width:43.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.66</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">During the years ended December 31, 2023 and 2022, a total of 223,608 and 182,083 shares, respectively, were issued under the 2021 Purchase Plan, at a weighted-average purchase price of $17.14 per share and $16.15 per share, respectively. During the years ended December 31, 2022 and 2021 a total of 5,203 and 108,623 shares, respectively, were issued under the 2010 Purchase Plan, at a weighted-average purchase price of $13.40 per share and $9.53 per share, respectively. As of December 31, 2023, unrecognized compensation cost related to the 2021 Purchase Plan was $3.0 million. This estimated unrecognized cost is expected to be recognized over a weighted average period of 1.5 years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, 594,309 shares were available for future issuance under the 2021 Purchase Plan.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Incentive Plans</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as amended, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 13.8 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire <span style="-sec-ix-hidden:Hidden_NuuuNbM3s0myUewgzGsEkA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">ten</span></span> years from the date of grant and become vested and exercisable over a four-year period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, 14.3 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.7 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through December 31, 2023. As of December 31, 2023, there were no outstanding awards that were granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company has elected to use the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life, interest rate and expected dividend. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life of an award is based on historical experience and on the terms and conditions of the stock awards granted to employees. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">No <span style="-sec-ix-hidden:Hidden_A6k1gt0Blkqh2t7D7SmSfQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">stock</span></span> <span style="-sec-ix-hidden:Hidden_ig3zrfh_RUKuLnzmuMpkyQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">options</span></span> were granted during the years ended December 31, 2023, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally <span style="-sec-ix-hidden:Hidden_jpCcRLCNKEqqf1ZoBNxTgA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> years. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,169</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,974</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,563</p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,391</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,515</p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,604</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,284</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,853</p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21,484</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,649</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12,931</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was $0.1 million for the year ended December 31, 2023, and <span style="-sec-ix-hidden:Hidden_4taeuC5DnUi70jZT0gcF8Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">nil</span></span> <span style="-sec-ix-hidden:Hidden_xtH1NVHnaU6lObguUiTi_w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">for</span></span> the years ended December 31, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Additional information with respect to options under the Plans is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:30.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Term</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">per Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, January 1, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (30)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.05</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 619</p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested and expected to vest, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.05</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 619</p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.84</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3.97</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 599</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.14 as of December 31, 2023, which would have been received by the option holders had all option holders exercised their options as of that date. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The total intrinsic value of options exercised during the years ended December 31, 2023, 2022 and 2021 was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Intrinsic value of options exercised </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 630</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,287</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,972</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Total remaining unrecognized compensation cost related to unvested stock options as of December 31, 2023, which is expected to be fully recognized in 2024, and total fair value of shares vested during the year ended December 31, 2023, was immaterial.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Nonvested shares (restricted stock units) were as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, January 1, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21.29</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 783</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.46</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (882)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21.00</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (30)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 27.60</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,995</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30.03</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The weighted average grant date fair values of restricted stock units granted during fiscal 2023, 2022 and 2021 were $43.46, $23.23 and $19.43, respectively. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The total fair value of restricted stock units vested during fiscal 2023, 2022 and 2021 was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of restricted stock units vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 32,786</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22,676</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13,617</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of December 31, 2023, there was $45.4 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.5 years. Restricted stock units do not have rights to dividends prior to vesting.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">401(k) Savings Plan</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company sponsors a 401(k) Retirement Savings Plan (the “401(k) Plan”) covering substantially all of its US employees. The Company’s 401(k) Plan is a defined contribution plan with a 401(k) salary deferral arrangement qualified under appropriate provisions of the Internal Revenue Code (the “Code”) and applicable state laws.  Under the 401(k) Plan, eligible employees may make pre-tax salary or after-tax contributions up to 60% of annual compensation, as defined by the 401(k) Plan. In addition, participants who have reached the age of 50 can elect to withhold additional catch-up contributions subject to the Code and the 401(k) Plan limits. Participants may also contribute amounts representing distributions from other qualified plans (rollovers). The Company may make discretionary matching contributions. In fiscal 2023 and 2022, the Company matched from 50% to 100% of each employee’s contribution up to a maximum of 4% of the employee’s total eligible earnings. The Company’s matching contributions to the 401(k) Plan aggregated $1.7 million and $1.6 million for the years ended December 31, 2023 and 2022. No discretionary Company contributions were made to the Plan through December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 0.10 0.85 P24M 4 P10Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;width:43.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021 Purchase Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;width:43.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.66</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table> P1Y3M P1Y3M P1Y3M 0.4366 0.4873 0.4800 0.0515 0.0275 0.0011 0 0 0 15.71 10.00 6.71 223608 182083 17.14 16.15 5203 108623 13.40 9.53 3000000.0 P1Y6M 594309 13800000 3500000 -1.33 P4Y 14300000 3700000 500000 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,169</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,974</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,563</p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,391</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,515</p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,604</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,284</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,853</p></td></tr><tr><td style="vertical-align:bottom;width:47.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21,484</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,649</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12,931</p></td></tr></table> 4169000 2974000 2563000 7711000 9391000 5515000 9604000 7284000 4853000 21484000 19649000 12931000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:30.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Term</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">per Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, January 1, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (30)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.05</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 619</p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested and expected to vest, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.05</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 619</p></td></tr><tr><td style="vertical-align:bottom;width:36.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.73%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.84</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3.97</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 599</p></td></tr></table> 68000 16.11 30000 16.36 38000 15.92 P4Y18D 619000 38000 15.91 P4Y18D 619000 37000 15.84 P3Y11M19D 599000 32.14 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Intrinsic value of options exercised </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 630</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,287</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,972</p></td></tr></table> 630000 2287000 2972000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Nonvested shares (restricted stock units) were as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, January 1, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21.29</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 783</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.46</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (882)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21.00</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (30)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 27.60</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,995</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30.03</p></td></tr></table> 2124000 21.29 783000 43.46 882000 21.00 30000 27.60 1995000 30.03 43.46 23.23 19.43 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of restricted stock units vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 32,786</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22,676</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13,617</p></td></tr></table> 32786000 22676000 13617000 45400000 P2Y6M 0.60 0.50 1 0.04 1700000 1600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">9. INCOME TAXES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">During the years ended December 31, 2023, 2022 and 2021, income (loss) before income tax expense from U.S. operations was $3.2 million, ($1.2) million and ($19.7) million, respectively, and income before income tax expense from foreign operations was $1.7 million, $1.7 million and $1.4 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="10" style="padding:0pt;"></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(In thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">U.S.</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (353)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,210</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67)</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,318</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 453</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 577</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 237</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Withholding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,770</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,591</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (109)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 92</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,899</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,171</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2023, 2022 and 2021) for the following reasons (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Federal statutory tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,016</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 106</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,847)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">State tax provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (65)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 949</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 239</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,747)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (898)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (499)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax credits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,214)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,877)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,676)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign tax, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,195</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,653</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign-derived intangible income (FDII) deduction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,612)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (830)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Change in valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,043</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,122</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 8,099</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Section 162(m) limitation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 424</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unrealized tax benefit reserve changes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 99</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (151)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (39)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (96)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 353</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,899</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,171</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of December 31, 2023, the Company had federal and California net operating loss carry-forwards (“NOLs”) of approximately $7.2 million and $12.7 million, respectively. Some of the federal NOLs, acquired as part of a past acquisition, have expirations at the end of this fiscal year and onwards, and the California NOLs begin expiring in 2028 onwards.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2023, the Company had federal and state research and experimental and other tax credit (“R&amp;D credits”) carry-forwards of approximately $23.7 million and $24.5 million, respectively. The federal credits began to expire in 2022, while the California credits have no expiration. The extent to which the federal and state credit carry-forwards can be used to offset future tax liabilities, respectively, may be limited, depending on the extent of ownership changes within any three-year period as provided in the Tax Reform Act of 1986 and the California Conformity Act of 1987.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company assesses its deferred tax assets for recoverability on a regular basis, and where applicable, a valuation allowance is recorded to reduce the total deferred tax asset to an amount that will, more likely than not, be realized in the future. Based on all available evidence, both positive and negative, the Company determined a full valuation allowance was still appropriate for its federal and state net deferred tax assets (“DTAs”) as of December 31, 2023, primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2023 and the likelihood that the Company will not utilize tax attributes before they begin to expire. The valuation allowance was approximately $64.2 million and $59.2 million as of December 31, 2023 and 2022, respectively. The increase in the valuation allowance from December </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">31, 2022 to December 31, 2023 was primarily driven by an increase in capitalized research and experimental expenses and credits generated in the current year which require a valuation allowance. Management will continue to evaluate the need for a valuation allowance and may change its conclusion in a future period based on any change in facts (e.g. 12-quarter cumulative profit, significant new revenue, and other relevant factors). If the Company concludes that it is more likely than not to utilize some or all of its U.S. DTAs, it will release some or all of its valuation allowance and the Company’s tax provision will decrease in the period in which such determination is made. Net deferred tax assets, after the U.S. valuation allowance, were immaterial as of December 31, 2023 and 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The components of the net deferred tax assets are comprised of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Net operating loss carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,005</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,861</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Research and development and other credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30,633</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 28,046</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Foreign tax credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,611</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11,764</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Capitalized research and experimental expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20,403</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10,069</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Accruals deductible in different periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,037</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,713</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,282</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,623</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,882</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,948</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 68,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 65,024</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Less: valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (64,152)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (59,215)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,701</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,809</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (612)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (540)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,266)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,635)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,995)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,617)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,873)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,792)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred tax assets (liabilities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (172)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 17</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company classifies its liabilities for income tax exposures as long-term. The Company includes interest related to unrecognized tax benefits within the Company’s income tax provision. As of December 31, 2023, 2022 and 2021, the Company had accrued interest related to unrecognized tax benefits of $0.7 million. In the years ended December 31, 2023, 2022 and 2021, the Company recognized (reversal of) charges for interest related to unrecognized tax benefits of ($15,000), ($61,000) and ($89,000) respectively, in the Consolidated Statements of Comprehensive Income (Loss).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s total amount of unrecognized tax benefits, excluding interest, as of December 31, 2023 was $15.9 million, of which $2.0 million, if recognized, would impact the Company’s effective tax rate. As of December 31, 2023, the Company has recorded unrecognized tax benefits of $2.6 million, including interest of $0.7 million, as long-term income taxes payable in its Consolidated Balance Sheet. The remaining $14.0 million has been recorded within DTAs, which is subject to a full valuation allowance. The Company does not expect the change in unrecognized tax benefits over the next twelve months to materially impact its results of operations and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, January 1, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,300</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 853</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (411)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,743</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 988</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (622)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,109</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,469</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 91</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (732)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,937</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company does not provide deferred taxes on undistributed earnings of its foreign subsidiaries as it intends to indefinitely reinvest those earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal, various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the years ended 2020 to present and 2019 to present, respectively. In addition, all of the NOLs and R&amp;D credit carry-forwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under income tax examinations in the U.S. or in any other of its major foreign subsidiaries’ jurisdictions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Valuation allowance for DTAs is summarized (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Income Tax</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write-offs of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 59,215</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 64,152</p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 51,586</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,629</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 59,215</p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 41,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,727</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 51,586</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="font-size:12pt;margin-bottom:12pt;visibility:hidden;">​</span><span style="font-size:12pt;margin-bottom:12pt;visibility:hidden;">​</span></p> 3200000 -1200000 -19700000 1700000 1700000 1400000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="10" style="padding:0pt;"></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(In thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">U.S.</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (353)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,210</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67)</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,318</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 453</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 577</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 237</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Withholding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,770</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,591</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (109)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 92</p></td></tr><tr><td style="vertical-align:bottom;width:65.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.12%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,899</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,171</p></td></tr></table> -353000 1210000 -67000 3000 13000 1318000 453000 577000 237000 1770000 2111000 1591000 -109000 -12000 92000 1764000 3899000 3171000 0.21 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Federal statutory tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,016</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 106</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,847)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">State tax provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (65)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 949</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 239</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,747)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (898)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (499)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax credits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,214)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,877)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,676)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign tax, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,195</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,653</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign-derived intangible income (FDII) deduction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,612)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (830)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Change in valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,043</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,122</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 8,099</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Section 162(m) limitation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 424</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unrealized tax benefit reserve changes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 99</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (151)</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (39)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (96)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 353</p></td></tr><tr><td style="vertical-align:bottom;width:66.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,899</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,171</p></td></tr></table> 1016000 106000 -3847000 -65000 949000 239000 -1747000 -898000 -499000 3214000 2877000 2676000 1859000 2195000 1653000 1612000 830000 5043000 5122000 8099000 424000 92000 99000 136000 -151000 -39000 -96000 353000 1764000 3899000 3171000 7200000 12700000 23700000 24500000 64200000 59200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Net operating loss carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,005</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,861</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Research and development and other credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30,633</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 28,046</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Foreign tax credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,611</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11,764</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Capitalized research and experimental expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20,403</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10,069</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Accruals deductible in different periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,037</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,713</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,282</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,623</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,882</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,948</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 68,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 65,024</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Less: valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (64,152)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (59,215)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,701</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,809</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (612)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (540)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,266)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,635)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,995)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,617)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,873)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,792)</p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred tax assets (liabilities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (172)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 17</p></td></tr></table> 3005000 3861000 30633000 28046000 7611000 11764000 20403000 10069000 4037000 7713000 1282000 1623000 1882000 1948000 68853000 65024000 64152000 59215000 4701000 5809000 612000 540000 1266000 1635000 2995000 3617000 4873000 5792000 172000 17000 700000 -15000 -61000 -89000 15900000 2000000.0 2600000 700000 14000000.0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, January 1, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,300</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 853</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (411)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,743</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 988</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (622)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,109</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,469</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 91</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (732)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Gross unrecognized tax benefits, December 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,937</p></td></tr></table> 14300000 853000 1000 411000 14743000 988000 0 622000 15109000 1469000 91000 732000 15937000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Income Tax</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Write-offs of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 59,215</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 64,152</p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 51,586</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,629</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 59,215</p></td></tr><tr><td style="vertical-align:bottom;width:51.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 41,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,727</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 51,586</p></td></tr></table> 59215000 4937000 64152000 51586000 7629000 59215000 41859000 9727000 51586000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">10. NET INCOME (LOSS) PER SHARE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net income (loss) per share (in thousands except per share amount):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,105</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,429)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (21,488)</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,015</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,309</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,138</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 922</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,309</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,138</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss) per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.09)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.58)</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.09)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.58)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">For the years ended December 31, 2022 and 2021, because the Company was in a loss position, basic net loss per share is the same as diluted net loss per share as the inclusion of the potential common shares would have been anti-dilutive.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The following table sets forth potential shares of common stock that are not included in the diluted net income (loss) per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:32.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 170</p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 787</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 968</p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Employee Stock Purchase Plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 84</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 33</p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,171</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:32.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,105</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,429)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (21,488)</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,015</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,309</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,138</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 922</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,309</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,138</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss) per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.09)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.58)</p></td></tr><tr><td style="vertical-align:bottom;width:65.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.03%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.08</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.09)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.58)</p></td></tr></table> 3105000 -3429000 -21488000 38015000 37309000 37138000 922000 38937000 37309000 37138000 0.08 -0.09 -0.58 0.08 -0.09 -0.58 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:32.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 170</p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 787</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 968</p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Employee Stock Purchase Plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 84</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 33</p></td></tr><tr><td style="vertical-align:bottom;width:64.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,171</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> 56000 170000 351000 787000 968000 84000 33000 351000 927000 1171000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">11. CUSTOMER AND GEOGRAPHIC INFORMATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and <span style="-sec-ix-hidden:Hidden_3gqnMC-dXkC8UZ-MO7F1Cg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">reporting</span></span> segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:36.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">G</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">represents less than 10%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100.82%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:69.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#ffffff;">$</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#ffffff;">$</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 92,798</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 73,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 50,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 26,488</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,267</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Japan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10,465</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13,916</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11,097</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,084</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,514</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 35,322</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 165,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 148,549</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 111,060</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Long-lived assets, net by geographic area is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 45,619</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 44,730</p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,362</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,446</p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 46,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 46,176</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="margin-bottom:12pt;visibility:hidden;">​</span><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">(1)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">Includes assets deployed at customer sites which could be outside the U.S.</p></td></tr></table> 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:36.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:58.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">G</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">represents less than 10%</p></td></tr></table> 0.35 0.31 0.17 0.10 0.10 0.39 0.29 0.12 0.12 0.11 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100.82%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="16" style="vertical-align:bottom;white-space:nowrap;width:69.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#ffffff;">$</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#ffffff;">$</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 92,798</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 73,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 50,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 26,488</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,267</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Japan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10,465</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 13,916</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11,097</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,084</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,514</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 35,322</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:26.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 165,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 148,549</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 111,060</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 92798000 0.56 73625000 0.50 50374000 0.45 26488000 0.16 24494000 0.16 14267000 0.13 10465000 0.06 13916000 0.09 11097000 0.10 36084000 0.22 36514000 0.25 35322000 0.32 165835000 1 148549000 1 111060000 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 45,619</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 44,730</p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,362</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,446</p></td></tr><tr><td style="vertical-align:bottom;width:71.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 46,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 46,176</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="margin-bottom:12pt;visibility:hidden;">​</span><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">(1)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">Includes assets deployed at customer sites which could be outside the U.S.</p></td></tr></table> 45619000 44730000 1362000 1446000 46981000 46176000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">12. FAIR VALUE MEASUREMENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 0pt 0pt;">Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:14.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;width:85.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 0pt 18pt;">Level 1 -</p></td><td style="vertical-align:top;width:85.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:justify;margin:0pt;">Inputs are quoted prices in active markets for identical assets or liabilities.</p></td></tr><tr><td style="vertical-align:top;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 0pt 18pt;">Level 2 -</p></td><td style="vertical-align:top;width:85.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:justify;margin:0pt;">Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.</p></td></tr><tr><td style="vertical-align:top;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 0pt 18pt;">Level 3 -</p></td><td style="vertical-align:top;width:85.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:justify;margin:0pt;">Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2023 and the basis for that measurement (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:53.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs (Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 83,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 83,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,544</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,544</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 120,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 120,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2022 and the basis for that measurement (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:51.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs </b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 75,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 75,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 97,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 97,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022.</span></td></tr></table><div style="margin-top:12pt;"></div> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:53.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs (Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 83,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 83,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,544</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,544</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 120,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 120,354</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:51.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs </b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 75,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 75,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 97,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 97,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022.</span></td></tr></table><div style="margin-top:12pt;"></div> 83810000 83810000 36544000 36544000 120354000 120354000 75738000 75738000 1990000 1990000 19557000 19557000 97285000 97285000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">13. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”), which includes: (i) a Securities Purchase Agreement wherein the Company issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of its common stock, for aggregate gross proceeds of $65.2 million; (ii) a significant agreement for its assistance in development of cloud-based applications for Advantest tools that leverages our Exensio analytics software ; (iii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; and (iv) a 5-year cloud-based subscription for Exensio analytics software and related services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue recognized from Advantest during the years ended December 31, 2023, 2022 and 2021 was $9.0 million, $10.3 million and $10.6 million, respectively. Accounts receivable from Advantest were not material as of December 31, 2023 and amounted to $0.3 million as of December 31, 2022. Deferred revenue amounted to $9.4 million and $7.1 million as of December 31, 2023 and 2022, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company carries out transactions with Advantest on arm’s length commercial customary terms.</p> 3306924 65200000 P5Y 9000000.0 10300000 10600000 0 300000 9400000 7100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">14. BUSINESS COMBINATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On July 5, 2023 (the “Acquisition Date”), the Company, through its wholly-owned subsidiary in Canada, PDF Solutions Canada, Ltd., acquired 100% of the equity interest in Lantern Machinery Analytics, Inc. headquartered in Canada, a privately-held provider of automated image analysis and feature extraction AI/ML software for critical inspection and metrology steps at battery cell development and manufacturing processes for the electric vehicle industry. This software will enhance the Company’s Exensio analytics software and product offerings to new and existing battery manufacturer customers. The total cash consideration for this acquisition was $1.8 million, net of cash acquired, for all of the outstanding equity of Lantern Machinery Analytics, Inc. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, <i style="font-style:italic;">Business Combinations</i>. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. As of December 31, 2023, payment made for this acquisition, net of cash acquired, amounted to $1.8 million and was funded from available cash of the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of tangible assets (including cash of $265)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,010</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">8</p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">6</p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 895</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total assets acquired</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,455</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 294</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable and accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Pro forma results of operations have not been presented because the effect of the acquisition was not material to the Company’s financial results.</p> 1 1800000 1800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of tangible assets (including cash of $265)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,010</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">8</p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">6</p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 895</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total assets acquired</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,455</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 294</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable and accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.99%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table> 265000 450000 1010000 P8Y 100000 P6Y 895000 2455000 294000 73000 367000 2088000 false false false false 207 The carrying amount of the Company’s investments in U.S. Government securities approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities as of December 31, 2023 and 2022. Additions to the accounts receivable reserve for credit losses are charged to bad debt expense.