0001200375-22-000018.txt : 20220509 0001200375-22-000018.hdr.sgml : 20220509 20220509163406 ACCESSION NUMBER: 0001200375-22-000018 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 82 CONFORMED PERIOD OF REPORT: 20220331 FILED AS OF DATE: 20220509 DATE AS OF CHANGE: 20220509 FILER: COMPANY DATA: COMPANY CONFORMED NAME: CODEXIS, INC. CENTRAL INDEX KEY: 0001200375 STANDARD INDUSTRIAL CLASSIFICATION: INDUSTRIAL ORGANIC CHEMICALS [2860] IRS NUMBER: 710872999 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-34705 FILM NUMBER: 22905612 BUSINESS ADDRESS: STREET 1: 200 PENOBSCOT DRIVE CITY: REDWOOD CITY STATE: CA ZIP: 94063 BUSINESS PHONE: 650-421-8100 MAIL ADDRESS: STREET 1: 200 PENOBSCOT DRIVE CITY: REDWOOD CITY STATE: CA ZIP: 94063 FORMER COMPANY: FORMER CONFORMED NAME: CODEXIS INC DATE OF NAME CHANGE: 20021022 10-Q 1 cdxs-20220331.htm 10-Q cdxs-20220331
0001200375false2022Q112/319119119113300012003752022-01-012022-03-3100012003752022-05-04xbrli:shares00012003752022-03-31iso4217:USD00012003752021-12-310001200375srt:AffiliatedEntityMember2022-03-310001200375srt:AffiliatedEntityMember2021-12-31iso4217:USDxbrli:shares0001200375cdxs:ProductSalesMember2022-01-012022-03-310001200375cdxs:ProductSalesMember2021-01-012021-03-310001200375srt:AffiliatedEntityMembercdxs:ResearchandDevelopmentRevenueMember2022-01-012022-03-310001200375srt:AffiliatedEntityMembercdxs:ResearchandDevelopmentRevenueMember2021-01-012021-03-310001200375cdxs:ResearchandDevelopmentRevenueMember2022-01-012022-03-310001200375cdxs:ResearchandDevelopmentRevenueMember2021-01-012021-03-3100012003752021-01-012021-03-310001200375us-gaap:CommonStockMember2021-12-310001200375us-gaap:AdditionalPaidInCapitalMember2021-12-310001200375us-gaap:RetainedEarningsMember2021-12-310001200375us-gaap:CommonStockMember2022-01-012022-03-310001200375us-gaap:AdditionalPaidInCapitalMember2022-01-012022-03-310001200375us-gaap:RetainedEarningsMember2022-01-012022-03-310001200375us-gaap:CommonStockMember2022-03-310001200375us-gaap:AdditionalPaidInCapitalMember2022-03-310001200375us-gaap:RetainedEarningsMember2022-03-310001200375us-gaap:CommonStockMember2020-12-310001200375us-gaap:AdditionalPaidInCapitalMember2020-12-310001200375us-gaap:RetainedEarningsMember2020-12-3100012003752020-12-310001200375us-gaap:CommonStockMember2021-01-012021-03-310001200375us-gaap:AdditionalPaidInCapitalMember2021-01-012021-03-310001200375us-gaap:RetainedEarningsMember2021-01-012021-03-310001200375us-gaap:CommonStockMember2021-03-310001200375us-gaap:AdditionalPaidInCapitalMember2021-03-310001200375us-gaap:RetainedEarningsMember2021-03-3100012003752021-03-31cdxs:segment0001200375cdxs:ProductSalesMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375cdxs:ProductSalesMembercdxs:BiotherapeuticSegmentMember2022-01-012022-03-310001200375cdxs:ProductSalesMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375cdxs:ProductSalesMembercdxs:BiotherapeuticSegmentMember2021-01-012021-03-310001200375cdxs:ResearchandDevelopmentRevenueMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375cdxs:BiotherapeuticSegmentMembercdxs:ResearchandDevelopmentRevenueMember2022-01-012022-03-310001200375cdxs:ResearchandDevelopmentRevenueMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375cdxs:BiotherapeuticSegmentMembercdxs:ResearchandDevelopmentRevenueMember2021-01-012021-03-310001200375cdxs:CoreSegmentMember2022-01-012022-03-310001200375cdxs:BiotherapeuticSegmentMember2022-01-012022-03-310001200375cdxs:CoreSegmentMember2021-01-012021-03-310001200375cdxs:BiotherapeuticSegmentMember2021-01-012021-03-310001200375srt:AmericasMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375srt:AmericasMembercdxs:BiotherapeuticSegmentMember2022-01-012022-03-310001200375srt:AmericasMember2022-01-012022-03-310001200375srt:AmericasMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375srt:AmericasMembercdxs:BiotherapeuticSegmentMember2021-01-012021-03-310001200375srt:AmericasMember2021-01-012021-03-310001200375us-gaap:EMEAMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375us-gaap:EMEAMembercdxs:BiotherapeuticSegmentMember2022-01-012022-03-310001200375us-gaap:EMEAMember2022-01-012022-03-310001200375us-gaap:EMEAMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375us-gaap:EMEAMembercdxs:BiotherapeuticSegmentMember2021-01-012021-03-310001200375us-gaap:EMEAMember2021-01-012021-03-310001200375cdxs:APACMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375cdxs:BiotherapeuticSegmentMembercdxs:APACMember2022-01-012022-03-310001200375cdxs:APACMember2022-01-012022-03-310001200375cdxs:APACMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375cdxs:BiotherapeuticSegmentMembercdxs:APACMember2021-01-012021-03-310001200375cdxs:APACMember2021-01-012021-03-310001200375cdxs:ProductSalesMember2022-04-012022-03-310001200375cdxs:ProductSalesMember2023-01-012022-03-3100012003752024-01-01cdxs:ProductSalesMember2022-03-3100012003752025-01-01cdxs:ProductSalesMember2022-03-310001200375cdxs:ProductSalesMember2022-03-3100012003752022-04-01cdxs:ResearchandDevelopmentRevenueMember2022-03-3100012003752023-01-01cdxs:ResearchandDevelopmentRevenueMember2022-03-3100012003752024-01-01cdxs:ResearchandDevelopmentRevenueMember2022-03-3100012003752025-01-01cdxs:ResearchandDevelopmentRevenueMember2022-03-310001200375cdxs:ResearchandDevelopmentRevenueMember2022-03-3100012003752022-04-012022-03-3100012003752023-01-012022-03-3100012003752024-01-012022-03-3100012003752025-01-012022-03-310001200375us-gaap:StockCompensationPlanMember2022-01-012022-03-310001200375us-gaap:StockCompensationPlanMember2021-01-012021-03-3100012003752020-11-3000012003752021-07-310001200375cdxs:SeriesB2PreferredStockMember2022-01-012022-03-310001200375us-gaap:ConvertibleDebtMember2022-03-310001200375us-gaap:ConvertibleDebtMember2021-12-310001200375cdxs:SeqWellMemberus-gaap:SeriesCPreferredStockMember2022-03-310001200375cdxs:SeqWellMember2022-03-310001200375cdxs:MolecularAssembliesIncMember2022-03-310001200375cdxs:MolecularAssembliesIncMember2021-12-310001200375cdxs:SeqWellMember2021-12-310001200375cdxs:SecurityOwnedNotReadilyMarketableMAIMember2022-03-310001200375cdxs:SecurityOwnedNotReadilyMarketableMAIMember2021-12-310001200375us-gaap:FairValueInputsLevel1Memberus-gaap:MoneyMarketFundsMember2022-03-310001200375us-gaap:FairValueInputsLevel2Memberus-gaap:MoneyMarketFundsMember2022-03-310001200375us-gaap:FairValueInputsLevel3Memberus-gaap:MoneyMarketFundsMember2022-03-310001200375us-gaap:MoneyMarketFundsMember2022-03-310001200375us-gaap:FairValueInputsLevel1Memberus-gaap:MoneyMarketFundsMember2021-12-310001200375us-gaap:FairValueInputsLevel2Memberus-gaap:MoneyMarketFundsMember2021-12-310001200375us-gaap:FairValueInputsLevel3Memberus-gaap:MoneyMarketFundsMember2021-12-310001200375us-gaap:MoneyMarketFundsMember2021-12-310001200375us-gaap:ConvertibleDebtMember2021-01-012021-03-310001200375us-gaap:ConvertibleDebtMember2022-01-012022-03-310001200375cdxs:LaboratoryEquipmentMember2022-03-310001200375cdxs:LaboratoryEquipmentMember2021-12-310001200375us-gaap:LeaseholdImprovementsMember2022-03-310001200375us-gaap:LeaseholdImprovementsMember2021-12-310001200375us-gaap:ComputerEquipmentMember2022-03-310001200375us-gaap:ComputerEquipmentMember2021-12-310001200375cdxs:OfficeEquipmentAndFurnitureMember2022-03-310001200375cdxs:OfficeEquipmentAndFurnitureMember2021-12-310001200375us-gaap:ConstructionInProgressMember2022-03-310001200375us-gaap:ConstructionInProgressMember2021-12-310001200375cdxs:A2019PlanMember2019-04-220001200375cdxs:A2019PlanMember2019-06-300001200375cdxs:IncentiveStockOptionsMember2022-01-012022-03-31xbrli:pure0001200375cdxs:NonStatutoryStockOptionsMember2022-01-012022-03-310001200375us-gaap:EmployeeStockOptionMember2022-01-012022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheOneMemberus-gaap:EmployeeStockOptionMember2022-01-012022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheTwoMemberus-gaap:EmployeeStockOptionMember2022-01-012022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheOneMemberus-gaap:RestrictedStockUnitsRSUMember2022-01-012022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheTwoMemberus-gaap:RestrictedStockUnitsRSUMember2022-01-012022-03-310001200375us-gaap:PerformanceSharesMember2022-03-31cdxs:installment0001200375us-gaap:ShareBasedCompensationAwardTrancheOneMemberus-gaap:PerformanceSharesMember2022-01-012022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheTwoMemberus-gaap:PerformanceSharesMember2022-01-012022-03-310001200375us-gaap:PerformanceSharesMember2022-01-012022-03-310001200375cdxs:A2022PSUMemberus-gaap:PerformanceSharesMember2022-03-310001200375cdxs:A2022PBOMemberus-gaap:PerformanceSharesMember2022-03-310001200375cdxs:A2021PSUMemberus-gaap:PerformanceSharesMember2022-03-310001200375cdxs:A2021PBOMemberus-gaap:PerformanceSharesMember2022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheOneMembercdxs:A2021PSUAnd2021PBOMemberus-gaap:PerformanceSharesMember2022-01-012022-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheTwoMembersrt:ScenarioForecastMembercdxs:A2021PSUAnd2021PBOMemberus-gaap:PerformanceSharesMember2023-01-012023-03-310001200375cdxs:A2020PSUMemberus-gaap:PerformanceSharesMember2021-03-310001200375cdxs:A2020PBOMemberus-gaap:PerformanceSharesMember2021-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheOneMembercdxs:A2020PSUAndPBOPlanMemberus-gaap:PerformanceSharesMember2021-01-012021-03-310001200375us-gaap:ShareBasedCompensationAwardTrancheTwoMembercdxs:A2020PSUAndPBOPlanMemberus-gaap:PerformanceSharesMember2022-01-012022-03-310001200375us-gaap:ResearchAndDevelopmentExpenseMember2022-01-012022-03-310001200375us-gaap:ResearchAndDevelopmentExpenseMember2021-01-012021-03-310001200375us-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-03-310001200375us-gaap:SellingGeneralAndAdministrativeExpensesMember2021-01-012021-03-310001200375us-gaap:EmployeeStockOptionMember2021-01-012021-03-310001200375cdxs:RSAsandRSUsMember2022-01-012022-03-310001200375cdxs:RSAsandRSUsMember2021-01-012021-03-310001200375cdxs:PerformanceStockUnitsMember2022-01-012022-03-310001200375cdxs:PerformanceStockUnitsMember2021-01-012021-03-310001200375cdxs:PerformanceBasedOptionsPBOsMember2022-01-012022-03-310001200375cdxs:PerformanceBasedOptionsPBOsMember2021-01-012021-03-310001200375us-gaap:EmployeeStockOptionMember2022-03-310001200375cdxs:RSAsandRSUsMember2022-03-310001200375cdxs:PerformanceStockUnitsMember2022-03-310001200375cdxs:PerformanceBasedOptionsPBOsMember2022-03-310001200375cdxs:PiperSandlerCoMember2021-05-012021-05-310001200375srt:MaximumMembercdxs:PiperSandlerCoMember2021-05-310001200375srt:MaximumMembercdxs:PiperSandlerCoMember2021-05-012021-05-310001200375cdxs:PiperSandlerCoMember2022-01-012022-03-310001200375cdxs:PiperSandlerCoMember2022-03-31utr:sqft0001200375cdxs:A200220PenobscotMember2022-03-310001200375cdxs:A400PenoscotMember2022-03-310001200375cdxs:A501ChesapeakeMember2022-03-31cdxs:renewal_option0001200375us-gaap:DemandDepositsMember2022-03-310001200375us-gaap:DemandDepositsMember2021-12-310001200375cdxs:SanCarlosSpaceMember2021-03-310001200375cdxs:SanCarlosSpaceMember2021-01-012021-03-310001200375cdxs:SanCarlosSpaceMemberus-gaap:AssetUnderConstructionMember2021-01-012021-03-310001200375cdxs:SanCarlosSpaceMember2021-12-310001200375cdxs:VariousMemberus-gaap:SupplyCommitmentMember2022-03-310001200375us-gaap:SupplyCommitmentMembercdxs:January2022Member2022-03-310001200375us-gaap:SupplyCommitmentMember2022-03-310001200375cdxs:TermLoanMember2017-06-300001200375us-gaap:RevolvingCreditFacilityMember2017-06-300001200375us-gaap:RevolvingCreditFacilityMember2017-06-302017-06-300001200375us-gaap:RevolvingCreditFacilityMemberus-gaap:PrimeRateMember2017-06-012017-06-300001200375us-gaap:IndemnificationGuaranteeMember2022-03-310001200375us-gaap:IndemnificationGuaranteeMember2021-03-310001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesAPreferredStockMember2020-06-300001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesAPreferredStockMember2020-06-012020-06-300001200375srt:AffiliatedEntityMembercdxs:MAIAgreementMembercdxs:MolecularAssembliesIncMember2021-12-310001200375srt:AffiliatedEntityMembercdxs:MAIAgreementMembercdxs:MolecularAssembliesIncMember2021-12-012021-12-310001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesAPreferredStockMember2021-04-300001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesAPreferredStockMember2021-04-012021-04-300001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesBPreferredStockMember2021-09-300001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesBPreferredStockMember2021-09-012021-09-300001200375cdxs:MolecularAssembliesIncMembercdxs:MasterCollaborationResearchAgreementMember2022-01-012022-03-310001200375cdxs:MolecularAssembliesIncMembercdxs:MasterCollaborationResearchAgreementMember2021-01-012021-03-310001200375us-gaap:SeriesAPreferredStockMembercdxs:MolecularAssembliesIncMembercdxs:MasterCollaborationResearchAgreementMember2022-01-012022-03-310001200375us-gaap:SeriesAPreferredStockMembercdxs:MolecularAssembliesIncMembercdxs:MasterCollaborationResearchAgreementMember2021-01-012021-03-310001200375us-gaap:SeriesAPreferredStockMembercdxs:MolecularAssembliesIncMembercdxs:MasterCollaborationResearchAgreementMember2020-06-012021-03-310001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesAPreferredStockMember2021-01-012021-12-310001200375cdxs:MolecularAssembliesIncMemberus-gaap:SeriesAPreferredStockMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ProductSalesMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ProductSalesMembercdxs:BiotherapeuticSegmentMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ProductSalesMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ProductSalesMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ProductSalesMembercdxs:BiotherapeuticSegmentMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ProductSalesMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ResearchandDevelopmentRevenueMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:BiotherapeuticSegmentMembercdxs:ResearchandDevelopmentRevenueMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ResearchandDevelopmentRevenueMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ResearchandDevelopmentRevenueMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:BiotherapeuticSegmentMembercdxs:ResearchandDevelopmentRevenueMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:ResearchandDevelopmentRevenueMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:CoreSegmentMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:BiotherapeuticSegmentMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMember2022-01-012022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:CoreSegmentMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMembercdxs:BiotherapeuticSegmentMember2021-01-012021-03-310001200375us-gaap:OperatingSegmentsMember2021-01-012021-03-310001200375us-gaap:CorporateNonSegmentMember2022-01-012022-03-310001200375us-gaap:CorporateNonSegmentMember2021-01-012021-03-310001200375us-gaap:CustomerConcentrationRiskMembercdxs:CustomerAMemberus-gaap:SalesRevenueProductLineMember2022-01-012022-03-310001200375us-gaap:CustomerConcentrationRiskMembercdxs:CustomerBMemberus-gaap:SalesRevenueProductLineMember2021-01-012021-03-310001200375us-gaap:CustomerConcentrationRiskMemberus-gaap:SalesRevenueProductLineMembercdxs:CustomerCMember2021-01-012021-03-310001200375us-gaap:CustomerConcentrationRiskMembercdxs:CustomerDMemberus-gaap:SalesRevenueProductLineMember2021-01-012021-03-310001200375us-gaap:CustomerConcentrationRiskMembercdxs:CustomerEMemberus-gaap:SalesRevenueProductLineMember2021-01-012021-03-310001200375us-gaap:CustomerConcentrationRiskMembercdxs:CustomerAMemberus-gaap:AccountsReceivableMember2022-01-012022-03-310001200375us-gaap:CustomerConcentrationRiskMembercdxs:CustomerAMemberus-gaap:AccountsReceivableMember2021-01-012021-12-310001200375country:US2022-03-310001200375country:US2021-12-310001200375us-gaap:OperatingSegmentsMembercdxs:PerformanceEnzymesMember2021-12-310001200375us-gaap:OperatingSegmentsMembercdxs:PerformanceEnzymesMember2022-03-310001200375us-gaap:OperatingSegmentsMembercdxs:NovelBiotherapeuticsMember2021-12-310001200375us-gaap:OperatingSegmentsMembercdxs:NovelBiotherapeuticsMember2022-03-310001200375us-gaap:OperatingSegmentsMember2022-03-310001200375us-gaap:OperatingSegmentsMember2021-12-310001200375cdxs:FinancialReceivablesNotPastDueMember2022-03-310001200375us-gaap:FinancingReceivables30To59DaysPastDueMember2022-03-310001200375us-gaap:FinancingReceivables60To89DaysPastDueMember2022-03-310001200375us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2022-03-310001200375cdxs:FinancialReceivablesPastDueMember2022-03-310001200375cdxs:FinancialReceivablesNotPastDueMember2021-12-310001200375us-gaap:FinancingReceivables30To59DaysPastDueMember2021-12-310001200375us-gaap:FinancingReceivables60To89DaysPastDueMember2021-12-310001200375us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2021-12-310001200375cdxs:FinancialReceivablesPastDueMember2021-12-31

UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
Washington, D.C. 20549
FORM 10-Q
(Mark One)
QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
For the quarterly period ended March 31, 2022
or
TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
For the transition period from              to             
Commission file number: 001-34705
___________________________
Codexis, Inc.
(Exact name of registrant as specified in its charter)
_____________________________________________
Delaware 71-0872999
(State or other jurisdiction of incorporation or organization) (I.R.S. Employer Identification No.)
200 Penobscot Drive, Redwood City, California
 94063
(Address of principal executive offices) (Zip Code)


Registrant's telephone number, including area code: (650) 421-8100

Securities registered pursuant to Section 12(b) of the Act:
Title of Each ClassTradingName of Each Exchange on Which Registered
Symbol(s)
Common Stock, par value $0.0001 per shareCDXSThe Nasdaq Global Select Market
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 filerAccelerated filer
Non-accelerated filerSmaller reporting company
Emerging growth company
If an emerging growth company, indicate by check mark if the registrant has elected not to use the 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 is a shell company (as defined in Rule 12b-2 of the Exchange Act).    Yes      No  
As of May 4, 2022, there were 65,304,060 shares of the registrant’s Common Stock, par value $0.0001 per share, outstanding.






Codexis, Inc.
Quarterly Report on Form 10-Q
For the Quarter Ended March 31, 2022


TABLE OF CONTENTS





PART I. FINANCIAL INFORMATION
Item 1. Financial Statements
Codexis, Inc.
Condensed Consolidated Balance Sheets
(Unaudited)
(In Thousands, Except Per Share Amounts)
March 31, 2022December 31, 2021
Assets
Current assets:
Cash and cash equivalents$94,260 $116,797 
Restricted cash, current568 579 
Financial assets:
Accounts receivable25,197 24,953 
Contract assets9,751 4,557 
Unbilled receivables9,584 8,558 
   Total financial assets44,532 38,068 
        Less: allowances(416)(416)
        Total financial assets, net44,116 37,652 
Inventories1,560 1,160 
Prepaid expenses and other current assets4,365 5,700 
Total current assets144,869 161,888 
Restricted cash1,519 1,519 
Investment in non-marketable equity securities ($12,713 and $12,713 with a related party)
19,002 14,002 
Right-of-use assets - Operating leases, net42,912 44,095 
Right-of-use assets - Finance leases, net 17 
Property and equipment, net23,474 21,345 
Goodwill3,241 3,241 
Other non-current assets257 276 
Total assets$235,274 $246,383 
Liabilities and Stockholders' Equity
Current liabilities:
Accounts payable$1,949 $2,995 
Accrued compensation6,843 11,119 
Other accrued liabilities14,172 12,578 
Current portion of lease obligations - Operating leases4,927 4,093 
Deferred revenue ($0 and $245 to a related party)
1,604 2,586 
Total current liabilities29,495 33,371 
Deferred revenue, net of current portion3,464 3,749 
Long-term lease obligations - Operating leases42,354 43,561 
Other long-term liabilities1,326 1,311 
Total liabilities76,639 81,992 
Commitments and Contingencies (Note 10)
Stockholders' equity:
Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding
  
Common stock, $0.0001 par value per share; 100,000 shares authorized;
65,304 shares and 65,109 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively
6 6 
Additional paid-in capital554,683 552,083 
Accumulated deficit(396,054)(387,698)
Total stockholders' equity158,635 164,391 
Total liabilities and stockholders' equity$235,274 $246,383 

See accompanying notes to the unaudited condensed consolidated financial statements.
3



Codexis, Inc.
Condensed Consolidated Statements of Operations
(Unaudited)
(In Thousands, Except Per Share Amounts)
 Three Months Ended March 31,
 20222021
Revenues:
Product revenue$30,690 $10,226 
Research and development revenue ($245 and $132 from a related party)
4,650 7,806 
Total revenues35,340 18,032 
Costs and operating expenses:
Cost of product revenue8,521 4,218 
Research and development19,500 11,571 
Selling, general and administrative15,705 11,398 
Total costs and operating expenses43,726 27,187 
Loss from operations(8,386)(9,155)
Interest income42 177 
Other expense, net(3)(88)
Loss before income taxes(8,347)(9,066)
Provision for income taxes9 2 
Net loss$(8,356)$(9,068)
Net loss per share, basic and diluted$(0.13)$(0.14)
Weighted average common stock shares used in computing net loss per share, basic and diluted65,096 64,290 



See accompanying notes to the unaudited condensed consolidated financial statements.
4



Codexis, Inc.
Condensed Consolidated Statements of Stockholders' Equity
(Unaudited)
(In Thousands)
Common StockAdditional
Paid-in
Capital
Accumulated DeficitTotal Stockholders' Equity
Three Months Ended March 31, 2022SharesAmount
Balance as of January 1, 2022
65,109 $6 $552,083 $(387,698)$164,391 
Exercise of stock options78 — 181 — 181 
Release of stock awards190 — — — — 
Employee stock-based compensation— — 3,777 — 3,777 
Non-employee stock-based compensation— — 61 — 61 
Taxes paid related to net share settlement of equity awards(73)— (1,419)— (1,419)
Net loss— — — (8,356)(8,356)
Balance as of March 31, 2022
65,304 $6 $554,683 $(396,054)$158,635 
Common StockAdditional
Paid-in
Capital
Accumulated DeficitTotal Stockholders' Equity
Three Months Ended March 31, 2021SharesAmount
Balance as of January 1, 2021
64,283 $6 $536,516 $(366,419)$170,103 
Exercise of stock options118 — 1,223 — 1,223 
Release of stock awards139 — — — — 
Employee stock-based compensation— — 2,626 — 2,626 
Non-employee stock-based compensation— — 61 — 61 
Taxes paid related to net share settlement of equity awards(52)— (1,206)— (1,206)
Net loss— — — (9,068)(9,068)
Balance as of March 31, 2021
64,488 $6 $539,220 $(375,487)$163,739 


See accompanying notes to the unaudited condensed consolidated financial statements.
5



Codexis, Inc.
Condensed Consolidated Statements of Cash Flows
(Unaudited)
(In Thousands)
Three Months Ended March 31,
 20222021
Operating activities:
Net loss$(8,356)$(9,068)
Adjustments to reconcile net loss to net cash used in operating activities:
Depreciation1,215 659 
Amortization expense - right-of-use assets - operating and finance leases1,200 649 
Stock-based compensation3,838 2,687 
Equity securities earned from research and development activities from a related party(245)(132)
Other non-cash items(7)(84)
Changes in operating assets and liabilities:
Financial assets, net(6,463)1,103 
Inventories(400)(65)
Prepaid expenses and other assets1,397 70 
Accounts payable(1,029)400 
Accrued compensation and other accrued liabilities(121)(1,731)
Other long-term liabilities(1,192)(617)
Deferred revenue(1,023)(311)
Net cash used in operating activities(11,186)(6,440)
Investing activities:
Purchase of property and equipment(5,089)(2,550)
Proceeds from sale of property and equipment7 17 
Investment in non-marketable securities(5,000) 
Net cash used in investing activities(10,082)(2,533)
Financing activities:
Proceeds from exercises of stock options181 1,223 
Costs incurred in connection with equity financing(42) 
Taxes paid related to net share settlement of equity awards(1,419)(1,206)
Net cash provided by (used in) financing activities(1,280)17 
Net decrease in cash, cash equivalents and restricted cash(22,548)(8,956)
Cash, cash equivalents and restricted cash at the beginning of the period118,895 150,817 
Cash, cash equivalents and restricted cash at the end of the period$96,347 $141,861 
Supplemental disclosure of cash flow information:
Interest paid$5 $3 
Supplemental non-cash investing and financing activities:
Capital expenditures incurred but not yet paid$789 $579 

6



The following table provides a reconciliation of cash, cash equivalents and restricted cash reported within the unaudited condensed consolidated balance sheets as of March 31, 2022 and 2021 to the total of the same such amounts shown above in the unaudited condensed consolidated statements of cash flows:
 March 31,
 20222021
Cash and cash equivalents$94,260 $139,748 
Restricted cash, current and non-current 2,087 2,113 
Total cash, cash equivalents and restricted cash$96,347 $141,861 
See accompanying notes to the unaudited condensed consolidated financial statements.
7



Codexis Inc.

Notes to Condensed Consolidated Financial Statements
(Unaudited)
Note 1. Description of Business
In these notes to the unaudited condensed consolidated financial statements, the “Company,” “we,” “us,” and “our” refers to Codexis, Inc. and its subsidiaries on a consolidated basis.
We discover, develop and sell enzymes and other proteins that deliver value to our clients in a growing set of industries to commercialize an increasing number of novel enzymes, both as proprietary Codexis products and in partnership with our customers.
We report our financial results based on two reportable segments: Performance Enzymes and Novel Biotherapeutics. The segment information aligns with how the chief operating decision maker (CODM), who is our Chief Executive Officer (CEO), reviews and manages the business.
Business Update Regarding COVID-19
We are subject to risks and uncertainties as a result of the current COVID-19 pandemic. The COVID-19 pandemic has presented a substantial public health and economic challenge around the world and is affecting our employees, communities and business operations, as well as the U.S. economy and other economies worldwide. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition will depend on future developments that are highly uncertain and may not be accurately predicted, including the duration and severity of the pandemic, the prevalence of more contagious and or virulent variants such as the Delta and Omicron variants, and the extent and severity of the impact on our customers, new information that may emerge concerning COVID-19, the actions taken to contain it or treat its impact and the economic impact on local, regional, national and international markets.
To date, we and our collaboration partners have been able to continue to supply our enzymes to our customers worldwide. However, we are dependent on our manufacturing and logistics partners and consequently, disruptions in operations of our partners and customers may affect our ability to supply enzymes to our customers. Furthermore, our ability to provide future R&D services may continue to be impacted as a result of governmental orders ("Orders") and any disruptions in operations of our customers with whom we collaborate. We believe that these disruptions have had a minimal impact on revenue for the three months ended March 31, 2022. The extent to which the pandemic may impact our business operations and operating results will continue to remain highly dependent on future developments, which are uncertain and cannot be predicted with confidence.
Note 2. Basis of Presentation and Summary of Significant Accounting Policies
Basis of Presentation and Principles of Consolidation
The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America ("GAAP") and the applicable rules and regulations of the Securities and Exchange Commission ("SEC") for interim financial information but does not include all the information and notes required by GAAP for complete financial statements. These interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in our Annual Report on Form 10-K for the year ended December 31, 2021. The condensed consolidated balance sheet at December 31, 2021 has been derived from the audited consolidated financial statements at that date, but does not include all disclosures, including notes, required by GAAP for complete financial statements. The significant accounting policies used in preparation of the unaudited condensed consolidated financial statements for the three months ended March 31, 2022 and 2021, are consistent with those discussed in Note 2 to the audited consolidated financial statements in the Company’s 2021 Annual Report on Form 10-K and are updated below as necessary. There have been no significant changes in our significant accounting policies or critical accounting estimates since December 31, 2021.
The unaudited condensed consolidated financial statements have been prepared on the same basis as the audited consolidated financial statements and, in the opinion of management, reflect all adjustments of a normal recurring nature considered necessary to present fairly our financial position as of March 31, 2022, results of our operations for the three months ended March 31, 2022 and 2021, changes in stockholders' equity for the three months ended March 31, 2022 and 2021, and cash flows for the three months ended March 31, 2022 and 2021. The interim results are not necessarily indicative of the results for any future interim period or for the entire year.
8


The unaudited condensed consolidated financial statements include the accounts of Codexis, Inc. and its wholly owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.
Use of Estimates
The preparation of our unaudited condensed consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition, including sales, expenses, reserves and allowances, manufacturing, research and development costs and employee-related amounts, will depend on future developments that are highly uncertain, and may not be accurately predicted, including as a result of new information that may emerge concerning COVID-19 and the actions taken to contain or treat COVID-19, as well as the economic impact on local, regional, national and international customers, markets and economies.
Accounting Pronouncements
Recently adopted accounting pronouncements
In May 2021, FASB issued ASU No. 2021-04, Earnings Per Share (Topic 260), Debt—Modifications and Extinguishments (Subtopic 470-50), Compensation—Stock Compensation (Topic 718), and Derivatives and Hedging—Contracts in Entity’s Own Equity (Subtopic 815-40), Issuer’s Accounting for Certain Modifications or Exchanges of Freestanding Equity-Classified Written Call Options, a consensus of the Emerging Issues Task Force. The standard establishes a principles-based framework in accounting for modifications of freestanding equity-classified written call options on the basis of the economic substance of the underlying transaction. The standard also requires incremental financial statement disclosures. The standard affects entities that present earnings per share in accordance with the guidance in Topic 260, Earnings Per Share. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
In August 2020, FASB issued ASU No 2020-06 Debt—Debt with Conversion and Other Options (Subtopic 470-20) and Derivatives and Hedging— Contracts in Entity’s Own Equity (Subtopic 815-40) No. 2020-06 August 2020 Accounting for Convertible Instruments and Contracts in an Entity’s Own Equity, to reduce the complexity and to simplify the accounting for convertible debt instruments and convertible preferred stock, and the derivatives scope exception for contracts in an entity's own equity. In addition, the guidance on calculating diluted earnings per share has been simplified and made more internally consistent. We adopted the standard on January 1, 2022 on a modified retrospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
In March 2020, the FASB issued ASU 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. The standard provides optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions in which the reference LIBOR or another reference rate are expected to be discontinued as a result of the Reference Rate Reform. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no significant impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
Recently issued accounting pronouncements not yet adopted
There have been no other recent accounting pronouncements or changes in accounting pronouncements during the three months ended March 31, 2022 that are of significance or potential significance to us.
Note 3. Revenue Recognition
Disaggregation of Revenue
The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue with reportable segments. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China).
9


Segment information is as follows (in thousands):
Three Months Ended March 31, 2022Three Months Ended March 31, 2021
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal
Major products and service:
       Product revenue$30,690 $ $30,690 $10,226 $ $10,226 
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 
Primary geographical markets:
Americas
$2,553 $1,179 $3,732 $2,871 $2,058 $4,929 
EMEA
3,065 1,062 4,127 4,537 1,745 6,282 
APAC
27,481  27,481 6,821  6,821 
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 
Contract Balances
The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):
March 31, 2022December 31, 2021
Contract assets$9,751 $4,557 
Unbilled receivables$9,584 $8,558 
Contract costs$46 $56 
Contract liabilities: deferred revenue$5,068 $6,335 
We had no asset impairment charges related to financial assets in the three months ended March 31, 2022 and 2021.
The increase in contract assets was primarily due to increases in product revenue from contracts subject to over time revenue recognition. The increase in unbilled receivables was primarily due to the timing of billings. The decrease in deferred revenue was primarily due to timing of recognition of revenue.
We recognized the following revenues (in thousands):
Three Months Ended March 31,
Revenue recognized in the period for:20222021
Amounts included in contract liabilities at the beginning of the period:
Performance obligations satisfied$1,094 $862 
Changes in the period:
Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods215 24 
Performance obligations satisfied from new activities in the period - contract revenue34,031 17,146 
Total revenues$35,340 $18,032 
Performance Obligations
The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of March 31, 2022.
10


The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts as of March 31, 2022 (in thousands):
Remainder of 2022
20232024
2025 and Thereafter
Total
Product revenue$60 $67 $100 $2,740 $2,967 
Research and development revenue1,254 847   2,101 
Total revenues$1,314 $914 $100 $2,740 $5,068 
Note 4. Net Loss per Share
Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (“RSAs”) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, net loss per share, basic and diluted, are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.
Anti-Dilutive Securities
In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect.
The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):
 Three Months Ended March 31,
 20222021
Shares issuable under the Equity Incentive Plan5,8995,497
Note 5. Investments in Non-Marketable Securities
Non-Marketable Debt Securities
We classify non-marketable debt securities, which are accounted for as available-for-sale, within Level 3 in the fair value hierarchy because we estimate the fair value based on a qualitative analysis using the most recent observable transaction price and other significant unobservable inputs including volatility, rights, and obligations of the securities we hold.
We determine gains or losses on the sale or extinguishment of non-marketable debt securities using a specific identification method. Unrealized gains and losses from bifurcated embedded derivatives, which represent share-settled redemption features, are recorded as other expense, net, in the unaudited condensed consolidated statements of operations. Unrealized gains and losses on non-marketable debt securities are recorded as a component of other comprehensive loss until realized. Realized gains or losses are recorded as a component of other income (expense), net.
In November 2020, we purchased convertible subordinated notes issued by Arzeda Corp. (“Arzeda”), an early-stage computational protein design company, for $1.0 million and the investment was classified as available-for-sale non-marketable interest-bearing debt securities. In July 2021, we converted the non-marketable debt security with a carrying value of $1.3 million into 207,070 shares of Series B-2 preferred stock of Arzeda Corp. During the three months ended March 31, 2021, we recognized $0.1 million in interest income from interest earned on our investment in this debt security.
There were no investments in non-marketable debt securities as of March 31, 2022 and December 31, 2021.
Non-Marketable Equity Securities
In March 2022, we entered into a Stock Purchase Agreement with seqWell, Inc. (“seqWell”), a privately held biotechnology company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million.
11


Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in Molecular Assemblies, Inc. (“MAI“), Arzeda and seqWell. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy because we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component of other income (expense), net in the unaudited condensed consolidated statements of operations.
There was no remeasurement event for our investments in MAI, Arzeda and seqWell that occurred during the three months ended March 31, 2022 and 2021. We recognized no realized gains or losses during the three months ended March 31, 2022 and 2021.
The following table presents the carrying value of our non-marketable equity securities (in thousands):
 March 31, 2022December 31, 2021
MAI$12,713 $12,713 
seqWell5,000  
Arzeda1,289 1,289 
Total non-marketable equity securities$19,002 $14,002 
Note 6. Fair Value Measurements
The following tables present the financial instruments that were measured at fair value on a recurring basis at March 31, 2022 and December 31, 2021 by level within the fair value hierarchy (in thousands):
 March 31, 2022
 Level 1Level 2Level 3Total
Money market funds $72,107 $ $ $72,107 
 December 31, 2021
 Level 1Level 2Level 3Total
Money market funds $86,095 $ $ $86,095 
During the three months ended March 31, 2022 and 2021, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities.
Note 7. Balance Sheets Details
Cash Equivalents
Cash equivalents as of March 31, 2022 and December 31, 2021, consisted of the following (in thousands):
 March 31, 2022December 31, 2021
 Adjusted CostEstimated Fair ValueAdjusted CostEstimated Fair Value
Money market funds (1)
$72,107 $72,107 $86,095 $86,095 
(1) Money market funds are classified in cash and cash equivalents on our unaudited condensed consolidated balance sheets. Average contractual maturities (in days) is not applicable.
As of March 31, 2022, the total cash and cash equivalents balance of $94.3 million consisted of money market funds of $72.1 million and cash of $22.2 million held with major financial institutions. As of December 31, 2021, the total cash and cash equivalents balance of $116.8 million consisted of money market funds of $86.1 million and cash of $30.7 million held with major financial institutions.
12


Inventories
Inventories consisted of the following (in thousands):
March 31, 2022December 31, 2021
Raw materials$49 $49 
Work-in-process160 65 
Finished goods1,351 1,046 
    Inventories$1,560 $1,160 
Inventories are recorded net of reserves of $1.4 million as of March 31, 2022 and December 31, 2021.
Property and Equipment, net
Property and equipment, net consisted of the following (in thousands):
March 31, 2022December 31, 2021
Laboratory equipment$36,435 $33,101 
Leasehold improvements16,506 16,117 
Computer equipment and software3,565 3,481 
Office equipment and furniture1,297 1,297 
Construction in progress2,450 3,231 
Property and equipment60,253 57,227 
       Less: accumulated depreciation and amortization(36,779)(35,882)
     Property and equipment, net$23,474 $21,345 
Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the unaudited condensed consolidated statements of operations was as follows (in thousands):
Three Months Ended March 31,
20222021
Depreciation expense$1,215 $659 
Goodwill
Goodwill had a carrying value of $3.2 million as of March 31, 2022 and December 31, 2021.
Other Accrued Liabilities
Other accrued liabilities consisted of the following (in thousands):
March 31, 2022December 31, 2021
Accrued purchases $7,695 $6,755 
Accrued professional and outside service fees6,121 5,147 
Other356 676 
     Total$14,172 $12,578 
Note 8. Stock-based Compensation
Equity Incentive Plans
In 2019, our board of directors (the "Board") and stockholders approved the 2019 Incentive Award Plan (the "2019 Plan"). The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the “2010 Plan”) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder.
13


The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, restricted stock awards ("RSAs"), restricted stock units ("RSUs"), performance-contingent restricted stock units ("PSUs"), performance based options ("PBOs"), other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.
The number of shares of our common stock available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii) any shares subject to awards granted under the 2010 Plan that were outstanding as of April 22, 2019 and thereafter terminate, expire, lapse or are forfeited; provided that no more than 14,000,000 shares may be issued upon the exercise of incentive stock options (“ISOs”). In June 2019, 8.1 million shares authorized for issuance under the 2019 Plan were registered under the Securities Act of 1933, as amended (the “Securities Act”).
The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants.
Stock Options
The option exercise price for incentive stock options must be at least 100% of the fair value of our common stock on the date of grant and the option exercise price for non-statutory stock options is at least 85% of the fair value of our common stock on the date of grant, as determined by the Board. If, at the time of a grant, the optionee directly or by attribution owns stock possessing more than 10% of the total combined voting power of all of our outstanding capital stock, the exercise price for these options must be at least 110% of the fair value of the underlying common stock. Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.
Restricted Stock Units ("RSUs")
We also grant employees RSUs, which generally vest over either a three year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee’s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.
Performance-contingent Restricted Stock Units ("PSUs") and Performance Based Options ("PBOs")
The compensation committee of the Board approved, solely in respect of non-executive employees, delegated to our Chief Executive Officer the authority to approve grants of PSUs. The compensation committee of the Board also approved grants of PBOs and PSUs to our executives. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient’s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.
14


In the first quarter of 2022, we awarded PSUs ("2022 PSUs") and PBOs ("2022 PBOs"), each of which commence vesting based upon the achievement of various weighted performance goals, including total revenues, research and development revenue, product revenue excluding sales of CDX-616 to Pfizer for use in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, which Pfizer markets, sells and distributes, in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID™ product, operating expenses excluding cost of product revenue, strategic performance enzyme deliverables, strategic biotherapeutics deliverables, organization and infrastructure upgrades, corporate developments, and significant events that can be publicly announced. As of March 31, 2022, we estimated that the 2022 PSUs and 2022 PBOs performance goals would be achieved at 100% and 50% of the target level, respectively, and recognized stock-based compensation expenses accordingly.
In 2021, we awarded PSUs ("2021 PSUs") and PBOs ("2021 PBOs"), each of which commence vesting based upon the achievement of various weighted performance goals, including total revenues, product revenue, performance enzymes pipeline advancements, biotherapeutics pipeline advancements, organization and infrastructure upgrades, and significant events that can be publicly announced. In the first quarter of 2022, we determined that the 2021 PSUs and 2021 PBOs performance goals had been achieved at 146% and 73% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2022 and 50% of the shares underlying the 2021 PSUs and PBOs will vest in the first quarter of 2023, in each case, subject to the recipient’s continued service on each vesting date.
In 2020, we awarded PSUs ("2020 PSUs") and PBOs ("2020 PBOs"), each of which commenced vesting based upon the achievement of various weighted performance goals, including total revenues, performance enzyme segment gross margin, major new biotherapeutics publicity events, strategic performance enzyme and biotherapeutics deliverables, and strategic plan development. In the first quarter of 2021, we determined that the 2020 PSUs and 2020 PBOs performance goals had been achieved at 88% and 44% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2020 PSUs and PBOs vested in the first quarter of 2021 and 50% of the shares underlying the 2020 PSUs and PBOs vested in the first quarter of 2022, in each case subject to the recipient’s continued service on each vesting date.
Stock-Based Compensation Expense
Stock-based compensation expense is included in the unaudited condensed consolidated statements of operations as follows (in thousands):
 Three Months Ended March 31,
 20222021
Research and development $936 $477 
Selling, general and administrative2,902 2,210 
   Total$3,838 $2,687 

The following table presents total stock-based compensation expense by security type included in the unaudited condensed consolidated statements of operations (in thousands):
 Three Months Ended March 31,
 20222021
Stock options$806 $665 
RSUs and RSAs1,162 542 
PSUs872 470 
PBOs998 1,010 
   Total$3,838 $2,687 
As of March 31, 2022, unrecognized stock-based compensation expense, net of expected forfeitures, was $6.6 million related to unvested stock options, $9.2 million related to unvested RSUs and RSAs, $2.5 million related to unvested PSUs, and $4.5 million related to unvested PBOs based on current estimates of the level of achievement. Stock-based compensation expense for these awards will be recognized through the year 2026.
15


Note 9. Capital Stock
Exercise of Options
For the three months ended March 31, 2022 and March 31, 2021, we issued 77,600 and 118,437 shares, respectively, upon option exercises at a weighted-average exercise price of $2.33 and $10.33 per share, respectively, with net cash proceeds of $0.2 million and $1.2 million, respectively.
Equity Distribution Agreement
We filed a Registration Statement on Form S-3 with the SEC, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. The registration statement became effective on May 7, 2021. In May 2021, we entered into an Equity Distribution Agreement ("EDA") with Piper Sandler & Co ("PSC"), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an “at the market offering” as defined in Rule 415 under the Securities Act of 1933, as amended.
We are not required to sell any shares at any time during the term of the EDA. The EDA will terminate upon the earlier of: (i) the issuance and sale of all shares through PSC on the terms and conditions of the EDA, or (ii) the termination of the EDA in accordance with its terms. Either party may terminate the EDA at any time upon written notification to the other party in accordance with the EDA, and upon such notification, the offering will terminate. Under no circumstances shall any shares be sold pursuant to the EDA after the date which is three years after the registration statement is first declared effective by the SEC. We agreed to pay PSC a commission of 3% of the gross sales price of any shares sold pursuant to the EDA. With the exception of certain expenses, we will pay PSC up to 8% of the gross sales price of the shares sold pursuant to the EDA for a combined amount of commission and reimbursement of PSC's expenses and fees.
During the three months ended March 31, 2022, no shares of our common stock were issued pursuant to the EDA. As of March 31, 2022, $50.0 million worth of shares remained available for sale under the EDA.
Note 10. Commitments and Contingencies
Operating Leases
Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park of Metropolitan Life Insurance Company ("MetLife"). Our lease agreement with MetLife ("RWC Lease") includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the “200/220 Penobscot Space”) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the “400 Penobscot Space”) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the “Penobscot Space”), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the “501 Chesapeake Space”).
We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In February 2019, we entered into an Eighth Amendment to the Lease (the “Eighth Amendment”) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (5) years.
Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount of $1.1 million as of March 31, 2022 and December 31, 2021, and are recorded as non-current restricted cash on the unaudited condensed consolidated balance sheets.
16


In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (“ARE”) to lease a portion of a facility comprising approximately 36,593 rentable square feet in San Carlos, California to serve as additional office and research and development laboratory space (the “San Carlos Space”). The terms include an initial annualized base rent of $2.5 million, subject to scheduled 3% annual rent increases, an annualized additional allowance payment of $0.4 million, plus certain operating expenses. The lease has a 10-year term from the lease commencement date of November 30, 2021 with one option to extend the term for an additional period of 5 years. We have provided ARE with a $0.5 million security deposit in the form of a letter of credit and we commenced occupancy of the San Carlos Space in December 2021. We have the right to sublease the facility, subject to landlord consent.
We entered into a short-term office lease in San Carlos, California during the second quarter of 2021 and this lease expired in April 2022. Our remaining future commitment pursuant to this lease is nominal as of March 31, 2022.
We are required to restore certain areas of the Redwood City and San Carlos facilities that we are renting to their original form. We are expensing the asset retirement obligation over the terms of the respective leases. We review the estimated obligation each reporting period and make adjustments if our estimates change. We recorded asset retirement obligations of $0.5 million and $0.4 million as of March 31, 2022 and December 31, 2021, respectively, which are included in other liabilities on the unaudited condensed consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the three months ended March 31, 2022 and 2021.
Lease and other information
Lease costs, amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):
Three Months Ended March 31,
 20222021
Finance lease costs18 26 
Operating lease cost1,831 1,032 
Short-term lease costs (1)
30  
Total lease cost (2)
$1,879 $1,058 
(1) Short-term lease costs on leases with terms of over one month and less than one year.
(2) The Company had no variable lease costs.
Other information:Operating Leases
Weighted-average remaining lease term (in years)7.7 years
Weighted-average discount rate5.5 %
Three Months Ended March 31,
Cash paid:20222021
Operating cash flows from operating leases$1,022 $1,042 
As of March 31, 2022, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):
Years Ending December 31,Operating Leases
2022 (remaining 9 months)$5,478 
20237,571 
20247,785 
20258,007 
20268,235 
2027 and thereafter20,719 
Total minimum lease payments57,795 
Less: imputed interest10,514 
Lease obligations$47,281 
17


Other Commitments
We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work.
The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):

Other Commitment Agreement TypeAgreement DateFuture Minimum Payment
Development and manufacturing services agreementsVarious$5,111 
Facility maintenance agreementJanuary 20221,462 
Total other commitments$6,573 
Credit Facility
In June 30, 2017, we entered into a credit facility (the “Credit Facility”) with Western Alliance Bank consisting of term loans (“Term Debt”) up to $10.0 million, and advances (“Advances”) under a revolving line of credit ("Revolving Line of Credit") up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2021. On October 1, 2024, loans drawn under the Revolving Line of Credit terminate. Advances made under the Revolving Line of Credit bear interest at a variable annual rate equal to the greater of (i) 4.25% or (ii) the sum of (A) the prime rate plus (B) 1.00%. As of March 31, 2022 and December 31, 2021, we have not drawn from the Credit Facility.
Our obligations under the Credit Facility are secured by a lien on substantially all of our personal property other than our intellectual property. The Credit Facility includes a number of customary covenants and restrictive financial covenants including meeting minimum product revenue levels and maintaining certain minimum cash levels with the lender. The Credit Facility's financial covenants restrict the ability of the Company to transfer collateral, incur additional indebtedness, engage in mergers or acquisitions, pay dividends or make other distributions, make investments, create liens, sell assets, or sell certain assets held at foreign subsidiaries. A failure to comply with these covenants could permit the lender to exercise remedies against us and the collateral securing the Credit Facility, including foreclosure of our properties securing the Credit Facilities and our cash. As of March 31, 2022, we were in compliance with the covenants for the Credit Facility.
Legal Proceedings
We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the condensed consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.
In April 2022, we reached a settlement resolving a non-material dispute involving the Company's trademark. The terms of the settlement are not material to the business or the results of operations of the Company.
Indemnifications
We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.
18


Note 11. Related Party Transactions
Molecular Assemblies, Inc.

In June 2020, we entered into a Stock Purchase Agreement with MAI pursuant to which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. In connection with the transaction, John Nicols, our President and Chief Executive Officer, also joined MAI’s board of directors. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the “MAI Agreement”), pursuant to which we are leveraging our CodeEvolver® protein engineering platform technology to improve the DNA polymerase enzymes that are critical for enzymatic DNA synthesis. Under the MAI Agreement, we are performing services utilizing our CodeEvolver® protein engineering platform technology to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A preferred stock. We completed the R&D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of Series B preferred stock. In addition to our initial equity investment and the shares we have received under the MAI Agreement, in April 2021, we purchased an additional 1,000,000 shares of MAI's Series A preferred stock for $0.6 million and in September 2021, we purchased 9,198,423 shares of MAI's Series B preferred stock for $7.0 million.
We recognized $0.2 million and $0.1 million in research and development revenue from transactions with MAI in the three months ended March 31, 2022 and 2021, respectively. We received nil shares and 1,428,342 shares of MAI's Series A and B preferred stock from research and development services we provided to MAI in the three months ended March 31, 2022 and 2021, respectively. As of March 31, 2022, we have 16,705,320 shares of MAI's Series A and B preferred stock that we have earned or purchased since executing the Stock Purchase Agreement with MAI.
The carrying value of our investment in MAI Series A and B preferred stock was $12.7 million as of March 31, 2022 and December 31, 2021. We had nil and $0.2 million in deferred revenue as of March 31, 2022 and December 31, 2021 respectively. Payment for the services rendered was received in the form of additional shares of Series A and Series B preferred stock.
Note 12. Segment, Geographical and Other Revenue Information
Segment Information
We manage our business as two business segments: Performance Enzymes and Novel Biotherapeutics. Our chief operating decision maker ("CODM") is our Chief Executive Officer. Our business segments are primarily based on our organizational structure and our operating results as used by our CODM in assessing performance and allocating resources for the Company.
We report corporate-related expenses such as legal, accounting, information technology, and other costs that are not otherwise included in our reportable business segments as "Corporate costs." All items not included in income (loss) from operations are excluded from the business segments.
We manage our assets on a total company basis, not by business segment, as the majority of our operating assets are shared or commingled. Our CODM does not review asset information by business segment in assessing performance or allocating resources, and accordingly, we do not report asset information by business segment.
Factors considered in determining the two reportable segments of the Company include the nature of business activities, the management structure directly accountable to our CODM for operating and administrative activities, availability of discrete financial information and information presented to the Board of Directors. Our CODM regularly reviews our segments and the approach provided by management for performance evaluation and resource allocation.
Operating expenses that directly support the segment activity are allocated based on segment headcount, revenue contribution or activity of the business units within the segments, based on the corporate activity type provided to the segment. The expense allocation excludes certain corporate costs that are separately managed from the segments. This provides the CODM with more meaningful segment profitability reporting to support operating decisions and allocate resources.
19


The following table provides financial information by our reportable business segments along with a reconciliation to consolidated loss before income taxes (in thousands):
Three Months Ended March 31, 2022Three Months Ended March 31, 2021
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal
Revenues:
Product revenue$30,690 $ $30,690 $10,226 $ $10,226 
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 
Total revenues33,099 2,241 35,340 14,229 3,803 18,032 
Costs and operating expenses:
Cost of product revenue8,521  8,521 4,218  4,218 
Research and development (1)
6,122 12,346 18,468 6,444 4,605 11,049 
Selling, general and administrative (1)
3,541 720 4,261 2,818 600 3,418 
Total segment costs and operating expenses18,184 13,066 31,250 13,480 5,205 18,685 
Income (loss) from operations$14,915 $(10,825)4,090 $749 $(1,402)(653)
Corporate costs (2)
(11,205)(7,728)
Unallocated depreciation and amortization(1,232)(685)
Loss before income taxes$(8,347)$(9,066)

(1) Research and development expenses and selling, general and administrative expenses exclude depreciation and amortization of finance leases.
(2) Corporate costs include unallocated selling, general and administrative expenses, interest income, and other expense, net.
The following table provides stock-based compensation expense included in income (loss) from operations (in thousands):
Three Months Ended March 31,
20222021
Performance EnzymesNovel BiotherapeuticsCorporate costTotalPerformance EnzymesNovel BiotherapeuticsCorporate costTotal
Stock-based compensation$1,487 $410 $1,941 $3,838 $994 $238 $1,455 $2,687 
Significant Customers
Customers that each accounted for 10% or more of our total revenues were as follows:
Percentage of Total Revenues for the
Three Months Ended March 31,
20222021
Customer A61 %*
Customer B*28 %
Customer C*11 %
Customer D*10 %
Customer E*14 %
* Percentage was less than 10%
Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented as follows:
Percentage of Accounts Receivables as of
March 31, 2022December 31, 2021
Customer A65 %62 %
20


Geographical Information
Geographic revenues are identified by the location of the customer and consist of the following (in thousands):
 Three Months Ended March 31,
20222021
Revenues:
Americas$3,732 $4,929 
EMEA4,127 6,282 
APAC27,481 6,821 
Total revenues$35,340 $18,032 
Identifiable long-lived assets by location was as follows (in thousands):
March 31, 2022December 31, 2021
United States$66,386 $65,457 
Identifiable goodwill by reporting unit was as follows (in thousands):
As of March 31, 2022 and December 31, 2021
Performance EnzymesNovel BiotherapeuticsTotal
Goodwill$2,463 $778 $3,241 
Note 13. Allowance for Credit Losses
The following table summarizes the financial assets allowance for credit losses (in thousands):
Three Months Ended March 31,
20222021
Balance at beginning of period$416 $74 
Provision for credit losses  
Balance at end of period$416 $74 
The following tables summarize accounts receivable by aging category (in thousands):
March 31, 2022
Current31-60 Days61-90 Days91 Days and overTotal over 31 DaysTotal balance
Accounts receivable$24,244 $27 $89 $837 $953 $25,197 
December 31, 2021
Current31-60 Days61-90 Days91 Days and overTotal over 31 DaysTotal balance
Accounts receivable$22,697 $536 $569 $1,151 $2,256 $24,953 
21


ITEM 2.MANAGEMENT'S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS
The following management's discussion and analysis of our financial condition and results of operations should be read in conjunction with the unaudited condensed consolidated financial statements and the related notes thereto included elsewhere in this Quarterly Report on Form 10-Q and the audited consolidated financial statements and notes thereto and management's discussion and analysis of financial condition and results of operations for the year ended December 31, 2021 included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC on February 28, 2022 (the “Annual Report”). This Quarterly Report on Form 10-Q contains forward-looking statements within the meaning of Section 21E of the Securities Exchange Act of 1934, as amended (the "Exchange Act"). These statements include, but are not limited to, expectations regarding our strategy, business plans, financial performance and developments relating to our industry. These statements are often identified by the use of words such as “may,” “will,” “expect,” “believe,” “anticipate,” “intend,” “could,” “should,” “estimate,” or “continue,” and similar expressions or variations. Such forward-looking statements are subject to risks, uncertainties and other factors that could cause actual results and the timing of certain events to differ materially from future results expressed or implied by such forward-looking statements. Factors that could cause or contribute to such differences include, but are not limited to, those discussed in Part II, Item 1A: “Risk Factors” of this Quarterly Report on Form 10-Q and Part I, Item 1A: “Risk Factors” of our Annual Report, as incorporated herein and referenced in Part II, Item 1A: “Risk Factors" of this Quarterly Report on Form 10-Q and elsewhere in this report. The forward-looking statements in this Quarterly Report on Form 10-Q represent our views as of the date of this Quarterly Report on Form 10-Q. We anticipate that subsequent events and developments will cause our views to change. However, while we may elect to update these forward-looking statements at some point in the future, we have no current intention of doing so except to the extent required by applicable law. You should, therefore, not rely on these forward-looking statements as representing our views as of any date subsequent to the date of this Quarterly Report on Form 10-Q.

BUSINESS OVERVIEW
We discover, develop and sell enzymes and other proteins that deliver value to our clients in a growing set of industries. We view proteins as a vast, largely untapped source of value-creating products, and we are using our proven technologies, which we have been continuously improving since our inception in 2002, to commercialize an increasing number of novel enzymes, both as proprietary Codexis products and in partnership with our customers.
We are a pioneer in harnessing computational technologies to drive biology advancements. Since 2002, we have made substantial investments in the development of our CodeEvolver® protein engineering technology platform, the primary source of our competitive advantage. Our technology platform is powered by proprietary, artificial intelligence-based, computational algorithms that rapidly mine the structural and performance attributes of our large and continuously growing library of protein variants. These computational outputs enable increasingly reliable predictions for next generation protein variants to be engineered, enabling time- and cost-efficient delivery of the targeted performance enhancements. In addition to its computational prowess, our CodeEvolver® protein engineering technology platform integrates additional modular competencies, including robotic high-throughput screening and genomic sequencing, organic chemistry and bioprocess development which are all coordinated to rapidly innovate novel, fit-for-purpose products.
The core historical application of the technology has been in developing commercially viable biocatalytic manufacturing processes for more sustainable production of complex chemicals. It begins by conceptually designing the most cost-effective and practical process for a targeted product. We then develop optimized biocatalysts to enable the designed process, using our CodeEvolver® platform. Engineered biocatalyst candidates, numbering many thousands for each project, are then rapidly screened and validated using high throughput methods under process-relevant operating conditions. This approach results in an optimized biocatalyst that enables cost-efficient processes that are relatively simple to run in conventional manufacturing equipment allowing for efficient technical transfer of our processes to our manufacturing partners. This also allows for efficient technical transfer of our processes to our manufacturing partners.
We initially commercialized our CodeEvolver® protein engineering technology platform and products in the manufacture of small molecule pharmaceuticals, which remains a primary business focus. Our customers, which include many large, global pharmaceutical companies, use our technology, products and services in their process development and in manufacturing. Additionally, we have licensed our proprietary CodeEvolver® protein engineering technology platform to global pharmaceutical companies enabling them to use this technology, in house, to engineer enzymes for their own businesses. In May 2019, we entered into a Platform Technology Transfer and License Agreement (the "Novartis CodeEvolver® Agreement") with Novartis Pharma AG ("Novartis"). The Novartis CodeEvolver® Agreement (Codexis' third such agreement with large pharmaceutical companies) allows Novartis to use our proprietary CodeEvolver® protein engineering platform technology in the field of human healthcare.
22


As evidence of our strategy to extend our technology beyond pharmaceutical manufacturing, we have also used the technology to develop biocatalysts and enzyme products for use in a broader set of industrial markets, including several large verticals, such as food, feed, consumer care and fine chemicals. In addition, we are using our technology to develop enzymes for various life science related applications, such as next generation sequencing (“NGS”), and polymerase chain reaction (“PCR/qPCR”) for in vitro molecular diagnostics and genomic research applications. In December 2019, we entered into a license agreement to provide Roche Sequencing Solutions, Inc. with our first enzyme for this target market: the Company’s EvoT4™ DNA ligase. In June 2020, we also entered into the MAI Agreement pursuant to which we are leveraging our CodeEvolver® platform technology to improve the DNA polymerase enzymes that are critical for enzymatic DNA synthesis.
We have been using the CodeEvolver® protein engineering technology platform to develop early stage, novel biotherapeutic product candidates, both in partnership with customers and for our own proprietary Codexis drug candidates. Our first program was for the potential treatment of phenylketonuria ("PKU") in humans. PKU is an inherited metabolic disorder in which the enzyme that converts the essential amino acid phenylalanine into tyrosine is deficient. In October 2017, we entered into a Global Development, Option and License Agreement (the “Nestlé License Agreement”) with Societé des Produits Nestlé S.A., formerly known as Nestec Ltd. (“Nestlé Health Science”) to advance CDX-6114, our enzyme biotherapeutic product candidate for the potential treatment of PKU. In February 2019, Nestlé Health Science exercised its option to obtain an exclusive license to develop and commercialize CDX-6114. Also in October 2017, we entered into a strategic collaboration agreement with Nestle Health Science (“Nestlé SCA”) pursuant to which we and Nestlé Health Science are collaborating to leverage the CodeEvolver® platform technology to develop other novel enzymes for Nestlé Health Science’s established Consumer Care and Medical Nutrition business areas. In March 2020, we entered into a Strategic Collaboration and License Agreement ("Takeda Agreement") with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Company Limited ("Takeda") for the research and development of novel gene therapies for certain disease indications, including the treatment of lysosomal storage disorders and a blood factor deficiency.
BUSINESS SEGMENTS
We manage our business as two business segments: Performance Enzymes and Novel Biotherapeutics. See Note 12, “Segment, Geographical and Other Revenue Information” in the Notes to Unaudited Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q.
Performance Enzymes
We initially commercialized our CodeEvolver® protein engineering technology platform and products in the manufacture of small molecule pharmaceuticals and, to date, this continues to be our largest market served. Our customers, which include many large global pharmaceutical companies, use our technology, products and services in their manufacturing processes and process development. We have also used the technology to develop customized enzymes for use in other industrial markets. These markets consist of several large industrial verticals, including food, feed, consumer care, and fine chemicals. We also use our technology in the life sciences markets to develop enzymes for customers using NGS and PCR/qPCR for in vitro molecular diagnostic and molecular biology research applications, as well DNA/RNA synthesis and health monitoring applications.
Novel Biotherapeutics
We are also targeting new opportunities in the pharmaceutical industry to discover, improve, and/or develop biotherapeutic drug candidates. We believe that our CodeEvolver® protein engineering platform technology can be used to discover novel biotherapeutic drug candidates that will target human diseases that are in need of improved therapeutic interventions. Similarly, we believe that we can deploy our platform technology to improve specific characteristics of a customer’s pre-existing biotherapeutic drug candidate, such as its activity, stability or immunogenicity.
BUSINESS UPDATE REGARDING COVID-19
We are subject to risks and uncertainties as a result of the current COVID-19 pandemic. The COVID-19 pandemic has presented a substantial public health and economic challenge around the world and is affecting our employees, communities and business operations, as well as the U.S. economy and other economies worldwide. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition will depend on future developments that are highly uncertain and may not be accurately predicted, including the duration and severity of the pandemic, the prevalence of more contagious and or virulent variants such as the Delta and Omicron variants, and the extent and severity of the impact on our customers, new information that may emerge concerning COVID-19, the actions taken to contain it or treat its impact and the economic impact on local, regional, national and international markets.
23


To date, we and our collaboration partners have been able to continue to supply our enzymes to our customers worldwide, however, there can be no guarantee this will continue. Furthermore, our ability to provide future R&D services will continue to be impacted as a result of governmental orders and any disruptions in operations of our customers with whom we collaborate. We believe that these disruptions have had minimal impact on our revenue for the three months ended March 31, 2022. The extent to which the pandemic may impact our business operations and operating results will continue to remain highly dependent on future developments, which are uncertain and cannot be predicted with confidence.
As a result of the COVID-19 pandemic we have received purchase orders from Pfizer for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID™ (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans. These purchase orders have had substantial impact on our revenue for the three months ended March 31, 2022 and for the year ended December 31, 2021.
Our future results of operations and liquidity could be adversely impacted by delays in payments of outstanding receivable amounts beyond normal payment terms, supply chain disruptions and uncertain demand, and the impact of any initiatives or programs that we may undertake to address financial and operations challenges faced by our customers. The near-and-long term impact of COVID-19 to our financial condition, liquidity, or results of operations remains uncertain. Although some of the Orders that were enacted to control the spread of COVID-19 have begun to be scaled back and the vaccine rollout has expanded, surges in the spread of COVID-19 due to the emergence of new more contagious or virulent variants or the ineffectiveness of the vaccines against such strains, may result in the reimplementation of certain Orders, which could adversely impact our business. The extent to which the COVID-19 pandemic may materially impact our financial condition, liquidity, or results of operations in the future is uncertain.
Results of Operations Overview
Revenues were $35.3 million in the first quarter of 2022, a 96% increase from $18.0 million in the first quarter of 2021.
Product revenue, which consists primarily of sales of biocatalysts, pharmaceutical intermediates, and Codex® biocatalyst panels and kits, was $30.7 million in the first quarter of 2022, an increase of 200% from $10.2 million in the first quarter of 2021. The increase in product revenue was primarily due to $21.3 million in revenue from Pfizer related to the purchase of our CDX-616 enzyme products but partially offset by lower revenue from the sales of other enzyme products used in the manufacture of branded pharmaceutical products. We expect the significant purchase orders we have received from Pfizer for CDX-616 enzyme products to continue to remain a significant component of our product revenue in 2022.
Research and development revenues, which include license, technology access and exclusivity fees, research service fees, milestone payments, royalties, and optimization and screening fees, totaled $4.7 million in the first quarter of 2022, a 40% decrease compared with $7.8 million in the first quarter of 2021. The decrease in research and development revenue was primarily due to lower research and development fees from Takeda under the Takeda Agreement and lower research and development fees from other existing collaboration agreements being recognized in the first quarter of 2022 as compared to the same period in the prior year.
Our products’ profitability is affected by many factors including the average profit margin on the products we sell. Our profit margins are affected by many factors including the costs of internal and third-party fixed and variable costs, including materials and supplies, labor, facilities and other overhead costs. Profit margin data is used as a management performance measure to provide additional information regarding our results of operations on a consolidated basis. Product gross margins increased to 72% in the first quarter of 2022, compared to 59% in the first quarter of 2021, due to improved product mix resulting from sales to Pfizer and to other pharmaceutical customers.
Research and development expenses were $19.5 million in the first quarter of 2022, an increase of 69% from $11.6 million in the first quarter of 2021. The increase was primarily due to increases in costs associated with higher headcount, higher facilities cost and lab supplies, higher stock-based compensation and higher depreciation expense and other outside services. We expect research and development expenses for the rest of the year to be higher than the comparative prior year periods mainly due to increase in headcount and higher allocation of facilities cost due to the additional research and development laboratory space we commenced occupancy in December 2021, and as we continue our efforts on advancing our internal and collaborative programs.
24


Selling, general and administrative expenses were $15.7 million in the first quarter of 2022, an increase of 38%, compared to $11.4 million in the first quarter of 2021. The increase was primarily due to increase in costs associated with a higher headcount, increase in legal fees, higher stock-based compensation costs, higher outside and temporary services, partially offset by lower allocable expenses. We expect selling, general and administrative expenses for the rest of the year to be higher than the comparative prior year periods mainly due to increase in headcount and higher operating costs as we invest more in our business.
Net loss was $8.4 million, or a net loss of $0.13 per basic and diluted share in the first quarter of 2022 compared to a net loss of $9.1 million, or a net loss of $0.14 per basic and diluted share in the first quarter of 2021. The decrease in net loss is primarily related to an increase in product revenue with higher margins, partially offset by higher operating expenses and lower research and development revenues.
Cash and cash equivalents decreased to $94.3 million of March 31, 2022 compared to $116.8 million as of December 31, 2021. In addition, net cash used in operations was $11.2 million in the three months ended March 31, 2022 compared to $6.4 million in the three months ended March 31, 2021. We believe that based on our current level of operations, our existing cash and cash equivalents will provide adequate funds for ongoing operations, planned capital expenditures and working capital requirements for at least the next 12 months.
In June 2017, we entered into a loan and security agreement with Western Alliance Bank that allows us to borrow up to $10.0 million under a term loan, and up to $5.0 million under a revolving credit facility with 80% of certain eligible accounts receivable as a borrowing base (the "Credit Facility"). Obligations under the Credit Facility are secured by a lien on substantially all of our personal property other than our intellectual property. Draws on the term debt are subject to customary conditions for funding. Our ability to take draws on the term debt expired on December 31, 2021. As of March 31, 2022, no amounts were borrowed under the Credit Facility and we were in compliance with the covenants for the Credit Facility. See Note 10, "Commitments and Contingencies" in the Notes to Unaudited Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q.
Merck Sitagliptin Catalyst Supply Agreement
In February 2012, we entered into a five-year Sitagliptin Catalyst Supply Agreement (“Sitagliptin Supply Agreement”) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia®, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its option under the terms of the Sitagliptin Catalyst Supply Agreement to extend the agreement for an additional five years through February 2022. In September 2021, the Sitagliptin Catalyst Supply Agreement was amended to extend the agreement through December 2026.
Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.
We recognized $1.7 million and $3.3 million in product revenue under this contract for the three months ended March 31, 2022 and 2021, respectively. Revenues recognized by us under the Sitagliptin Supply Agreement comprised 5% and 18% of our total revenues for the three months ended March 31, 2022 and 2021, respectively.
For the three months ended March 31, 2022, we recorded revenue of $1.2 million from sitagliptin enzyme that were recognized over time based on the progress of the manufacturing process. These products will be shipped within the six month period following the end of the first quarter of 2022.

Global Development, Option and License Agreement and Strategic Collaboration Agreement
In October 2017, we entered into the Nestlé License Agreement with Nestlé Health Science and, solely for the purpose of the integration and the dispute resolution clauses of the Nestlé License Agreement, Nestlé Health Science S.A., to advance CDX-6114, our enzyme biotherapeutic product candidate for the potential treatment of PKU.
25


In January 2019, we received notice from the U.S. Food and Drug Administration (“FDA”) that it had completed its review of our IND for CDX-6114 and concluded that we may proceed with the proposed Phase 1b multiple ascending dose study in healthy volunteers in the United States. In February 2019, Nestlé Health Science exercised its option to obtain an exclusive, worldwide, royalty-bearing, sub-licensable license for the global development and commercialization of CDX-6114 for the management of PKU. Upon exercising its option, Nestlé Health Science made an option payment and assumed all responsibilities for future clinical development and commercialization of CDX-6114. We are also eligible to receive payments from Nestlé Health Science under the Nestlé License Agreement that include (i) development and approval milestones of up to $85.0 million, (ii) sales-based milestones of up to $250.0 million in the aggregate, which aggregate amount is achievable if net sales exceed $1.0 billion in a single year, and (iii) tiered royalties, at percentages ranging from the mid-single digits to low double-digits of net sales of product.
In October 2017, we entered into the Nestlé SCA pursuant to which we and Nestlé Health Science are collaborating to leverage the CodeEvolver® protein engineering technology platform to develop novel enzymes for Nestlé Health Science’s established Consumer Care and Medical Nutrition business areas. The term of the Nestlé SCA has been extended through December 2022.
In January 2020, we entered into a development agreement with Nestlé Health Science pursuant to which we and Nestlé Health Science are collaborating to advance a lead candidate, CDX-7108, targeting a gastrointestinal disorder discovered through our Nestlé SCA into preclinical and early clinical studies. During 2021, we, together with Nestlé Health Science, continued to advance CDX-7108 towards initiation of a Phase 1 clinical trial with the first subject being dosed in November 2021.
Under the Nestlé SCA and the development agreement, we recognized $1.1 million and $1.8 million in research and development fees for the three months ended March 31, 2022 and 2021, respectively.
Platform Technology Transfer and License Agreement
In May 2019, we entered into the Novartis CodeEvolver® Agreement with Novartis. The Agreement allows Novartis to use our proprietary CodeEvolver® protein engineering platform technology in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver® protein engineering platform technology to Novartis (the “Technology Transfer Period”). As a part of this technology transfer, the Company provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver® protein engineering platform technology at its designated laboratory.
Pursuant to the agreement, we received an upfront payment of $5.0 million shortly after the effective date of the Novartis CodeEvolver® Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $4.0 million. We have also received an aggregate of $5.0 million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (“Improvements Term”), Novartis will pay Codexis annual payments over four years which amount to an additional $8.0 million in aggregate. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver® protein engineering platform technology during the period that began on the conclusion of the Technology Transfer Period and ends on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized using a single measure of progress that depicted our performance in transferring control of the services. Revenue allocated to improvements made during the Improvements Term are being recognized during the Improvements Term.
We recognized $0.2 million and $0.8 million in research and development revenue for the three months ended March 31, 2022 and 2021, respectively.
Strategic Collaboration and License Agreement
In March 2020, we entered into the Takeda Agreement with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (“Takeda”), under which we are collaborating to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.
26


On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $8.5 million and we initiated activities under three program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the “Initial Programs”). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. Pursuant to the Takeda Agreement, we are eligible to receive other payments that include (i) reimbursement of research and development fees and preclinical development milestones for the three initial programs of $10.5 million, in aggregate, and $7.2 million for the fourth program, (ii) clinical development and commercialization-based milestones, per target gene, of up to $100.0 million and (iii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits.
Revenue recognized relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $1.2 million and $2.1 million for the three months ended March 31, 2022 and 2021, respectively.
Pfizer, Inc. purchase orders
In 2021, we received purchase orders from Pfizer, Inc. (“Pfizer”) for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir. Pfizer markets, sells and distributes nirmatrelvir, in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID™ (nirmatrelvir tablets; ritonavir tablets) product, which received emergency use authorization by the FDA in late 2021 for the treatment of COVID-19 in humans.

We have received additional purchase orders from Pfizer for significant quantities of CDX-616. As of March 31, 2022, we have not yet executed a long-term purchase and sale agreement with Pfizer for CDX-616. We currently expect that future orders for quantities of CDX-616 by Pfizer will continue to be based on the needs of Pfizer for quantities of CDX-616 and there will be no minimum purchase obligation on the part of Pfizer.

We recognized product revenue of $21.3 million and $0.4 million for the three months ended March 31, 2022 and 2021, respectively, from the sale of quantities of CDX-616 enzyme products to Pfizer. Revenues recognized by us from sales of CDX-616 enzyme products to Pfizer comprised 60% and 2% of our total revenues for the three months ended March 31, 2022 and 2021, respectively. As of March 31, 2022, we recorded revenue and contract assets of $7.1 million from the sale of this enzyme product that were recognized over time based on the progress of the manufacturing process. These products will be shipped within the three month period following the end of the first quarter of 2022.
Results of Operations
The following table shows the amounts from our unaudited condensed consolidated statements of operations for the periods presented (in thousands, except percentages):
 Three Months Ended March 31,Change
 20222021$%
Revenues:
Product revenue$30,690 $10,226 $20,464 200%
Research and development revenue4,650 7,806 (3,156)(40)%
Total revenues35,340 18,032 17,308 96%
Costs and operating expenses:
Cost of product revenue8,521 4,218 4,303 102%
Research and development19,500 11,571 7,929 69%
Selling, general and administrative15,705 11,398 4,307 38%
Total costs and operating expenses43,726 27,187 16,539 61%
Loss from operations(8,386)(9,155)769 (8)%
Interest income42 177 (135)(76)%
Other expense, net(3)(88)85 (97)%
Loss before income taxes(8,347)(9,066)719 (8)%
Provision for income taxes350%
Net loss$(8,356)$(9,068)$712 (8)%
27


Revenues
Our revenues consist of product revenue and research and development revenue as follows:
Product revenue consist of sales of biocatalysts, pharmaceutical intermediates, and Codex® biocatalyst panels and kits.
Research and development revenue include license, technology access and exclusivity fees, research services fees, milestone payments, royalties, optimization and screening fees.
Revenues are as follows (in thousands, except percentages):
Three Months Ended March 31,Change
20222021$%
Product revenue$30,690 $10,226 $20,464 200%
Research and development revenue4,650 7,806 (3,156)(40)%
Total revenues$35,340 $18,032 $17,308 96%
Revenues typically fluctuate on a quarterly basis due to the variability in our customers' manufacturing schedules and the timing of our customers' clinical trials. In addition, we have limited internal capacity to manufacture enzymes. As a result, we are dependent upon the performance and capacity of third-party manufacturers for the commercial scale manufacturing of the enzymes used in our pharmaceutical and fine chemicals business.
We accept purchase orders for deliveries covering periods from one day up to 14 months from the date on which the order is placed. However, some of our purchase orders can be revised or cancelled by the customer without penalty. Considering these industry practices and our experience, we do not believe the total of customer purchase orders outstanding (backlog) provides meaningful information that can be relied on to predict actual sales for future periods.
Total revenues increased by $17.3 million to $35.3 million in the three months ended March 31, 2022 compared to the same period in 2021, primarily due to higher product revenue but partially offset by lower research and development revenue.
Product revenue, increased by $20.5 million to $30.7 million in the three months ended March 31, 2022 compared to the same period in 2021, primarily due to $21.3 million in revenue from Pfizer related to the purchase of our CDX-616 enzyme products but partially offset by lower revenue from sales of other enzyme products used in the manufacture of branded pharmaceutical products.
Research and development revenue decreased by $3.2 million to $4.7 million in the three months ended March 31, 2022 compared to the same period in 2021, primarily due to lower research and development fees from Takeda under the Takeda Agreement and lower research and development fees from other existing collaboration agreements being recognized in the first quarter of 2022 as compared to the same period in the prior year.
Cost and Operating Expenses
Our cost and operating expenses consist of cost of product revenue, research and development expense, and selling, general and administrative expense. The following table shows the amounts of our cost of product revenue, research and development expense, and selling, general and administrative expense from our unaudited condensed consolidated statements of operations for the periods presented (in thousands, except percentages):
Three Months Ended March 31,Change
20222021$%
Cost of product revenue$8,521 $4,218 $4,303 102%
Research and development19,500 11,571 7,929 69%
Selling, general and administrative15,705 11,398 4,307 38%
Total costs and operating expenses$43,726 $27,187 $16,539 61%
Cost of Product Revenue and Product Gross Margin
Our product revenues are derived entirely from our Performance Enzymes segment. Revenues from the Novel Biotherapeutics segment are only from collaborative research and development activities.
28


The following table shows the amounts of our product revenue, cost of product revenue, product gross profit and product gross margin from our unaudited condensed consolidated statements of operations for the periods presented (in thousands, except percentages):
Three Months Ended March 31,Change
20222021$%
Product revenue$30,690$10,226$20,464 200%
Cost of product revenue (1)
8,5214,2184,303 102%
Product gross profit$22,169$6,008$16,161 269%
Product gross margin (%) (2)
72 %59 %
(1) Cost of product revenue consists of both internal and third-party fixed and variable costs, including materials and supplies, labor, facilities and other overhead costs associated with our product revenue.
(2) Product gross margin is used as a performance measure to provide additional information regarding our results of operations on a consolidated basis.
Cost of product revenue increased by $4.3 million in the three months ended March 31, 2022 compared to the same period in 2021. The increase was primarily due to a higher volume of product sales and variations in product mix. The product gross margin increased to 72% in the three months ended March 31, 2022 compared to 59% in the three months ended March 31, 2021, primarily due to the sale of higher margin branded products.
Research and Development Expenses
Research and development expenses consist of costs incurred for internal projects as well as collaborative research and development activities. These costs primarily consist of (i) employee-related costs, which include salaries and other personnel-related expenses (including stock-based compensation), (ii) various allocable expenses, which include occupancy-related costs, supplies, depreciation of facilities and laboratory equipment, and (iii) external costs. Research and development expenses are expensed when incurred.
Research and development expenses were $19.5 million in the first quarter of 2022, an increase of $7.9 million or 69%, from $11.6 million in the first quarter of 2021. The increase was primarily due to increases in costs associated with higher headcount, higher facilities cost and lab supplies, higher stock-based compensation and higher depreciation expense and other outside services.
Selling, General and Administrative Expenses
Selling, general and administrative expenses consist of employee-related costs, which include salaries and other personnel-related expenses (including stock-based compensation), hiring and training costs, consulting and outside services expenses (including audit and legal counsel related costs), marketing costs, building lease costs, and depreciation expenses and amortization expenses.
Selling, general and administrative expenses were $15.7 million in the first quarter of 2022, an increase of $4.3 million, or 38%, compared to $11.4 million in the first quarter of 2021. The increase was primarily due to increase in costs associated with a higher headcount, increase in legal fees, higher stock-based compensation costs, higher outside and temporary services, partially offset by lower allocable expenses.
29


Interest Income and Other Expense, net (in thousands, except percentages):
Three Months Ended March 31,Change
20222021$%
Interest income$42 $177 $(135)(76)%
Other expense, net(3)(88)85 97%
Total other income (expense), net$39 $89 $(50)(56)%
Interest Income
Interest income decreased by $0.1 million in the three months ended March 31, 2022 compared to the same period in 2021, primarily due to earned interest income and amortization of debt discount on non-marketable debt security in prior year and reduction in interest income from lower average interest rates on declining average cash balances.
Other Expense, net
Other expense, net, decreased by $85.0 thousand in the three months ended March 31, 2022 compared to the same period in 2021, primarily due to interest expense charges recognized on the amortization of an embedded bifurcated derivative of a share-settled redemption feature on non-marketable securities in prior year.
Provision for Income Taxes (in thousands, except percentages):
Three Months Ended March 31,Change
20222021$%
Provision for income taxes$$$350%
The provision for income taxes for the three months ended March 31, 2022 and 2021, were primarily due to the accrual of interest and penalties on historic uncertain tax positions.
Net Loss
Net loss for the three months ended March 31, 2022 was $8.4 million, or a net loss per basic and diluted share of $0.13. This compared to a net loss of $9.1 million, or a net loss per basic and diluted share of $0.14 for the three months ended March 31, 2021. The decrease in net loss is primarily related to an increase in product revenues with higher margins, partially offset by higher operating expenses and lower research and development revenues.
Results of Operations by Segment (in thousands, except percentages):
Revenues by segment
Three Months Ended March 31,Change
20222021Performance EnzymesNovel Biotherapeutics
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal$%$%
Revenues:
Product revenue$30,690 $— $30,690 $10,226 $— $10,226 $20,464 200%$— —%
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 (1,594)(40)%(1,562)(41)%
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 $18,870 133%$(1,562)(41)%
30


Revenues from the Performance Enzymes segment increased by $18.9 million, or 133%, for the three months ended March 31, 2022, compared to the same period in 2021. The increase in product revenue of $20.5 million, or 200%, in the three months ended March 31, 2022 as compared to the same period in 2021, was primarily due to higher revenue from Pfizer but partially offset by lower revenue from the sales of other enzyme products used in the manufacture of branded pharmaceuticals products. The decrease in research and development revenue of $1.6 million, or 40%, to $2.4 million in three months ended March 31, 2021, as compared to $4.0 million in the three months ended March 31, 2021 was primarily due to lower revenues from Novartis under the Novartis CodeEvolver® Agreement as we completed the technology transfer to Novartis during the third quarter of 2021 and lower research and development fees from other existing collaboration agreements compared to the same period in the prior year.
Revenues from the Novel Biotherapeutics segment decreased by $1.6 million, or 41%, for the three months ended March 31, 2022, as compared to the same period in 2021, primarily due to lower research and development fees from Takeda under the Takeda Agreement and lower research and development revenue from Nestlé Health Science.
Costs and operating expenses by segment
Three Months Ended March 31,Change
20222021Performance EnzymesNovel Biotherapeutics
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal$%$%
Cost of product revenue$8,521 $— $8,521 $4,218 $— $4,218 $4,303 102%$— —%
Research and development (1)
6,122 12,346 18,468 6,444 4,605 11,049 (322)(5)%7,741 168%
Selling, general and administrative (1)
3,541 720 4,261 2,818 600 3,418 723 26%120 20%
Total segment costs and operating expenses$18,184 $13,066 31,250 $13,480 $5,205 18,685 $4,704 35%$7,861 151%
Corporate costs (2)
11,244 7,817 
Unallocated depreciation and amortization1,232 685 
Total costs and operating expenses$43,726 $27,187 
(1) Research and development expenses and selling, general and administrative expenses exclude depreciation and amortization of finance leases.
(2) Corporate costs include unallocated selling, general and administrative expenses.

For a discussion of product cost of revenue, see "—Results of Operations".
Research and development expense in the Performance Enzymes segment decreased by $0.3 million, or 5%, in the three months ended March 31, 2022, as compared to the same period in 2021, primarily due to lower allocable expenses, partially offset by an increase in costs associated with outside services, lab supplies and higher headcount.
Selling, general and administrative expense in the Performance Enzymes segment increased by $0.7 million, or 26%, in the three months ended March 31, 2022, as compared to the same period in 2021, primarily due to an increase in costs associated with higher headcount and higher stock-based compensation costs.
Research and development expense in the Novel Biotherapeutics segment increased by $7.7 million, or 168%, in the three months ended March 31, 2022 as compared to the same period in 2021, primarily due to higher costs associated with higher headcount, higher facilities cost and lab supplies and higher allocable expenses.
Selling, general and administrative expense in the Novel Biotherapeutics segment increased by $0.1 million or 20% in the three months ended March 31, 2022, as compared to the same period in 2021, primarily due to an increase in costs associated with higher headcount and higher stock-based compensation costs.

31


Liquidity and Capital Resources
Liquidity is the measurement of our ability to meet working capital needs and to fund capital expenditures. We have historically funded our operations primarily through cash generated from operations, stock option exercises and public and private offerings of our common stock. We also have the ability to borrow up to $5.0 million under our Credit Facility. We actively manage our cash usage and investment of liquid cash to ensure the maintenance of sufficient funds to meet our working capital needs. Our cash and cash equivalents are held in U.S. banks.
The following summarizes our cash and cash equivalents balance and working capital as of March 31, 2022 and December 31, 2021 (in thousands):
March 31, 2022December 31, 2021
Cash and cash equivalents$94,260 $116,797 
Working capital$115,374 $128,517 
Sources of Capital
In addition to our existing cash and cash equivalents, we are eligible to earn milestone and other contingent payments for the achievement of defined collaboration objectives and certain royalty payments under our collaboration agreements. Our ability to earn these milestone and contingent payments and the timing of achieving these milestones is primarily dependent upon the outcome of our collaborators’ research and development activities and is uncertain at this time. Under the Merck CodeEvolver® Agreement, we are eligible to receive payments of up to $15.0 million for each commercial API that is manufactured by Merck using one or more novel enzymes developed by Merck using the CodeEvolver® technology. In addition, under the GSK CodeEvolver® Agreement, depending upon GSK's successful application of the licensed technology, we have the potential to receive additional contingent payments that range from $5.75 million to $38.5 million per project.

In May 2019, we entered into the Platform Technology Transfer and License Agreement with Novartis. The Novartis CodeEvolver® Agreement allows Novartis to use Codexis’ proprietary CodeEvolver® protein engineering platform technology in the field of human healthcare. Pursuant to the agreement, we received an upfront payment of shortly after the effective date and we also received milestone payments upon completion of the second technology milestone transfer in 2020 and the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (“Improvements Term”), Novartis will pay an additional $8.0 million in aggregate over four years.

In October 2017, we entered into the Nestlé License Agreement with Nestlé Health Science. Pursuant to the Nestlé License Agreement, Nestlé Health Science paid us an upfront cash payment and milestone payments after dosing the first subjects in a first-in-human Phase 1a dose-escalation trial with CDX-6114 and achievement of a formulation relating to CDX-6114. We are also eligible to receive payments from Nestlé Health Science under the Nestlé License Agreement that include (i) development and approval milestones of up to $85.0 million, (ii) sales-based milestones of up to $250.0 million in the aggregate, which aggregate amount is achievable if net sales exceed $1.0 billion in a single year, and (iii) tiered royalties, at percentages ranging from the mid-single digits to low double-digits, of net sales of product.
We are actively collaborating with new and existing customers in the pharmaceutical and food industries. We believe that we can utilize our current products and services, and develop new products and services, to increase our revenues and gross margins in future periods.
We have historically experienced negative cash flows from operations as we continue to invest in key technology development projects and improvements to our CodeEvolver® protein engineering technology platform and expand our business development and collaboration with new customers. Our cash flows from operations will continue to be affected principally by product sales and product gross margins, sales from licensing our technology to major pharmaceutical companies, and collaborative research and development services provided to customers, as well as our headcount costs, primarily in research and development. Our primary source of cash flows from operating activities is cash receipts from our customers for purchases of products, collaborative research and development services, and licensing our technology to major pharmaceutical companies. Our largest uses of cash from operating activities are for employee-related expenditures, rent payments, inventory purchases to support our product sales and non-payroll research and development costs
32


Equity Distribution Agreement
In May 2021, we entered into an Equity Distribution Agreement ("EDA") with Piper Sandler & Co ("PSC"), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. During the three months ended March 31, 2022, no shares of our common stock were issued pursuant to the EDA and as of March 31, 2022, $50.0 million worth of shares remained available for sale under the EDA. Sales of our common stock under this arrangement could be subject to business, economic or competitive uncertainties and contingencies, many of which may be beyond our control, and which could cause actual results from the sale of our common stock to differ materially from expectations.
Credit Facility
In June 30, 2017, we entered into the Credit Facility with Western Alliance Bank consisting of term loans up to $10.0 million, and advances under a revolving credit facility of up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. Our right to take draws on the term debt expired on December 31, 2021. On October 1, 2024, loans drawn under the Revolving Line of Credit terminate.
The Credit Facility requires us to maintain compliance with certain financial covenants including attainment of certain lender-approved projections or maintenance of certain minimum cash levels. Restrictive covenants in the Credit Facility restrict the payment of dividends or other distributions. As of March 31, 2022, no amounts were borrowed under the Credit Facility and we were in compliance with the covenants for the Credit Facility. For additional information about our contractual obligations, see Note 10, "Commitments and Contingencies" in the Notes to Unaudited Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q.
We believe that, based on our current level of operations, our existing cash and cash equivalents will provide adequate funds for ongoing operations, planned capital expenditures and working capital requirements for at least the next 12 months.
However, we may need additional capital if our current plans and assumptions change. In addition, we may choose to seek other sources of capital even if we believe we have generated sufficient cash flows to support our operating needs. Our need for additional capital will depend on many factors, including the financial success of our business, the spending required to develop and commercialize new and existing products, the effect of any acquisitions of other businesses, technologies or facilities that we may make or develop in the future, our spending on new market opportunities, and the potential costs for the filing, prosecution, enforcement and defense of patent claims, if necessary. If our capital resources are insufficient to meet our capital requirements, and we are unable to enter into or maintain collaborations with partners that are able or willing to fund our development efforts or commercialize any products that we develop or enable, we will have to raise additional funds to continue the development of our technology and products and complete the commercialization of products, if any, resulting from our technologies. If future financings involve the issuance of equity securities, our existing stockholders would suffer dilution. If we raise debt financing or enter into credit facilities, we may be subject to restrictive covenants that limit our ability to conduct our business. We may not be able to raise sufficient additional funds on terms that are favorable to us, if at all. If we fail to raise sufficient funds and fail to generate sufficient revenues to achieve planned gross margins and to control operating costs, our ability to fund our operations, take advantage of strategic opportunities, develop products or technologies, or otherwise respond to competitive pressures could be significantly limited. If this happens, we may be forced to delay or terminate research or development programs or the commercialization of products resulting from our technologies, curtail or cease operations or obtain funds through collaborative and licensing arrangements that may require us to relinquish commercial rights, or grant licenses on terms that are not favorable to us. If adequate funds are not available, we will not be able to successfully execute our business plan or continue our business.
33


Cash Flows
The following is a summary of cash flows for three months ended March 31, 2022 and 2021 (in thousands):
 Three Months Ended March 31,
20222021
Net cash used in operating activities$(11,186)$(6,440)
Net cash used in investing activities(10,082)(2,533)
Net cash provided by (used in) financing activities(1,280)17 
Net decrease in cash, cash equivalents and restricted cash$(22,548)$(8,956)
Cash Flows from Operating Activities
Cash used in operating activities for the three months ended March 31, 2022 of $11.2 million consisted of net loss adjusted for certain non-cash items and changes in operating assets and liabilities.
The $4.7 million increase in net cash used in operations for the three months ended March 31, 2022 as compared to the same period in 2021, was primarily due to the net effect of increases in cash paid for cost of revenues and operating expenses and changes in operating assets and liabilities, partially offset by increases in cash received from revenue.
Cash Flows from Investing Activities
Cash used in investing activities for the three months ended March 31, 2022 was primarily attributable to $5.0 million for the purchase of 1,000,000 shares of seqWell Series C preferred stock in March 2022 and $5.1 million for purchases of property and equipment.
The $7.5 million increase in net cash used in investing activities for the three months ended March 31, 2022 as compared to the same period in 2021, was primarily due to higher cash utilized for additional investment in equity securities and purchases of property and equipment.
Cash Flows from Financing Activities
Cash used in financing activities for the three months ended March 31, 2022 included $1.4 million for taxes paid related to net share settlement of equity awards offset by $0.2 million of proceeds from exercises of stock options.
The $1.3 million increase in net cash used financing activities for the three months ended March 31, 2022 as compared to the same period in 2021 was primarily due to lower proceeds from exercises of stock options and higher cash paid on taxes related to net share settlement of equity awards.
Critical Accounting Policies and Estimates
The preparation of financial statements in conformity with generally accepted accounting principles requires management to make judgments, estimates and assumptions in the preparation of our consolidated financial statements and accompanying notes. Actual results could differ from those estimates. There have been no material changes to our critical accounting policies or estimates during the three months ended March 31, 2022 from those discussed in our Annual Report on Form 10-K for the year ended December 31, 2021, filed with the SEC on February 28, 2022.
34


ITEM 3.QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK

Market Risk Management
Our cash flows and earnings are subject to fluctuations due to changes in foreign currency exchange rates, interest rates and other factors. These market risk exposures are disclosed in Part II, Item 7A of our Annual Report on Form 10-K for the year ended December 31, 2021, filed with the SEC on February 28, 2022.
Interest Rate Sensitivity
Our unrestricted cash and cash equivalents total $94.3 million as of March 31, 2022. We primarily invest these amounts in money market funds which are held for working capital purposes. We do not enter into investments for trading or speculative purposes. As of March 31, 2022, the effect of a hypothetical 10% decrease in market interest rates would have a $17 thousand impact on a potential loss in future interest income and cash flows.
In June 2017, we entered into a Credit Facility with Western Alliance Bank consisting of term loans up to $10.0 million, and advances under a revolving line of credit up to $5.0 million. Term loans made under the Term Debt bear interest at variable rate through maturity at the greater of (i) 3.75% or (ii) the sum of (A) Index Rate (prime rate published in the Money Rates section of the Western Edition of The Wall Street Journal plus (B) 0.50%. Advances made under the Revolving Line of Credit bear interest at a variable annual rate equal to the greater of (i) 4.25% or (ii) the sum of (A) the prime rate plus (B) 1.00%. Increases in these variable interest rates will increase our future interest expense and decrease our results of operations and cash flows. Our right to take draws on the long term debt expired on December 31, 2021 and no amounts were drawn under the Credit Facility as of March 31, 2022. Our exposure to interest rates risk relates to our 2017 Credit Facility with variable interest rates, where an increase in interest rates may result in higher borrowing costs. Since we have no outstanding borrowings under our 2017 Credit Facility as of March 31, 2022, the effect of a hypothetical 10% change in interest rates would not have any impact on our interest expense.
Foreign Currency Risk
Our results of operations and cash flows are subject to fluctuations due to changes in foreign currency exchange rates. In periods when the USD declines in value as compared to the foreign currencies in which we incur expenses, our foreign-currency based expenses increase when translated into United States dollars. Although substantially all of our sales are denominated in United States dollars, future fluctuations in the value of the USD may affect the price competitiveness of our products outside the United States. Our most significant foreign currency exposure is due to non-functional currency denominated monetary assets, primarily currencies denominated in other than their functional currency. These non-functional currency denominated monetary assets are subject to re-measurement which may create fluctuations in other expense, net, a component in our consolidated statement of operations and in the fair value of the assets in the consolidated balance sheets. As of March 31, 2022, the effect of a hypothetical 10% unfavorable change in exchange rates on currencies denominated in other than their functional currency would result in a potential loss in future earnings in our consolidated statement of operations and a reduction in the fair value of the assets of approximately $46 thousand.
Investment in Non-Marketable Equity Securities
We own investments in non-marketable equity securities without readily determinable fair values. We may value these equity securities based on significant recent arms-length equity transactions with sophisticated non-strategic unrelated investors, providing the terms of these security transactions are substantially similar to the security transactions terms between the investors and us. The impact of the difference in transaction terms on the market value of the portfolio company may be difficult or impossible to quantify.
35


ITEM 4.CONTROLS AND PROCEDURES

Evaluation of Disclosure Controls and Procedures
We maintain disclosure controls and procedures and internal controls that are designed to provide reasonable assurance that information required to be disclosed in our Exchange Act reports is recorded, processed, summarized, and reported within the time periods specified in the SEC's rules and forms and that such information is accumulated and communicated to our management, including our principal executive officer and our principal financial and accounting officer, as appropriate, to allow timely decisions regarding required disclosure.
Our management, including our principal executive officer and our principal financial and accounting officer, evaluated the effectiveness of our disclosure controls and procedures as defined by Rules 13a-15(e) and 15d-15(e) of the Exchange Act. Based on this evaluation and the identification of a material weakness in our internal control over financial reporting, our principal executive officer and our principal financial and accounting officer have concluded that these disclosure controls and procedures were not effective as of March 31, 2022.
Management has concluded that a material weakness in internal control over financial reporting exists related to management's controls over the revenue recognition process in the three months ended March 31, 2022. Specifically, our controls addressing the completeness and accuracy of reports used to calculate product revenue from arrangements subject to overtime revenue recognition did not operate at the proper level of precision to identify material errors. The control deficiency resulted in a material misstatement of revenue related accounts in the current period. Management corrected this misstatement before the financial statements for the three months ended March 31, 2022 were issued. Additionally, management has performed an analysis to ensure no other material errors resulted from this control failure.
Management's Plan to Remediate Material Weakness
We are in the process of developing a detailed plan for remediation of the material weakness, including enhancing management's review controls over revenue and the level of detail and precision applied when reviewing the completeness and accuracy of reports used to determine product revenue for arrangements subject to overtime revenue recognition. We intend to remediate this material weakness as soon as possible, and we will continue to assess the effectiveness of our remediation efforts in connection with our future assessment of the effectiveness of internal control over financial reporting and disclosure controls and procedures. We cannot at this time estimate how long it will take to remediate this material weakness. Until this material weakness is remediated, we plan to continue to perform additional analyses and other procedures to ensure that our consolidated financial statements are prepared in accordance with GAAP.
Changes in Internal Control over Financial Reporting
Other than as described above, there were no changes in our internal control over financial reporting identified in connection with the evaluation required by paragraph (d) of Exchange Act Rules 13a-15 or 15d-15 that occurred during our last fiscal quarter that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting. There were no significant changes to our internal control over financial reporting due to the adoption of new standards.
Inherent Limitations on Effectiveness of Controls
In designing and evaluating the disclosure controls and procedures, management recognizes that any controls and procedures, even if determined effective and no matter how well designed and operated, can provide only reasonable assurance of achieving the desired control objectives to prevent or detect misstatements. In addition, the design of disclosure controls and procedures must reflect the fact that there are resource constraints, and that management is required to apply judgment in evaluating the benefits of possible controls and procedures relative to their costs. 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.

36


PART II. OTHER INFORMATION
ITEM 1.
LEGAL PROCEEDINGS

We are not currently a party to any material pending litigation or other material legal proceedings.

ITEM 1A.RISK FACTORS


We have included in Part I, Item 1A of our Annual Report on Form 10-K for the year ended December 31, 2021, a description of certain risks and uncertainties that could affect our business, future performance or financial condition (the “Risk Factors"). Other than in respect of the additional risk factor included below, during the three months ended March 31, 2022, there were no material changes from the disclosure provided in the Form 10-K for the year ended December 31, 2021 with respect to the Risk Factors. Investors should consider the Risk Factors prior to making an investment decision with respect to our stock.

We have identified a material weakness in our internal control over accounting related to our product revenue recognition process and such weakness led to a conclusion that our internal control over financial reporting and disclosure controls and procedures were not effective as of March 31, 2022. Our inability to remediate the material weakness, our discovery of any additional weaknesses, and/or our inability to achieve and maintain effective disclosure controls and procedures and internal control over financial reporting could adversely affect our results of operations and our stock price.

Section 404 of the Sarbanes-Oxley Act of 2002 requires that companies evaluate and report on the effectiveness of their internal control over financial reporting. In addition, we regularly engage our independent registered public accounting firm to report on its evaluation of those controls. As disclosed in more detail under Part I, Item 4, “Controls and Procedures” above, we have identified a material weakness in our internal control as of March 31, 2022 related to management's controls over the revenue recognition process. Specifically, our controls addressing the completeness and accuracy of reports used to calculate product revenue from arrangements subject to overtime revenue recognition did not operate at the proper level of precision to identify the errors. Due to the material weakness in our internal control over financial reporting, we have concluded that our disclosure controls and procedures were not effective as of March 31, 2022.

Failure to have effective internal control over financial reporting and disclosure controls and procedures could impair our ability to produce accurate financial statements on a timely basis and could lead to a restatement of our financial statements. If, as a result of the ineffectiveness of our internal control over financial reporting and disclosure controls and procedures, we cannot provide reliable financial statements, our business decision processes may be adversely affected, our business and results of operations could be harmed and investors could lose confidence in our reported financial information. In addition, in some circumstances, failure to maintain effective internal control over financial reporting could result in investigations or sanctions by regulatory authorities.

Our management is taking steps to remediate the material weakness, including enhancing management's review controls over revenue and the level of detail and precision applied when reviewing the completeness and accuracy of reports used to determine product revenue for arrangements subject to overtime revenue recognition. We intend to remediate this material weakness as soon as possible, but we cannot be certain as to when such remediation will be completed, if ever. Additional details regarding the remediation efforts are disclosed under Part I, Item 4, “Controls and Procedures” above. In addition, we may in the future identify additional internal control deficiencies that could rise to the level of a material weakness or uncover other errors in financial reporting. During the course of our evaluation of this material weakness, we may identify areas requiring improvement and may be required to design additional enhanced processes and controls to address issues identified through this review. In addition, there can be no assurance that such remediation efforts will be successful, that our internal control over financial reporting will be effective as a result of these efforts or that any such future deficiencies identified may not be material weaknesses that would be required to be reported in future periods. In addition, we cannot assure you that our independent registered public accounting firm will be able to attest that such internal controls are effective when they are required to do so.

37


If we fail to remediate the material weakness and maintain effective internal control over financial reporting or disclosure controls and procedures, we may not be able to rely on the integrity of our financial results, which could result in inaccurate or late reporting of our financial results, as well as delays or the inability to meet our reporting obligations or to comply with SEC rules and regulations. Any of these could result in delisting actions by the Nasdaq Stock Market, investigation and sanctions by regulatory authorities, stockholder investigations and lawsuits, and could adversely affect our business and the trading price of our common stock.


ITEM 2.UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS

None.
ITEM 3.
DEFAULTS UPON SENIOR SECURITIES

None.

ITEM 4.MINE SAFETY DISCLOSURES

Not applicable.

ITEM 5.OTHER INFORMATION

Not applicable.

38


ITEM 6.EXHIBITS
3.1
3.2
3.3
4.1Reference is made to Exhibits 3.1 through 3.3.
31.1
31.2
32.1
101 
The following materials from the Company's Quarterly Report on Form 10-Q for the quarter ended March 31, 2022, formatted in Inline Extensible Business Reporting Language (iXBRL) includes: (i) Unaudited Condensed Consolidated Balance Sheets at March 31, 2022 and December 31, 2021 (ii) Unaudited Condensed Consolidated Statements of Operations for the Three Months Ended March 31, 2022 and 2021, (iii) Unaudited Condensed Consolidated Statements of Stockholders' Equity for the three months ended March 31, 2022 and 2021, (iv) Unaudited Condensed Consolidated Statements of Cash Flows for the Three Months Ended March 31, 2022 and 2021 and (v) Notes to Unaudited Condensed Consolidated Financial Statements.
101.SCHInline XBRL Taxonomy Extension Schema Document
101.CALInline XBRL Taxonomy Extension Calculation Linkbase Document
101.DEFInline XBRL Taxonomy Extension Definition Linkbase Document
101.LABInline XBRL Taxonomy Extension Label Linkbase Document
101.PREInline XBRL Taxonomy Extension Presentation Linkbase Document
104
The cover page from the Company’s Quarterly Report on Form 10-Q for the quarter ended March 31, 2022, formatted in Inline XBRL and contained in Exhibit 101.

39


SIGNATURES
Pursuant to the requirements 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.
Codexis, Inc.
Date:May 9, 2022By:/s/ John J. Nicols
John J. Nicols
President and Chief Executive Officer
(principal executive officer)
Date:May 9, 2022By:/s/ Ross Taylor
Ross Taylor
Senior Vice President and Chief Financial Officer
(principal financial and accounting officer)

40
EX-31.1 2 cdxs_20220331xex311sp.htm EX-31.1 Document

Exhibit 31.1
CERTIFICATION
I, John J. Nicols, certify that:
1.I have reviewed this Quarterly Report on Form 10-Q of Codexis, 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 the 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.

Date: May 9, 2022
/s/ John J. Nicols
John J. Nicols
President and Chief Executive Officer
(principal executive officer)


EX-31.2 3 cdxs_20220331xex312sp.htm EX-31.2 Document

Exhibit 31.2
CERTIFICATION
I, Ross Taylor, certify that:
1.I have reviewed this Quarterly Report on Form 10-Q of Codexis, 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 the 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.

Date: May 9, 2022
/s/ Ross Taylor
Ross Taylor
Senior Vice President and Chief Financial Officer
(principal financial and accounting officer)


EX-32.1 4 cdxs_20220331xex321sp.htm EX-32.1 Document

Exhibit 32.1
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 Quarterly Report of Codexis, Inc. (the “Company”) on Form 10-Q for the fiscal quarter ended March 31, 2022, as filed with the Securities and Exchange Commission (the “Report”), John J. Nicols, President and Chief Executive Officer of the Company and Ross Taylor, Senior Vice President and Chief Financial Officer of the Company, respectively, do each hereby certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:
The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
The information in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.


Date: May 9, 2022
/s/ John J. Nicols
John J. Nicols
President and Chief Executive Officer
(principal executive officer)
/s/ Ross Taylor
Ross Taylor
Senior Vice President and Chief Financial Officer
(principal financial and accounting officer)


EX-101.SCH 5 cdxs-20220331.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 0001001 - Document - Cover Page link:presentationLink link:calculationLink link:definitionLink 1001002 - Statement - Condensed Consolidated Balance Sheets (Unaudited) link:presentationLink link:calculationLink link:definitionLink 1002003 - Statement - Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1003004 - Statement - Condensed Consolidated Statements of Operations (Unaudited) link:presentationLink link:calculationLink link:definitionLink 1004005 - Statement - Condensed Consolidated Statements of Operations (Unaudited) (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1005006 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) link:presentationLink link:calculationLink link:definitionLink 1006007 - Statement - Condensed Consolidated Statements of Cash Flows link:presentationLink link:calculationLink link:definitionLink 2101101 - Disclosure - Description of Business link:presentationLink link:calculationLink link:definitionLink 2402401 - Disclosure - Description of Business (Details) link:presentationLink link:calculationLink link:definitionLink 2103102 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies link:presentationLink link:calculationLink link:definitionLink 2204201 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies) link:presentationLink link:calculationLink link:definitionLink 2105103 - Disclosure - Revenue Recognition link:presentationLink link:calculationLink link:definitionLink 2306301 - Disclosure - Revenue Recognition (Tables) link:presentationLink link:calculationLink link:definitionLink 2407402 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 2408403 - Disclosure - Revenue Recognition - Contracts with Customer (Details) link:presentationLink link:calculationLink link:definitionLink 2409404 - Disclosure - Revenue Recognition - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2410405 - Disclosure - Revenue Recognition - Revenue Recognized During Period (Details) link:presentationLink link:calculationLink link:definitionLink 2411406 - Disclosure - Revenue Recognition - Performance Obligation (Details) link:presentationLink link:calculationLink link:definitionLink 2411406 - Disclosure - Revenue Recognition - Performance Obligation (Details) link:presentationLink link:calculationLink link:definitionLink 2112104 - Disclosure - Net Loss per Share link:presentationLink link:calculationLink link:definitionLink 2313302 - Disclosure - Net Loss per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 2414407 - Disclosure - Net Loss per Share (Details) link:presentationLink link:calculationLink link:definitionLink 2115105 - Disclosure - Investments in Non-Marketable Securities link:presentationLink link:calculationLink link:definitionLink 2316303 - Disclosure - Investments in Non-Marketable Securities (Tables) link:presentationLink link:calculationLink link:definitionLink 2417408 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2418409 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details) link:presentationLink link:calculationLink link:definitionLink 2119106 - Disclosure - Fair Value Measurements link:presentationLink link:calculationLink link:definitionLink 2320304 - Disclosure - Fair Value Measurements (Tables) link:presentationLink link:calculationLink link:definitionLink 2421410 - Disclosure - Fair Value Measurements (Details) link:presentationLink link:calculationLink link:definitionLink 2122107 - Disclosure - Balance Sheets Details link:presentationLink link:calculationLink link:definitionLink 2323305 - Disclosure - Balance Sheets Details (Tables) link:presentationLink link:calculationLink link:definitionLink 2424411 - Disclosure - Balance Sheets Details - Cash and Cash Equivalents (Details) link:presentationLink link:calculationLink link:definitionLink 2425412 - Disclosure - Balance Sheets Details - Inventories (Details) link:presentationLink link:calculationLink link:definitionLink 2426413 - Disclosure - Balance Sheets Details - Property and Equipment, net (Details) link:presentationLink link:calculationLink link:definitionLink 2427414 - Disclosure - Balance Sheets Details - Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 2428415 - Disclosure - Balance Sheets Details - Other Accrued Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 2129108 - Disclosure - Stock-based Compensation link:presentationLink link:calculationLink link:definitionLink 2330306 - Disclosure - Stock-based Compensation (Tables) link:presentationLink link:calculationLink link:definitionLink 2431416 - Disclosure - Stock-based Compensation - Equity Incentive Plans (Details) link:presentationLink link:calculationLink link:definitionLink 2432417 - Disclosure - Stock-based Compensation - Stock Options (Details) link:presentationLink link:calculationLink link:definitionLink 2433418 - Disclosure - Stock-based Compensation - Restricted Stock Units (Details) link:presentationLink link:calculationLink link:definitionLink 2434419 - Disclosure - Stock-based Compensation - PSUs and PBOs (Details) link:presentationLink link:calculationLink link:definitionLink 2435420 - Disclosure - Stock-based Compensation - Stock-based Compensation Expense (Details) link:presentationLink link:calculationLink link:definitionLink 2136109 - Disclosure - Capital Stock link:presentationLink link:calculationLink link:definitionLink 2437421 - Disclosure - Capital Stock (Details) link:presentationLink link:calculationLink link:definitionLink 2138110 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 2339307 - Disclosure - Commitments and Contingencies (Tables) link:presentationLink link:calculationLink link:definitionLink 2440422 - Disclosure - Commitments and Contingencies - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2441423 - Disclosure - Commitments and Contingencies - Lease Cost (Details) link:presentationLink link:calculationLink link:definitionLink 2442424 - Disclosure - Commitments and Contingencies - Other Lease Information (Details) link:presentationLink link:calculationLink link:definitionLink 2443425 - Disclosure - Commitments and Contingencies - Cash Paid for Lease Obligations (Details) link:presentationLink link:calculationLink link:definitionLink 2444426 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details) link:presentationLink link:calculationLink link:definitionLink 2444426 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details) link:presentationLink link:calculationLink link:definitionLink 2445427 - Disclosure - Commitments and Contingencies - Other Commitments (Details) link:presentationLink link:calculationLink link:definitionLink 2146111 - Disclosure - Related Party Transactions link:presentationLink link:calculationLink link:definitionLink 2447428 - Disclosure - Related Party Transactions - Molecular Assemblies, Inc. (Details) link:presentationLink link:calculationLink link:definitionLink 2148112 - Disclosure - Segment, Geographical and Other Revenue Information link:presentationLink link:calculationLink link:definitionLink 2349308 - Disclosure - Segment, Geographical and Other Revenue Information (Tables) link:presentationLink link:calculationLink link:definitionLink 2450429 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2451430 - Disclosure - Segment, Geographical and Other Revenue Information - Segment Reporting (Details) link:presentationLink link:calculationLink link:definitionLink 2452431 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details) link:presentationLink link:calculationLink link:definitionLink 2453432 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 2454433 - Disclosure - Segment, Geographical and Other Revenue Information - Long-Lived Assets by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 2455434 - Disclosure - Segment, Geographical and Other Revenue Information - Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 2156113 - Disclosure - Allowance for Credit Losses link:presentationLink link:calculationLink link:definitionLink 2357309 - Disclosure - Allowance for Credit Losses (Tables) link:presentationLink link:calculationLink link:definitionLink 2458435 - Disclosure - Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details) link:presentationLink link:calculationLink link:definitionLink 2459436 - Disclosure - Allowance for Credit Losses - Summary of Finance Receivables by Aging Category (Details) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 6 cdxs-20220331_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT EX-101.DEF 7 cdxs-20220331_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT EX-101.LAB 8 cdxs-20220331_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Summary of financial instruments measured at fair value on a recurring basis Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract] Supplemental disclosure of cash flow information: Supplemental Cash Flow Information [Abstract] Customer [Domain] Customer [Domain] Work-in-process Inventory, Work in Process, Gross Restricted Cash and Cash Equivalents [Axis] Restricted Cash and Cash Equivalents [Axis] Convertible Debt Convertible Debt [Member] Leasehold improvements Leasehold Improvements [Member] Fair Value, Measurements, Fair Value Hierarchy [Domain] Fair Value Hierarchy and NAV [Domain] Net loss Net loss Net loss Net Income (Loss) Attributable to Parent Customer E Customer E [Member] Customer E Right-of-use assets - Operating leases, net Operating Lease, Right-of-Use Asset Preferred stock, shares outstanding (in shares) Preferred Stock, Shares Outstanding Accrued compensation Employee-related Liabilities, Current Income Statement Location [Axis] Income Statement Location [Axis] Statistical Measurement [Domain] Statistical Measurement [Domain] Impairment charges related to contract assets Contract with Customer, Asset, Credit Loss Expense (Reversal) Schedule of Commitments and Contingencies [Table] Schedule of Commitments and Contingencies [Table] Schedule of commitments and contingencies. Segment Information Segment Reporting, Policy [Policy Text Block] Security Exchange Name Security Exchange Name Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code EMEA EMEA [Member] Proceeds from sale of property and equipment Proceeds from Sale of Property, Plant, and Equipment Revenue from Contract with Customer [Abstract] Revenue from Contract with Customer [Abstract] Contract with customer Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block] Weighted-average remaining lease term (in years) Operating Lease, Weighted Average Remaining Lease Term Less: allowances Balance at beginning of period Ending Balance Financing Receivable, Allowance for Credit Loss, Current Office equipment and furniture Office Equipment and Furniture [Member] Office Equipment and Furniture [Member] Other non-current assets Other Assets, Noncurrent Investment, Name [Axis] Investment, Name [Axis] 2020 PSU and PBO 2020 PSU and PBO Plan [Member] 2020 PSU and PBO Plan Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table] Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table] Segments [Axis] Segments [Axis] Number of shares available for grant Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant Net decrease in cash, cash equivalents and restricted cash Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Entity File Number Entity File Number Employee stock-based compensation APIC, Share-based Payment Arrangement, Increase for Cost Recognition Arzeda Security Owned Not Readily Marketable MAI [Member] Security Owned Not Readily Marketable MAI Investments in Non-Marketable Securities Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block] Organization, Consolidation and Presentation of Financial Statements [Abstract] Organization, Consolidation and Presentation of Financial Statements [Abstract] Costs incurred in connection with equity financing Payments of Financing Costs Weighted-average discount rate Operating Lease, Weighted Average Discount Rate, Percent Schedule of inventory components Schedule of Inventory, Current [Table Text Block] Total shares excluded as anti-dilutive (in shares) Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Performance obligations satisfied Contract with Customer, Liability, Revenue Recognized Research and development Research and Development Expense [Member] Provision for credit losses Financing Receivable, Credit Loss, Expense (Reversal) RSUs and RSAs RSAs and RSUs [Member] RSAs and RSUs [Member] Debt conversion, shares issued (in shares) Debt Conversion, Converted Instrument, Shares Issued 91 Days and over Financial Asset, Equal to or Greater than 90 Days Past Due [Member] Award Type [Domain] Award Type [Domain] Local Phone Number Local Phone Number Credit Facility [Domain] Credit Facility [Domain] Assets Assets [Abstract] Related Party Transactions [Abstract] Revenue, Initial Application Period Cumulative Effect Transition [Table] Revenue, Initial Application Period Cumulative Effect Transition [Table] Other long-term liabilities Increase (Decrease) in Other Noncurrent Liabilities Concentration risk, percentage Concentration Risk, Percentage Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding Preferred Stock, Value, Issued Accumulated Deficit Retained Earnings [Member] Prepaid expenses and other assets Increase (Decrease) in Prepaid Expense and Other Assets Lease term Lessee, Operating Lease, Lease Not yet Commenced, Term of Contract Area of real estate property (in square feet) Area of Real Estate Property Financial Asset, Period Past Due [Domain] Financial Asset, Aging [Domain] Commitments and Contingencies Commitments and Contingencies Disclosure [Text Block] 2020 PSU 2020 PSU [Member] 2020 PSU Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table] Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table] Related Party [Axis] Related Party [Axis] Capital expenditures incurred but not yet paid Capital Expenditures Incurred but Not yet Paid Property, Plant and Equipment [Line Items] Property, Plant and Equipment [Line Items] Award vesting rights Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage Taxes paid related to net share settlement of equity awards (in shares) Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation Commitments and Contingencies Disclosure [Abstract] Commitments and Contingencies Disclosure [Abstract] Schedule of Segment Reporting Information, by Segment [Table] Schedule of Segment Reporting Information, by Segment [Table] Prime Rate Prime Rate [Member] Number of operating segments Number of Operating Segments Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Net loss per share, basic (in dollars per share) Earnings Per Share, Basic 31-60 Days Financial Asset, 30 to 59 Days Past Due [Member] 2025 Lessee, Operating Lease, Liability, to be Paid, Year Three Revenue Recognition Revenue from Contract with Customer [Text Block] Revenue, Initial Application Period Cumulative Effect Transition [Line Items] Revenue, Initial Application Period Cumulative Effect Transition [Line Items] Disaggregation of revenue Disaggregation of Revenue [Table Text Block] Raw materials Inventory, Raw Materials, Gross Performance obligations satisfied from new activities in the period - contract revenue Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition Schedule of long-lived assets by geographical area Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block] Due from related parties Due from Related Parties Piper Sandler & Co Piper Sandler & Co [Member] Piper Sandler & Co Number of installments Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments Performance Enzymes Performance Enzymes [Member] Performance Enzymes [Member] Balance Sheet Details [Abstract] Balance Sheet Details [Abstract] Balance Sheet Details [Abstract] Novel Biotherapeutics Biotherapeutic Segment [Member] Biotherapeutic Segment [Member] Taxes paid related to net share settlement of equity awards Share-based Payment Arrangement, Decrease for Tax Withholding Obligation Operating cash flows from operating leases Operating Lease, Payments Number of shares authorized Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price Restricted cash, current and non-current Restricted Cash and Cash Equivalents Geographic Areas, Long-Lived Assets [Abstract] Geographic Areas, Long-Lived Assets [Abstract] Plan Name [Axis] Plan Name [Axis] Right-of-use assets - Finance leases, net Finance Lease, Right-of-Use Asset, after Accumulated Amortization Level 1 Fair Value, Inputs, Level 1 [Member] Investing activities: Net Cash Provided by (Used in) Investing Activities [Abstract] Other non-cash items Other Operating Activities, Cash Flow Statement Summary of accounts receivable by aging Financing Receivable, Past Due [Table Text Block] Entity Small Business Entity Small Business Operating Leases Lessee, Operating Lease, Liability, Payment, Due [Abstract] Analysis of allowance for credit losses Financing Receivable, Allowance for Credit Loss [Table Text Block] Novel Biotherapeutics Novel Biotherapeutics [Member] Novel Biotherapeutics [Member] Total liabilities and stockholders' equity Liabilities and Equity Incentive Stock Options Incentive Stock Options [Member] Incentive Stock Options [Member] Accrued professional and outside service fees Accrued Professional Fees Investments, Debt and Equity Securities [Abstract] Americas Americas [Member] Tranche One Share-based Payment Arrangement, Tranche One [Member] Deferred revenue ($0 and $245 to a related party) Deferred revenue Contract with Customer, Liability, Current Scenario [Axis] Scenario [Axis] Weighted average exercise price of stock options exercised (in dollars per share) Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price seqWell seqWell [Member] seqWell Restricted cash, current Restricted Cash Additional paid-in capital Additional Paid in Capital Concentration Risk [Line Items] Concentration Risk [Line Items] Liabilities and Stockholders' Equity Liabilities and Equity [Abstract] Accounts payable Increase (Decrease) in Accounts Payable Finance lease costs Finance Lease, Cost Finance Lease, Cost Various Various [Member] Various Net Loss per Share Earnings Per Share [Text Block] Entity Interactive Data Current Entity Interactive Data Current Cash and Cash Equivalents [Domain] Cash and Cash Equivalents [Domain] Exercise of stock options Stock Issued During Period, Value, Stock Options Exercised Agreement Date [Axis] Agreement Date [Axis] Agreement Date [Axis] Affiliated Entity Affiliated Entity [Member] 2024 Lessee, Operating Lease, Liability, to be Paid, Year Two Sale of stock, period Sale Of Stock, Period Sale Of Stock, Period Income (loss) before income taxes Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest 501 Chesapeake 501 Chesapeake [Member] 501 Chesapeake Selling, general and administrative Selling, General and Administrative Expense Preferred stock, shares authorized (in shares) Preferred Stock, Shares Authorized Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Entity Address, State or Province Entity Address, State or Province Current liabilities: Liabilities, Current [Abstract] Restricted cash Restricted Cash and Cash Equivalents, Noncurrent Beginning balance (in shares) Ending balance (in shares) Shares, Outstanding Balance Sheets Details Balance Sheets Details [Text Block] Balance sheets details. Stock-based Compensation Share-based Payment Arrangement [Text Block] Supply Commitment Supply Commitment [Member] Level 3 Fair Value, Inputs, Level 3 [Member] Allowance for Credit Losses Credit Loss, Financial Instrument [Text Block] Annual rent increases Lessee, Operating Lease, Lease Not yet Commenced, Discount Rate Accounting Policies [Abstract] Accounting Policies [Abstract] Issuance of common stock, net of issuance costs (in shares) Stock Issued During Period, Shares, New Issues Number of reportable segments Number of Reportable Segments Interest income from amortization of discount Investment Income, Amortization of Discount Lease obligations Operating Lease, Liability Document Transition Report Document Transition Report Common stock, $0.0001 par value per share; 100,000 shares authorized; 65,304 shares and 65,109 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively Common Stock, Value, Issued Disaggregation of Revenue [Line Items] Disaggregation of Revenue [Line Items] Schedule of Inventory Components Inventory, Net [Abstract] Customer Concentration Risk Customer Concentration Risk [Member] Basis of Presentation and Principles of Consolidation Basis of Accounting, Policy [Policy Text Block] MAI Agreement MAI Agreement [Member] MAI Agreement Performance Shares Performance Shares [Member] Commitments and Contingencies (Note 10) Commitments and Contingencies Entity Emerging Growth Entity Emerging Growth Company Supply Commitment Arrangement [Domain] Supply Commitment Arrangement [Domain] Term Loan Term Loan [Member] Term Loan [Member] 2022 (remaining 9 months) Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year Performance Enzymes Core Segment [Member] Core Segment [Member] Receivables [Abstract] Other Commitments [Table] Other Commitments [Table] Antidilutive Securities, Name [Domain] Antidilutive Securities, Name [Domain] Legal Entity [Axis] Legal Entity [Axis] Cover page. Cover [Abstract] Total costs and operating expenses Total costs and operating expenses Costs and Expenses Class of Stock [Axis] Class of Stock [Axis] 2027 and thereafter Lessee, Operating Lease, Liability, to be Paid, After Year Four Lessee, Operating Lease, Liability, to be Paid, After Year Four Financing Receivable, Allowance for Credit Loss [Roll Forward] Financing Receivable, Allowance for Credit Loss [Roll Forward] PBOs Performance Based Options (PBOs) [Member] Performance Based Options (PBOs) [Member] Less: imputed interest Lessee, Operating Lease, Liability, Undiscounted Excess Amount Cash Cash Unbilled receivables Unbilled Receivables, Current Prepaid expenses and other current assets Prepaid Expense and Other Assets, Current Revenue from related parties Revenue from Related Parties Entity [Domain] Entity [Domain] Selling, general and administrative Selling, General and Administrative Expenses [Member] Other accrued liabilities Total Accrued Liabilities, Current Total revenues Revenue from Contract with Customer, Excluding Assessed Tax Milestone payment received (in shares) Due From Related Parties, Shares Due From Related Parties, Shares Agreement Date [Domain] Agreement Date [Domain] [Domain] for Agreement Date [Axis] Stock options Share-based Payment Arrangement, Option [Member] Consolidation Items [Domain] Consolidation Items [Domain] Equity [Abstract] Equity [Abstract] Fair Value Hierarchy and NAV [Axis] Fair Value Hierarchy and NAV [Axis] Document Quarterly Report Document Quarterly Report Costs and operating expenses: Operating Costs and Expenses [Abstract] Common Stock Common Stock [Member] Interest income Investment Income, Interest Variable Rate [Axis] Variable Rate [Axis] Segment, Geographical and Other Revenue Information Segment Reporting Disclosure [Text Block] Loss from operations Income (loss) from operations Operating Income (Loss) Schedule of Property, Plant and Equipment [Table] Property, Plant and Equipment [Table] Financial Asset, Period Past Due [Axis] Financial Asset, Aging [Axis] Current portion of lease obligations - Operating leases Operating Lease, Liability, Current Schedule of Cash and Cash Equivalents [Table] Schedule of Cash and Cash Equivalents [Table] Increase (Decrease) in Stockholders' Equity [Roll Forward] Increase (Decrease) in Stockholders' Equity [Roll Forward] Document Fiscal Year Focus Document Fiscal Year Focus Stock-based compensation Share-based Payment Arrangement, Noncash Expense Variable Rate [Domain] Variable Rate [Domain] Investment in non-marketable securities Payments to acquire other investments Payments to Acquire Other Investments Additional Paid-in Capital Additional Paid-in Capital [Member] Cash and cash equivalents Adjusted Cost Cash and Cash Equivalents, at Carrying Value Depreciation Depreciation expense Unallocated depreciation and amortization Depreciation MCRA Master Collaboration & Research Agreement [Member] Master Collaboration & Research Agreement Cash reconciliation: Cash and Cash Equivalents [Abstract] Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis] Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis] Revenue Revenue, Product and Service Benchmark [Member] Contract assets Contract with Customer, Asset, before Allowance for Credit Loss, Current Other expense, net Other Nonoperating Income (Expense) Financial assets, net Increase (Decrease) in Finance Receivables Purchase of property and equipment Payments to Acquire Property, Plant, and Equipment Maximum Maximum [Member] Share-based Payment Arrangement [Abstract] Share-based Payment Arrangement [Abstract] Loss Contingency, Nature [Domain] Loss Contingency, Nature [Domain] Total liabilities Liabilities Schedule of other accrued liabilities Schedule of Accrued Liabilities [Table Text Block] Award Type [Axis] Award Type [Axis] Financing activities: Net Cash Provided by (Used in) Financing Activities [Abstract] Operating lease maturity Lessee, Operating Lease, Liability, Maturity [Table Text Block] Consolidation Items [Axis] Consolidation Items [Axis] Total stockholders' equity Beginning balance Ending balance Stockholders' Equity Attributable to Parent Common stock, shares, issued (in shares) Common Stock, Shares, Issued Preferred stock, shares issued (in shares) Preferred Stock, Shares Issued City Area Code City Area Code Financing Receivable, Allowance for Credit Loss [Table] Financing Receivable, Allowance for Credit Loss [Table] Entity Address, City or Town Entity Address, City or Town Accounts receivable, before allowance for credit loss Accounts Receivable, before Allowance for Credit Loss Stockholders' equity: Stockholders' Equity Attributable to Parent [Abstract] Supplemental non-cash investing and financing activities: Noncash Investing and Financing Items [Abstract] Accrued compensation and other accrued liabilities Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities 2019 Plan 2019 Plan [Member] 2019 Plan [Member] Long-term lease obligations - Operating leases Operating Lease, Liability, Noncurrent 61-90 Days Financial Asset, 60 to 89 Days Past Due [Member] Loss Contingency Nature [Axis] Loss Contingency Nature [Axis] Accumulated deficit Retained Earnings (Accumulated Deficit) Operating Segments Operating Segments [Member] Shares issuable under the Equity Incentive Plan Share-based Payment Arrangement [Member] Asset retirement obligation Asset Retirement Obligation Expiration period Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period RSUs Restricted Stock Units (RSUs) [Member] Statement of Stockholders' Equity [Abstract] Statement of Stockholders' Equity [Abstract] Entity Filer Category Entity Filer Category Schedule of revenues by geographical area Reconciliation of Revenue from Segments to Consolidated [Table Text Block] Unrealized or realized gains or losses Non Marketable Debt Securities Without Readily Determinable Fair Value Annual Amount Non Marketable Debt Securities Without Readily Determinable Fair Value Annual Amount Tranche Two Share-based Payment Arrangement, Tranche Two [Member] Income Statement [Abstract] Income Statement [Abstract] Concentration Risk [Table] Concentration Risk [Table] Commitments and Contingencies [Line Items] Commitments and Contingencies [Line Items] Commitments and contingencies. Entity Registrant Name Entity Registrant Name Equity securities earned from research and development activities from a related party Other Noncash Income Conversion, debt to equity Convertible Debt Proceeds from exercises of stock options Proceeds from exercises of stock options Proceeds from Stock Options Exercised Related Party Transaction [Axis] Related Party Transaction [Axis] Provision for income taxes Income Tax Expense (Benefit) Amendment Flag Amendment Flag Equity Components [Axis] Equity Components [Axis] Entity Tax Identification Number Entity Tax Identification Number Fair Value Disclosures [Abstract] Fair Value Disclosures [Abstract] Schedule of supply and service commitments Supply Commitment [Table Text Block] Antidilutive Securities [Axis] Antidilutive Securities [Axis] Document Fiscal Period Focus Document Fiscal Period Focus Total current assets Assets, Current Accounts Receivable Accounts Receivable [Member] Concentration Risk Type [Domain] Concentration Risk Type [Domain] Total minimum lease payments Lessee, Operating Lease, Liability, to be Paid Disaggregation of Revenue [Table] Disaggregation of Revenue [Table] Financial assets: Financing Receivable, before Allowance for Credit Loss [Abstract] Carrying Value of Non-marketable Equity Securities Equity Securities without Readily Determinable Fair Value [Table Text Block] Inventories Inventories Inventory, Net Schedule of segment reporting Schedule of Segment Reporting Information, by Segment [Table Text Block] Schedule of Stock by Class [Table] Schedule of Stock by Class [Table] Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Statement of Financial Position [Abstract] Statement of Financial Position [Abstract] Security Owned Not Readily Marketable [Axis] Security Owned Not Readily Marketable [Axis] January 2022 January 2022 [Member] January 2022 Security deposit Security Deposit Compensation not yet recognized, stock options Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount Product and Service [Axis] Product and Service [Axis] Property, Plant and Equipment, Type [Domain] Long-Lived Tangible Asset [Domain] Schedule of cash and cash equivalents Schedule of Cash and Cash Equivalents [Table Text Block] Non-marketable equity securities Total non-marketable equity securities Equity Securities without Readily Determinable Fair Value, Amount Preferred stock, par value (in dollars per share) Preferred Stock, Par or Stated Value Per Share Compensation not yet recognized, share-based awards other than options Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount 2021 PBO 2021 PBO [Member] 2021 PBO Equity Component [Domain] Equity Component [Domain] Financing Receivable, Allowance for Credit Loss [Line Items] Financing Receivable, Allowance for Credit Loss [Line Items] Short-term lease cost Short-term Lease, Cost 2023 Lessee, Operating Lease, Liability, to be Paid, Year One Sale of stock, commissions, percentage of gross sales price Sale Of Stock, Commissions, Percentage Of Gross Sales Price Sale Of Stock, Commissions, Percentage Of Gross Sales Price Sale of stock, value of shares for issuance Sale Of Stock, Value Of Shares For Issuance Sale Of Stock, Value Of Shares For Issuance Total over 31 Days Financial Receivables Past Due [Member] Financial Receivables Past Due Number of shares received in exchange for services (in shares) Shares Received In Exchange For Services Rendered Shares Received In Exchange For Services Rendered Non-Statutory Stock Options Non-Statutory Stock Options [Member] Non-Statutory Stock Options [Member] Statement [Line Items] Statement [Line Items] Deferred revenue Increase (Decrease) in Contract with Customer, Liability Performance obligation Revenue, Remaining Performance Obligation, Amount Series B Preferred Stock Series B Preferred Stock [Member] 2022 PSU 2022 PSU [Member] 2022 PSU Debt securities, available-for-sale Debt Securities, Available-for-sale Counterparty Name [Domain] Counterparty Name [Domain] 2026 Lessee, Operating Lease, Liability, to be Paid, Year Four Fair Value Measurements Fair Value Measurement and Measurement Inputs, Recurring and Nonrecurring [Text Block] 2020 PBO 2020 PBO [Member] 2020 PBO Performance awards, threshold level, number of shares, multiplier Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier Purchase price of common stock Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent Loss before income taxes Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Level 2 Fair Value, Inputs, Level 2 [Member] Geographic Distribution [Domain] Geographic Distribution [Domain] Schedule of intangible assets and goodwill Schedule of Intangible Assets and Goodwill [Table Text Block] Property, Plant and Equipment, Type [Axis] Long-Lived Tangible Asset [Axis] Deferred revenue, net of current portion Contract with Customer, Liability, Noncurrent Corporate Corporate, Non-Segment [Member] Segment Reporting [Abstract] Segment Reporting [Abstract] Total financial assets, net Accounts and Financing Receivable, after Allowance for Credit Loss, Current Customer [Axis] Customer [Axis] Number of shares received in exchange for services (in shares) Noncash or Part Noncash Acquisition, Noncash Financial or Equity Instrument Consideration, Shares Issued Sale of stock, commissions and reimbursements, percentage of gross sales price Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price Use of Estimates Use of Estimates, Policy [Policy Text Block] Forecast Forecast [Member] Schedule of stock-based compensation expense Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] Money market funds Money Market Funds, at Carrying Value Vesting [Axis] Vesting [Axis] Title of 12(b) Security Title of 12(b) Security Total assets Assets Investment, Name [Domain] Investment, Name [Domain] Plan Name [Domain] Plan Name [Domain] Common stock, shares authorized (in shares) Common Stock, Shares Authorized Non-current restricted cash Restricted Cash and Investments, Noncurrent 200-220 Penobscot 200-220 Penobscot [Member] 200-220 Penobscot Interest paid Interest Paid, Excluding Capitalized Interest, Operating Activities Geographical [Domain] Geographical [Domain] Document Type Document Type Research and development Research and Development Expense Product and Service [Domain] Product and Service [Domain] Stated interest rate Debt Instrument, Interest Rate, Stated Percentage Estimated performance goal achievement rate Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate Product revenue Product Sales [Member] Product Sales [Member] Renewal term Lessee, Operating Lease, Renewal Term Loss contingency accrual Loss Contingency, Accrual, Current Total revenues Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Revolving Credit Facility Revolving Credit Facility [Member] 400 Penobscot 400 Penoscot [Member] 400 Penoscot Amounts included in contract liabilities at the beginning of the period: Change in Contract with Customer, Asset and Liability [Abstract] Basis of Presentation and Summary of Significant Accounting Policies Significant Accounting Policies [Text Block] Expected timing of satisfaction, period Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period Net cash used in operating activities Net Cash Provided by (Used in) Operating Activities Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Table] Fair Value, Recurring and Nonrecurring [Table] Lease cost Lease, Cost [Table Text Block] Cash and Cash Equivalents [Line Items] Cash and Cash Equivalents [Line Items] Geographical [Axis] Geographical [Axis] Geographical [Axis] Asset under Construction Asset under Construction [Member] Balance Sheets Details [Abstract] Balance Sheets Details [Abstract] -- None. No documentation exists for this element. -- Weighted average common stock shares used in computing net loss per share, basic (in shares) Weighted Average Number of Shares Outstanding, Basic Net loss per share, diluted (in dollars per share) Earnings Per Share, Diluted Segments [Domain] Segments [Domain] Amortization expense - right-of-use assets - operating and finance leases Operating Lease, Right-of-Use Asset, Amortization Expense Vesting [Domain] Vesting [Domain] Other Other Accrued Liabilities Lease, Cost [Abstract] Lease, Cost [Abstract] Contract liabilities: deferred revenue Contract with Customer, Liability Net cash provided by (used in) financing activities Net Cash Provided by (Used in) Financing Activities Non-marketable equity securities purchased (in shares) Equity Securities Without Readily Determinable Fair Value, Shares Equity Securities Without Readily Determinable Fair Value, Shares Related Party Transaction [Line Items] Related Party Transaction [Line Items] Award vesting period Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period Research and development revenue ($245 and $132 from a related party) Research and development revenue Research and Development Revenue [Member] Research and Development Revenue [Member] MAI Molecular Assemblies, Inc. [Member] Molecular Assemblies, Inc. Schedule of stock-based compensation expense by security types Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block] Accounts payable Accounts Payable, Current Concentration Risk Type [Axis] Concentration Risk Type [Axis] Summary of financial instruments measured at fair value on a recurring basis Fair Value, Assets Measured on Recurring Basis [Table Text Block] Purchase price of common stock above minimum threshold Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent Current Financial Receivables Not Past Due [Member] Financial Receivables Not Past Due Inventories Increase (Decrease) in Inventories Marketable Securities [Table] Marketable Securities [Table] Common stock, shares outstanding (in shares) Common Stock, Shares, Outstanding Cost of product revenue Cost of Goods and Services Sold Revenues: Revenues [Abstract] Document Period End Date Document Period End Date Entity Central Index Key Entity Central Index Key Concentration Risk Benchmark [Domain] Concentration Risk Benchmark [Domain] Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] Performance obligation, expected timing of satisfaction Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block] Changes in the period: Change in Contract with Customer, Liability [Abstract] Renewal term Lessee, Operating Lease, Lease Not yet Commenced, Renewal Term Total lease cost Lease, Cost Schedule of property and equipment, net Property, Plant and Equipment [Table Text Block] Income Statement Location [Domain] Income Statement Location [Domain] 2022 PBO 2022 PBO [Member] 2022 PBO Property and equipment, net Property and equipment, net Property, Plant and Equipment, Net Future Minimum Payment Supply Commitment, Remaining Minimum Amount Committed Other long-term liabilities Other Liabilities, Noncurrent Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table] Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table] Trading Symbol Trading Symbol Customer B Customer B [Member] Customer B [Member] Earnings Per Share [Abstract] Earnings Per Share [Abstract] Property and equipment Property, Plant and Equipment, Gross Related Party Transaction [Domain] Related Party Transaction [Domain] San Carlos Space San Carlos Space [Member] San Carlos Space Finished goods Inventory, Finished Goods, Gross Percent of voting interests Percent of Voting Interests Threshold to trigger higher exercise price Percent of Voting Interests Threshold to trigger higher exercise price Investment in non-marketable equity securities ($12,713 and $12,713 with a related party) Investment at cost basis Investments and Other Noncurrent Assets Other Commitments [Line Items] Other Commitments [Line Items] Series C Preferred Stock Series C Preferred Stock [Member] Schedule of Related Party Transactions, by Related Party [Table] Schedule of Related Party Transactions, by Related Party [Table] Entity Current Reporting Status Entity Current Reporting Status Series A Preferred Stock Series A Preferred Stock [Member] Customer A Customer A [Member] Customer A [Member] Indemnification Agreement Indemnification Agreement [Member] Accounts receivable Accounts Receivable, before Allowance for Credit Loss, Current Counterparty Name [Axis] Counterparty Name [Axis] Inventory net of reserves Inventory Valuation Reserves Construction in progress Construction in Progress [Member] Release of stock awards (in shares) Stock Issued During Period, Shares, Other Cash, cash equivalents and restricted cash at the beginning of the period Cash, cash equivalents and restricted cash at the end of the period Total cash, cash equivalents and restricted cash Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents Research and development revenue from transactions with MAI Nonmonetary Transaction, Gross Operating Revenue Recognized United States UNITED STATES Common stock, par value (in dollars per share) Common Stock, Par or Stated Value Per Share Number of shares purchased (in shares) Investment Owned, Balance, Shares Schedule of customers that contributed 10% or more of total accounts receivable Schedules of Concentration of Risk, by Risk Factor [Table Text Block] Current assets: Assets, Current [Abstract] Accounts receivable, borrowing base percentage Line of Credit Facility, Accounts Receivable Borrowing Base Percentage Line of Credit Facility, Accounts Receivable Borrowing Base Percentage Maximum number of shares to be issued upon exercise of stock options Common Stock, Capital Shares Reserved for Future Issuance Number of options to extend Lessee, Operating Lease, Option To Extend, Number Lessee, Operating Lease, Option To Extend, Number 2021 PSU And 2021 PBO 2021 PSU And 2021 PBO [Member] 2021 PSU And 2021 PBO Other-than-temporary impairment losses Debt Securities, Available-for-sale, Unrealized Loss Money market funds Estimated Fair Value Cash and Cash Equivalents, Fair Value Disclosure Entity Address, Postal Zip Code Entity Address, Postal Zip Code Exercise of stock options (in shares) Stock options exercised (in shares) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period Weighted average common stock shares used in computing net loss per share, diluted (in shares) Weighted Average Number of Shares Outstanding, Diluted Related Party [Domain] Related Party [Domain] Demand Deposits Demand Deposits [Member] Basis spread on variable rate Debt Instrument, Basis Spread on Variable Rate Capital Stock Stockholders' Equity Note Disclosure [Text Block] Credit losses Debt Securities, Available-for-sale, Allowance for Credit Loss, Writeoff Security Owned Not Readily Marketable, Name [Domain] Security Owned Not Readily Marketable, Name [Domain] Shares Not Included in Computation of Diluted Net Loss Per Share Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block] Statement of Cash Flows [Abstract] Statement of Cash Flows [Abstract] PSUs Performance Stock Units [Member] Performance Stock Units [Member] Name of Property [Axis] Name of Property [Axis] Class of Stock [Line Items] Class of Stock [Line Items] Credit Facility [Axis] Credit Facility [Axis] Accrued purchases Purchase Obligation Entity Address, Address Line One Entity Address, Address Line One Net cash used in investing activities Net Cash Provided by (Used in) Investing Activities Changes in operating assets and liabilities: Increase (Decrease) in Operating Capital [Abstract] Less: accumulated depreciation and amortization Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment Marketable Securities [Line Items] Marketable Securities [Line Items] Operating activities: Net Cash Provided by (Used in) Operating Activities [Abstract] Entity Shell Company Entity Shell Company Total current liabilities Liabilities, Current Class of Stock [Domain] Class of Stock [Domain] Taxes paid related to net share settlement of equity awards Payment, Tax Withholding, Share-based Payment Arrangement Non-employee stock-based compensation APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition Supply Commitment [Axis] Supply Commitment [Axis] Borrowing capacity Line of Credit Facility, Maximum Borrowing Capacity Money market funds Money Market Funds [Member] Segment Reporting Information [Line Items] Segment Reporting Information [Line Items] Current Fiscal Year End Date Current Fiscal Year End Date Total financial assets Financing Receivable, before Allowance for Credit Loss Long-lived assets Long-Lived Assets Statement [Table] Statement [Table] Accounting Pronouncements New Accounting Pronouncements, Policy [Policy Text Block] 2021 PSU 2021 PSU [Member] 2021 PSU Customer C Customer C [Member] Customer C [Member] Statistical Measurement [Axis] Statistical Measurement [Axis] Laboratory equipment Laboratory Equipment [Member] Laboratory Equipment [Member] Goodwill Goodwill Goodwill Series B-2 Preferred Stock Series B-2 Preferred Stock [Member] Series B-2 Preferred Stock Annualized rent Payments for Rent Name of Property [Domain] Name of Property [Domain] Scenario [Domain] Scenario [Domain] Description of Business Nature of Operations [Text Block] Adjustments to reconcile net loss to net cash used in operating activities: Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] APAC APAC [Member] Regions of Australia, New Zealand, Southeast Asia and China Customer D Customer D [Member] Customer D [Member] Operating lease cost Operating Lease, Cost Computer equipment and software Computer Equipment [Member] Cash and Cash Equivalents [Axis] Cash and Cash Equivalents [Axis] Geographic Distribution [Axis] Geographic Distribution [Axis] Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Axis] Related Party Transactions Related Party Transactions Disclosure [Text Block] Contract costs Capitalized Contract Cost, Net, Current EX-101.PRE 9 cdxs-20220331_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT XML 10 R1.htm IDEA: XBRL DOCUMENT v3.22.1
Cover Page - shares
3 Months Ended
Mar. 31, 2022
May 04, 2022
Cover [Abstract]    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Mar. 31, 2022  
Document Transition Report false  
Entity File Number 001-34705  
Entity Registrant Name Codexis, Inc.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 71-0872999  
Entity Address, Address Line One 200 Penobscot Drive  
Entity Address, City or Town Redwood City  
Entity Address, State or Province CA  
Entity Address, Postal Zip Code 94063  
City Area Code 650  
Local Phone Number 421-8100  
Title of 12(b) Security Common Stock, par value $0.0001 per share  
Trading Symbol CDXS  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Large Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   65,304,060
Entity Central Index Key 0001200375  
Amendment Flag false  
Document Fiscal Year Focus 2022  
Document Fiscal Period Focus Q1  
Current Fiscal Year End Date --12-31  
XML 11 R2.htm IDEA: XBRL DOCUMENT v3.22.1
Condensed Consolidated Balance Sheets (Unaudited) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Current assets:    
Cash and cash equivalents $ 94,260 $ 116,797
Restricted cash, current 568 579
Financial assets:    
Accounts receivable 25,197 24,953
Contract assets 9,751 4,557
Unbilled receivables 9,584 8,558
Total financial assets 44,532 38,068
Less: allowances (416) (416)
Total financial assets, net 44,116 37,652
Inventories 1,560 1,160
Prepaid expenses and other current assets 4,365 5,700
Total current assets 144,869 161,888
Restricted cash 1,519 1,519
Investment in non-marketable equity securities ($12,713 and $12,713 with a related party) 19,002 14,002
Right-of-use assets - Operating leases, net 42,912 44,095
Right-of-use assets - Finance leases, net 0 17
Property and equipment, net 23,474 21,345
Goodwill 3,241 3,241
Other non-current assets 257 276
Total assets 235,274 246,383
Current liabilities:    
Accounts payable 1,949 2,995
Accrued compensation 6,843 11,119
Other accrued liabilities 14,172 12,578
Current portion of lease obligations - Operating leases 4,927 4,093
Deferred revenue ($0 and $245 to a related party) 1,604 2,586
Total current liabilities 29,495 33,371
Deferred revenue, net of current portion 3,464 3,749
Long-term lease obligations - Operating leases 42,354 43,561
Other long-term liabilities 1,326 1,311
Total liabilities 76,639 81,992
Commitments and Contingencies (Note 10)
Stockholders' equity:    
Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding 0 0
Common stock, $0.0001 par value per share; 100,000 shares authorized; 65,304 shares and 65,109 shares issued and outstanding as of March 31, 2022 and December 31, 2021, respectively 6 6
Additional paid-in capital 554,683 552,083
Accumulated deficit (396,054) (387,698)
Total stockholders' equity 158,635 164,391
Total liabilities and stockholders' equity $ 235,274 $ 246,383
XML 12 R3.htm IDEA: XBRL DOCUMENT v3.22.1
Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Investment at cost basis $ 19,002 $ 14,002
Deferred revenue $ 1,604 $ 2,586
Preferred stock, par value (in dollars per share) $ 0.0001 $ 0.0001
Preferred stock, shares authorized (in shares) 5,000,000 5,000,000
Preferred stock, shares issued (in shares) 0 0
Preferred stock, shares outstanding (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.0001 $ 0.0001
Common stock, shares authorized (in shares) 100,000,000 100,000,000
Common stock, shares, issued (in shares) 65,304,000 65,109,000
Common stock, shares outstanding (in shares) 65,304,000 65,109,000
Adjusted Cost $ 94,260 $ 116,797
Affiliated Entity    
Investment at cost basis 12,713 12,713
Deferred revenue $ 0 $ 245
XML 13 R4.htm IDEA: XBRL DOCUMENT v3.22.1
Condensed Consolidated Statements of Operations (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Revenues:    
Total revenues $ 35,340 $ 18,032
Costs and operating expenses:    
Cost of product revenue 8,521 4,218
Research and development 19,500 11,571
Selling, general and administrative 15,705 11,398
Total costs and operating expenses 43,726 27,187
Loss from operations (8,386) (9,155)
Interest income 42 177
Other expense, net (3) (88)
Loss before income taxes (8,347) (9,066)
Provision for income taxes 9 2
Net loss $ (8,356) $ (9,068)
Net loss per share, basic (in dollars per share) $ (0.13) $ (0.14)
Net loss per share, diluted (in dollars per share) $ (0.13) $ (0.14)
Weighted average common stock shares used in computing net loss per share, basic (in shares) 65,096 64,290
Weighted average common stock shares used in computing net loss per share, diluted (in shares) 65,096 64,290
Product revenue    
Revenues:    
Total revenues $ 30,690 $ 10,226
Research and development revenue ($245 and $132 from a related party)    
Revenues:    
Total revenues $ 4,650 $ 7,806
XML 14 R5.htm IDEA: XBRL DOCUMENT v3.22.1
Condensed Consolidated Statements of Operations (Unaudited) (Parenthetical) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Research and development revenue | Affiliated Entity    
Revenue from related parties $ 245 $ 132
XML 15 R6.htm IDEA: XBRL DOCUMENT v3.22.1
Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)
$ in Thousands
Total
Common Stock
Additional Paid-in Capital
Accumulated Deficit
Beginning balance (in shares) at Dec. 31, 2020   64,283,000    
Beginning balance at Dec. 31, 2020 $ 170,103 $ 6 $ 536,516 $ (366,419)
Increase (Decrease) in Stockholders' Equity [Roll Forward]        
Exercise of stock options (in shares) 118,437 118,000    
Exercise of stock options $ 1,223   1,223  
Release of stock awards (in shares)   139,000    
Employee stock-based compensation 2,626   2,626  
Non-employee stock-based compensation 61   61  
Taxes paid related to net share settlement of equity awards (in shares)   (52,000)    
Taxes paid related to net share settlement of equity awards (1,206)   (1,206)  
Net loss (9,068)     (9,068)
Ending balance (in shares) at Mar. 31, 2021   64,488,000    
Ending balance at Mar. 31, 2021 163,739 $ 6 539,220 (375,487)
Beginning balance (in shares) at Dec. 31, 2021   65,109,000    
Beginning balance at Dec. 31, 2021 $ 164,391 $ 6 552,083 (387,698)
Increase (Decrease) in Stockholders' Equity [Roll Forward]        
Exercise of stock options (in shares) 77,600 78,000    
Exercise of stock options $ 181   181  
Release of stock awards (in shares)   190,000    
Employee stock-based compensation 3,777   3,777  
Non-employee stock-based compensation 61   61  
Taxes paid related to net share settlement of equity awards (in shares)   (73,000)    
Taxes paid related to net share settlement of equity awards (1,419)   (1,419)  
Net loss (8,356)     (8,356)
Ending balance (in shares) at Mar. 31, 2022   65,304,000    
Ending balance at Mar. 31, 2022 $ 158,635 $ 6 $ 554,683 $ (396,054)
XML 16 R7.htm IDEA: XBRL DOCUMENT v3.22.1
Condensed Consolidated Statements of Cash Flows - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Operating activities:      
Net loss $ (8,356) $ (9,068)  
Adjustments to reconcile net loss to net cash used in operating activities:      
Depreciation 1,215 659  
Amortization expense - right-of-use assets - operating and finance leases 1,200 649  
Stock-based compensation 3,838 2,687  
Equity securities earned from research and development activities from a related party (245) (132)  
Other non-cash items (7) (84)  
Changes in operating assets and liabilities:      
Financial assets, net (6,463) 1,103  
Inventories (400) (65)  
Prepaid expenses and other assets 1,397 70  
Accounts payable (1,029) 400  
Accrued compensation and other accrued liabilities (121) (1,731)  
Other long-term liabilities (1,192) (617)  
Deferred revenue (1,023) (311)  
Net cash used in operating activities (11,186) (6,440)  
Investing activities:      
Purchase of property and equipment (5,089) (2,550)  
Proceeds from sale of property and equipment 7 17  
Investment in non-marketable securities (5,000) 0  
Net cash used in investing activities (10,082) (2,533)  
Financing activities:      
Proceeds from exercises of stock options 181 1,223  
Costs incurred in connection with equity financing (42) 0  
Taxes paid related to net share settlement of equity awards (1,419) (1,206)  
Net cash provided by (used in) financing activities (1,280) 17  
Net decrease in cash, cash equivalents and restricted cash (22,548) (8,956)  
Cash, cash equivalents and restricted cash at the beginning of the period 118,895 150,817 $ 150,817
Cash, cash equivalents and restricted cash at the end of the period 96,347 141,861 118,895
Supplemental disclosure of cash flow information:      
Interest paid 5 3  
Supplemental non-cash investing and financing activities:      
Capital expenditures incurred but not yet paid 789 579  
Cash reconciliation:      
Cash and cash equivalents 94,260 139,748 116,797
Restricted cash, current and non-current 2,087 2,113  
Total cash, cash equivalents and restricted cash $ 96,347 $ 141,861 $ 118,895
XML 17 R8.htm IDEA: XBRL DOCUMENT v3.22.1
Description of Business
3 Months Ended
Mar. 31, 2022
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Description of Business Description of Business
In these notes to the unaudited condensed consolidated financial statements, the “Company,” “we,” “us,” and “our” refers to Codexis, Inc. and its subsidiaries on a consolidated basis.
We discover, develop and sell enzymes and other proteins that deliver value to our clients in a growing set of industries to commercialize an increasing number of novel enzymes, both as proprietary Codexis products and in partnership with our customers.
We report our financial results based on two reportable segments: Performance Enzymes and Novel Biotherapeutics. The segment information aligns with how the chief operating decision maker (CODM), who is our Chief Executive Officer (CEO), reviews and manages the business.
Business Update Regarding COVID-19
We are subject to risks and uncertainties as a result of the current COVID-19 pandemic. The COVID-19 pandemic has presented a substantial public health and economic challenge around the world and is affecting our employees, communities and business operations, as well as the U.S. economy and other economies worldwide. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition will depend on future developments that are highly uncertain and may not be accurately predicted, including the duration and severity of the pandemic, the prevalence of more contagious and or virulent variants such as the Delta and Omicron variants, and the extent and severity of the impact on our customers, new information that may emerge concerning COVID-19, the actions taken to contain it or treat its impact and the economic impact on local, regional, national and international markets.
To date, we and our collaboration partners have been able to continue to supply our enzymes to our customers worldwide. However, we are dependent on our manufacturing and logistics partners and consequently, disruptions in operations of our partners and customers may affect our ability to supply enzymes to our customers. Furthermore, our ability to provide future R&D services may continue to be impacted as a result of governmental orders ("Orders") and any disruptions in operations of our customers with whom we collaborate. We believe that these disruptions have had a minimal impact on revenue for the three months ended March 31, 2022. The extent to which the pandemic may impact our business operations and operating results will continue to remain highly dependent on future developments, which are uncertain and cannot be predicted with confidence.
XML 18 R9.htm IDEA: XBRL DOCUMENT v3.22.1
Basis of Presentation and Summary of Significant Accounting Policies
3 Months Ended
Mar. 31, 2022
Accounting Policies [Abstract]  
Basis of Presentation and Summary of Significant Accounting Policies Basis of Presentation and Summary of Significant Accounting Policies
Basis of Presentation and Principles of Consolidation
The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America ("GAAP") and the applicable rules and regulations of the Securities and Exchange Commission ("SEC") for interim financial information but does not include all the information and notes required by GAAP for complete financial statements. These interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in our Annual Report on Form 10-K for the year ended December 31, 2021. The condensed consolidated balance sheet at December 31, 2021 has been derived from the audited consolidated financial statements at that date, but does not include all disclosures, including notes, required by GAAP for complete financial statements. The significant accounting policies used in preparation of the unaudited condensed consolidated financial statements for the three months ended March 31, 2022 and 2021, are consistent with those discussed in Note 2 to the audited consolidated financial statements in the Company’s 2021 Annual Report on Form 10-K and are updated below as necessary. There have been no significant changes in our significant accounting policies or critical accounting estimates since December 31, 2021.
The unaudited condensed consolidated financial statements have been prepared on the same basis as the audited consolidated financial statements and, in the opinion of management, reflect all adjustments of a normal recurring nature considered necessary to present fairly our financial position as of March 31, 2022, results of our operations for the three months ended March 31, 2022 and 2021, changes in stockholders' equity for the three months ended March 31, 2022 and 2021, and cash flows for the three months ended March 31, 2022 and 2021. The interim results are not necessarily indicative of the results for any future interim period or for the entire year.
The unaudited condensed consolidated financial statements include the accounts of Codexis, Inc. and its wholly owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.
Use of Estimates
The preparation of our unaudited condensed consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition, including sales, expenses, reserves and allowances, manufacturing, research and development costs and employee-related amounts, will depend on future developments that are highly uncertain, and may not be accurately predicted, including as a result of new information that may emerge concerning COVID-19 and the actions taken to contain or treat COVID-19, as well as the economic impact on local, regional, national and international customers, markets and economies.
Accounting Pronouncements
Recently adopted accounting pronouncements
In May 2021, FASB issued ASU No. 2021-04, Earnings Per Share (Topic 260), Debt—Modifications and Extinguishments (Subtopic 470-50), Compensation—Stock Compensation (Topic 718), and Derivatives and Hedging—Contracts in Entity’s Own Equity (Subtopic 815-40), Issuer’s Accounting for Certain Modifications or Exchanges of Freestanding Equity-Classified Written Call Options, a consensus of the Emerging Issues Task Force. The standard establishes a principles-based framework in accounting for modifications of freestanding equity-classified written call options on the basis of the economic substance of the underlying transaction. The standard also requires incremental financial statement disclosures. The standard affects entities that present earnings per share in accordance with the guidance in Topic 260, Earnings Per Share. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
In August 2020, FASB issued ASU No 2020-06 Debt—Debt with Conversion and Other Options (Subtopic 470-20) and Derivatives and Hedging— Contracts in Entity’s Own Equity (Subtopic 815-40) No. 2020-06 August 2020 Accounting for Convertible Instruments and Contracts in an Entity’s Own Equity, to reduce the complexity and to simplify the accounting for convertible debt instruments and convertible preferred stock, and the derivatives scope exception for contracts in an entity's own equity. In addition, the guidance on calculating diluted earnings per share has been simplified and made more internally consistent. We adopted the standard on January 1, 2022 on a modified retrospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
In March 2020, the FASB issued ASU 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. The standard provides optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions in which the reference LIBOR or another reference rate are expected to be discontinued as a result of the Reference Rate Reform. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no significant impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
Recently issued accounting pronouncements not yet adopted
There have been no other recent accounting pronouncements or changes in accounting pronouncements during the three months ended March 31, 2022 that are of significance or potential significance to us.
XML 19 R10.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition
3 Months Ended
Mar. 31, 2022
Revenue from Contract with Customer [Abstract]  
Revenue Recognition Revenue Recognition
Disaggregation of Revenue
The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue with reportable segments. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China).
Segment information is as follows (in thousands):
Three Months Ended March 31, 2022Three Months Ended March 31, 2021
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal
Major products and service:
       Product revenue$30,690 $— $30,690 $10,226 $— $10,226 
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 
Primary geographical markets:
Americas
$2,553 $1,179 $3,732 $2,871 $2,058 $4,929 
EMEA
3,065 1,062 4,127 4,537 1,745 6,282 
APAC
27,481 — 27,481 6,821 — 6,821 
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 
Contract Balances
The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):
March 31, 2022December 31, 2021
Contract assets$9,751 $4,557 
Unbilled receivables$9,584 $8,558 
Contract costs$46 $56 
Contract liabilities: deferred revenue$5,068 $6,335 
We had no asset impairment charges related to financial assets in the three months ended March 31, 2022 and 2021.
The increase in contract assets was primarily due to increases in product revenue from contracts subject to over time revenue recognition. The increase in unbilled receivables was primarily due to the timing of billings. The decrease in deferred revenue was primarily due to timing of recognition of revenue.
We recognized the following revenues (in thousands):
Three Months Ended March 31,
Revenue recognized in the period for:20222021
Amounts included in contract liabilities at the beginning of the period:
Performance obligations satisfied$1,094 $862 
Changes in the period:
Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods215 24 
Performance obligations satisfied from new activities in the period - contract revenue34,031 17,146 
Total revenues$35,340 $18,032 
Performance Obligations
The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of March 31, 2022.
The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts as of March 31, 2022 (in thousands):
Remainder of 2022
20232024
2025 and Thereafter
Total
Product revenue$60 $67 $100 $2,740 $2,967 
Research and development revenue1,254 847 — — 2,101 
Total revenues$1,314 $914 $100 $2,740 $5,068 
XML 20 R11.htm IDEA: XBRL DOCUMENT v3.22.1
Net Loss per Share
3 Months Ended
Mar. 31, 2022
Earnings Per Share [Abstract]  
Net Loss per Share Net Loss per Share
Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (“RSAs”) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, net loss per share, basic and diluted, are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.
Anti-Dilutive Securities
In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect.
The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):
 Three Months Ended March 31,
 20222021
Shares issuable under the Equity Incentive Plan5,8995,497
XML 21 R12.htm IDEA: XBRL DOCUMENT v3.22.1
Investments in Non-Marketable Securities
3 Months Ended
Mar. 31, 2022
Investments, Debt and Equity Securities [Abstract]  
Investments in Non-Marketable Securities Investments in Non-Marketable Securities
Non-Marketable Debt Securities
We classify non-marketable debt securities, which are accounted for as available-for-sale, within Level 3 in the fair value hierarchy because we estimate the fair value based on a qualitative analysis using the most recent observable transaction price and other significant unobservable inputs including volatility, rights, and obligations of the securities we hold.
We determine gains or losses on the sale or extinguishment of non-marketable debt securities using a specific identification method. Unrealized gains and losses from bifurcated embedded derivatives, which represent share-settled redemption features, are recorded as other expense, net, in the unaudited condensed consolidated statements of operations. Unrealized gains and losses on non-marketable debt securities are recorded as a component of other comprehensive loss until realized. Realized gains or losses are recorded as a component of other income (expense), net.
In November 2020, we purchased convertible subordinated notes issued by Arzeda Corp. (“Arzeda”), an early-stage computational protein design company, for $1.0 million and the investment was classified as available-for-sale non-marketable interest-bearing debt securities. In July 2021, we converted the non-marketable debt security with a carrying value of $1.3 million into 207,070 shares of Series B-2 preferred stock of Arzeda Corp. During the three months ended March 31, 2021, we recognized $0.1 million in interest income from interest earned on our investment in this debt security.
There were no investments in non-marketable debt securities as of March 31, 2022 and December 31, 2021.
Non-Marketable Equity Securities
In March 2022, we entered into a Stock Purchase Agreement with seqWell, Inc. (“seqWell”), a privately held biotechnology company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million.
Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in Molecular Assemblies, Inc. (“MAI“), Arzeda and seqWell. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy because we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component of other income (expense), net in the unaudited condensed consolidated statements of operations.
There was no remeasurement event for our investments in MAI, Arzeda and seqWell that occurred during the three months ended March 31, 2022 and 2021. We recognized no realized gains or losses during the three months ended March 31, 2022 and 2021.
The following table presents the carrying value of our non-marketable equity securities (in thousands):
 March 31, 2022December 31, 2021
MAI$12,713 $12,713 
seqWell5,000 — 
Arzeda1,289 1,289 
Total non-marketable equity securities$19,002 $14,002 
XML 22 R13.htm IDEA: XBRL DOCUMENT v3.22.1
Fair Value Measurements
3 Months Ended
Mar. 31, 2022
Fair Value Disclosures [Abstract]  
Fair Value Measurements Fair Value Measurements
The following tables present the financial instruments that were measured at fair value on a recurring basis at March 31, 2022 and December 31, 2021 by level within the fair value hierarchy (in thousands):
 March 31, 2022
 Level 1Level 2Level 3Total
Money market funds $72,107 $— $— $72,107 
 December 31, 2021
 Level 1Level 2Level 3Total
Money market funds $86,095 $— $— $86,095 
During the three months ended March 31, 2022 and 2021, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities.
XML 23 R14.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details
3 Months Ended
Mar. 31, 2022
Balance Sheets Details [Abstract]  
Balance Sheets Details Balance Sheets Details
Cash Equivalents
Cash equivalents as of March 31, 2022 and December 31, 2021, consisted of the following (in thousands):
 March 31, 2022December 31, 2021
 Adjusted CostEstimated Fair ValueAdjusted CostEstimated Fair Value
Money market funds (1)
$72,107 $72,107 $86,095 $86,095 
(1) Money market funds are classified in cash and cash equivalents on our unaudited condensed consolidated balance sheets. Average contractual maturities (in days) is not applicable.
As of March 31, 2022, the total cash and cash equivalents balance of $94.3 million consisted of money market funds of $72.1 million and cash of $22.2 million held with major financial institutions. As of December 31, 2021, the total cash and cash equivalents balance of $116.8 million consisted of money market funds of $86.1 million and cash of $30.7 million held with major financial institutions.
Inventories
Inventories consisted of the following (in thousands):
March 31, 2022December 31, 2021
Raw materials$49 $49 
Work-in-process160 65 
Finished goods1,351 1,046 
    Inventories$1,560 $1,160 
Inventories are recorded net of reserves of $1.4 million as of March 31, 2022 and December 31, 2021.
Property and Equipment, net
Property and equipment, net consisted of the following (in thousands):
March 31, 2022December 31, 2021
Laboratory equipment$36,435 $33,101 
Leasehold improvements16,506 16,117 
Computer equipment and software3,565 3,481 
Office equipment and furniture1,297 1,297 
Construction in progress2,450 3,231 
Property and equipment60,253 57,227 
       Less: accumulated depreciation and amortization(36,779)(35,882)
     Property and equipment, net$23,474 $21,345 
Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the unaudited condensed consolidated statements of operations was as follows (in thousands):
Three Months Ended March 31,
20222021
Depreciation expense$1,215 $659 
Goodwill
Goodwill had a carrying value of $3.2 million as of March 31, 2022 and December 31, 2021.
Other Accrued Liabilities
Other accrued liabilities consisted of the following (in thousands):
March 31, 2022December 31, 2021
Accrued purchases $7,695 $6,755 
Accrued professional and outside service fees6,121 5,147 
Other356 676 
     Total$14,172 $12,578 
XML 24 R15.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation
3 Months Ended
Mar. 31, 2022
Share-based Payment Arrangement [Abstract]  
Stock-based Compensation Stock-based Compensation
Equity Incentive Plans
In 2019, our board of directors (the "Board") and stockholders approved the 2019 Incentive Award Plan (the "2019 Plan"). The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the “2010 Plan”) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder.
The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, restricted stock awards ("RSAs"), restricted stock units ("RSUs"), performance-contingent restricted stock units ("PSUs"), performance based options ("PBOs"), other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.
The number of shares of our common stock available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii) any shares subject to awards granted under the 2010 Plan that were outstanding as of April 22, 2019 and thereafter terminate, expire, lapse or are forfeited; provided that no more than 14,000,000 shares may be issued upon the exercise of incentive stock options (“ISOs”). In June 2019, 8.1 million shares authorized for issuance under the 2019 Plan were registered under the Securities Act of 1933, as amended (the “Securities Act”).
The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants.
Stock Options
The option exercise price for incentive stock options must be at least 100% of the fair value of our common stock on the date of grant and the option exercise price for non-statutory stock options is at least 85% of the fair value of our common stock on the date of grant, as determined by the Board. If, at the time of a grant, the optionee directly or by attribution owns stock possessing more than 10% of the total combined voting power of all of our outstanding capital stock, the exercise price for these options must be at least 110% of the fair value of the underlying common stock. Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.
Restricted Stock Units ("RSUs")
We also grant employees RSUs, which generally vest over either a three year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee’s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.
Performance-contingent Restricted Stock Units ("PSUs") and Performance Based Options ("PBOs")
The compensation committee of the Board approved, solely in respect of non-executive employees, delegated to our Chief Executive Officer the authority to approve grants of PSUs. The compensation committee of the Board also approved grants of PBOs and PSUs to our executives. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient’s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.
In the first quarter of 2022, we awarded PSUs ("2022 PSUs") and PBOs ("2022 PBOs"), each of which commence vesting based upon the achievement of various weighted performance goals, including total revenues, research and development revenue, product revenue excluding sales of CDX-616 to Pfizer for use in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, which Pfizer markets, sells and distributes, in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID™ product, operating expenses excluding cost of product revenue, strategic performance enzyme deliverables, strategic biotherapeutics deliverables, organization and infrastructure upgrades, corporate developments, and significant events that can be publicly announced. As of March 31, 2022, we estimated that the 2022 PSUs and 2022 PBOs performance goals would be achieved at 100% and 50% of the target level, respectively, and recognized stock-based compensation expenses accordingly.
In 2021, we awarded PSUs ("2021 PSUs") and PBOs ("2021 PBOs"), each of which commence vesting based upon the achievement of various weighted performance goals, including total revenues, product revenue, performance enzymes pipeline advancements, biotherapeutics pipeline advancements, organization and infrastructure upgrades, and significant events that can be publicly announced. In the first quarter of 2022, we determined that the 2021 PSUs and 2021 PBOs performance goals had been achieved at 146% and 73% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2022 and 50% of the shares underlying the 2021 PSUs and PBOs will vest in the first quarter of 2023, in each case, subject to the recipient’s continued service on each vesting date.
In 2020, we awarded PSUs ("2020 PSUs") and PBOs ("2020 PBOs"), each of which commenced vesting based upon the achievement of various weighted performance goals, including total revenues, performance enzyme segment gross margin, major new biotherapeutics publicity events, strategic performance enzyme and biotherapeutics deliverables, and strategic plan development. In the first quarter of 2021, we determined that the 2020 PSUs and 2020 PBOs performance goals had been achieved at 88% and 44% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2020 PSUs and PBOs vested in the first quarter of 2021 and 50% of the shares underlying the 2020 PSUs and PBOs vested in the first quarter of 2022, in each case subject to the recipient’s continued service on each vesting date.
Stock-Based Compensation Expense
Stock-based compensation expense is included in the unaudited condensed consolidated statements of operations as follows (in thousands):
 Three Months Ended March 31,
 20222021
Research and development $936 $477 
Selling, general and administrative2,902 2,210 
   Total$3,838 $2,687 

The following table presents total stock-based compensation expense by security type included in the unaudited condensed consolidated statements of operations (in thousands):
 Three Months Ended March 31,
 20222021
Stock options$806 $665 
RSUs and RSAs1,162 542 
PSUs872 470 
PBOs998 1,010 
   Total$3,838 $2,687 
As of March 31, 2022, unrecognized stock-based compensation expense, net of expected forfeitures, was $6.6 million related to unvested stock options, $9.2 million related to unvested RSUs and RSAs, $2.5 million related to unvested PSUs, and $4.5 million related to unvested PBOs based on current estimates of the level of achievement. Stock-based compensation expense for these awards will be recognized through the year 2026.
XML 25 R16.htm IDEA: XBRL DOCUMENT v3.22.1
Capital Stock
3 Months Ended
Mar. 31, 2022
Equity [Abstract]  
Capital Stock Capital Stock
Exercise of Options
For the three months ended March 31, 2022 and March 31, 2021, we issued 77,600 and 118,437 shares, respectively, upon option exercises at a weighted-average exercise price of $2.33 and $10.33 per share, respectively, with net cash proceeds of $0.2 million and $1.2 million, respectively.
Equity Distribution Agreement
We filed a Registration Statement on Form S-3 with the SEC, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. The registration statement became effective on May 7, 2021. In May 2021, we entered into an Equity Distribution Agreement ("EDA") with Piper Sandler & Co ("PSC"), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an “at the market offering” as defined in Rule 415 under the Securities Act of 1933, as amended.
We are not required to sell any shares at any time during the term of the EDA. The EDA will terminate upon the earlier of: (i) the issuance and sale of all shares through PSC on the terms and conditions of the EDA, or (ii) the termination of the EDA in accordance with its terms. Either party may terminate the EDA at any time upon written notification to the other party in accordance with the EDA, and upon such notification, the offering will terminate. Under no circumstances shall any shares be sold pursuant to the EDA after the date which is three years after the registration statement is first declared effective by the SEC. We agreed to pay PSC a commission of 3% of the gross sales price of any shares sold pursuant to the EDA. With the exception of certain expenses, we will pay PSC up to 8% of the gross sales price of the shares sold pursuant to the EDA for a combined amount of commission and reimbursement of PSC's expenses and fees.
During the three months ended March 31, 2022, no shares of our common stock were issued pursuant to the EDA. As of March 31, 2022, $50.0 million worth of shares remained available for sale under the EDA.
XML 26 R17.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies
3 Months Ended
Mar. 31, 2022
Commitments and Contingencies Disclosure [Abstract]  
Commitments and Contingencies Commitments and Contingencies
Operating Leases
Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park of Metropolitan Life Insurance Company ("MetLife"). Our lease agreement with MetLife ("RWC Lease") includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the “200/220 Penobscot Space”) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the “400 Penobscot Space”) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the “Penobscot Space”), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the “501 Chesapeake Space”).
We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In February 2019, we entered into an Eighth Amendment to the Lease (the “Eighth Amendment”) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (5) years.
Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount of $1.1 million as of March 31, 2022 and December 31, 2021, and are recorded as non-current restricted cash on the unaudited condensed consolidated balance sheets.
In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (“ARE”) to lease a portion of a facility comprising approximately 36,593 rentable square feet in San Carlos, California to serve as additional office and research and development laboratory space (the “San Carlos Space”). The terms include an initial annualized base rent of $2.5 million, subject to scheduled 3% annual rent increases, an annualized additional allowance payment of $0.4 million, plus certain operating expenses. The lease has a 10-year term from the lease commencement date of November 30, 2021 with one option to extend the term for an additional period of 5 years. We have provided ARE with a $0.5 million security deposit in the form of a letter of credit and we commenced occupancy of the San Carlos Space in December 2021. We have the right to sublease the facility, subject to landlord consent.
We entered into a short-term office lease in San Carlos, California during the second quarter of 2021 and this lease expired in April 2022. Our remaining future commitment pursuant to this lease is nominal as of March 31, 2022.
We are required to restore certain areas of the Redwood City and San Carlos facilities that we are renting to their original form. We are expensing the asset retirement obligation over the terms of the respective leases. We review the estimated obligation each reporting period and make adjustments if our estimates change. We recorded asset retirement obligations of $0.5 million and $0.4 million as of March 31, 2022 and December 31, 2021, respectively, which are included in other liabilities on the unaudited condensed consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the three months ended March 31, 2022 and 2021.
Lease and other information
Lease costs, amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):
Three Months Ended March 31,
 20222021
Finance lease costs18 26 
Operating lease cost1,831 1,032 
Short-term lease costs (1)
30 — 
Total lease cost (2)
$1,879 $1,058 
(1) Short-term lease costs on leases with terms of over one month and less than one year.
(2) The Company had no variable lease costs.
Other information:Operating Leases
Weighted-average remaining lease term (in years)7.7 years
Weighted-average discount rate5.5 %
Three Months Ended March 31,
Cash paid:20222021
Operating cash flows from operating leases$1,022 $1,042 
As of March 31, 2022, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):
Years Ending December 31,Operating Leases
2022 (remaining 9 months)$5,478 
20237,571 
20247,785 
20258,007 
20268,235 
2027 and thereafter20,719 
Total minimum lease payments57,795 
Less: imputed interest10,514 
Lease obligations$47,281 
Other Commitments
We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work.
The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):

Other Commitment Agreement TypeAgreement DateFuture Minimum Payment
Development and manufacturing services agreementsVarious$5,111 
Facility maintenance agreementJanuary 20221,462 
Total other commitments$6,573 
Credit Facility
In June 30, 2017, we entered into a credit facility (the “Credit Facility”) with Western Alliance Bank consisting of term loans (“Term Debt”) up to $10.0 million, and advances (“Advances”) under a revolving line of credit ("Revolving Line of Credit") up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2021. On October 1, 2024, loans drawn under the Revolving Line of Credit terminate. Advances made under the Revolving Line of Credit bear interest at a variable annual rate equal to the greater of (i) 4.25% or (ii) the sum of (A) the prime rate plus (B) 1.00%. As of March 31, 2022 and December 31, 2021, we have not drawn from the Credit Facility.
Our obligations under the Credit Facility are secured by a lien on substantially all of our personal property other than our intellectual property. The Credit Facility includes a number of customary covenants and restrictive financial covenants including meeting minimum product revenue levels and maintaining certain minimum cash levels with the lender. The Credit Facility's financial covenants restrict the ability of the Company to transfer collateral, incur additional indebtedness, engage in mergers or acquisitions, pay dividends or make other distributions, make investments, create liens, sell assets, or sell certain assets held at foreign subsidiaries. A failure to comply with these covenants could permit the lender to exercise remedies against us and the collateral securing the Credit Facility, including foreclosure of our properties securing the Credit Facilities and our cash. As of March 31, 2022, we were in compliance with the covenants for the Credit Facility.
Legal Proceedings
We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the condensed consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.
In April 2022, we reached a settlement resolving a non-material dispute involving the Company's trademark. The terms of the settlement are not material to the business or the results of operations of the Company.
Indemnifications
We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.
XML 27 R18.htm IDEA: XBRL DOCUMENT v3.22.1
Related Party Transactions
3 Months Ended
Mar. 31, 2022
Related Party Transactions [Abstract]  
Related Party Transactions Related Party Transactions
Molecular Assemblies, Inc.

In June 2020, we entered into a Stock Purchase Agreement with MAI pursuant to which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. In connection with the transaction, John Nicols, our President and Chief Executive Officer, also joined MAI’s board of directors. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the “MAI Agreement”), pursuant to which we are leveraging our CodeEvolver® protein engineering platform technology to improve the DNA polymerase enzymes that are critical for enzymatic DNA synthesis. Under the MAI Agreement, we are performing services utilizing our CodeEvolver® protein engineering platform technology to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A preferred stock. We completed the R&D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of Series B preferred stock. In addition to our initial equity investment and the shares we have received under the MAI Agreement, in April 2021, we purchased an additional 1,000,000 shares of MAI's Series A preferred stock for $0.6 million and in September 2021, we purchased 9,198,423 shares of MAI's Series B preferred stock for $7.0 million.
We recognized $0.2 million and $0.1 million in research and development revenue from transactions with MAI in the three months ended March 31, 2022 and 2021, respectively. We received nil shares and 1,428,342 shares of MAI's Series A and B preferred stock from research and development services we provided to MAI in the three months ended March 31, 2022 and 2021, respectively. As of March 31, 2022, we have 16,705,320 shares of MAI's Series A and B preferred stock that we have earned or purchased since executing the Stock Purchase Agreement with MAI.
The carrying value of our investment in MAI Series A and B preferred stock was $12.7 million as of March 31, 2022 and December 31, 2021. We had nil and $0.2 million in deferred revenue as of March 31, 2022 and December 31, 2021 respectively. Payment for the services rendered was received in the form of additional shares of Series A and Series B preferred stock.
XML 28 R19.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information
3 Months Ended
Mar. 31, 2022
Segment Reporting [Abstract]  
Segment, Geographical and Other Revenue Information Segment, Geographical and Other Revenue Information
Segment Information
We manage our business as two business segments: Performance Enzymes and Novel Biotherapeutics. Our chief operating decision maker ("CODM") is our Chief Executive Officer. Our business segments are primarily based on our organizational structure and our operating results as used by our CODM in assessing performance and allocating resources for the Company.
We report corporate-related expenses such as legal, accounting, information technology, and other costs that are not otherwise included in our reportable business segments as "Corporate costs." All items not included in income (loss) from operations are excluded from the business segments.
We manage our assets on a total company basis, not by business segment, as the majority of our operating assets are shared or commingled. Our CODM does not review asset information by business segment in assessing performance or allocating resources, and accordingly, we do not report asset information by business segment.
Factors considered in determining the two reportable segments of the Company include the nature of business activities, the management structure directly accountable to our CODM for operating and administrative activities, availability of discrete financial information and information presented to the Board of Directors. Our CODM regularly reviews our segments and the approach provided by management for performance evaluation and resource allocation.
Operating expenses that directly support the segment activity are allocated based on segment headcount, revenue contribution or activity of the business units within the segments, based on the corporate activity type provided to the segment. The expense allocation excludes certain corporate costs that are separately managed from the segments. This provides the CODM with more meaningful segment profitability reporting to support operating decisions and allocate resources.
The following table provides financial information by our reportable business segments along with a reconciliation to consolidated loss before income taxes (in thousands):
Three Months Ended March 31, 2022Three Months Ended March 31, 2021
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal
Revenues:
Product revenue$30,690 $— $30,690 $10,226 $— $10,226 
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 
Total revenues33,099 2,241 35,340 14,229 3,803 18,032 
Costs and operating expenses:
Cost of product revenue8,521 — 8,521 4,218 — 4,218 
Research and development (1)
6,122 12,346 18,468 6,444 4,605 11,049 
Selling, general and administrative (1)
3,541 720 4,261 2,818 600 3,418 
Total segment costs and operating expenses18,184 13,066 31,250 13,480 5,205 18,685 
Income (loss) from operations$14,915 $(10,825)4,090 $749 $(1,402)(653)
Corporate costs (2)
(11,205)(7,728)
Unallocated depreciation and amortization(1,232)(685)
Loss before income taxes$(8,347)$(9,066)

(1) Research and development expenses and selling, general and administrative expenses exclude depreciation and amortization of finance leases.
(2) Corporate costs include unallocated selling, general and administrative expenses, interest income, and other expense, net.
The following table provides stock-based compensation expense included in income (loss) from operations (in thousands):
Three Months Ended March 31,
20222021
Performance EnzymesNovel BiotherapeuticsCorporate costTotalPerformance EnzymesNovel BiotherapeuticsCorporate costTotal
Stock-based compensation$1,487 $410 $1,941 $3,838 $994 $238 $1,455 $2,687 
Significant Customers
Customers that each accounted for 10% or more of our total revenues were as follows:
Percentage of Total Revenues for the
Three Months Ended March 31,
20222021
Customer A61 %*
Customer B*28 %
Customer C*11 %
Customer D*10 %
Customer E*14 %
* Percentage was less than 10%
Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented as follows:
Percentage of Accounts Receivables as of
March 31, 2022December 31, 2021
Customer A65 %62 %
Geographical Information
Geographic revenues are identified by the location of the customer and consist of the following (in thousands):
 Three Months Ended March 31,
20222021
Revenues:
Americas$3,732 $4,929 
EMEA4,127 6,282 
APAC27,481 6,821 
Total revenues$35,340 $18,032 
Identifiable long-lived assets by location was as follows (in thousands):
March 31, 2022December 31, 2021
United States$66,386 $65,457 
Identifiable goodwill by reporting unit was as follows (in thousands):
As of March 31, 2022 and December 31, 2021
Performance EnzymesNovel BiotherapeuticsTotal
Goodwill$2,463 $778 $3,241 
XML 29 R20.htm IDEA: XBRL DOCUMENT v3.22.1
Allowance for Credit Losses
3 Months Ended
Mar. 31, 2022
Receivables [Abstract]  
Allowance for Credit Losses Allowance for Credit Losses
The following table summarizes the financial assets allowance for credit losses (in thousands):
Three Months Ended March 31,
20222021
Balance at beginning of period$416 $74 
Provision for credit losses— — 
Balance at end of period$416 $74 
The following tables summarize accounts receivable by aging category (in thousands):
March 31, 2022
Current31-60 Days61-90 Days91 Days and overTotal over 31 DaysTotal balance
Accounts receivable$24,244 $27 $89 $837 $953 $25,197 
December 31, 2021
Current31-60 Days61-90 Days91 Days and overTotal over 31 DaysTotal balance
Accounts receivable$22,697 $536 $569 $1,151 $2,256 $24,953 
XML 30 R21.htm IDEA: XBRL DOCUMENT v3.22.1
Basis of Presentation and Summary of Significant Accounting Policies (Policies)
3 Months Ended
Mar. 31, 2022
Accounting Policies [Abstract]  
Basis of Presentation and Principles of Consolidation
Basis of Presentation and Principles of Consolidation
The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America ("GAAP") and the applicable rules and regulations of the Securities and Exchange Commission ("SEC") for interim financial information but does not include all the information and notes required by GAAP for complete financial statements. These interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in our Annual Report on Form 10-K for the year ended December 31, 2021. The condensed consolidated balance sheet at December 31, 2021 has been derived from the audited consolidated financial statements at that date, but does not include all disclosures, including notes, required by GAAP for complete financial statements. The significant accounting policies used in preparation of the unaudited condensed consolidated financial statements for the three months ended March 31, 2022 and 2021, are consistent with those discussed in Note 2 to the audited consolidated financial statements in the Company’s 2021 Annual Report on Form 10-K and are updated below as necessary. There have been no significant changes in our significant accounting policies or critical accounting estimates since December 31, 2021.
The unaudited condensed consolidated financial statements have been prepared on the same basis as the audited consolidated financial statements and, in the opinion of management, reflect all adjustments of a normal recurring nature considered necessary to present fairly our financial position as of March 31, 2022, results of our operations for the three months ended March 31, 2022 and 2021, changes in stockholders' equity for the three months ended March 31, 2022 and 2021, and cash flows for the three months ended March 31, 2022 and 2021. The interim results are not necessarily indicative of the results for any future interim period or for the entire year.
The unaudited condensed consolidated financial statements include the accounts of Codexis, Inc. and its wholly owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.
Use of Estimates
Use of Estimates
The preparation of our unaudited condensed consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition, including sales, expenses, reserves and allowances, manufacturing, research and development costs and employee-related amounts, will depend on future developments that are highly uncertain, and may not be accurately predicted, including as a result of new information that may emerge concerning COVID-19 and the actions taken to contain or treat COVID-19, as well as the economic impact on local, regional, national and international customers, markets and economies.
Accounting Pronouncements
Accounting Pronouncements
Recently adopted accounting pronouncements
In May 2021, FASB issued ASU No. 2021-04, Earnings Per Share (Topic 260), Debt—Modifications and Extinguishments (Subtopic 470-50), Compensation—Stock Compensation (Topic 718), and Derivatives and Hedging—Contracts in Entity’s Own Equity (Subtopic 815-40), Issuer’s Accounting for Certain Modifications or Exchanges of Freestanding Equity-Classified Written Call Options, a consensus of the Emerging Issues Task Force. The standard establishes a principles-based framework in accounting for modifications of freestanding equity-classified written call options on the basis of the economic substance of the underlying transaction. The standard also requires incremental financial statement disclosures. The standard affects entities that present earnings per share in accordance with the guidance in Topic 260, Earnings Per Share. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
In August 2020, FASB issued ASU No 2020-06 Debt—Debt with Conversion and Other Options (Subtopic 470-20) and Derivatives and Hedging— Contracts in Entity’s Own Equity (Subtopic 815-40) No. 2020-06 August 2020 Accounting for Convertible Instruments and Contracts in an Entity’s Own Equity, to reduce the complexity and to simplify the accounting for convertible debt instruments and convertible preferred stock, and the derivatives scope exception for contracts in an entity's own equity. In addition, the guidance on calculating diluted earnings per share has been simplified and made more internally consistent. We adopted the standard on January 1, 2022 on a modified retrospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
In March 2020, the FASB issued ASU 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. The standard provides optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions in which the reference LIBOR or another reference rate are expected to be discontinued as a result of the Reference Rate Reform. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no significant impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.
Recently issued accounting pronouncements not yet adopted
There have been no other recent accounting pronouncements or changes in accounting pronouncements during the three months ended March 31, 2022 that are of significance or potential significance to us.
Segment Information
Segment Information
We manage our business as two business segments: Performance Enzymes and Novel Biotherapeutics. Our chief operating decision maker ("CODM") is our Chief Executive Officer. Our business segments are primarily based on our organizational structure and our operating results as used by our CODM in assessing performance and allocating resources for the Company.
We report corporate-related expenses such as legal, accounting, information technology, and other costs that are not otherwise included in our reportable business segments as "Corporate costs." All items not included in income (loss) from operations are excluded from the business segments.
We manage our assets on a total company basis, not by business segment, as the majority of our operating assets are shared or commingled. Our CODM does not review asset information by business segment in assessing performance or allocating resources, and accordingly, we do not report asset information by business segment.
Factors considered in determining the two reportable segments of the Company include the nature of business activities, the management structure directly accountable to our CODM for operating and administrative activities, availability of discrete financial information and information presented to the Board of Directors. Our CODM regularly reviews our segments and the approach provided by management for performance evaluation and resource allocation.
Operating expenses that directly support the segment activity are allocated based on segment headcount, revenue contribution or activity of the business units within the segments, based on the corporate activity type provided to the segment. The expense allocation excludes certain corporate costs that are separately managed from the segments. This provides the CODM with more meaningful segment profitability reporting to support operating decisions and allocate resources.
XML 31 R22.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition (Tables)
3 Months Ended
Mar. 31, 2022
Revenue from Contract with Customer [Abstract]  
Disaggregation of revenue Segment information is as follows (in thousands):
Three Months Ended March 31, 2022Three Months Ended March 31, 2021
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal
Major products and service:
       Product revenue$30,690 $— $30,690 $10,226 $— $10,226 
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 
Primary geographical markets:
Americas
$2,553 $1,179 $3,732 $2,871 $2,058 $4,929 
EMEA
3,065 1,062 4,127 4,537 1,745 6,282 
APAC
27,481 — 27,481 6,821 — 6,821 
Total revenues$33,099 $2,241 $35,340 $14,229 $3,803 $18,032 
Contract with customer The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands):
March 31, 2022December 31, 2021
Contract assets$9,751 $4,557 
Unbilled receivables$9,584 $8,558 
Contract costs$46 $56 
Contract liabilities: deferred revenue$5,068 $6,335 
We recognized the following revenues (in thousands):
Three Months Ended March 31,
Revenue recognized in the period for:20222021
Amounts included in contract liabilities at the beginning of the period:
Performance obligations satisfied$1,094 $862 
Changes in the period:
Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods215 24 
Performance obligations satisfied from new activities in the period - contract revenue34,031 17,146 
Total revenues$35,340 $18,032 
Performance obligation, expected timing of satisfaction The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of March 31, 2022.The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts as of March 31, 2022 (in thousands):
Remainder of 2022
20232024
2025 and Thereafter
Total
Product revenue$60 $67 $100 $2,740 $2,967 
Research and development revenue1,254 847 — — 2,101 
Total revenues$1,314 $914 $100 $2,740 $5,068 
XML 32 R23.htm IDEA: XBRL DOCUMENT v3.22.1
Net Loss per Share (Tables)
3 Months Ended
Mar. 31, 2022
Earnings Per Share [Abstract]  
Shares Not Included in Computation of Diluted Net Loss Per Share The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):
 Three Months Ended March 31,
 20222021
Shares issuable under the Equity Incentive Plan5,8995,497
XML 33 R24.htm IDEA: XBRL DOCUMENT v3.22.1
Investments in Non-Marketable Securities (Tables)
3 Months Ended
Mar. 31, 2022
Investments, Debt and Equity Securities [Abstract]  
Carrying Value of Non-marketable Equity Securities
The following table presents the carrying value of our non-marketable equity securities (in thousands):
 March 31, 2022December 31, 2021
MAI$12,713 $12,713 
seqWell5,000 — 
Arzeda1,289 1,289 
Total non-marketable equity securities$19,002 $14,002 
XML 34 R25.htm IDEA: XBRL DOCUMENT v3.22.1
Fair Value Measurements (Tables)
3 Months Ended
Mar. 31, 2022
Fair Value Disclosures [Abstract]  
Summary of financial instruments measured at fair value on a recurring basis
The following tables present the financial instruments that were measured at fair value on a recurring basis at March 31, 2022 and December 31, 2021 by level within the fair value hierarchy (in thousands):
 March 31, 2022
 Level 1Level 2Level 3Total
Money market funds $72,107 $— $— $72,107 
 December 31, 2021
 Level 1Level 2Level 3Total
Money market funds $86,095 $— $— $86,095 
XML 35 R26.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details (Tables)
3 Months Ended
Mar. 31, 2022
Balance Sheets Details [Abstract]  
Schedule of cash and cash equivalents Cash equivalents as of March 31, 2022 and December 31, 2021, consisted of the following (in thousands):
 March 31, 2022December 31, 2021
 Adjusted CostEstimated Fair ValueAdjusted CostEstimated Fair Value
Money market funds (1)
$72,107 $72,107 $86,095 $86,095 
(1) Money market funds are classified in cash and cash equivalents on our unaudited condensed consolidated balance sheets. Average contractual maturities (in days) is not applicable.
Schedule of inventory components Inventories consisted of the following (in thousands):
March 31, 2022December 31, 2021
Raw materials$49 $49 
Work-in-process160 65 
Finished goods1,351 1,046 
    Inventories$1,560 $1,160 
Schedule of property and equipment, net
Property and equipment, net consisted of the following (in thousands):
March 31, 2022December 31, 2021
Laboratory equipment$36,435 $33,101 
Leasehold improvements16,506 16,117 
Computer equipment and software3,565 3,481 
Office equipment and furniture1,297 1,297 
Construction in progress2,450 3,231 
Property and equipment60,253 57,227 
       Less: accumulated depreciation and amortization(36,779)(35,882)
     Property and equipment, net$23,474 $21,345 
Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the unaudited condensed consolidated statements of operations was as follows (in thousands):
Three Months Ended March 31,
20222021
Depreciation expense$1,215 $659 
Schedule of other accrued liabilities Other accrued liabilities consisted of the following (in thousands):
March 31, 2022December 31, 2021
Accrued purchases $7,695 $6,755 
Accrued professional and outside service fees6,121 5,147 
Other356 676 
     Total$14,172 $12,578 
XML 36 R27.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation (Tables)
3 Months Ended
Mar. 31, 2022
Share-based Payment Arrangement [Abstract]  
Schedule of stock-based compensation expense Stock-based compensation expense is included in the unaudited condensed consolidated statements of operations as follows (in thousands):
 Three Months Ended March 31,
 20222021
Research and development $936 $477 
Selling, general and administrative2,902 2,210 
   Total$3,838 $2,687 
Schedule of stock-based compensation expense by security types The following table presents total stock-based compensation expense by security type included in the unaudited condensed consolidated statements of operations (in thousands):
 Three Months Ended March 31,
 20222021
Stock options$806 $665 
RSUs and RSAs1,162 542 
PSUs872 470 
PBOs998 1,010 
   Total$3,838 $2,687 
XML 37 R28.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies (Tables)
3 Months Ended
Mar. 31, 2022
Commitments and Contingencies Disclosure [Abstract]  
Lease cost
Lease costs, amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):
Three Months Ended March 31,
 20222021
Finance lease costs18 26 
Operating lease cost1,831 1,032 
Short-term lease costs (1)
30 — 
Total lease cost (2)
$1,879 $1,058 
(1) Short-term lease costs on leases with terms of over one month and less than one year.
(2) The Company had no variable lease costs.
Other information:Operating Leases
Weighted-average remaining lease term (in years)7.7 years
Weighted-average discount rate5.5 %
Three Months Ended March 31,
Cash paid:20222021
Operating cash flows from operating leases$1,022 $1,042 
Operating lease maturity
As of March 31, 2022, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):
Years Ending December 31,Operating Leases
2022 (remaining 9 months)$5,478 
20237,571 
20247,785 
20258,007 
20268,235 
2027 and thereafter20,719 
Total minimum lease payments57,795 
Less: imputed interest10,514 
Lease obligations$47,281 
Schedule of supply and service commitments The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):

Other Commitment Agreement TypeAgreement DateFuture Minimum Payment
Development and manufacturing services agreementsVarious$5,111 
Facility maintenance agreementJanuary 20221,462 
Total other commitments$6,573 
XML 38 R29.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information (Tables)
3 Months Ended
Mar. 31, 2022
Segment Reporting [Abstract]  
Schedule of segment reporting
The following table provides financial information by our reportable business segments along with a reconciliation to consolidated loss before income taxes (in thousands):
Three Months Ended March 31, 2022Three Months Ended March 31, 2021
Performance EnzymesNovel BiotherapeuticsTotalPerformance EnzymesNovel BiotherapeuticsTotal
Revenues:
Product revenue$30,690 $— $30,690 $10,226 $— $10,226 
Research and development revenue2,409 2,241 4,650 4,003 3,803 7,806 
Total revenues33,099 2,241 35,340 14,229 3,803 18,032 
Costs and operating expenses:
Cost of product revenue8,521 — 8,521 4,218 — 4,218 
Research and development (1)
6,122 12,346 18,468 6,444 4,605 11,049 
Selling, general and administrative (1)
3,541 720 4,261 2,818 600 3,418 
Total segment costs and operating expenses18,184 13,066 31,250 13,480 5,205 18,685 
Income (loss) from operations$14,915 $(10,825)4,090 $749 $(1,402)(653)
Corporate costs (2)
(11,205)(7,728)
Unallocated depreciation and amortization(1,232)(685)
Loss before income taxes$(8,347)$(9,066)

(1) Research and development expenses and selling, general and administrative expenses exclude depreciation and amortization of finance leases.
(2) Corporate costs include unallocated selling, general and administrative expenses, interest income, and other expense, net.
The following table provides stock-based compensation expense included in income (loss) from operations (in thousands):
Three Months Ended March 31,
20222021
Performance EnzymesNovel BiotherapeuticsCorporate costTotalPerformance EnzymesNovel BiotherapeuticsCorporate costTotal
Stock-based compensation$1,487 $410 $1,941 $3,838 $994 $238 $1,455 $2,687 
Schedule of customers that contributed 10% or more of total accounts receivable
Significant Customers
Customers that each accounted for 10% or more of our total revenues were as follows:
Percentage of Total Revenues for the
Three Months Ended March 31,
20222021
Customer A61 %*
Customer B*28 %
Customer C*11 %
Customer D*10 %
Customer E*14 %
* Percentage was less than 10%
Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented as follows:
Percentage of Accounts Receivables as of
March 31, 2022December 31, 2021
Customer A65 %62 %
Schedule of revenues by geographical area Geographic revenues are identified by the location of the customer and consist of the following (in thousands):
 Three Months Ended March 31,
20222021
Revenues:
Americas$3,732 $4,929 
EMEA4,127 6,282 
APAC27,481 6,821 
Total revenues$35,340 $18,032 
Schedule of long-lived assets by geographical area Identifiable long-lived assets by location was as follows (in thousands):
March 31, 2022December 31, 2021
United States$66,386 $65,457 
Schedule of intangible assets and goodwill Identifiable goodwill by reporting unit was as follows (in thousands):
As of March 31, 2022 and December 31, 2021
Performance EnzymesNovel BiotherapeuticsTotal
Goodwill$2,463 $778 $3,241 
XML 39 R30.htm IDEA: XBRL DOCUMENT v3.22.1
Allowance for Credit Losses (Tables)
3 Months Ended
Mar. 31, 2022
Receivables [Abstract]  
Analysis of allowance for credit losses The following table summarizes the financial assets allowance for credit losses (in thousands):
Three Months Ended March 31,
20222021
Balance at beginning of period$416 $74 
Provision for credit losses— — 
Balance at end of period$416 $74 
Summary of accounts receivable by aging The following tables summarize accounts receivable by aging category (in thousands):
March 31, 2022
Current31-60 Days61-90 Days91 Days and overTotal over 31 DaysTotal balance
Accounts receivable$24,244 $27 $89 $837 $953 $25,197 
December 31, 2021
Current31-60 Days61-90 Days91 Days and overTotal over 31 DaysTotal balance
Accounts receivable$22,697 $536 $569 $1,151 $2,256 $24,953 
XML 40 R31.htm IDEA: XBRL DOCUMENT v3.22.1
Description of Business (Details)
3 Months Ended
Mar. 31, 2022
segment
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Number of reportable segments 2
XML 41 R32.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Disaggregation of Revenue [Line Items]    
Total revenues $ 35,340 $ 18,032
Americas    
Disaggregation of Revenue [Line Items]    
Total revenues 3,732 4,929
EMEA    
Disaggregation of Revenue [Line Items]    
Total revenues 4,127 6,282
APAC    
Disaggregation of Revenue [Line Items]    
Total revenues 27,481 6,821
Product revenue    
Disaggregation of Revenue [Line Items]    
Total revenues 30,690 10,226
Research and development revenue    
Disaggregation of Revenue [Line Items]    
Total revenues 4,650 7,806
Performance Enzymes    
Disaggregation of Revenue [Line Items]    
Total revenues 33,099 14,229
Performance Enzymes | Americas    
Disaggregation of Revenue [Line Items]    
Total revenues 2,553 2,871
Performance Enzymes | EMEA    
Disaggregation of Revenue [Line Items]    
Total revenues 3,065 4,537
Performance Enzymes | APAC    
Disaggregation of Revenue [Line Items]    
Total revenues 27,481 6,821
Performance Enzymes | Product revenue    
Disaggregation of Revenue [Line Items]    
Total revenues 30,690 10,226
Performance Enzymes | Research and development revenue    
Disaggregation of Revenue [Line Items]    
Total revenues 2,409 4,003
Novel Biotherapeutics    
Disaggregation of Revenue [Line Items]    
Total revenues 2,241 3,803
Novel Biotherapeutics | Americas    
Disaggregation of Revenue [Line Items]    
Total revenues 1,179 2,058
Novel Biotherapeutics | EMEA    
Disaggregation of Revenue [Line Items]    
Total revenues 1,062 1,745
Novel Biotherapeutics | APAC    
Disaggregation of Revenue [Line Items]    
Total revenues 0 0
Novel Biotherapeutics | Product revenue    
Disaggregation of Revenue [Line Items]    
Total revenues 0 0
Novel Biotherapeutics | Research and development revenue    
Disaggregation of Revenue [Line Items]    
Total revenues $ 2,241 $ 3,803
XML 42 R33.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition - Contracts with Customer (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Revenue from Contract with Customer [Abstract]    
Contract assets $ 9,751 $ 4,557
Unbilled receivables 9,584 8,558
Contract costs 46 56
Contract liabilities: deferred revenue $ 5,068 $ 6,335
XML 43 R34.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition - Narrative (Details) - USD ($)
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Revenue from Contract with Customer [Abstract]    
Impairment charges related to contract assets $ 0 $ 0
XML 44 R35.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition - Revenue Recognized During Period (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Amounts included in contract liabilities at the beginning of the period:    
Performance obligations satisfied $ 1,094 $ 862
Changes in the period:    
Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods 215 24
Performance obligations satisfied from new activities in the period - contract revenue 34,031 17,146
Total revenues $ 35,340 $ 18,032
XML 45 R36.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition - Performance Obligation (Details)
$ in Thousands
Mar. 31, 2022
USD ($)
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 5,068
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 1,314
Expected timing of satisfaction, period 9 months
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2023-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 914
Expected timing of satisfaction, period 1 year
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 100
Expected timing of satisfaction, period 1 year
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 2,740
Expected timing of satisfaction, period
Product revenue  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 2,967
Product revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 60
Expected timing of satisfaction, period 9 months
Product revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2023-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 67
Expected timing of satisfaction, period 1 year
Product revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 100
Expected timing of satisfaction, period 1 year
Product revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 2,740
Expected timing of satisfaction, period
Research and development revenue  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 2,101
Research and development revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 1,254
Expected timing of satisfaction, period 9 months
Research and development revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2023-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 847
Expected timing of satisfaction, period 1 year
Research and development revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 0
Expected timing of satisfaction, period 1 year
Research and development revenue | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01  
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]  
Performance obligation $ 0
Expected timing of satisfaction, period
XML 46 R37.htm IDEA: XBRL DOCUMENT v3.22.1
Net Loss per Share (Details) - shares
shares in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Shares issuable under the Equity Incentive Plan    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Total shares excluded as anti-dilutive (in shares) 5,899 5,497
XML 47 R38.htm IDEA: XBRL DOCUMENT v3.22.1
Investments in Non-Marketable Securities - Narrative (Details) - USD ($)
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Jul. 31, 2021
Nov. 30, 2020
Marketable Securities [Line Items]          
Debt securities, available-for-sale         $ 1,000,000
Conversion, debt to equity       $ 1,300,000  
Interest income from amortization of discount $ 100,000        
Non-marketable equity securities 19,002,000   $ 14,002,000    
Unrealized or realized gains or losses 0 $ 0      
Convertible Debt          
Marketable Securities [Line Items]          
Debt securities, available-for-sale 0   0    
seqWell          
Marketable Securities [Line Items]          
Non-marketable equity securities $ 5,000,000   $ 0    
Series B-2 Preferred Stock          
Marketable Securities [Line Items]          
Debt conversion, shares issued (in shares) 207,070        
Series C Preferred Stock | seqWell          
Marketable Securities [Line Items]          
Non-marketable equity securities purchased (in shares) 1,000,000        
XML 48 R39.htm IDEA: XBRL DOCUMENT v3.22.1
Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Marketable Securities [Line Items]    
Total non-marketable equity securities $ 19,002 $ 14,002
MAI    
Marketable Securities [Line Items]    
Total non-marketable equity securities 12,713 12,713
seqWell    
Marketable Securities [Line Items]    
Total non-marketable equity securities 5,000 0
Arzeda    
Marketable Securities [Line Items]    
Total non-marketable equity securities $ 1,289 $ 1,289
XML 49 R40.htm IDEA: XBRL DOCUMENT v3.22.1
Fair Value Measurements (Details) - USD ($)
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Convertible Debt      
Summary of financial instruments measured at fair value on a recurring basis      
Credit losses $ 0 $ 0  
Other-than-temporary impairment losses 0 $ 0  
Money market funds      
Summary of financial instruments measured at fair value on a recurring basis      
Money market funds 72,107,000   $ 86,095,000
Level 1 | Money market funds      
Summary of financial instruments measured at fair value on a recurring basis      
Money market funds 72,107,000   86,095,000
Level 2 | Money market funds      
Summary of financial instruments measured at fair value on a recurring basis      
Money market funds 0   0
Level 3 | Money market funds      
Summary of financial instruments measured at fair value on a recurring basis      
Money market funds $ 0   $ 0
XML 50 R41.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details - Cash and Cash Equivalents (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Mar. 31, 2021
Cash and Cash Equivalents [Line Items]      
Adjusted Cost $ 94,260 $ 116,797 $ 139,748
Money market funds 72,100 86,100  
Cash 22,200 30,700  
Money market funds      
Cash and Cash Equivalents [Line Items]      
Adjusted Cost 72,107 86,095  
Estimated Fair Value $ 72,107 $ 86,095  
XML 51 R42.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details - Inventories (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Schedule of Inventory Components    
Raw materials $ 49 $ 49
Work-in-process 160 65
Finished goods 1,351 1,046
Inventories 1,560 1,160
Inventory net of reserves $ 1,400 $ 1,400
XML 52 R43.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details - Property and Equipment, net (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Property, Plant and Equipment [Line Items]      
Property and equipment $ 60,253   $ 57,227
Less: accumulated depreciation and amortization (36,779)   (35,882)
Property and equipment, net 23,474   21,345
Depreciation expense 1,215 $ 659  
Laboratory equipment      
Property, Plant and Equipment [Line Items]      
Property and equipment 36,435   33,101
Leasehold improvements      
Property, Plant and Equipment [Line Items]      
Property and equipment 16,506   16,117
Computer equipment and software      
Property, Plant and Equipment [Line Items]      
Property and equipment 3,565   3,481
Office equipment and furniture      
Property, Plant and Equipment [Line Items]      
Property and equipment 1,297   1,297
Construction in progress      
Property, Plant and Equipment [Line Items]      
Property and equipment $ 2,450   $ 3,231
XML 53 R44.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details - Goodwill (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Balance Sheet Details [Abstract]    
Goodwill $ 3,241 $ 3,241
XML 54 R45.htm IDEA: XBRL DOCUMENT v3.22.1
Balance Sheets Details - Other Accrued Liabilities (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Balance Sheets Details [Abstract]    
Accrued purchases $ 7,695 $ 6,755
Accrued professional and outside service fees 6,121 5,147
Other 356 676
Total $ 14,172 $ 12,578
XML 55 R46.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation - Equity Incentive Plans (Details) - 2019 Plan - shares
Jun. 30, 2019
Apr. 22, 2019
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Number of shares available for grant   7,897,144
Maximum number of shares to be issued upon exercise of stock options   14,000,000
Number of shares authorized 8,100,000  
XML 56 R47.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation - Stock Options (Details)
3 Months Ended
Mar. 31, 2022
Incentive Stock Options  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Purchase price of common stock 100.00%
Non-Statutory Stock Options  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Purchase price of common stock 85.00%
Stock options  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Percent of voting interests 10.00%
Purchase price of common stock above minimum threshold 110.00%
Expiration period 10 years
Award vesting period 4 years
Stock options | Tranche One  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Award vesting rights 25.00%
Stock options | Tranche Two  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Award vesting rights 75.00%
XML 57 R48.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation - Restricted Stock Units (Details) - RSUs
3 Months Ended
Mar. 31, 2022
Tranche One  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Award vesting period 3 years
Award vesting rights 33.00%
Tranche Two  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Award vesting period 4 years
Award vesting rights 25.00%
XML 58 R49.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation - PSUs and PBOs (Details) - Performance Shares - installment
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Mar. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Number of installments   2  
Performance awards, threshold level, number of shares, multiplier   0  
Tranche One      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Award vesting rights   50.00%  
Tranche Two      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Award vesting rights   50.00%  
2022 PSU      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Estimated performance goal achievement rate   100.00%  
2022 PBO      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Estimated performance goal achievement rate   50.00%  
2021 PSU      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Estimated performance goal achievement rate   146.00%  
2021 PBO      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Estimated performance goal achievement rate   73.00%  
2021 PSU And 2021 PBO | Tranche One      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Award vesting rights   50.00%  
2021 PSU And 2021 PBO | Tranche Two | Forecast      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Award vesting rights 50.00%    
2020 PSU      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Estimated performance goal achievement rate     88.00%
2020 PBO      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Estimated performance goal achievement rate     44.00%
2020 PSU and PBO | Tranche One      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Award vesting rights     50.00%
2020 PSU and PBO | Tranche Two      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Award vesting rights   50.00%  
XML 59 R50.htm IDEA: XBRL DOCUMENT v3.22.1
Stock-based Compensation - Stock-based Compensation Expense (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation $ 3,838 $ 2,687
Stock options    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation 806 665
Compensation not yet recognized, stock options 6,600  
RSUs and RSAs    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation 1,162 542
Compensation not yet recognized, share-based awards other than options 9,200  
PSUs    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation 872 470
Compensation not yet recognized, share-based awards other than options 2,500  
PBOs    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation 998 1,010
Compensation not yet recognized, share-based awards other than options 4,500  
Research and development    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation 936 477
Selling, general and administrative    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock-based compensation $ 2,902 $ 2,210
XML 60 R51.htm IDEA: XBRL DOCUMENT v3.22.1
Capital Stock (Details) - USD ($)
1 Months Ended 3 Months Ended
May 31, 2021
Mar. 31, 2022
Mar. 31, 2021
Class of Stock [Line Items]      
Stock options exercised (in shares)   77,600 118,437
Weighted average exercise price of stock options exercised (in dollars per share)   $ 2.33 $ 10.33
Proceeds from exercises of stock options   $ 181,000 $ 1,223,000
Piper Sandler & Co      
Class of Stock [Line Items]      
Sale of stock, period 3 years    
Sale of stock, value of shares for issuance   $ 50,000,000  
Sale of stock, commissions, percentage of gross sales price 3.00%    
Issuance of common stock, net of issuance costs (in shares)   0  
Piper Sandler & Co | Maximum      
Class of Stock [Line Items]      
Sale of stock, value of shares for issuance $ 50,000,000    
Sale of stock, commissions and reimbursements, percentage of gross sales price 8.00%    
XML 61 R52.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Narrative (Details)
1 Months Ended 3 Months Ended
Jun. 30, 2017
USD ($)
Jun. 30, 2017
USD ($)
Mar. 31, 2021
USD ($)
ft²
renewal_option
Mar. 31, 2022
USD ($)
ft²
renewal_option
Dec. 31, 2021
USD ($)
Commitments and Contingencies [Line Items]          
Area of real estate property (in square feet) | ft²       77,300  
Number of options to extend | renewal_option       1  
Asset retirement obligation       $ 500,000 $ 400,000
Indemnification Agreement          
Commitments and Contingencies [Line Items]          
Loss contingency accrual     $ 0 0  
Term Loan          
Commitments and Contingencies [Line Items]          
Borrowing capacity $ 10,000,000 $ 10,000,000      
Revolving Credit Facility          
Commitments and Contingencies [Line Items]          
Borrowing capacity $ 5,000,000 $ 5,000,000      
Accounts receivable, borrowing base percentage 80.00%        
Stated interest rate 4.25% 4.25%      
Revolving Credit Facility | Prime Rate          
Commitments and Contingencies [Line Items]          
Basis spread on variable rate   1.00%      
Demand Deposits          
Commitments and Contingencies [Line Items]          
Non-current restricted cash       $ 1,100,000 1,100,000
200-220 Penobscot          
Commitments and Contingencies [Line Items]          
Area of real estate property (in square feet) | ft²       28,200  
400 Penobscot          
Commitments and Contingencies [Line Items]          
Area of real estate property (in square feet) | ft²       37,900  
Renewal term       5 years  
501 Chesapeake          
Commitments and Contingencies [Line Items]          
Area of real estate property (in square feet) | ft²       11,200  
Number of options to extend | renewal_option       1  
Renewal term       5 years  
San Carlos Space          
Commitments and Contingencies [Line Items]          
Area of real estate property (in square feet) | ft²     36,593    
Number of options to extend | renewal_option     1    
Annualized rent     $ 2,500,000    
Annual rent increases     3.00%    
Lease term     10 years    
Renewal term     5 years    
Security deposit         $ 500,000
San Carlos Space | Asset under Construction          
Commitments and Contingencies [Line Items]          
Annualized rent     $ 400,000    
XML 62 R53.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Lease Cost (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Lease, Cost [Abstract]    
Finance lease costs $ 18 $ 26
Operating lease cost 1,831 1,032
Short-term lease cost 30 0
Total lease cost $ 1,879 $ 1,058
XML 63 R54.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Other Lease Information (Details)
Mar. 31, 2022
Commitments and Contingencies Disclosure [Abstract]  
Weighted-average remaining lease term (in years) 7 years 8 months 12 days
Weighted-average discount rate 5.50%
XML 64 R55.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Cash Paid for Lease Obligations (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Commitments and Contingencies Disclosure [Abstract]    
Operating cash flows from operating leases $ 1,022 $ 1,042
XML 65 R56.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)
$ in Thousands
Mar. 31, 2022
USD ($)
Operating Leases  
2022 (remaining 9 months) $ 5,478
2023 7,571
2024 7,785
2025 8,007
2026 8,235
2027 and thereafter 20,719
Total minimum lease payments 57,795
Less: imputed interest 10,514
Lease obligations $ 47,281
XML 66 R57.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Other Commitments (Details) - Supply Commitment
$ in Thousands
Mar. 31, 2022
USD ($)
Other Commitments [Line Items]  
Future Minimum Payment $ 6,573
Various  
Other Commitments [Line Items]  
Future Minimum Payment 5,111
January 2022  
Other Commitments [Line Items]  
Future Minimum Payment $ 1,462
XML 67 R58.htm IDEA: XBRL DOCUMENT v3.22.1
Related Party Transactions - Molecular Assemblies, Inc. (Details) - USD ($)
1 Months Ended 3 Months Ended 10 Months Ended 12 Months Ended
Dec. 31, 2021
Sep. 30, 2021
Apr. 30, 2021
Jun. 30, 2020
Mar. 31, 2022
Mar. 31, 2021
Mar. 31, 2021
Dec. 31, 2021
Related Party Transaction [Line Items]                
Payments to acquire other investments         $ 5,000,000 $ 0    
Deferred revenue $ 2,586,000       1,604,000     $ 2,586,000
Affiliated Entity                
Related Party Transaction [Line Items]                
Deferred revenue 245,000       0     245,000
MAI | MAI Agreement | Affiliated Entity                
Related Party Transaction [Line Items]                
Due from related parties $ 1,000,000             1,000,000
Milestone payment received (in shares) 1,587,049              
MAI | MCRA                
Related Party Transaction [Line Items]                
Research and development revenue from transactions with MAI         $ 200,000 $ 100,000    
Series A Preferred Stock | MAI | MCRA                
Related Party Transaction [Line Items]                
Number of shares received in exchange for services (in shares)         0      
Number of shares received in exchange for services (in shares)           1,428,342 16,705,320  
MAI | Series A Preferred Stock                
Related Party Transaction [Line Items]                
Number of shares purchased (in shares)     1,000,000 1,587,050        
Payments to acquire other investments     $ 600,000 $ 1,000,000 $ 12,700,000     $ 12,700,000
MAI | Series B Preferred Stock                
Related Party Transaction [Line Items]                
Number of shares purchased (in shares)   9,198,423            
Payments to acquire other investments   $ 7,000,000            
XML 68 R59.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information - Narrative (Details)
3 Months Ended
Mar. 31, 2022
segment
Segment Reporting [Abstract]  
Number of operating segments 2
Number of reportable segments 2
XML 69 R60.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information - Segment Reporting (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Segment Reporting Information [Line Items]    
Total revenues $ 35,340 $ 18,032
Cost of product revenue 8,521 4,218
Research and development 19,500 11,571
Selling, general and administrative 15,705 11,398
Total costs and operating expenses 43,726 27,187
Income (loss) from operations (8,386) (9,155)
Unallocated depreciation and amortization (1,215) (659)
Stock-based compensation 3,838 2,687
Performance Enzymes    
Segment Reporting Information [Line Items]    
Total revenues 33,099 14,229
Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Total revenues 2,241 3,803
Operating Segments    
Segment Reporting Information [Line Items]    
Total revenues 35,340 18,032
Cost of product revenue 8,521 4,218
Research and development 18,468 11,049
Selling, general and administrative 4,261 3,418
Total costs and operating expenses 31,250 18,685
Income (loss) from operations 4,090 (653)
Stock-based compensation 3,838 2,687
Operating Segments | Performance Enzymes    
Segment Reporting Information [Line Items]    
Total revenues 33,099 14,229
Cost of product revenue 8,521 4,218
Research and development 6,122 6,444
Selling, general and administrative 3,541 2,818
Total costs and operating expenses 18,184 13,480
Income (loss) from operations 14,915 749
Stock-based compensation 1,487 994
Operating Segments | Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Total revenues 2,241 3,803
Cost of product revenue 0 0
Research and development 12,346 4,605
Selling, general and administrative 720 600
Total costs and operating expenses 13,066 5,205
Income (loss) from operations (10,825) (1,402)
Stock-based compensation 410 238
Corporate    
Segment Reporting Information [Line Items]    
Total costs and operating expenses (11,205) (7,728)
Unallocated depreciation and amortization (1,232) (685)
Income (loss) before income taxes (8,347) (9,066)
Stock-based compensation 1,941 1,455
Product revenue    
Segment Reporting Information [Line Items]    
Total revenues 30,690 10,226
Product revenue | Performance Enzymes    
Segment Reporting Information [Line Items]    
Total revenues 30,690 10,226
Product revenue | Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Total revenues 0 0
Product revenue | Operating Segments    
Segment Reporting Information [Line Items]    
Total revenues 30,690 10,226
Product revenue | Operating Segments | Performance Enzymes    
Segment Reporting Information [Line Items]    
Total revenues 30,690 10,226
Product revenue | Operating Segments | Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Total revenues 0 0
Research and development revenue    
Segment Reporting Information [Line Items]    
Total revenues 4,650 7,806
Research and development revenue | Performance Enzymes    
Segment Reporting Information [Line Items]    
Total revenues 2,409 4,003
Research and development revenue | Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Total revenues 2,241 3,803
Research and development revenue | Operating Segments    
Segment Reporting Information [Line Items]    
Total revenues 4,650 7,806
Research and development revenue | Operating Segments | Performance Enzymes    
Segment Reporting Information [Line Items]    
Total revenues 2,409 4,003
Research and development revenue | Operating Segments | Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Total revenues $ 2,241 $ 3,803
XML 70 R61.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information - Concentration Risk (Details) - Customer Concentration Risk
3 Months Ended 12 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Revenue | Customer A      
Concentration Risk [Line Items]      
Concentration risk, percentage 61.00%    
Revenue | Customer B      
Concentration Risk [Line Items]      
Concentration risk, percentage   28.00%  
Revenue | Customer C      
Concentration Risk [Line Items]      
Concentration risk, percentage   11.00%  
Revenue | Customer D      
Concentration Risk [Line Items]      
Concentration risk, percentage   10.00%  
Revenue | Customer E      
Concentration Risk [Line Items]      
Concentration risk, percentage   14.00%  
Accounts Receivable | Customer A      
Concentration Risk [Line Items]      
Concentration risk, percentage 65.00%   62.00%
XML 71 R62.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information - Revenues by Geographic Area (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Segment Reporting Information [Line Items]    
Total revenues $ 35,340 $ 18,032
Americas    
Segment Reporting Information [Line Items]    
Total revenues 3,732 4,929
EMEA    
Segment Reporting Information [Line Items]    
Total revenues 4,127 6,282
APAC    
Segment Reporting Information [Line Items]    
Total revenues $ 27,481 $ 6,821
XML 72 R63.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information - Long-Lived Assets by Geographic Area (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
United States    
Geographic Areas, Long-Lived Assets [Abstract]    
Long-lived assets $ 66,386 $ 65,457
XML 73 R64.htm IDEA: XBRL DOCUMENT v3.22.1
Segment, Geographical and Other Revenue Information - Goodwill (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Segment Reporting Information [Line Items]    
Goodwill $ 3,241 $ 3,241
Operating Segments    
Segment Reporting Information [Line Items]    
Goodwill 3,241 3,241
Operating Segments | Performance Enzymes    
Segment Reporting Information [Line Items]    
Goodwill 2,463 2,463
Operating Segments | Novel Biotherapeutics    
Segment Reporting Information [Line Items]    
Goodwill $ 778 $ 778
XML 74 R65.htm IDEA: XBRL DOCUMENT v3.22.1
Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Dec. 31, 2020
Financing Receivable, Allowance for Credit Loss [Roll Forward]        
Balance at beginning of period $ 416 $ 74 $ 416 $ 74
Provision for credit losses 0 0    
Ending Balance $ 416 $ 74    
XML 75 R66.htm IDEA: XBRL DOCUMENT v3.22.1
Allowance for Credit Losses - Summary of Finance Receivables by Aging Category (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Financing Receivable, Allowance for Credit Loss [Line Items]    
Accounts receivable, before allowance for credit loss $ 25,197 $ 24,953
Current    
Financing Receivable, Allowance for Credit Loss [Line Items]    
Accounts receivable, before allowance for credit loss 24,244 22,697
31-60 Days    
Financing Receivable, Allowance for Credit Loss [Line Items]    
Accounts receivable, before allowance for credit loss 27 536
61-90 Days    
Financing Receivable, Allowance for Credit Loss [Line Items]    
Accounts receivable, before allowance for credit loss 89 569
91 Days and over    
Financing Receivable, Allowance for Credit Loss [Line Items]    
Accounts receivable, before allowance for credit loss 837 1,151
Total over 31 Days    
Financing Receivable, Allowance for Credit Loss [Line Items]    
Accounts receivable, before allowance for credit loss $ 953 $ 2,256
XML 76 cdxs-20220331_htm.xml IDEA: XBRL DOCUMENT 0001200375 2022-01-01 2022-03-31 0001200375 2022-05-04 0001200375 2022-03-31 0001200375 2021-12-31 0001200375 srt:AffiliatedEntityMember 2022-03-31 0001200375 srt:AffiliatedEntityMember 2021-12-31 0001200375 cdxs:ProductSalesMember 2022-01-01 2022-03-31 0001200375 cdxs:ProductSalesMember 2021-01-01 2021-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember srt:AffiliatedEntityMember 2022-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember srt:AffiliatedEntityMember 2021-01-01 2021-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2022-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2021-01-01 2021-03-31 0001200375 2021-01-01 2021-03-31 0001200375 us-gaap:CommonStockMember 2021-12-31 0001200375 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001200375 us-gaap:RetainedEarningsMember 2021-12-31 0001200375 us-gaap:CommonStockMember 2022-01-01 2022-03-31 0001200375 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-03-31 0001200375 us-gaap:RetainedEarningsMember 2022-01-01 2022-03-31 0001200375 us-gaap:CommonStockMember 2022-03-31 0001200375 us-gaap:AdditionalPaidInCapitalMember 2022-03-31 0001200375 us-gaap:RetainedEarningsMember 2022-03-31 0001200375 us-gaap:CommonStockMember 2020-12-31 0001200375 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001200375 us-gaap:RetainedEarningsMember 2020-12-31 0001200375 2020-12-31 0001200375 us-gaap:CommonStockMember 2021-01-01 2021-03-31 0001200375 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-03-31 0001200375 us-gaap:RetainedEarningsMember 2021-01-01 2021-03-31 0001200375 us-gaap:CommonStockMember 2021-03-31 0001200375 us-gaap:AdditionalPaidInCapitalMember 2021-03-31 0001200375 us-gaap:RetainedEarningsMember 2021-03-31 0001200375 2021-03-31 0001200375 cdxs:ProductSalesMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:ProductSalesMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:ProductSalesMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:ProductSalesMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 srt:AmericasMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 srt:AmericasMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 srt:AmericasMember 2022-01-01 2022-03-31 0001200375 srt:AmericasMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 srt:AmericasMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 srt:AmericasMember 2021-01-01 2021-03-31 0001200375 us-gaap:EMEAMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:EMEAMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:EMEAMember 2022-01-01 2022-03-31 0001200375 us-gaap:EMEAMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:EMEAMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:EMEAMember 2021-01-01 2021-03-31 0001200375 cdxs:APACMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:APACMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 cdxs:APACMember 2022-01-01 2022-03-31 0001200375 cdxs:APACMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:APACMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:APACMember 2021-01-01 2021-03-31 0001200375 cdxs:ProductSalesMember 2022-04-01 2022-03-31 0001200375 cdxs:ProductSalesMember 2023-01-01 2022-03-31 0001200375 cdxs:ProductSalesMember 2024-01-01 2022-03-31 0001200375 cdxs:ProductSalesMember 2025-01-01 2022-03-31 0001200375 cdxs:ProductSalesMember 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2022-04-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2023-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2024-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2025-01-01 2022-03-31 0001200375 cdxs:ResearchandDevelopmentRevenueMember 2022-03-31 0001200375 2022-04-01 2022-03-31 0001200375 2023-01-01 2022-03-31 0001200375 2024-01-01 2022-03-31 0001200375 2025-01-01 2022-03-31 0001200375 us-gaap:StockCompensationPlanMember 2022-01-01 2022-03-31 0001200375 us-gaap:StockCompensationPlanMember 2021-01-01 2021-03-31 0001200375 2020-11-30 0001200375 2021-07-31 0001200375 cdxs:SeriesB2PreferredStockMember 2022-01-01 2022-03-31 0001200375 us-gaap:ConvertibleDebtMember 2022-03-31 0001200375 us-gaap:ConvertibleDebtMember 2021-12-31 0001200375 cdxs:SeqWellMember us-gaap:SeriesCPreferredStockMember 2022-03-31 0001200375 cdxs:SeqWellMember 2022-03-31 0001200375 cdxs:MolecularAssembliesIncMember 2022-03-31 0001200375 cdxs:MolecularAssembliesIncMember 2021-12-31 0001200375 cdxs:SeqWellMember 2021-12-31 0001200375 cdxs:SecurityOwnedNotReadilyMarketableMAIMember 2022-03-31 0001200375 cdxs:SecurityOwnedNotReadilyMarketableMAIMember 2021-12-31 0001200375 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2022-03-31 0001200375 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel2Member 2022-03-31 0001200375 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel3Member 2022-03-31 0001200375 us-gaap:MoneyMarketFundsMember 2022-03-31 0001200375 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0001200375 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel2Member 2021-12-31 0001200375 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel3Member 2021-12-31 0001200375 us-gaap:MoneyMarketFundsMember 2021-12-31 0001200375 us-gaap:ConvertibleDebtMember 2021-01-01 2021-03-31 0001200375 us-gaap:ConvertibleDebtMember 2022-01-01 2022-03-31 0001200375 cdxs:LaboratoryEquipmentMember 2022-03-31 0001200375 cdxs:LaboratoryEquipmentMember 2021-12-31 0001200375 us-gaap:LeaseholdImprovementsMember 2022-03-31 0001200375 us-gaap:LeaseholdImprovementsMember 2021-12-31 0001200375 us-gaap:ComputerEquipmentMember 2022-03-31 0001200375 us-gaap:ComputerEquipmentMember 2021-12-31 0001200375 cdxs:OfficeEquipmentAndFurnitureMember 2022-03-31 0001200375 cdxs:OfficeEquipmentAndFurnitureMember 2021-12-31 0001200375 us-gaap:ConstructionInProgressMember 2022-03-31 0001200375 us-gaap:ConstructionInProgressMember 2021-12-31 0001200375 cdxs:A2019PlanMember 2019-04-22 0001200375 cdxs:A2019PlanMember 2019-06-30 0001200375 cdxs:IncentiveStockOptionsMember 2022-01-01 2022-03-31 0001200375 cdxs:NonStatutoryStockOptionsMember 2022-01-01 2022-03-31 0001200375 us-gaap:EmployeeStockOptionMember 2022-01-01 2022-03-31 0001200375 us-gaap:EmployeeStockOptionMember us-gaap:ShareBasedCompensationAwardTrancheOneMember 2022-01-01 2022-03-31 0001200375 us-gaap:EmployeeStockOptionMember us-gaap:ShareBasedCompensationAwardTrancheTwoMember 2022-01-01 2022-03-31 0001200375 us-gaap:RestrictedStockUnitsRSUMember us-gaap:ShareBasedCompensationAwardTrancheOneMember 2022-01-01 2022-03-31 0001200375 us-gaap:RestrictedStockUnitsRSUMember us-gaap:ShareBasedCompensationAwardTrancheTwoMember 2022-01-01 2022-03-31 0001200375 us-gaap:PerformanceSharesMember 2022-03-31 0001200375 us-gaap:PerformanceSharesMember us-gaap:ShareBasedCompensationAwardTrancheOneMember 2022-01-01 2022-03-31 0001200375 us-gaap:PerformanceSharesMember us-gaap:ShareBasedCompensationAwardTrancheTwoMember 2022-01-01 2022-03-31 0001200375 us-gaap:PerformanceSharesMember 2022-01-01 2022-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2022PSUMember 2022-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2022PBOMember 2022-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2021PSUMember 2022-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2021PBOMember 2022-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2021PSUAnd2021PBOMember us-gaap:ShareBasedCompensationAwardTrancheOneMember 2022-01-01 2022-03-31 0001200375 srt:ScenarioForecastMember us-gaap:PerformanceSharesMember cdxs:A2021PSUAnd2021PBOMember us-gaap:ShareBasedCompensationAwardTrancheTwoMember 2023-01-01 2023-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2020PSUMember 2021-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2020PBOMember 2021-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2020PSUAndPBOPlanMember us-gaap:ShareBasedCompensationAwardTrancheOneMember 2021-01-01 2021-03-31 0001200375 us-gaap:PerformanceSharesMember cdxs:A2020PSUAndPBOPlanMember us-gaap:ShareBasedCompensationAwardTrancheTwoMember 2022-01-01 2022-03-31 0001200375 us-gaap:ResearchAndDevelopmentExpenseMember 2022-01-01 2022-03-31 0001200375 us-gaap:ResearchAndDevelopmentExpenseMember 2021-01-01 2021-03-31 0001200375 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-03-31 0001200375 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2021-01-01 2021-03-31 0001200375 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-03-31 0001200375 cdxs:RSAsandRSUsMember 2022-01-01 2022-03-31 0001200375 cdxs:RSAsandRSUsMember 2021-01-01 2021-03-31 0001200375 cdxs:PerformanceStockUnitsMember 2022-01-01 2022-03-31 0001200375 cdxs:PerformanceStockUnitsMember 2021-01-01 2021-03-31 0001200375 cdxs:PerformanceBasedOptionsPBOsMember 2022-01-01 2022-03-31 0001200375 cdxs:PerformanceBasedOptionsPBOsMember 2021-01-01 2021-03-31 0001200375 us-gaap:EmployeeStockOptionMember 2022-03-31 0001200375 cdxs:RSAsandRSUsMember 2022-03-31 0001200375 cdxs:PerformanceStockUnitsMember 2022-03-31 0001200375 cdxs:PerformanceBasedOptionsPBOsMember 2022-03-31 0001200375 cdxs:PiperSandlerCoMember 2021-05-01 2021-05-31 0001200375 srt:MaximumMember cdxs:PiperSandlerCoMember 2021-05-31 0001200375 srt:MaximumMember cdxs:PiperSandlerCoMember 2021-05-01 2021-05-31 0001200375 cdxs:PiperSandlerCoMember 2022-01-01 2022-03-31 0001200375 cdxs:PiperSandlerCoMember 2022-03-31 0001200375 cdxs:A200220PenobscotMember 2022-03-31 0001200375 cdxs:A400PenoscotMember 2022-03-31 0001200375 cdxs:A501ChesapeakeMember 2022-03-31 0001200375 us-gaap:DemandDepositsMember 2022-03-31 0001200375 us-gaap:DemandDepositsMember 2021-12-31 0001200375 cdxs:SanCarlosSpaceMember 2021-03-31 0001200375 cdxs:SanCarlosSpaceMember 2021-01-01 2021-03-31 0001200375 cdxs:SanCarlosSpaceMember us-gaap:AssetUnderConstructionMember 2021-01-01 2021-03-31 0001200375 cdxs:SanCarlosSpaceMember 2021-12-31 0001200375 us-gaap:SupplyCommitmentMember cdxs:VariousMember 2022-03-31 0001200375 us-gaap:SupplyCommitmentMember cdxs:January2022Member 2022-03-31 0001200375 us-gaap:SupplyCommitmentMember 2022-03-31 0001200375 cdxs:TermLoanMember 2017-06-30 0001200375 us-gaap:RevolvingCreditFacilityMember 2017-06-30 0001200375 us-gaap:RevolvingCreditFacilityMember 2017-06-30 2017-06-30 0001200375 us-gaap:RevolvingCreditFacilityMember us-gaap:PrimeRateMember 2017-06-01 2017-06-30 0001200375 us-gaap:IndemnificationGuaranteeMember 2022-03-31 0001200375 us-gaap:IndemnificationGuaranteeMember 2021-03-31 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesAPreferredStockMember 2020-06-30 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesAPreferredStockMember 2020-06-01 2020-06-30 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MAIAgreementMember srt:AffiliatedEntityMember 2021-12-31 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MAIAgreementMember srt:AffiliatedEntityMember 2021-12-01 2021-12-31 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesAPreferredStockMember 2021-04-30 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesAPreferredStockMember 2021-04-01 2021-04-30 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesBPreferredStockMember 2021-09-30 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesBPreferredStockMember 2021-09-01 2021-09-30 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MasterCollaborationResearchAgreementMember 2022-01-01 2022-03-31 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MasterCollaborationResearchAgreementMember 2021-01-01 2021-03-31 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MasterCollaborationResearchAgreementMember us-gaap:SeriesAPreferredStockMember 2022-01-01 2022-03-31 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MasterCollaborationResearchAgreementMember us-gaap:SeriesAPreferredStockMember 2021-01-01 2021-03-31 0001200375 cdxs:MolecularAssembliesIncMember cdxs:MasterCollaborationResearchAgreementMember us-gaap:SeriesAPreferredStockMember 2020-06-01 2021-03-31 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesAPreferredStockMember 2021-01-01 2021-12-31 0001200375 cdxs:MolecularAssembliesIncMember us-gaap:SeriesAPreferredStockMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ProductSalesMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ProductSalesMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ProductSalesMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ProductSalesMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ProductSalesMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ProductSalesMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ResearchandDevelopmentRevenueMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ResearchandDevelopmentRevenueMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ResearchandDevelopmentRevenueMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ResearchandDevelopmentRevenueMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ResearchandDevelopmentRevenueMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:ResearchandDevelopmentRevenueMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:CoreSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:BiotherapeuticSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember 2022-01-01 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:CoreSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:BiotherapeuticSegmentMember 2021-01-01 2021-03-31 0001200375 us-gaap:OperatingSegmentsMember 2021-01-01 2021-03-31 0001200375 us-gaap:CorporateNonSegmentMember 2022-01-01 2022-03-31 0001200375 us-gaap:CorporateNonSegmentMember 2021-01-01 2021-03-31 0001200375 cdxs:CustomerAMember us-gaap:SalesRevenueProductLineMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-03-31 0001200375 cdxs:CustomerBMember us-gaap:SalesRevenueProductLineMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-03-31 0001200375 cdxs:CustomerCMember us-gaap:SalesRevenueProductLineMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-03-31 0001200375 cdxs:CustomerDMember us-gaap:SalesRevenueProductLineMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-03-31 0001200375 cdxs:CustomerEMember us-gaap:SalesRevenueProductLineMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-03-31 0001200375 cdxs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-03-31 0001200375 cdxs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001200375 country:US 2022-03-31 0001200375 country:US 2021-12-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:PerformanceEnzymesMember 2021-12-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:PerformanceEnzymesMember 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:NovelBiotherapeuticsMember 2021-12-31 0001200375 us-gaap:OperatingSegmentsMember cdxs:NovelBiotherapeuticsMember 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember 2022-03-31 0001200375 us-gaap:OperatingSegmentsMember 2021-12-31 0001200375 cdxs:FinancialReceivablesNotPastDueMember 2022-03-31 0001200375 us-gaap:FinancingReceivables30To59DaysPastDueMember 2022-03-31 0001200375 us-gaap:FinancingReceivables60To89DaysPastDueMember 2022-03-31 0001200375 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2022-03-31 0001200375 cdxs:FinancialReceivablesPastDueMember 2022-03-31 0001200375 cdxs:FinancialReceivablesNotPastDueMember 2021-12-31 0001200375 us-gaap:FinancingReceivables30To59DaysPastDueMember 2021-12-31 0001200375 us-gaap:FinancingReceivables60To89DaysPastDueMember 2021-12-31 0001200375 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2021-12-31 0001200375 cdxs:FinancialReceivablesPastDueMember 2021-12-31 shares iso4217:USD iso4217:USD shares cdxs:segment pure cdxs:installment utr:sqft cdxs:renewal_option 0001200375 false 2022 Q1 --12-31 P9M P1Y P1Y P9M P1Y P1Y P9M P1Y P1Y 0.33 10-Q true 2022-03-31 false 001-34705 Codexis, Inc. DE 71-0872999 200 Penobscot Drive Redwood City CA 94063 650 421-8100 Common Stock, par value $0.0001 per share CDXS NASDAQ Yes Yes Large Accelerated Filer false false false 65304060 94260000 116797000 568000 579000 25197000 24953000 9751000 4557000 9584000 8558000 44532000 38068000 416000 416000 44116000 37652000 1560000 1160000 4365000 5700000 144869000 161888000 1519000 1519000 12713000 12713000 19002000 14002000 42912000 44095000 0 17000 23474000 21345000 3241000 3241000 257000 276000 235274000 246383000 1949000 2995000 6843000 11119000 14172000 12578000 4927000 4093000 0 245000 1604000 2586000 29495000 33371000 3464000 3749000 42354000 43561000 1326000 1311000 76639000 81992000 0.0001 0.0001 5000000 5000000 0 0 0 0 0 0 0.0001 0.0001 100000000 100000000 65304000 65304000 65109000 65109000 6000 6000 554683000 552083000 -396054000 -387698000 158635000 164391000 235274000 246383000 30690000 10226000 245000 132000 4650000 7806000 35340000 18032000 8521000 4218000 19500000 11571000 15705000 11398000 43726000 27187000 -8386000 -9155000 42000 177000 -3000 -88000 -8347000 -9066000 9000 2000 -8356000 -9068000 -0.13 -0.13 -0.14 -0.14 65096000 65096000 64290000 64290000 65109000 6000 552083000 -387698000 164391000 78000 181000 181000 190000 3777000 3777000 61000 61000 73000 1419000 1419000 -8356000 -8356000 65304000 6000 554683000 -396054000 158635000 64283000 6000 536516000 -366419000 170103000 118000 1223000 1223000 139000 2626000 2626000 61000 61000 52000 1206000 1206000 -9068000 -9068000 64488000 6000 539220000 -375487000 163739000 -8356000 -9068000 1215000 659000 1200000 649000 3838000 2687000 245000 132000 -7000 -84000 6463000 -1103000 400000 65000 -1397000 -70000 -1029000 400000 121000 1731000 -1192000 -617000 -1023000 -311000 -11186000 -6440000 5089000 2550000 7000 17000 5000000 0 -10082000 -2533000 181000 1223000 42000 0 1419000 1206000 -1280000 17000 -22548000 -8956000 118895000 150817000 96347000 141861000 5000 3000 789000 579000 94260000 139748000 2087000 2113000 96347000 141861000 Description of Business<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In these notes to the unaudited condensed consolidated financial statements, the “Company,” “we,” “us,” and “our” refers to Codexis, Inc. and its subsidiaries on a consolidated basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We discover, develop and sell enzymes and other proteins that deliver value to our clients in a growing set of industries to commercialize an increasing number of novel enzymes, both as proprietary Codexis products and in partnership with our customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We report our financial results based on two reportable segments: Performance Enzymes and Novel Biotherapeutics. The segment information aligns with how the chief operating decision maker (CODM), who is our Chief Executive Officer (CEO), reviews and manages the business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Business Update Regarding COVID-19</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are subject to risks and uncertainties as a result of the current COVID-19 pandemic. The COVID-19 pandemic has presented a substantial public health and economic challenge around the world and is affecting our employees, communities and business operations, as well as the U.S. economy and other economies worldwide. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition will depend on future developments that are highly uncertain and may not be accurately predicted, including the duration and severity of the pandemic, the prevalence of more contagious and or virulent variants such as the Delta and Omicron variants, and the extent and severity of the impact on our customers, new information that may emerge concerning COVID-19, the actions taken to contain it or treat its impact and the economic impact on local, regional, national and international markets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To date, we and our collaboration partners have been able to continue to supply our enzymes to our customers worldwide. However, we are dependent on our manufacturing and logistics partners and consequently, disruptions in operations of our partners and customers may affect our ability to supply enzymes to our customers. Furthermore, our ability to provide future R&amp;D services may continue to be impacted as a result of governmental orders ("Orders") and any disruptions in operations of our customers with whom we collaborate. We believe that these disruptions have had a minimal impact on revenue for the three months ended March 31, 2022.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> The extent to which the pandemic may impact our business operations and operating results will continue to remain highly dependent on future developments, which are uncertain and cannot be predicted with confidence.</span></div> 2 Basis of Presentation and Summary of Significant Accounting Policies<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America ("GAAP") and the applicable rules and regulations of the Securities and Exchange Commission ("SEC") for interim financial information but does not include all the information and notes required by GAAP for complete financial statements. These interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in our Annual Report on Form 10-K for the year ended December 31, 2021. The condensed consolidated balance sheet at December 31, 2021 has been derived from the audited consolidated financial statements at that date, but does not include all disclosures, including notes, required by GAAP for complete financial statements. The significant accounting policies used in preparation of the unaudited condensed consolidated financial statements for the three months ended March 31, 2022 and 2021, are consistent with those discussed in Note 2 to the audited consolidated financial statements in the Company’s 2021 Annual Report on Form 10-K and are updated below as necessary. There have been no significant changes in our significant accounting policies or critical accounting estimates since December 31, 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The unaudited condensed consolidated financial statements have been prepared on the same basis as the audited consolidated financial statements and, in the opinion of management, reflect all adjustments of a normal recurring nature considered necessary to present fairly our financial position as of March 31, 2022, results of our operations for the three months ended March 31, 2022 and 2021, changes in stockholders' equity for the three months ended March 31, 2022 and 2021, and cash flows for the three months ended March 31, 2022 and 2021. The interim results are not necessarily indicative of the results for any future interim period or for the entire year.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The unaudited condensed consolidated financial statements include the accounts of Codexis, Inc. and its wholly owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation. </span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our unaudited condensed consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition, including sales, expenses, reserves and allowances, manufacturing, research and development costs and employee-related amounts, will depend on future developments that are highly uncertain, and may not be accurately predicted, including as a result of new information that may emerge concerning COVID-19 and the actions taken to contain or treat COVID-19, as well as the economic impact on local, regional, national and international customers, markets and economies.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, FASB issued ASU No. 2021-04, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Earnings Per Share (Topic 260), Debt—Modifications and Extinguishments (Subtopic 470-50), Compensation—Stock Compensation (Topic 718), and Derivatives and Hedging—Contracts in Entity’s Own Equity (Subtopic 815-40), Issuer’s Accounting for Certain Modifications or Exchanges of Freestanding Equity-Classified Written Call Options, a consensus of the Emerging Issues Task Force</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The standard establishes a principles-based framework in accounting for modifications of freestanding equity-classified written call options on the basis of the economic substance of the underlying transaction. The standard also requires increment</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">al financial statement disclosures. The standard affects entities that present earnings per share in accordance with the guidance in Topic 260, Earnings Per Share. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2020, FASB issued ASU No 2020-06 </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Debt—Debt with Conversion and Other Options (Subtopic 470-20) and Derivatives and Hedging— Contracts in Entity’s Own Equity (Subtopic 815-40) No. 2020-06 August 2020 Accounting for Convertible Instruments and Contracts in an Entity’s Own Equity</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, to reduce the complexity and to simplify the accounting for convertible debt instruments and convertible preferred stock, and the derivatives scope exception for contracts in an entity's own equity. In addition, the guidance on calculating diluted earnings per share has been simplified and made more internally consistent. We adopted the standard on January 1, 2022 on a modified retrospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the FASB issued ASU 2020-04, Reference Rate Reform (Topic 848)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">: Facilitation of the Effects of Reference Rate Reform on Financial Reporting</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The standard provides optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions in which the reference LIBOR or another reference rate are expected to be discontinued as a result of the Reference Rate Reform. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no significant impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There have been no other recent accounting pronouncements or changes in accounting pronouncements during the three months ended March 31, 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">that are of significance or potential significance to us.</span></div> <div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America ("GAAP") and the applicable rules and regulations of the Securities and Exchange Commission ("SEC") for interim financial information but does not include all the information and notes required by GAAP for complete financial statements. These interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in our Annual Report on Form 10-K for the year ended December 31, 2021. The condensed consolidated balance sheet at December 31, 2021 has been derived from the audited consolidated financial statements at that date, but does not include all disclosures, including notes, required by GAAP for complete financial statements. The significant accounting policies used in preparation of the unaudited condensed consolidated financial statements for the three months ended March 31, 2022 and 2021, are consistent with those discussed in Note 2 to the audited consolidated financial statements in the Company’s 2021 Annual Report on Form 10-K and are updated below as necessary. There have been no significant changes in our significant accounting policies or critical accounting estimates since December 31, 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The unaudited condensed consolidated financial statements have been prepared on the same basis as the audited consolidated financial statements and, in the opinion of management, reflect all adjustments of a normal recurring nature considered necessary to present fairly our financial position as of March 31, 2022, results of our operations for the three months ended March 31, 2022 and 2021, changes in stockholders' equity for the three months ended March 31, 2022 and 2021, and cash flows for the three months ended March 31, 2022 and 2021. The interim results are not necessarily indicative of the results for any future interim period or for the entire year.</span></div>The unaudited condensed consolidated financial statements include the accounts of Codexis, Inc. and its wholly owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation. <div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our unaudited condensed consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements. The full extent to which the COVID-19 pandemic will directly or indirectly impact our business, results of operations and financial condition, including sales, expenses, reserves and allowances, manufacturing, research and development costs and employee-related amounts, will depend on future developments that are highly uncertain, and may not be accurately predicted, including as a result of new information that may emerge concerning COVID-19 and the actions taken to contain or treat COVID-19, as well as the economic impact on local, regional, national and international customers, markets and economies.</span></div> <div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, FASB issued ASU No. 2021-04, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Earnings Per Share (Topic 260), Debt—Modifications and Extinguishments (Subtopic 470-50), Compensation—Stock Compensation (Topic 718), and Derivatives and Hedging—Contracts in Entity’s Own Equity (Subtopic 815-40), Issuer’s Accounting for Certain Modifications or Exchanges of Freestanding Equity-Classified Written Call Options, a consensus of the Emerging Issues Task Force</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The standard establishes a principles-based framework in accounting for modifications of freestanding equity-classified written call options on the basis of the economic substance of the underlying transaction. The standard also requires increment</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">al financial statement disclosures. The standard affects entities that present earnings per share in accordance with the guidance in Topic 260, Earnings Per Share. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2020, FASB issued ASU No 2020-06 </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Debt—Debt with Conversion and Other Options (Subtopic 470-20) and Derivatives and Hedging— Contracts in Entity’s Own Equity (Subtopic 815-40) No. 2020-06 August 2020 Accounting for Convertible Instruments and Contracts in an Entity’s Own Equity</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, to reduce the complexity and to simplify the accounting for convertible debt instruments and convertible preferred stock, and the derivatives scope exception for contracts in an entity's own equity. In addition, the guidance on calculating diluted earnings per share has been simplified and made more internally consistent. We adopted the standard on January 1, 2022 on a modified retrospective basis. The adoption of this standard had no impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the FASB issued ASU 2020-04, Reference Rate Reform (Topic 848)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">: Facilitation of the Effects of Reference Rate Reform on Financial Reporting</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The standard provides optional expedients and exceptions for applying GAAP to contracts, hedging relationships, and other transactions in which the reference LIBOR or another reference rate are expected to be discontinued as a result of the Reference Rate Reform. We adopted the standard on January 1, 2022 on a prospective basis. The adoption of this standard had no significant impact on our Unaudited Condensed Consolidated Financial Statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There have been no other recent accounting pronouncements or changes in accounting pronouncements during the three months ended March 31, 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">that are of significance or potential significance to us.</span></div> Revenue Recognition<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Disaggregation of Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue with reportable segments. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Segment information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:27.116%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.011%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.011%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.823%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.011%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.018%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2021</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">       Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,409 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,650 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,003 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,806 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,099 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,229 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:11pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,553 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,179 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,732 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,871 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,058 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,929 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,065 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,062 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,127 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,537 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,745 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,282 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,481 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,481 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,821 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,821 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,099 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,229 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Contract Balances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:63.728%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,751 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,557 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,584 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,558 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">56 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,068 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,335 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We ha</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">d no a</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">sset impairment charges related to financial assets in the three months ended March 31, 2022 and 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The increase in contract assets was primarily due to increases in product revenue from contracts subject to over time revenue recognition. The increase in unbilled receivables was primarily due to the timing of billings. The decrease in deferred revenue was primarily due to timing of recognition of revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized t</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">he following revenues (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:66.882%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.545%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,094 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">862 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">215 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,031 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,146 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance Obligations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of March 31, 2022.</span></div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Th</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e balances in the table below </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts as of March 31, 2022 (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.321%"><tr><td style="width:1.0%"/><td style="width:33.255%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.169%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.169%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.550%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.413%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.169%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="width:1.0%"/><td style="width:11.177%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Remainder of 2022</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025 and Thereafter</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">67 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,967 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,254 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">847 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,101 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,314 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">914 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,068 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table> <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Segment information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:27.116%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.011%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.011%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.823%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.011%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.018%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2021</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">       Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,409 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,650 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,003 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,806 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,099 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,229 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:11pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,553 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,179 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,732 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,871 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,058 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,929 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,065 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,062 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,127 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,537 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,745 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,282 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,481 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,481 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,821 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,821 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,099 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,229 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table> 30690000 0 30690000 10226000 0 10226000 2409000 2241000 4650000 4003000 3803000 7806000 33099000 2241000 35340000 14229000 3803000 18032000 2553000 1179000 3732000 2871000 2058000 4929000 3065000 1062000 4127000 4537000 1745000 6282000 27481000 0 27481000 6821000 0 6821000 33099000 2241000 35340000 14229000 3803000 18032000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, contract costs, and contract liabilities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:63.728%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,751 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,557 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,584 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,558 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">56 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,068 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,335 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized t</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">he following revenues (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:66.882%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.545%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,094 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">862 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">215 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 14.5pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,031 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,146 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table> 9751000 4557000 9584000 8558000 46000 56000 5068000 6335000 0 0 1094000 862000 215000 24000 34031000 17146000 35340000 18032000 The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of March 31, 2022.<span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Th</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e balances in the table below </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts as of March 31, 2022 (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.321%"><tr><td style="width:1.0%"/><td style="width:33.255%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.169%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.169%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.550%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.413%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.169%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.566%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="width:1.0%"/><td style="width:11.177%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Remainder of 2022</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025 and Thereafter</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">67 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,967 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,254 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">847 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,101 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,314 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">914 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,068 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table> 60000 67000 100000 2740000 2967000 1254000 847000 0 0 2101000 1314000 914000 100000 2740000 5068000 N<span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">et Loss per S</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">hare</span><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (“RSAs”) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, net loss per share, basic and diluted, are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Anti-Dilutive Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plan</span></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,899</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,497</span></td></tr></table></div> <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plan</span></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,899</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,497</span></td></tr></table> 5899000 5497000 Investments in Non-Marketable Securities<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Debt Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We classify non-marketable debt securities, which are accounted for as available-for-sale, within Level 3 in the fair value hierarchy because we estimate the fair value based on a qualitative analysis using the most recent observable transaction price and other significant unobservable inputs including volatility, rights, and obligations of the securities we hold. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We determine gains or losses on the sale or extinguishment of non-marketable debt securities using a specific identification method. Unrealized gains and losses from bifurcated embedded derivatives, which represent share-settled redemption features, are recorded as other expense, net, in the unaudited condensed consolidated statements of operations.</span><span style="color:#008080;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:112%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Unrealized gains and losses on non-marketable debt securities are recorded as a component of other comprehensive loss until realized. Realized gains or losses are recorded as a component of other income (expense), net. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2020, we purchased convertible subordinated notes issued by Arzeda Corp. (“Arzeda”), an early-stage computational protein design company, for $1.0 million and the investment was classified as available-for-sale non-marketable interest-bearing debt securities. In July 2021, we converted the non-marketable debt security with a carrying value of $1.3 million into 207,070 shares of Series B-2 preferred stock of Arzeda Corp. During the three months ended March 31, 2021,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we recognized $0.1 million in interest income from interest earned on our investment in this debt security.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">There were no investments in non-marketable debt securities as of March 31, 2022 and December 31, 2021.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:112%">Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell, Inc. (“seqWell”), a privately held biotechnology company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in Molecular Assemblies, Inc. (“MAI“), Arzeda and seqWell. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy because we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component of other income (expense), net in the unaudited condensed consolidated statements of operations. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There was no remeasurement event for our investments in MAI, Arzeda and seqWell that occurred during the three months ended March 31, 2022 and 2021. We recognized</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> no</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> realized gains or losses during the three months ended March 31, 2022 and 2021. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:63.728%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">MAI</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,713 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,713 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">seqWell</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Arzeda</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,289 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,289 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,002 </span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,002 </span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 1000000 1300000 207070 100000 0 0 1000000 5000000 0 0 <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:63.728%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">MAI</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,713 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,713 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">seqWell</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Arzeda</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,289 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,289 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,002 </span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,002 </span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 12713000 12713000 5000000 0 1289000 1289000 19002000 14002000 Fair Value Measurements<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables present the financial instruments that were measured at fair value on a recurring basis at March 31, 2022 and December 31, 2021 by level within the fair value hierarchy (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.548%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market funds </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.548%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="21" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market funds </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div>During the three months ended March 31, 2022 and 2021, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities. <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables present the financial instruments that were measured at fair value on a recurring basis at March 31, 2022 and December 31, 2021 by level within the fair value hierarchy (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.548%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market funds </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.548%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="21" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Level 3</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market funds </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div> 72107000 0 0 72107000 86095000 0 0 86095000 0 0 0 0 0 Balance Sheets Details<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Equivalents</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents as of March 31, 2022 and December 31, 2021, consisted of the following (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.548%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market funds </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> Money market funds are classified in cash and cash equivalents on our unaudited condensed consolidated balance sheets. Average contractual maturities (in days) is not applicable.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> As of March 31, 2022, the total cash and cash equivalents balance of $94.3 million consisted of money market funds of $72.1 million and cash of $22.2 million held with major financial institutions. As of December 31, 2021, the total cash and cash equivalents balance of $116.8 million consisted of money market funds of $86.1 million and cash of $30.7 million held with major financial institutions. </span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">160 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,351 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,046 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">    Inventories</span></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,560 </span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,160 </span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are recorded net of reserves o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $1.4 million a</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s of March 31, 2022 and December 31, 2021.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment, net</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,435 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,101 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,506 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,117 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,565 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,481 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,297 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,297 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Construction in progress</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,450 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,231 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property and equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60,253 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57,227 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">       Less: accumulated depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(36,779)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(35,882)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">     Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23,474 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,345 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the unaudited condensed consolidated statements of operations was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:64.571%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.767%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation expense</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,215 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">659 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill had a carrying value </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of $3.2 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of March 31, 2022 and December 31, 2021.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Accrued Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued purchases </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,695 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,755 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,121 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,147 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">356 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">676 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">     Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,172 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,578 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div> <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents as of March 31, 2022 and December 31, 2021, consisted of the following (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.133%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.543%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.548%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Adjusted Cost</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Estimated Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market funds </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,107 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,095 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> Money market funds are classified in cash and cash equivalents on our unaudited condensed consolidated balance sheets. Average contractual maturities (in days) is not applicable.</span> 72107000 72107000 86095000 86095000 94300000 72100000 22200000 116800000 86100000 30700000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">160 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,351 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,046 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">    Inventories</span></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,560 </span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,160 </span></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table> 49000 49000 160000 65000 1351000 1046000 1560000 1160000 1400000 1400000 <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,435 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,101 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,506 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,117 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,565 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,481 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,297 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,297 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Construction in progress</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,450 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,231 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property and equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60,253 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57,227 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">       Less: accumulated depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(36,779)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(35,882)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">     Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23,474 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,345 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the unaudited condensed consolidated statements of operations was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:64.571%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.767%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation expense</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,215 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">659 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div> 36435000 33101000 16506000 16117000 3565000 3481000 1297000 1297000 2450000 3231000 60253000 57227000 36779000 35882000 23474000 21345000 1215000 659000 3200000 3200000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued purchases </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,695 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,755 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,121 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,147 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">356 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">676 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">     Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,172 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,578 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table> 7695000 6755000 6121000 5147000 356000 676000 14172000 12578000 Stock-based Compensation<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Incentive Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, our board of directors (the "Board") and stockholders approved the 2019 Incentive Award Plan (the "2019 Plan"). The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the “2010 Plan”) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, restricted stock awards ("RSAs"), restricted stock units ("RSUs"), performance-contingent restricted stock units ("PSUs"), performance based options ("PBOs"), other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares of our common stock available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii) any shares subject to awards granted under the 2010 Plan that were outstanding as of April 22, 2019 and thereafter terminate, expire, lapse or are forfeited; provided that no more than 14,000,000 shares may be issued upon the exercise of incentive stock options (“ISOs”). In June 2019, 8.1 million shares authorized for issuance under the 2019 Plan were registered under the Securities Act of 1933, as amended (the “Securities Act”).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock Options</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The option exercise price for incentive stock options must be at least 100% of the fair value of our common stock on the date of grant and the option exercise price for non-statutory stock options is at least 85% of the fair value of our common stock on the date of grant, as determined by the Board. If, at the time of a grant, the optionee directly or by attribution owns stock possessing more than 10% of the total combined voting power of all of our outstanding capital stock, the exercise price for these options must be at least 110% of the fair value of the underlying common stock. Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Stock Units ("RSUs")</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also grant employees RSUs, which generally vest over either a three year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee’s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance-contingent Restricted Stock Units ("PSUs") and Performance Based Options ("PBOs")</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The compensation committee of the Board approved, solely in respect of non-executive employees, delegated to our Chief Executive Officer the authority to approve grants of PSUs. The compensation committee of the Board also approved grants of PBOs and PSUs to our executives. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient’s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the first quarter of 2022, we awarded PSUs ("2022 PSUs") and PBOs ("2022 PBOs"), each of which commence vesting based upon the achievement of various weighted performance goals, including total revenues, research and development revenue, product revenue excluding sales of CDX-616 to Pfizer for use in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, which Pfizer markets, sells and distributes, in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID™ product, operating expenses excluding cost of product revenue, strategic performance enzyme deliverables, strategic biotherapeutics deliverables, organization and infrastructure upgrades, corporate developments, and significant events that can be publicly announced. As of March 31, 2022, we estimated that the 2022 PSUs and 2022 PBOs performance goals would be achieved at 100% and 50% of the target level, respectively, and recognized stock-based compensation expenses accordingly. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2021, we awarded PSUs ("2021 PSUs") and PBOs ("2021 PBOs"), each of which commence vesting based upon the achievement of various weighted performance goals, including total revenues, product revenue, performance enzymes pipeline advancements, biotherapeutics pipeline advancements, organization and infrastructure upgrades, and significant events that can be publicly announced. In the first quarter of 2022, we determined that the 2021 PSUs and 2021 PBOs performance goals had been achieved at 146% and 73% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2021 PSUs and PBOs vested in the first quarter of 2022 and 50% of the shares underlying the 2021 PSUs and PBOs will vest in the first quarter of 2023, in each case</span><span style="color:#008080;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> subject to the recipient’s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2020, we awarded PSUs ("2020 PSUs") and PBOs ("2020 PBOs"), each of which commenced vesting based upon the achievement of various weighted performance goals, including total revenues, performance enzyme segment gross margin, major new biotherapeutics publicity events, strategic performance enzyme and biotherapeutics deliverables, and strategic plan development. In the first quarter of 2021, we determined that the 2020 PSUs and 2020 PBOs performance goals had been achieved at 88% and 44% of the target level, respectively, and recognized stock-based compensation expenses accordingly. Accordingly, 50% of the shares underlying the 2020 PSUs and PBOs vested in the first quarter of 2021 and 50% of the shares underlying the 2020 PSUs and PBOs vested in the first quarter of 2022, in each case subject to the recipient’s continued service on each vesting date.</span></div><div style="margin-bottom:9pt;margin-top:12pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation Expense </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the unaudited condensed consolidated statements of operations as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">936 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">477 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,902 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,210 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">   Total</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,838 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,687 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="text-indent:18pt"><span><br/></span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the unaudited condensed consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.391%"><tr><td style="width:1.0%"/><td style="width:64.278%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.690%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.840%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.692%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">806 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">665 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,162 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">542 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">872 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">470 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">998 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,010 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">   Total</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,838 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,687 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:27pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of March 31, 2022, unr</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ecognized stock-based compensation expense, net of expected forfeitures, was $6.6 million related to unvested stock options, $9.2 million related to unvested RSUs and RSAs, $2.5 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">related to unvested PSUs, and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$4.5 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">related to unvested PBOs based on current estimates of the level of achievement. Stock-based compensation expense for these awards will be recognized through the year 2026.</span></div> 7897144 14000000 8100000 1 0.85 0.10 1.10 P10Y P4Y 0.25 0.75 P3Y P4Y 0.25 2 0.50 0.50 0 1 0.50 1.46 0.73 0.50 0.50 0.88 0.44 0.50 0.50 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the unaudited condensed consolidated statements of operations as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">936 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">477 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,902 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,210 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">   Total</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,838 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,687 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 936000 477000 2902000 2210000 3838000 2687000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the unaudited condensed consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.391%"><tr><td style="width:1.0%"/><td style="width:64.278%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.690%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.840%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.692%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">806 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">665 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,162 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">542 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">872 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">470 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">998 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,010 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">   Total</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,838 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,687 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 806000 665000 1162000 542000 872000 470000 998000 1010000 3838000 2687000 6600000 9200000 2500000 4500000 Capital Stock<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Exercise of Options</span></div><div style="margin-bottom:5pt;margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the three months ended March 31, 2022 and March 31, 2021, we issued 77,600 and 118,437 shares, respectively, upon option exercises at a weighted-average exercise price of $2.33 and $10.33 per share, respectively, with net cash proceeds of $0.2 million and $1.2 million, respectivel</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">y. </span></div><div style="margin-bottom:5pt;margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Distribution Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> We filed a Registration Statement on Form S-3 with the SEC, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. The registration statement became effective on May 7, 2021. In May 2021, we entered into an Equity Distribution Agreement ("EDA") with Piper Sandler &amp; Co ("PSC"), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. Under the terms of the EDA, PSC may sell the shares at market prices by any method that is deemed to be an “at the market offering” as defined in Rule 415 under the Securities Act of 1933, as amended.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are not required to sell any shares at any time during the term of the EDA. The EDA will terminate upon the earlier of: (i) the issuance and sale of all shares through PSC on the terms and conditions of the EDA, or (ii) the termination of the EDA in accordance with its terms. Either party may terminate the EDA at any time upon written notification to the other party in accordance with the EDA, and upon such notification, the offering will terminate. Under no circumstances shall any shares be sold pursuant to the EDA after the date which is three years after the registration statement is first declared effective by the SEC. We agreed to pay PSC a commission of 3% of the gross sales price of any shares sold pursuant to the EDA. With the exception of certain expenses, we will pay PSC up to 8% of the gross sales price of the shares sold pursuant to the EDA for a combined amount of commission and reimbursement of PSC's expenses and fees. </span></div>During the three months ended March 31, 2022, no shares of our common stock were issued pursuant to the EDA. As of March 31, 2022, $50.0 million worth of shares remained available for sale under the EDA. 77600 118437 2.33 10.33 200000 1200000 P3Y 50000000 0.03 0.08 0 50000000 Commitments and Contingencies<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Operating Leases</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park of Metropolitan Life Insurance Company ("MetLife"). Our lease agreement with MetLife ("RWC Lease") includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the “200/220 Penobscot Space”) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the “400 Penobscot Space”) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the “Penobscot Space”), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the “501 Chesapeake Space”). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2004 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In February 2019, we entered into an Eighth Amendment to the Lease (the “Eighth Amendment”) with MetLife with respect to the Penobscot Space and the 501 Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Eighth Amendment, the term of the lease of the Penobscot Space has been extended through May 2027. The lease term for the 501 Chesapeake Space has been extended to May 2029. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the 501 Chesapeake Space for five (5) years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of $1.1 million a</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s of March 31, 2022 and December 31, 2021, and are recorded as non-current restricted cash on the unaudited condensed consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2021, we entered into a lease agreement with ARE-San Francisco No. 63, LLC (“ARE”) to lease a portion of a facility comprising approximately 36,593 rentable square feet in San Carlos, California to serve as additional office and research and development laboratory space (the “San Carlos Space”). The terms include an initial annualized base rent of $2.5 million, subject to scheduled 3% annual rent increases, an annualized additional allowance payment of $0.4 million, plus certain operating expenses. The lease has a 10-year term from the lease commencement date of November 30, 2021 with one option to extend the term for an additional period of 5 years. We have provided ARE with a $0.5 million security deposit in the form of a letter of credit and we commenced occupancy of the San Carlos Space in December 2021. We have the right to sublease the facility, subject to landlord consent. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into a short-term office lease in San Carlos, California during the second quarter of 2021 and this lease expired in April 2022. Our remaining future commitment pursuant to this lease is nominal as of March 31, 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to restore certain areas of the Redwood City and San Carlos facilities that we are renting to their original form. We are expensing the asset retirement obligation over the terms of the respective leases. We review the estimated obligation each reporting period and make adjustments if our estimates change. We recorded asset retirement obligations of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.5 million an</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">d $0.4 million as of March 31, 2022 and December 31, 2021, respectively, which are included in other liabilities on the unaudited condensed consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the three months ended March 31, 2022 and 2021. </span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease and other information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs, amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:63.825%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.546%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.767%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,831 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,032 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Short-term lease costs </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"> (2)</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,879 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,058 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="margin-bottom:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> The Company had no variable lease costs.</span></div><div style="margin-bottom:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:81.437%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.766%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.7 years</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.807%"><tr><td style="width:1.0%"/><td style="width:63.922%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.790%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.794%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,022 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,042 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of March 31, 2022, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:81.437%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.766%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ending December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022 (remaining 9 months)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,478 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,571 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,785 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,007 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,235 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027 and thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,719 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total minimum lease payments</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57,795 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,514 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lease obligations</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">47,281 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-bottom:5pt;margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Commitments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):<br/><br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:63.728%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Other Commitment Agreement Type</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Agreement Date</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Future Minimum Payment</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Development and manufacturing services agreements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Various</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,111 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Facility maintenance agreement</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">January 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,462 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total other commitments</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,573 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:115%">Credit Facility</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 30, 2017, we entered into a credit facility (the “Credit Facility”) with Western Alliance Bank consisting of term loans (“Term Debt”) up to $10.0 million, and advances (“Advances”) under a revolving line of credit ("Revolving Line of Credit") up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2021. On October 1, 2024, loans drawn under the Revolving Line of Credit terminate. Advances made under the Revolving Line of Credit bear interest at a variable annual rate equal to the greater of (i) 4.25% or (ii) the sum of (A) the prime rate plus (B) 1.00%. As of March 31, 2022 and December 31, 2021, we have not drawn from the Credit Facility. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our obligations under the Credit Facility are secured by a lien on substantially all of our personal property other than our intellectual property. The Credit Facility includes a number of customary covenants and restrictive financial covenants including meeting minimum product revenue levels and maintaining certain minimum cash levels with the lender. The Credit Facility's financial covenants restrict the ability of the Company to transfer collateral, incur additional indebtedness, engage in mergers or acquisitions, pay dividends or make other distributions, make investments, create liens, sell assets, or sell certain assets held at foreign subsidiaries. A failure to comply with these covenants could permit the lender to exercise remedies against us and the collateral securing the Credit Facility, including foreclosure of our properties securing the Credit Facilities and our cash. As of March 31, 2022, we were in compliance with the covenants for the Credit Facility.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Legal Proceedings</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the condensed consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In April 2022, we reached a settlement resolving a non-material dispute involving the Company's trademark. The terms of the settlement are not material to the business or the results of operations of the Company.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Indemnifications</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.</span></div> 77300 28200 37900 11200 1 P5Y 1 P5Y 1100000 1100000 36593 2500000 0.03 400000 P10Y 1 P5Y 500000 500000 400000 <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs, amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:63.825%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.546%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.767%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,831 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,032 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Short-term lease costs </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"> (2)</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,879 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,058 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="margin-bottom:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> The Company had no variable lease costs.</span></div><div style="margin-bottom:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:81.437%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.766%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.7 years</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.807%"><tr><td style="width:1.0%"/><td style="width:63.922%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.790%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.794%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,022 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,042 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 18000 26000 1831000 1032000 30000 0 1879000 1058000 P7Y8M12D 0.055 1022000 1042000 <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of March 31, 2022, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:81.437%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.397%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.766%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ending December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022 (remaining 9 months)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,478 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,571 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,785 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,007 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,235 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027 and thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,719 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total minimum lease payments</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57,795 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,514 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lease obligations</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">47,281 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div> 5478000 7571000 7785000 8007000 8235000 20719000 57795000 10514000 47281000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides quantitative data regarding our other commitments. Future minimum payments reflect amounts that we expect to pay including potential obligations under services agreements subject to risk of cancellation by us (in thousands):<br/><br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:63.728%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Other Commitment Agreement Type</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Agreement Date</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Future Minimum Payment</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Development and manufacturing services agreements</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Various</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,111 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Facility maintenance agreement</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">January 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,462 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total other commitments</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,573 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table> 5111000 1462000 6573000 10000000 5000000 0.80 0.0425 0.0100 0 0 Related Party Transactions<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Molecular Assemblies, Inc.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In June 2020, we entered into a Stock Purchase Agreement with MAI pursuant to which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million. In connection with the transaction, John Nicols, our President and Chief Executive Officer, also joined MAI’s board of directors. Concurrently with our initial equity investment, we entered into a Master Collaboration and Research Agreement with MAI (the “MAI Agreement”), pursuant to which we are leveraging our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:112%;position:relative;top:-3.5pt;vertical-align:baseline">®</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"> protein engineering platform technology to improve the DNA polymerase enzymes that are critical for enzymatic DNA synthesis. Under the MAI Agreement, we are performing services utilizing our CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:112%;position:relative;top:-3.5pt;vertical-align:baseline">®</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"> protein engineering platform technology to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A preferred stock. We completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of Series B preferred stock. In </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">addition to our initial equity investment and the shares we have received under the MAI Agreement, in April 2021, we purchased an additional 1,000,000 shares of MAI's Series A preferred stock for $0.6 million and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">in September 2021, we purchased 9,198,423 shares of MAI's Series B preferred stock for $7.0 million. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">d $0.2 million and $0.1 million in research and development revenue from transactions with MAI in the three months ended March 31, 2022 and 2021, respectively. We received nil shares and 1,428,342 shares of MAI's Series A and B preferred stock from research and development services we provided to MAI in the three months ended March 31, 2022 and 2021, respectively. As of March 31, 2022, we have 16,705,320 shares of MAI's Series A and B preferred stock that we have earned or purchased since executing the Stock Purchase Agreement with MAI. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The carrying value of our investment in MAI Series A and B preferred stock was $12.7 million as of March 31, 2022 and December 31, 2021. We had nil and $0.2 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in deferred revenue as of March 31, 2022 and December 31, 2021 respectively. Payment for the services rendered was received in the form of additional shares of Series A and Series B preferred stock.</span></div> 1587050 1000000 1000000 1587049 1000000 600000 9198423 7000000 200000 100000 0 1428342 16705320 12700000 12700000 0 200000 Segment, Geographical and Other Revenue Information<div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage our business as two business segments: Performance Enzymes and Novel Biotherapeutics. Our chief operating decision maker ("CODM") is our Chief Executive Officer. Our business segments are primarily based on our organizational structure and our operating results as used by our CODM in assessing performance and allocating resources for the Company.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We report corporate-related expenses such as legal, accounting, information technology, and other costs that are not otherwise included in our reportable business segments as "Corporate costs." All items not included in income (loss) from operations are excluded from the business segments. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage our assets on a total company basis, not by business segment, as the majority of our operating assets are shared or commingled. Our CODM does not review asset information by business segment in assessing performance or allocating resources, and accordingly, we do not report asset information by business segment. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Factors considered in determining the two reportable segments of the Company include the nature of business activities, the management structure directly accountable to our CODM for operating and administrative activities, availability of discrete financial information and information presented to the Board of Directors. Our CODM regularly reviews our segments and the approach provided by management for performance evaluation and resource allocation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating expenses that directly support the segment activity are allocated based on segment headcount, revenue contribution or activity of the business units within the segments, based on the corporate activity type provided to the segment. The expense allocation excludes certain corporate costs that are separately managed from the segments. This provides the CODM with more meaningful segment profitability reporting to support operating decisions and allocate resources.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides financial information by our reportable business segments along with a reconciliation to consolidated loss before income taxes (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:24.010%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.651%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Product revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,409 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,650 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,003 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,806 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,099 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,229 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Costs and operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,521 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,521 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,218 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,218 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Research and development </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.17pt;font-weight:400;line-height:100%;position:relative;top:-3.32pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,122 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,346 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,468 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,444 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,605 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,049 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Selling, general and administrative </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.17pt;font-weight:400;line-height:100%;position:relative;top:-3.32pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,541 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">720 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,261 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,818 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">600 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,418 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Total segment costs and operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,184 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,066 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,250 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,480 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,205 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,685 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Income (loss) from operations</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,915 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10,825)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,090 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">749 </span></td><td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,402)</span></td><td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(653)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Corporate costs </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.17pt;font-weight:400;line-height:100%;position:relative;top:-3.32pt;vertical-align:baseline">(2)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11,205)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7,728)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Unallocated depreciation and amortization</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,232)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(685)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,347)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,066)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.52pt;font-weight:400;line-height:120%;position:relative;top:-2.97pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:400;line-height:120%"> Research and development expenses and selling, general and administrative expenses exclude depreciation and amortization of finance leases.<br/></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.52pt;font-weight:400;line-height:120%;position:relative;top:-2.97pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:400;line-height:120%"> Corporate costs include unallocated selling, general and administrative expenses, interest income, and other expense, net.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides stock-based compensation expense included in income (loss) from operations (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.830%"><tr><td style="width:1.0%"/><td style="width:13.101%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.367%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.402%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.959%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.959%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.835%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.515%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.402%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.959%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.967%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="45" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="21" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Corporate cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Corporate cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,487 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">410 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,941 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,838 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">994 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">238 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,455 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,687 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Customers</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues for the</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 23.5pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Accounts Receivables as of</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-bottom:9pt;margin-top:12pt;padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Geographical Information </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,732 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,929 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">EMEA</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,127 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,282 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">APAC</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,481 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,821 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,386 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65,457 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:8pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-bottom:9pt;margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable goodwill by reporting unit was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:46.810%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.546%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.546%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.768%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of March 31, 2022 and December 31, 2021</span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,463 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">778 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,241 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:0.584%"><tr><td style="width:1.0%"/><td style="width:98.900%"/><td style="width:0.1%"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/></tr></table></div> <div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage our business as two business segments: Performance Enzymes and Novel Biotherapeutics. Our chief operating decision maker ("CODM") is our Chief Executive Officer. Our business segments are primarily based on our organizational structure and our operating results as used by our CODM in assessing performance and allocating resources for the Company.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We report corporate-related expenses such as legal, accounting, information technology, and other costs that are not otherwise included in our reportable business segments as "Corporate costs." All items not included in income (loss) from operations are excluded from the business segments. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage our assets on a total company basis, not by business segment, as the majority of our operating assets are shared or commingled. Our CODM does not review asset information by business segment in assessing performance or allocating resources, and accordingly, we do not report asset information by business segment. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Factors considered in determining the two reportable segments of the Company include the nature of business activities, the management structure directly accountable to our CODM for operating and administrative activities, availability of discrete financial information and information presented to the Board of Directors. Our CODM regularly reviews our segments and the approach provided by management for performance evaluation and resource allocation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating expenses that directly support the segment activity are allocated based on segment headcount, revenue contribution or activity of the business units within the segments, based on the corporate activity type provided to the segment. The expense allocation excludes certain corporate costs that are separately managed from the segments. This provides the CODM with more meaningful segment profitability reporting to support operating decisions and allocate resources.</span></div> 2 2 2 2 <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides financial information by our reportable business segments along with a reconciliation to consolidated loss before income taxes (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:24.010%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.647%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.651%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Product revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,690 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,226 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,409 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,650 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,003 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,806 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,099 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,241 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,229 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,803 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Costs and operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,521 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,521 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,218 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,218 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Research and development </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.17pt;font-weight:400;line-height:100%;position:relative;top:-3.32pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,122 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,346 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,468 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,444 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,605 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,049 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Selling, general and administrative </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.17pt;font-weight:400;line-height:100%;position:relative;top:-3.32pt;vertical-align:baseline">(1)</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,541 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">720 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,261 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,818 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">600 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,418 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Total segment costs and operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,184 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,066 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,250 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,480 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,205 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,685 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Income (loss) from operations</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,915 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10,825)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,090 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">749 </span></td><td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,402)</span></td><td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(653)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Corporate costs </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.17pt;font-weight:400;line-height:100%;position:relative;top:-3.32pt;vertical-align:baseline">(2)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11,205)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7,728)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Unallocated depreciation and amortization</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,232)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(685)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,347)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,066)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.52pt;font-weight:400;line-height:120%;position:relative;top:-2.97pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:400;line-height:120%"> Research and development expenses and selling, general and administrative expenses exclude depreciation and amortization of finance leases.<br/></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.52pt;font-weight:400;line-height:120%;position:relative;top:-2.97pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:400;line-height:120%"> Corporate costs include unallocated selling, general and administrative expenses, interest income, and other expense, net.</span></div><div style="margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides stock-based compensation expense included in income (loss) from operations (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.830%"><tr><td style="width:1.0%"/><td style="width:13.101%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.367%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.402%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.959%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.959%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.835%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.515%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.402%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.959%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.539%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.967%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="45" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="21" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Corporate cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Total</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Corporate cost</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,487 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">410 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,941 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,838 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">994 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">238 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,455 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,687 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div> 30690000 0 30690000 10226000 0 10226000 2409000 2241000 4650000 4003000 3803000 7806000 33099000 2241000 35340000 14229000 3803000 18032000 8521000 0 8521000 4218000 0 4218000 6122000 12346000 18468000 6444000 4605000 11049000 3541000 720000 4261000 2818000 600000 3418000 18184000 13066000 31250000 13480000 5205000 18685000 14915000 -10825000 4090000 749000 -1402000 -653000 -11205000 -7728000 1232000 685000 -8347000 -9066000 1487000 410000 1941000 3838000 994000 238000 1455000 2687000 <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Customers</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues for the</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 23.5pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Accounts Receivables as of</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8.5pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div> 0.61 0.28 0.11 0.10 0.14 0.65 0.62 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> </span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,732 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,929 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">EMEA</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,127 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,282 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">APAC</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,481 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,821 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,340 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,032 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table> 3732000 4929000 4127000 6282000 27481000 6821000 35340000 18032000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,386 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65,457 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:8pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table> 66386000 65457000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable goodwill by reporting unit was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.953%"><tr><td style="width:1.0%"/><td style="width:46.810%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.546%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.765%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.546%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.768%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of March 31, 2022 and December 31, 2021</span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Performance Enzymes</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Novel Biotherapeutics</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,463 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">778 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,241 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table> 2463000 2463000 778000 778000 3241000 3241000 Allowance for Credit Losses<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets allowance for credit losses (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at beginning of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">416 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">74 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provision for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at end of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">416 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">74 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-bottom:9pt;margin-top:12pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize accounts receivable by aging category (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:18.487%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.719%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">91 Days and over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24,244 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">89 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">953 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25,197 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">91 Days and over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,697 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">536 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">569 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,151 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,256 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24,953 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div> <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets allowance for credit losses (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:64.473%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.740%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.545%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.742%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three Months Ended March 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at beginning of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">416 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">74 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provision for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance at end of period</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">416 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">74 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/></tr></table> 416000 74000 0 0 416000 74000 <span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize accounts receivable by aging category (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:18.487%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.389%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.719%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">March 31, 2022</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">91 Days and over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24,244 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">89 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">953 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25,197 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Current</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">31-60 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">61-90 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">91 Days and over</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total over 31 Days</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total balance</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,697 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">536 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">569 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,151 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,256 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24,953 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table> 24244000 27000 89000 837000 953000 25197000 22697000 536000 569000 1151000 2256000 24953000 EXCEL 77 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( #V$J50'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 " ]A*E4P6P.W^\ K @ $0 &1O8U!R;W!S+V-O&ULS9)1 M2\,P$,>_BN2]O335@:'+BV-/"H(#Q;>0W+9@DX;DI-VWMZU;A^@'\#%W__SN M=W"-B=)T"9]3%S&1PWPS^#9D:>*:'8FB!,CFB%[G&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" ]A*E4[59+QSP% !>%0 & 'AL+W=OUYER3713&ZKJUUCKY:%G*6_.(J4N1 M\!C>+(6,F(9;N;)4(CGSLZ HM*AM]ZR(!7%K-,R>S>1H*%(=!C&?2:+2*&)R M?\-#L;UN.:WC@^=@M=;F@34:)FS%YUS_ELPDW%D%BA]$/%:!B(GDR^O6V/DX M<:D)R+[X/>!;=7)-S% 60KR:FWO_NF4;1CSDGC80#/YM^(2'H4$"'E\/H*WB M-TW@Z?41_2X;/ QFP12?B/"/P-?KZ]95B_A\R=)0/XOM+_PPH*[!\T2HLK]D MFW_;Z;2(ERHMHD,P,(B"./_/=H=$G ;0,P'T$$#?!3CNF0#W$.!F \V99<.: M,LU&0RFV1)JO 6=U0%/ 3DY?$=2X(M2FM MX#.I"]\3NU,5_8:-6^3(S>!<-$=_CQ=*2UAV_R"0G0*RDT%VSD!.A9?"9M#D M99_PJH3CX8[=?D)8= L6W68LGE(F-9?AGCSS1$A=Q0B'TC+E"*->P:C7C-&, MRT#X9D$16->5*<*1CDOHFP\?:I9!O^#6;SAGDH&,92IT/ETXUI*%"LO75<'I M"L6YC76@]^0N"#EY3*,%EU5<< S;=MINIV]W$3Z#@L^@"9]GO@K,9H%D/;*H MD#!QS,SA!9EK6&%$2#(1 M::SEGIA?KU1!''UZBY$\462G"=2QQS,L:H ME>;@X)+^GMI,*,U"\E>0G-\@..*@8_=D$2)LF&A2DGW]F7-I@&2: JRDI&C'?I' XN^>"J M?A"OR'P?+4182;?&,Z9_SK':LW0)BNOX,67D=N>M60RE\3D3JP%Z',^G8ZQ0 MHZ4IT$:F,$FE-"5(7G=DZ0+!2"MK]AK$+^\K_;?,2C.@C&(--M-\41^#MH*LK(2OW00W. Y.P!L:>!\TGU S-9/\VXG)E%MC/@*#7E91PH%I*I=I3 M7*R/25I#MP^"'R4LKIY''*:64*GZ%!?LXVY\(Y#SK'LFGU,-/AD;+:OL7'/D M;H9L#EDVX$6N#P':@)'/[ M6%- 2VVGN#2/H6_RL][I+F15:;FI :B;.K<4=[>F2#]V<7>!,M;]A8.OW<'# MREU7 U9WP%#*NXN+\7M6A_;W/"\<[LG!6)72[N)"?'2;TU1A'7D-7+OMT+9; M2JHW\!4$L#!!0 ( M #V$J526F.R%4 < &P> 8 >&PO=V]R:W-H965T&UL MK9EM;]LX$L>_"N$K[K9 4HND'M,D0)M@[Q;8AZ#9WKUF)#HF*HE:DDZ:^_0W ME!3+%BG&N[B^2"5K2/TY',YO2%T^2_5-;SDWZ'M3M_IJM36FNUBO=;GE#=,? M9,=;>+*1JF$&;M7C6G>*LZIOU-1K$D7INF&B75U?]K_=J>M+N3.U:/F=0GK7 M-$R]?.:U?+Y:X=7K#U_$X];8'];7EQU[Y/?KR"KB-2^-[8+!?T_\AM>U[0ET M_#%VNMJ_TS8\O'[M_<=^\#"8!Z;YC:S_(RJSO5KE*U3Q#=O5YHM\_AAYMHQ4J=]K(9FP,"AK1#O^S[Z,C#AK@>*$!&1N04QO0L0'M!SHH MZX=URPR[OE3R&2EK#;W9B]XW?6L8C6CM--X;!4\%M#/7-[*M8%)XA>!*RUI4 MS,#-9U:SMN3HWG:LT0]?6[:K!#QYC\[1U_M;],.[]^@=$BWZ?2MWFK65OEP; MT&-[79?CNS\/[R8+[_Z%J0^(XC-$(D(\S6_"S6]YN6^.CYNOP0M[5Y"]*TC? M'UURQ4XIWAK$M(8Q7P1ZI/L>:=]CO-0CTUL$OD&EO>!_[,03J^$57E\-7:5] M5W;Q/5T7,4FCR_73H4M<*XS3K,CV9D="X[W0."CT"]=&B=+.O)5Z!I'7^\*G M<^@I.5"0I/E,I<0;(V"5#<.VJ MB7.-XB19")I\KRT/:OO:/HBZAI"9O.<5F+L"DSR>"72-\B3)_0*+O< B*/!W M:2!<-K/ \4DL7/?$"24SC:X5S:-T022.I@P)\UJ<.&G69X4/K(ZU33S 82#<*=XQ42'^O;/0U3T&I36.]"-53*]MS*)^_<6/39U\BF!>D.3A: M&(A@J+,P.WGM'ZD()%U$T3VP^L_C0['BL M$[QPF%[]IN!<;LYWFH\Q ^7C;QU7S(CV$=4<"O! (O%0BQ384>\QBZ,B65 _ MX0V'^>97/]0A_$WM+M"<'..:X 4DXPEY.,R\.P4[/ B'/EYL.'4VU)9ENDPC M-,[F=/:981HON)A,Z"-A]/U3RNH9B@B?-.+"C))X7MB\974L;$(>"2/OMSXG MV]7Y=LHC+LA(,J\.?4;9 IG)P8XES+HA*P>DN1@C-"'._/KLXI3F"]4KF8!' MZ$E[JEHP*!;[E!8JW,G$(Q+FT;YT[]C+4MU./(PIXGF>]UB18BE[D(E#),PA M$*AV%D*RL:QG]M#"*]+%3)K'="[2 R/XMT C,M&(A&DTQ#D;M1[,DE>J#Q,X MF^=CGQDLB 6RDXDFY(V]T!A+G53]"9#<#$D8R8=://8.]N'%.Q(/,@KBK%F/ M550LK8F)*R3,E5N^X3 2NV^"2G7'@?'1@'<2)\C(D\A.//!((V==NU8DR9?2 MS@09IAQVP"N=UJ\>,4IHM9'(Z(8:&$3/W=H]"&SOE<3AYCV0\ M<(G3N9-]5EF\L#3IA" :1M#/LGT\-UPU?SG*J6\QHTFZY/D)3C0, MIR&WU-,PPG%"/5LN2N:[1J\57M)Z<% 7WI@-$?V60G=KE:4IG0/%8Y;CHEBH MINF$/!I&WHUL&M'O'(9]HST;@@#@L"FW&X5?I>$(1]YL$>[9?BJXT!TK^=6J M4UQS]<17U\AW(OM_Z.AX]!-/:?C\[][(\MM6UA57^A_C1BEX1CLQD(89")OR M,45H^XXS]"[Z$$41MMD7/;$:,C0L-J2W3/&/*#F#9\,-3,/.;*42_^75F2T6 M.1):6Y#VV_J=T08N8(J\4^)2TCGK#9D<#W:"*'WK0+%I@)VGC!1'D7^L'U&: MG-$HWC^!T<(O."I>?_&[ 0I5FWA_8:K<_OUO@*N/KX?_O>4M+WGSP-71(_@+ M'7:\_]I3OW@]Z6+:R1HADV-/3ABG88Q_JBIALS'D#7NFZ'GM2+14B=.)V33,;*A'=\UN*"LJOA&E\&X(J8OA MI<5"G1=/Q([#Q!YRL?:L=^_G")>^&$H<.J\O?'9I3(L%=,03I^-33D&PO=V]R:W-H965T&ULI9=1_ MBH;I0S*3!@EC;'=LSR1..^W#S7B:R]VS K+114@^2=AM/_VM@&"P,;9[?C 2 MVEU^?[&PRW2G])M)&;/H1R:DF7FIM9M/OF_BE&74W*L-D["R4CJC%J9Z[9N- M9C0IG#+A!QA'?D:Y].;3XMQ2SZ:2"RIBA9Q?8H)L72?.$P\HMNEE2S:1-F>4Q M%;?H(WIY?D(W'V[1!\0E^C-5N:$R,5/? I^[BA]7+(\E2W""Y0^J[]& W*$ M!T&'^Z+?_8G%M3MIN_NP*_76!/76!$6\\$2\;W++C(64M8A:%"MC7<+P3F%E MI*B(Y)Z<[9Q,, 81VR9_AU78M&IA#FK,02_F$ULQK>&>:;9E,F==>(/C"TXPQ.> _:]92,*P5#*]34' :1'.;*LU_P8)34I[MQ"_C#QM< M0US\#OC/V[4$1+6 Z+<$<&/R\_#1$=0A=I]%"WA4 X]^"QB*D+'P9N%R?8YZ M=):ZSZ)%/:ZIQ[W4"Y5E4);^1YJ/+TOSLV8M_$F-/[D"_^H"R@TY+@R6D!C5I,KK\)5Z1]%?X2$5V6 MO2+V59/TE\V'Y!]H6XJ&PMA.RN,R. F#Z BQHUJ2:#09G0#-'F?):6VY\]O0+9%SK27^FNZ1:J4*V'(!B1P>$.G#-KH^XK&NDO:9=T#%6( MJ.<5VF$2A,,#.+_1FKKO NCQUEP:)-@*O/#]"(+HLM4N)U9MBF[U55GH?8MA M"I\G3#L#6%\I9=\GK@&N/WCF_P%02P,$% @ /82I5.W=AP;!! (Q( M !@ !X;"]W;W)K,*?1:Y*6\G6R5JFX\3ZZVK*#RFE>LA"=K+@JJ8"@VGJP$HZEQ*G*/ M^/[4*VA63A9S<^]>+.9\I_*L9/<"R5U14/'SCN7\<#O!D^.-AVRS5?J&MYA7 M=,,>F7JJ[@6,O#9*FA6LE!DOD6#KV\DG?+,DD78P%G]G["!/KI&F\LSYBQY\ M26\GOD;$_\A2 MM;V=)!.4LC7=Y>J!'_Y@#2$#<,5S:7[1H;'U)VBUDXH7C3,@*+*R_J>O32). M'"".W8$T#J3O$(XX!(U#8(C6R RMSU31Q5SP Q+:&J+I"Y,;XPULLE*7\5$) M>)J!GUHL>9E"45B*X$KR/$NI@L&C@C^HEI*(K]&WB@FJLR[1Q5-)=VD&-I?H M(WIZ_(PN/EPBN:6"2925Z/N6[R0M4WF%/IR-YYX"N/JEWJJ!=E=#(R/0 O25 MEVHKT6\ ,3WW]X!FRY4+( I"?^[M3S,P MM,*)'Y#6Z@Q#V1R@UBKY6>=D[RTS;^U$E>Q]?3M!(\ MW:W4,0VV+-2!HA-^2:2+>9:$H5%(<&+/0=QBC)T8'YAD5*RV)@TI ,QYI=>7 M#60\>#^>17Z_5!8K',78#C-I829.F(^PGT)YKM"&E5"JW,"E*6P\F52Z='MK M6I,AEBCVHQYBBQ4.9B.)G;6(9^^8^2O'%+,!G@U+',1DV@,\M"(Q3F([8.QW M6Z[OA/PGEQ*M!2^.8&%CM6Z/_N#]'Y,@Z:.TFI"?KX+#;) MR*3$W=Z.@[=K_,R@SV)-_I"BK_;)V(3JU3F,^T M9C-_.AV!VDD'=FO'O>#[ MS+1E@/9ML.$ Q:P/=&@RHB"XDQ <.4'^!1UM#CFU0HH&J@7YBP;KQ&(&^1LK M=:<^V"T_1V@(%G/="5WISC);H0MH@%*>YU2!_(!&_CX3=;(Q$)UW8K5T_3,L.B.D>=M4- U$H"IC5 MT$.O7HXMZDZWNL (GE4[(Q.ELWRUFYWN4,^FD3\;3#N+64AF_@C=3O>P6_C^ M1[JGI781'NJAE;#%;)PPZ623N&7SWM7>GI$AX2_GOA.'8A;'=Z1^.'F'\+D[>=]:!4G?C_MWLEQNV!B8[Y"2%AC MNU+5I]'V;ONEXY,YW_?NW^&;9?V]H@M3?SZ!L^8F@^-VSM80TK^. 9BHOTC4 M \4K MM6*#:Z3;=F7Y%(\LI6Q0.VDT6*SFT<7T?#GS]L'@F\2=.]B#C^3.F'M_^%S. MHXD7A H+\@R"ERTN42E/Q#)^#)S1Z-(##_=[]H\A=H[E3CA<&O5=EE3/HP\1 ME%B)3M&-V7W"(9Y3SU<8Y<(7=H/M)(*B3@ ,,_S@&0 M)$\!LQ< Z0!(0Z"]LA#6I2"19];LP'IK9O.;D)N YFBD]E5.%BD0-3P9<6K?!9=W!TJT572K8YAJ.5L&Q2(\E"J&-X M![?K2SAZ M_NFVW$RMSS;WQ19UA_ 3+JI**AF*<:5)TN,K;F>CV]D_W/;LE34-NU*!O166 M)#Y;I)[M++#Y<;#-D]EI%F\/$_>WS31-1IM>9GSP?S9H-Z%M'12FT]37<+P= M)\-%:(@G]PN>&'V#_Z;IQPU7:"/Y_U18,>7DY#WWF^U;N#^0:4,7W!GBG@K; MFJ<>6F_ [Y4QM#]X!^,&PO=V]R:W-H965T&ULO5A;;]LV%/XKA%%@#3#7(JF; MB\1 8V=8'U8$2;L]#'M@)3H6*HFN2-?IO]^AK.I&BDZ"=2^V9'_GZ#L7\CO4 MY5%47^2.B[R45[.=4ONWBX5,=KQ@\HW8\Q+^V8JJ8 INJX>%W%>59R6\K) ]%P:KOUSP7QZL9GOWXX2Y[V"G] MPV)UN6IU/OO DHT/X2DVP2T3/ =,* - ;DJ0:T,: C TBEW2+SN1I[R2OZ";KX=,?4>O/Y7LD&: OD!S].E^@UZ_ND"O4%:B MCSMQD*Q,Y>5" 4?]I$72\+D^\2$3?#X*Q7*+V=IMMA9% 6U7$[58;]S6[U*( M ]J6Y>B69>D<0EBS?69G9W'#MUF2J:&3!52H+1-IRT1JK_Z$ MUVO^D)5E5C[ JLA9F7#T&DC*':NXO$!,P:.2-XCB7Q'QB&?+W\E_4/O7N\>W M5>B3F'H>H+]9F-&6&7TFLR>PN3[Y#'ML<.1AC[9<3J1-6#A$;$Q$0,, CV W M)FQ.P]#'2WOP?AN\7QO2B>#?EPGLSA*J 1'75Q>Z_ZWKY>\[D><(=K>15DL'#885*_40D]KJ+9;\W;,D/C%; ./9I-$J^%3;9+V'+ M.GP9:QO3T&P30D9-L@E-GGW0@&74LHR<+.] R5B?)--5.Y?9=612H]9$9"^.*7 P.7C3^S7N- Z[1>[L4&2OCT7N0I\N\;@^)LZHCRF* >P\,1W7 MQ\3-:1R%RZF5TPDHCO[_T0AWDHG/:.9+AR-L:F(4A9XWKH$%YEC6G7ABMWH^ M:SQJ? T:)AYK)C9%LP\:'DD MDTGBELG_>%(B%CW#_6-DD_YSL&$TG>@1M^BY)B5BRMD\IL'X)'P6-J3621XY M>E&QLKAN/@XTUB$,:C%3 @ALKL042 M!'YH*+$%-Z?+T O\4?R+WLL^_2X7@H%A0Z*<;\'2>Q-!#JO3Z]'3C1+[^OW? M9Z&4*.K+'6<@P!H _V^%4#]N]"O%]B7UZE]02P,$% @ /82I5'_,N!]< M!P -AX !@ !X;"]W;W)KDGCCM>89)R,()2:@ Y$M_?1<@+4H$"#MS7FR2 MVEWL?MC=#Y>+1ZE^Z!WG!CTU=:LO9SMC]A\6"UWN>,/T>[GG+?RRE:IA!E[5 M_4+O%6>54VKJ!4F2?-$PTR\?+&9Z] M?/@F[G?&?EA<7>S9/;_EYL_]C8*WQ=%*)1K>:B%;I/CV/K]8 M_^2"AV#NF.9K6?]75&9W.2MFJ.);=JC--_GX']X'E%E[I:RU^XL>>]EDALJ# M-K+IE<K3=?_;4 W&B ';""J17(&.%=$*!]@ITK)!/**2]0NJ0Z4)Q.&R8 M85<72CXB9:7!FGUP8#IM"%^T=MYOC8)?!>B9J[5L*YA%7B%XTK(6%3/PL+@F48M?F'J/*'Z'2$)( MP*'UV]5Q*)ZX^H:74^IGT=#CS%)GCT[8^V//%3.BO>]J2QC!]8>(W?1H-W5V MTPF[7Z$9U5('9[S3S)VF[3@/5_."9OG%XN$4QH#4*LF+H]296]G1K2P:[L?J M?U M73@15'(,JHD'=&EG^ MF-ON7Z%2-C:H2> +;WA:T&+DHR]$\F(9=G)U='(5=?+WOP_"/"/-RX-R:88X M4RUXO%6R@735\%KN'-(5?P ^WMM5Y/R?I.+<" M0IB2<(@X&<@DB0;YA]EQA5K9SEV5">"0,#,D_O#+D8VQ9RH.EH3U[9GHO M(:NQ?[[8*>KG#@["*& M@<=PG,BZ3E/+]GYNN&I>==:GG3G&*S+V-B"6XXG.CP=^PG&"VO M5PH@5=#9 MVT,X(WS2L1GAE7] C.(I. =RPG%V^OJ6A5'0[1"18%R,UWPAN3Q-)W*9#(Q# MDF@_MWU+_\0"C@Q,07"\[1R CV%-83= >V7Q /JV5<*!R1TYA_#HC9[%F27% MN+!#8B3+IN 8V(;$V>9&R9+SJE\L:%;_K/L^NXQ[9D!DJD+(0#_D=?KI5N\V M^>P"HF'J!S>V?YZLF8(N!T@G2SQN"HA-H3TP$WE]*W16-2*0C4&??=Z!8D^* M<3\*R9&,3K ]&2B*Q#=+_:+D[54S< N)<\MY O(GKDIA.1NR4-ME.C062S=A M5 *[HF),*"$A0J80&?B$Q/ED+;6QJT+(--7-)>P?V_YPZE&8G:L;**'M"W3! M" +\D7J3Z@M-9>+ ,"3.,-_9$[<+#E$=]P?]=E?OF+(E9$SM#G3L3/2AL$>F MPBR$32N!U%!,'?/Z->^R'X;IN"U*@MQ$RF\ MSN"+334T.O 2C>^$; @5+Y7=++ML@G#>=4%9]!^@,[?]E@/V?D:)TLZ9_3T4 M"0WLA0C)TO'&-217K+*)":$#%](X%Z[?[#UB!L'2#-WQ>]&V=HX@W^P'(" A M0\=\U]3G0EA @-OCX )R0*UX1%";7BZ?ECM'82!7&B?7GT>!VT7UJ_'[A+K* M:3KFW8 8E&21XW'XH0WB&9SGX9^<)\8/%&\/^WW70V S6PE=UE(?E%M@N)BW M-5@4;7<7 6TS1BATX%@:Y]C/+:SO 5W7W(+P^1SI98XO,D$8=*!0&J?0,S2& M$X]A 7 \,GL[S=*!9FF<9M=L+^S ;D]<"0/S<,)>=P<#+AGTS".P^3RZ]):I M :%L.7%:1P>NI*P,+TC@+.L,6^'&-!@'PR6N5DGS,#@$Q M>Y P;KV;D!S.EZNIKC.0(8V3X;?SU@(-R$ZR/1J$0%WB=>_!&'UJ(TGA=9: M%,83%9(.%)C&*?"[M!GZ_Q%?/T3^2F\,B 5[8T@NU!L7)Q=J#5?W[F)2(W>N MT]TG';\>+S\_NBN_T?=K_&'=76$.9KH;U2], 4-J5/,MF$S>+P%^U5U2=B]& M[MVUW9TT1C;N<<=9Q945@-^W4IJ7%SO \:KXZE]02P,$% @ /82I5$81 M]BUU!@ RPX !@ !X;"]W;W)K%[\GA3>-#IQ,> MPV89^T"Z%J?.+E='1]\M.VW<[/Q4UF["^:G/R1I'-T'%W'4Z["[(^NW9['@V M+KPUFS;QPO+\M-<;>D?I?7\3\+2-=RI0W_+#Z_IL=L2 R%*5.(+&OSNZ)&LY$&#\.<2<35NRX^'O,?I+R1VY MK'6D2V]_-75JSV8_S%1-C7WD5O M3:U+;[A:W02*Y)(>J7AIG':5T5:]PR*A$5-4OSU?QQ302K]_!M&3"=$30?3D M_W/_GP*IUTZE%EDIYQ-%E3P_JNQTKDVB6E4>M7*Q_!KHP$,S91ZGS.?B^N47 M/ZQ61\\N?==KMYO+X_&S<7E+'Z_D.*TPQ<.JSV%NVHA MU@9\Q[R.IC8Z&.#G0CU$BGDT<:%^)56;6/D["G.,Y!VDII<0F'ZKR'W8=7#G M!8\L@NH#^# .^[8ZP<%"&(*ZTS830P$^55DC!3>\YP:%-6Z#<(GY-:[&8 HD M6%>^ZR@P7>8#81.\KB"/D1U<[M:(#!\'<3(4-?VXG9^ K!X-,D34;D"H86XP" M=TS5&FH4SI &S!24V5$T#M]"V:^NKR^>O/U7&U;KY Z)W I'B_NJ40./4I&F:AILY4A9F_ M+:M6"BWJ@D)H:>JD$1]%ZO/:L@EIRQV!_0D=[MFM:K6UY#:,U6>\X\Q2F-7:,5S M#=&@PB#GY:W5:S_4951,3!X$9$V *8HW8#6NZ'S,?<_]R+,SJ-ZH_B--ATW_ MRF])3IAM48_2<?"!(>K MGU$17MFE\JTQK4Y?:L_+!\K>O'SF@<4-7[TL-7 ]6GS_[0R'KWPZE8?D>_E< MP14)19>?.!W1,FR ]XW'Y6UXX VF[]?SOP!02P,$% @ /82I5&.1;:J7 M"@ ?1X !@ !X;"]W;W)K^X%^"''3AKO MMK,OMD@ ]POWGGL 'F^LN_:%4D'<5J7QKT=%"/6KR<1GA:JDW[>U,AA965?) M@$>WGOC:*9GSHJJ9WE^[DV#:AU$9=.N&;JI)N>ZI*NWD] M.ABU+Z[TN@CT8G)R7,NU6JCPH;YT>)IT4G)=*>.U-<*IU>O1_.#5Z2'-YPF_ M:K7Q@]^"/%E:>TT/%_GKT90,4J7* DF0^'>CSE19DB"8\5N2.>I4TL+A[U;Z M6_8=OBRE5V>V_*CS4+P>'8U$KE:R*<.5W?RDDC_/25YF2\]_Q2;.??']2&2- M#[9*BV%!I4W\+V]3' 8+CJ8/+)BE!3.V.RIB*]_(($^.G=T(1[,AC7ZPJ[P: MQFE#F[((#J,:Z\+)J?3:"[L2ETYY98*,L3*Y6,1MHK&%7AN]TIDT0!)@"T#K,_'.FE!X<6YRE>^NG\"#SHU9Z\;I M[(L"WTFW+YX=C,5L.IM]0=ZS+BS/6-ZS!^3=XZ7X]WSI@T,:_><+"@X[!8>L MX/ OCON?KU4\+.32:9/INE0\?&:-QYH\CO]2*)1@9JM:FBW):XQLS.Q-L"P#X8-69 >MGU>*8<(B">C'^?SR]%3=H]FRKI& M&.2R5,(U)($&G%HW);O)BVG>0F6-TT&G&>>W62'-6B$H5:4]0]J3T>+\#**! MK+ C0&$U\%F;B+@T<]D$D5N(,C9@("N;'):4)6L:3B15F(.93OW6:(K.&=I^VR*O.E,?MCR]L4T(KPH,60?'%FD^-B1C,F\-A[$5_16#O M$M8Y%2RM">@V<>=MX\3* '7_(R:4L.:UBAY3A\^5(21\S,D?<;L@/9ZMO]3)@ ?[0E/'#^YUK MGY76-RB\<1J@A.;XC!^[Y\(/"GY8)FW!-S[&.E92Q0ZBQ9^P 9;299)"P%I?')QG\A%&(FD";?M@$)",XB M/OW];T>S@Y<_^+C!7\@OLH\L:^J4+L1R!!+"($V\!Z)RB#&C!RYC=R(>@<&W MR?RUS: M)6#)8-%@7/F@*T8OKRE?'\CR_QGHVA@O+RM%K @-0?IOK^QQ&W=; M:Y/2JI(&;)"F4$:OB+YQ[LO\$^A07(II$G$$[)68 Z1U7 8R-&V6H!:AM]L% M2H@ZMBNQDMJA,U"P>[MJZW6$4):^FX9DB ?-XR%:!T[L$MX_)I<'6PZ"EUT7 MMH2]_CM!!1RVCZL/_,JD+\0*&?@8LV*"M.C?.DS)32C41E(CB588HJ5M3JG;FH5] %(Q+/\WB=EB8TCDHDG)<69S=:L!B105!*I<-&H-&T5ET$9T%VI[F"4G>GNH5+H-;5F0ER4G8\H[EJ3< M38I '^8QM9AF!@ MDYMB0KZ!E%1;!*2%7A=P&VQ8.:*P,1UH*PABEXQA#3Q6F 2H ,I"U=!%-">9 M D3Q,6JS0_^[(L9>N37O)C096MEM3'>027 6 !%&]+2:MBB NX=NR9C4;A15 M06SQJ"=C:6_;_3.BM. C%,DUA-(OPQ811R'P)63MWL1;#?0[V@AWW99]DLIH M/#AU.KRE@,507J$-&4H=F=O/CW4[4R\,.MTV=<>W\\6IP+F+JG.^^ ":N,\C M>]/#L3B7'",O+E%"BX)VZLDO8"29F+V8/AV#2RT#,\+9#^]LSN2L3\KS6U(. M$"BBVB>+9AEX\>'+Z=YS6D^D$BG)BY*8<'3S?.R1S+B@,KIL\"#9UY[.8 MFF+74PRT1UBNS+=@%0 %PUD95>V=E8 HK$&(/X*A AS$&1&W]W4+CPPO<+CI MCLGGE*@D@XU"DY3^FN@U&&PZFY 20"?A&4[="#-%8W"$WZ,[.3IS@8G2!6![ M'3!PJ=IU987) ^LC[N]EO?6;9'U&UMO4(!/A7;:7'SN%0&0B\#FQ.Q>!T)5\ MSS$@#W=&0XY3%^_O@][AX>^N(&YXGED57SDP$+1\5[7I#33%.58R M,?OLRH2L1AK'-QCO"N"^^N"^W)9@&)J",/T#Z$J4NR68U..H.'VM^ HVQC"Z MP#*Z\R0BVPDJ))W[!Q!#7>)#1Y;..K)T-FQ9;[NX+7:O$#XG(+ $#%OUH C M,G1Z'TKPP-[TQ1 #Z&>,&53? ,?:FY?W=$/1IOL=()A-G_Z!HA:/K>H6T-C6 M@4^?53=;'#3=7UT8'US3AVA'M_R2^C'U"_2G)E.)-= =PRT-<7NA R[>Z-5V MR,Q;&[*!#3G%4M\Q9#@!29PX$/.HGD#E@T#Z#$P!C9^N^F@SDI8=;[@VMM]Y MHO^IYCD!9-XRB9T*L%S^&5_KP>Y+2,Q40^W2VHF*%HN5'1X] M%:_$6YD1B=ZY;SI/2(?'^T70[4QG=;RQH?V[ YA HQN=4RNK$RDAUICKSL$N ME]*9MJXCF/,A*Y$ESJZQ*&(%QYC0BD+7B>A;!H2=TR.2L6?+KG/AYXO3]U>" M3\]Q43]$?)#9(YF8<;98XHH4>SX_47#O$$,2?F]\_CK@'MYC_:EIUU'"E&NWW8E$;[T=S@/S\OYA/$'+V*Z8P)"VD>/L,B) MVA)F,!\8CB 3&K]_W^>HR>"3(!\&Z,,GGQ9-B%\'N[?=M]5Y_*383X\?9F$F M$MR+4JVP=+K_\OE(N/BQ,SZ@$_$'QJ4-(/;\LU! /T<3,+ZRL#X]D(+NB_/) M[U!+ P04 " ]A*E4688,EO(& "<$0 &0 'AL+W=O3 $XF10LTNT&RTP5:] ,M MT39G9-)+4LYD?_V>2TJRG'AFNFB_2.+COLY]\%*7S]I\MELA'/NRJY6]&FV= MVR_&8UMNQ8[;"[T7"BMK;7;<86@V8[LW@E>>:%>/TSB>C'=7 MNG&U5.+!,-OL=MR\W(A:/U^-DE$W\2@W6T<3X^O+/=^()^$^[A\,1N.>2R5W M0EFI%3-B?35:)HN;G/;[#?^4XMD.OAE9LM+Z,PW^7EV-8E)(U*)TQ('C=1"W MHJZ)$=3XI>4YZD42X?"[X_Y7;SML67$K;G7]LZS<]FHT&[%*K'E3NT?]_#?1 MVE,0OU+7UC_9<]B;3T>L;*S3NY88&NRD"F_^I<5A0#"+OT*0M@2IUSL(\EI^ MX(Y?7QK]S SM!C?Z\*9Z:B@G%3GER1FL2M"YZT=Q$*H1[%&4>J,D(74Y=F!, MR^.R97(3F*1?89*Q>ZW%W?-27(V0<%:8@QB=X\P^2,LW&R,VW _UFG6[?MK":%TC]:3:,,=7 MM6![HP^R$I9)%9+:9\<*&<&J)4M:C; 5K:P$1>GF8,XN(YWGU MO#Y&[+4)]EFQ0=5 J?+6OQ4&5MPQ#E7)H,_@Y+^Q=PF#9,DM>_<1R&+AR4$2 MM+OEBE<\:/D/J*2ZK>\C=G=_MV3O[AJ#0AFQ>UE5T.&.6Q>V+]?M/C]X6-ZR M=\N& @VV1>P'E*U_"5YC,6)/<,%6@)(MK6REW6ZEXN\OV%,PZL1G$DC9UKW0 M&5JYK6XLR.S[!8PW0IPD)D-:E=L^K[Z[(V$/PGAQJH1)ZM>7'9SS@SZ(FMU( M#5T!K&B<+"W[23M>_^[]]_R3-F=#9<$>PFSOYC^R+(XF\Q@??_K#+$W2OPRG MDCA*T\G)6COUB,SQ5A'W"LQJO?=0=HS3*(_G>*9YPO)H4L1XQG'&LFB&YQ3/ M2:MN2V%)%%/V\8P^?E,QR_&>8=/LR,2K1[04H<7DN##0<4'- MA#!F4-FP%RXE7T^B+"O8SX)M.:N8TBB1I!>3NSV7QH=SN>5F R6,J'UY1%5> MHW:@BL*/K14>!:IUE/B[D/CB7&D@( F'4$-1F-'P6?IX[1GVC)C=^]"6]0NK MH#4$=P1>XOY5(K\Z3FRS^H06C9XRKU5Y5Q,G-?'&RUW%'0( M+J+"9WM 5.+(\8T'SG/K.0W4"T-/=4&.:I=^)4^PD[#O<^H=^STE^_$4$F+< MNG./TJ$K2#"+X#T?P%T5*HU[,AV<5+4]:J6 MH%A8PAD U7%D>FG1@#2D<4)5= M$.^_*]['F*2#Q(NR+$T*EN;_A>(^%!7.8'\Y"'"<@OKG(V9=3&0X'K*$)=,H MR<^=#'U9;.O^0(L?!UJ^_1JD_]>0Z_N? M1AVA(/BX<2@6"/3A0AL>*!-=8(1>B[1N 0^)]%;G2L,4I5UGU^LF4AN)F -\ M56-:W2!"*\%><&232LAH*NMM*&/Q@$ST4(&511=KVO;5.2-734 1IAO]PFMR M9T1/9U%50+VA%=UK/Y@@=71&!E&*? MFBKTH: YZ/H0/-6"1."U#M.FHC8Z5,6^JQY418]^JR0I2!@;*NJ&;IRH3XVQ M#5=^+\Y2"A-<= =8G[/KS8GX*.@*#U5H;U=%,GKD]"C\D0 WHU:N(;]K^-XT M:1,*_7C/,?O=9BR)TB)GLWS:MR-]KQ(E\9FV)(FRA"K/W#]/ M98;3\]QU;CRX,0/OC?\O8($9XBQ"0 &0 'AL+W=ORY:2;9&T#]B9%%^@61MS+0]$'6AQ;;"A22U)Q_/>= MH2ZQ42?;8E\D7F8.SYFA9C3=6_?@"\0 3Z4V?I84(50W:>KS DOAA[9"0SM; MZTH1:.IVJ:\<"AF=2IUFH]$/:2F42>;3N+9R\ZFM@U8&5PY\79;"'9:H[7Z6 MC)-NX5[MBL +Z7Q:B1VN,?Q6K1S-TAY%JA*-5]: P^TL68QOEA=L'PU^5[CW M1V-@)1MK'WCR2QX/.[0?XS:2/QH]1]*AF*67"4@<2MJ'>[M_B=L]5PR7FZUCT_8-[:340)Y[8,M6V=B4"K3 MO,53&X+@S$N6I?TI\>E)9 M1VJ9O0KX6;@A3,8#R$99]@K>I!$5M)'0O'T0AA$'H)&@ MR"HXE?-QC8G8"R<]O/G^NZLL&WVX7R]\'(X_O*4/?/,W?700+%#5V*(*M<,A MW"H=^?X/.=\NI5O^ER)F?)[I "I=>Q!:@Y!2T%$.SL1WP(6++A)Q:]#8+,9=,J.<*'EE\J]19 ]\RG4M MF9^S9>>U%APF5LUKR@%NMQS8/2T(0GS7B1C"@J>WG:9UKPD^F5X-9;%3 M,3A)/+R<^./@5P3C.*OL*ZI*D\;8!,B>EP+U+U^[0ZNOQ%!8"DDKSC_'01_. MA?](?+RU/;8\=\6/;PZE.!>UI\@;/HKOAZ_SHA-Q=*.$.0U<&]$A_$K';JVF M;AJ]6T(IM]=3EAI4G\YN+J^IN?%]?MS)3H] MZGDENEWL[%Q&:A.:]M>O]C\/BZ9G/ILW?Q[$=J>,I[JP)=?1\/UE J[IYLTD MV"IVT(T-U(_CL* ?('1L0/M;2_>EG? !_2_5_!]02P,$% @ /82I5&U[ M+IX !P >Q( !D !X;"]W;W)K&ULM5AK<]NZ M$?TKI)C.R'K3=Y":V9^SDWJD[=9N)79 4 M)2=V^OH0AP]@'V?/GH5XL77^="&;*CO-9K/?3RMMZM'5A3Q[[Z\N7!.MJ>F]5Z&I*NUW-V3= M]G(T'W4//IA5&?G!].IBK5=T3_'7]7N/NVEOI3 5U<&X6GE:7HZNYZ]OSGB] M+/BKH6T87"O.9.'<9[ZY+2Y',PZ(+.61+6C\MZ&W9"T;0AA?6INCWB5O'%YW MUG^1W)'+0@=ZZ^PG4\3R+=5GE?#&E](JK(; MP9F:BW(?/=X:[(M7M_6&0@3*,2A3JS^[^N1.^\\4]<*2NJ>\\28:"A?3"&^\ M9YJWEF^2Y>P[ED_5G:MC&=3/=4'%X?XIHNQ#S;I0;[)'#2*NB3J=CU4VR[)' M[)WVJ9^*O=.G4Q^K=[2(2M>%^OE+8^)ND+GZV_4B1 _Z_/T1IV>]TS-Q>O9_ MP/M1R]R]K\-:YW0Y0GL&\AL:_;"[XS<"Q^#U)U*YU2&8Y4[56%KMEQ:\-/1+ MQVI;FKQ4VA-:+G=-':E04 ^E@](;;2SO.L&#DZ M8;F))4+[$VW(JE..,I:D MEMIXM=&V(54:\MKGY4XM*-=-(+4EA:P,>I*.%W.'%HK;77UIM#51<]>CLMKN M@@FJ":9>R:;*A0A9R8&-<@O&2])!I>N@DV2LO30\J16D%:N]LBX$K'()(4:/G]+7"(^-"64EJ2R?*% +@59A33EGHTR!C9*7 M9%U1+!V"^+6&REOS3^"90N $VAB6WE5J89:-QR8LH&I!!=H!"N:83\@_GAK">0+ XQ@UW%9K5[?PIY#Y MD:>2QQ?XQ[81,"BA.L\3]>$PAGV%?\@!R.8J4L];;%X(.!-URUV^X7IX%LK9 MF%FU1IU*W0*T(1\-YQ6:!5R86L"J781G$T*#F\5.77M$IM5;Y]<3]?RWOWF5 M9;,WZ:'KK\,[\]@/I=XSN%BJ4GUBF9HL135-VQ$'9#,.7 1($L,8^>S2;S M02@](AU7I&O[AT"I3EKI&C\$7_H+6GD P$1]!.M8>STC-5@OD^6IEA$8#J+/ MI.[O(,#"U2ZGR?$H>CB04<9DB:T(!B0Y%0E^K>X%V?ULVZUV],9O14:G@APG03OH.'F MX]ELQO\&=&A]_2YTQ'C[@!;2).?[)IFHOZ!(1RA3@N9(FHXJ-Z%@;)4J92V$1E.*U# >@6<4#0<\;DII7\&8S^=#[IU'%8: MI3G4S_%Q <4#$H/Z=#-?HQM%:WWB^Y-%'68Q..[(08=9X7FY* =.0"8-M(& M'ARRLO_VD)6R.*K1_F3UZ&D*J,M\03P>K-(>N28SSB<,>X >0KC[!H!!CDNZ M^ =^+,F[AQ+]9-NDOBTU:+,@XE^;/=[%7H]Q@#"N$&A[T1VPX\$4_W<&]__@ M4-/J,]Q"GOL,I"]0=OQE<+_5LM>WW^I#A .NN9QY=8C#4W,I*7L2\T\' TH" M^\ZAYS]T\)&IZ:QU6]G=]J6<-\-WZ.!^1$F?2T%<$^ JO'A]',"#N<4PJF=J MGHU?SD_W%QV8YS("6/?FV9L.[?DX>_53^_>CBU"-)\."X9]@*N.+,[GXUH_2 MZ>"#0$5^)9\]H&@LH.G;0/^T_[)RG3XH[)>GSS+(>\6%LK3$UMGDY?DH_:+I M;J);R^>%A8O157)98J*0YP5XOW08F^T-.^B_-UW]"U!+ P04 " ]A*E4 ME,T64J " :!@ &0 'AL+W=OLY-F'= B MP9?FWI[G[FS?=;PV]L&5B 2/E=)N$I5$RU$&\T&/CX$W$MLG\(O7,O<^'PPJBO,J=R M$@TCR+$0M:(;L_Z(;3\GGB\SRH5?6#>Q_4$$6>W(5"V8*ZBD;K[BL3V''< P MV0-(6T :ZFX2A2HO!8GIV)HU6!_-;%X(K08T%R>UOY1;LNR5C*/I!R$MW M5 M(URA<+5%/G%RXYB8W(?$64LT:XC2/41]N#*:2@?O=8[Y'!RVIK/3$_?NE\"-],5G97 T+G M<(D95G.T6VL/YAM0N$+_GJF4NJGCB;N4:#W-!EX'IZD=\[@WHU_9/P>27OO= MZGVX,\3]\)O##<^#?>#]5=3, "_A+#WJ)6[$G4.O_TJN*=>:W0+L)6&ULK5=;;]0X%/XK1Z,^4"D[,[E/J[926V 7"40%+#RL]L&3.!.#$P?;F:'[ MZ_>SD[D4VB[5\I(X]CF?S_VUM=WI;&:*FC?,3%7' M6YQ42C?,XE.O9J;3G)6>J9&S:#[/9@T3[>3BS._=Z(LSU5LI6GZCR?1-P_3M M%9=JX*/@&W.P)J?)4JDO[N-5>3Z9.X&XY(5U" RO-;_F4CH@B/%UQ)SLKG2, MA^LM^DNO.W19,L.OE?PD2EN?3Q83*GG%>FG?J+O)2/F>679QIM2'MJ('F%EY5 MSPWA1.N<\MYJG KPV8LK)EE;<'KO$ P]YY8):0:2=8M!7L*GH4\ W34XK#@*)Y%#V"%^\4C3U>_"1%Z:_+ MI;$:L?'W(W2M:%?T M3+384;T!JSD^_1[P!S"Z+#_W'NI:&4LOC!5((GR^9$+31R9[_C,D""M^BXC7 M7U"AJAYWT[/PF(XHCX)PGA\N%EDP/TGW"T=W#SO3G K)C!&5P%U0JW F#DZQR>BF=+EFFO4-$?DHZMG$D+8 M7@LKN/&V+-FM.29AJ%666-=)4;"EY."]QU^!=X95%C@/2[N5 NQ')\DT1L&0 MTM6^.VYM?C2)8\BC:;ACV,&[DRB:1KN3FLL2-I,DB>TB3>#[-GZS)JW8-H91VCCM<_\I<><B%0BUDE9*0>DPB-,0SWF2W9'P M"'LI.-S;<1Z>N2S0O% :Y9I:V ]*C+4&5B1G^&FRMR+]=!&9THW&S*#MK3]W MI:E#%[>!O^7.&;][]BL-^IHME6;0]79_"^P09T$2NQ(1QR@:(./HZ+5"((@& M-E[SQL=?F 7I/'.O,,Q1G)JNAV\.D)ST1E5VX\P8P\@IGLDBI+=5)1"X=RFK M7K>()Y"&0722C\]KJ&MU/TPGT _WK[1SCDJ-Q();M-@58H[05_PP;SV"&/#\YQB(-%HOH^%&W'%$$ MW?+$+1!I20IS'Z#S;YTKB-"@D'TY%-2E0E:Y:/)N\C?M>#D!E?;_(@ M\QT8\96F>PJM*H0H%!S]B[\#(TJT2Y0;ERX5!S>2#:AI$";YJ$&<9I3E&7WP M[0(&3H(PC]PB"M)\0?>-;+.#6;CA>N4G?J=XW]IA+-[M[GXJ+H=9>D\^_)' M BNT I*\ BM:1SHA/4SYPX=5G9^L$>Z8T_VRQH\1UXX YY52=OOA+MC]:EW\ M"U!+ P04 " ]A*E4,SA'X 4- " *0 &0 'AL+W=OFIBYCP>#\-),Z[[U^R<]N M[>N7IBI3G:M;*UR59=)NKE5JUJ]ZPU[]X+U>+$MZM:$")Z>5H".JTYC0.D:P]I= #26/QD\G+IQ(]YHI+N_E-0U9 VJDF['AT% M^).T?3$>1F(T&(V.P!LWK(X9WO@0JTMI56#U5FY@6:6XLE;F"\77_[Z:N=+" M3/YS!-FD039A9)/O(-=O@R1^_+W2Y4:\RV-0#],6MZG,'>XAL.%E)$P%@S72 M)L+,1:(M_,!8)YZ62R5ZU_2B=R)DG@A'&)8F311>RZ*P9@5 Q+8\8>6[$O+* 9(4D M%AR<+$W%3(D%U%^"J@HV:VN6/9(78FG6:J5LQ,]+93/'T&*3)YHTX$BPG3T> M+A:4.J^PQX@%9&D1?'+BM'0E .A\49-!)"G&O2L^4H).E!.(NXR#*26$K"UA M"J8@ KMQ6C%,W4BNLR1(('_V>R53/=MBP%,[RR"BZAX[+9 M% A_VGM_=^5Z)WM65#GIEQ9\X 4P \X=H.Z9E\R"O.W@OMO[^X2W_IHAK+F^ MX36&=1K8L2*6;AG6!CJ)]T23)'&A8&$KF0*[(]6H5"_T+%5"945J-DHUZG4( MZ9)6!?V2V[$&+2NR0!PA75!NFSF=:&0S&!JL"LF%?C.5S1'7$)W,D27%K5-69FXZJP.A6C M4>3)(V1LWG)>$ARXC\YEJ2*A/A=P_4BDLG"*96J9T[G2P/NB-OW$8X/O9@8+ M<).+X20:# ;T5].?R0WY,0F):"Y,SB2KS\K&FL#/#_K%TQ!6WMW=N#JB]"E\ M_K/*58BAT_X063=-R2<"1EF52V/U%Z![4#TL*JL6VH'_CDSO5%Q91!$ O(K9 MKX>7XS%;D40V(O;;H:^[?$OMSQWU-)*[%S0.R"#BP !%EA5RPV;W);DP_;_" M_UN^)L<[&C":?"**"D$8OAA>D861I3?.YG'7MZT$M>.$?<$94-P$M1'+GL*M MEF%ZEOA%_RC$. M(&2)X#RKF#6S!L%!I\8YY1PY?*Q4T?T.3RD3WK"CI=N&%M+HK5MU5#KV$?9H4D*2%?* M@O2-6$K8E:3R6V<(M"1S1J!RL5$RF.X*B4U0U@?58-2_F%N3[=,=KGP-,X(1 M\,Z@+NB7I11I4W*6H5P8A4U8,1>N;3*[X'G?%0<($,8"$RN M=;F$OE$P<1HC@+R1"QQ/*)D*913\]L6'/(7.04 CD[^Y)IZS@2";*;LB1<&N M$U_X)-K)F4ZII(/R$B7+913B\]ZM$62_(5M:O2[8F4^R(RC.>^1XD MQ#].-0VFK<%'7NI4W7$*E3;55(.]WQ8EWC ^=(H9DJ=,G0D"W9J(#Y1>DUMS MV5H"Z.7BLZ4=JF^T2;PVQN/&=N_G97I*"!I-4;B1P$1@@$;F.>*==:A":B#U M2K)UA8C(_8TW/>LIDEOK[% R.GN8DN]!"!6N?G-,.:)5&+*-N IO:OE2NAM> MO'!-89TT]E8OK?$0Z+Z7%E456UVTN @&5.&]G@ZX&2/_6A^[W5\D'[1'7R1S4&AM%==<^][LU,F<,N-VZTCJT&6I MFOC(Z:+I_9#A3:H@-4V#%URMOGE@$YRAN0@U=1PC ,XKU/8Q&%MY*P86L%0B[((X6QC+[@5?DJQJ M5(T B/CM2(HD0]][D;ZIQ6_JG3M<6E,M/'+PENJ8FX&NC7]<*E\-M/ND MA8% V/(3!2I9'S-*HF;&("@'MUC8IM5R4_AFQ#AR=HV1(TXP;./:P ML\$/C5A8:6WNZ@IMFQO;RT,M-=>6DFXW[ M^1%E!GJ:C$=9Q-' !K7/2J718Z7=\>;RG@>L3060L)>FI5S*=+X#G+?4=1)M MA8G3:,&6P;_OT=&JO1@GH0H OI9O:1>J_'\S_0"_+)-NBOQ^'/+4C%+/]^!Q M#VMKGW#<0TP>$D:'L[T##>Z'B;A[_F@."L+SSBP[T%NN58AM6T-G9VZI?SL8 MZZJ3VIA\8Y]W M!JAXAH:65)6;6E8S1;"_UF1Y1K&-7;7O82D-RE&&*A_%5U('$_)[4&E[Q(M]B-.^B&C MXHDM3^M(9J;(_(R0ET24P)(J;AX@Z]2PG$Q]XGKS]M=GY\-S$N+M7'_A]LM" M>SP0)I)!3#67,==]W ;'-%").:^0ME6B*8/S$*&D"M"@"%0EI01_="0*:"V3 ML:KJ;0N+39PD M\R(^CE2 ?)-+1B@=TWQ[]>N_;GYY]Q;):#(=O:C%%K7*DI"O74N$L7&LQ!TA MTYB':IJ%CCOJ5/D7E"E4\U'*)%=W[:4SS4-963#%;F>=L0N9ZR^>51*%SN<6 M[;NMO&*J M$EH97;FJIE$?6 2:,T047)3=C*SW-I5H@'7.Y4,R19WY"8"C0C M5EVQD?B#@?I,B5V%[#OSM>LR!*+&71A9XR5[(E<3,-IQG"=+M/.L-1CI9*[@ MW9!+NHG"\0B76U_J:?B14@M4Q1 .J2[=]/UQSVAXP.V'^]U^^&=P^WOV=M_* M('-=<+DL9+*2H8'$WETK.[#L\>;VC6;U8"1N99*V?0T[]C4\9%]+2=:E\JY] M31&V+WE_Z=%EK^BI_[G=04KO>\FC8/!-J&H4#X,<[LX9O M*N+K4<=.U<[.-SC@?(/]SC=XP/F2/\;[[H=TIQ8,>V&-HY,5N]!YA-_?:)BM MUO>=CAV".GGO+0]D#)+"\>S@#P\:$'2DT0K^1[UM>,S;!AUO&WR5MTVGWMDF MDS^CLPV^VMF&CW:VKX<]VO&T[^9G_AN(ZSW?0(3QP]U#\PGM@B]L.:AR"=I]>#0#@QM"3.[D.7HB&O"V MOX39*3J\#MX?*GF?B,OQ.?Y/+B[$'0I&R""JQYB\6":P;\U>0N7A*+H< &8T M&@[$S^SB3\0XFHZG^!U%Y],+[M(\M:Q;[LT**KG],7AS\'),>K,-%,0GD!L> M%7U'67ZC +OG-D_$=$!2.S\_"\-?2(K.+<4P&IZ/Q-DD%'33BQ%$&R+ Y>44 M[P<');>_9JQR*Q[OX&@-%$=KNN=![G;\3$<&,*4GY_WSYI 9+40]2*WRX'$[ MI[)/+ONCH^L[$L#Z4?_LZ'I_M$L;GDP>6DIR"U]CH&^I+(^WZQJZ^>+!-[[= M25K_82?=SB-W/M-I1=3V-(U/+Z"5\_Z^+[9.6U_%90HA^PTW8#%JM])_(-<\ M;3XOO/)?U6V7^V\3?^))!0 H@P !D !X M;"]W;W)K&ULG5=-;]PV$/TKA)JF";#93SMV'=N MX[AH#D$-;],6Y[-VZRW/;AM+4=.N4;ZM*N_U[*NWN(EDD_<:=V1:!-V:7YXW>TIK" MY^;6834;HF2FHMH;6RM'^45RM3A[?\3V8O"'H9T?/2O.9&/M/2\^9A?)G %1 M26G@"!H?7^F:RI(# <;?7:T;$W2IUL&F]^>S M@)#\8I9V[N^C^_()]Y7Z9.M0>'539Y0]])\!RH!GV>-YOWPVX"?MIFJUF*CE M?+E\)MYJR&\E\59/Q+OYNS5AK_Z\VOC@((&_GHEY-,0\DIA'_Y>S9]VYS/MO!_1\IXW\+XY&3R=CX7H\7B='*T.E&^T R09/YAJ1-ROU$M0VZQLKI MBCI 7NF@-**QV"E[H[^20^\.[U7C3"JP7RRGJY6<\F(QY\>&7#SH\3D[$PI5 M8_ZDVA<(8%.BS$N,^70)T9>E]*^$.FP\"*/V4]65^H-!IT91LM%NN@0[3 @AM=K=^L(B9F>WUS#2; LE.[PH!2$%GIO<)< M*55J*]1!>:[9!,@I)^=P1+>1T2; ,&V="8;YW6GG=!WPU+0H#X8)0M2B2^QQ M@FUM@E>YLY4*F'TJV/AI4(D:O#H4WC&_.,G46S]5OP.D&R?DAX0VE&KX$HR% M)<[P$["?1%%,U<>X'A0")V+\IL:YNOX/1E\E-Q^NDM>1JUO#]5TCAQ*?+W75 MO%/7%C:WZ^OD]4,*L85L4>'603AIV7H&!QG58<+ZXOW,^-11Z N/7=_"E3Q?#H?1(F-V#S\Q+C'DIBJSY*U="U ^E'H";-PP,>[72"DAJ_' M>_2#]))7FSTHV*N*0@' DKOQR!M5R!C>AKA6+W\X72[G[_"28W41>IW(R\4[ M)AW?6""+:ZSNVI+4T>*X*X[(?5"KNDK97RU^7JVD6I 2#YLI=Q* JMH&" \* M<1&&Y,% #WGP2@J2M8QB(&+$0Q0P<[TSS(/4$@*.TT<*HUUI ,_F9^J5>2U[ M/,ITG9)HP^M2)HZ&?W+9>9.%/']4!OO3)=_![&(SD8 MOD6DUF5RMNB>VU5"8_Y@#9R-=N@9KNPAF3[ F!-)< >R ]5,ILE-&D]D^<+! MCL)]Y^0!N,P-#B8=,HXTB7$Z$3QBN%=G;55J7-I6&!PUZPTAFDY *N MN=C$E=C+0*=(:H\ESHO3YQ&,>OU)6G';CHEMI%EU9=M:VG&4*]?=D:DV\.^^ MP7)&\9,?$(I-3@1U?N_>,QO=&RMR6[D=>YR!P^(5WN>Y#^GEQMAO;JV4%P]E4;E7 M@[7W]8N+"Y>M52G=R-2JPI.5L:7TN+1W%ZZV2N:\J2PNIN/Q\XM2ZFKP^B7? M^VA?OS2-+W2E/EKAFK*4=OM&%6;S:C 9I!N?]-W:TXV+UR]K>:<^*__W^J/% MU45+)=>EJIPVE;!J]6IP,WGQYI+6\X*?M-JXWF]!DBR-^487/^2O!F-B2!4J M\T1!XL^]NE5%083 QL^1YJ ]DC;V?R?J[UAVR+*43MV:XJO._?K5X&H@$_F5/&S>"@U%7X*Q^B'GH;KL8G-DSC MABGS'0YB+M]*+U^_M&8C+*T&-?K!HO)N,*/T)NU\LZ8WNSWR"O>:I<5QC56B7_>+)VW<)I_ M/7+J97OJ)9]Z^?_2\O] 3OQ8*ROI6KQ7\%?<:*Q8(V!_;J3URF(/Y"M,)KW* MA:[$)Y5OC $9[;=#<2L+C6"OM!R*S5IAZ48)DV5-O16RKJUYT @&56S%8C&< MC<<(I(8(K@A"S K_5CI3S%[<98?7G>"9>:7G1PBPWP&P&)'O20P@L+(6O'HC MI!.]\T^RR(ZX8[K@;XP\,^5S#0\FB)V+P;I&A)=MKIL?56LH:6E4LAF\&D@;!=. M'JG2"00.I,:>BE6:_QL9A$DP(WG4"M-5MG2D*'K*Q$>(*O%.+2WT".K! MJ[B$Y-H1BQ4N\UQ3%0"3 !VUR=U(?&RL:V0GP#Z[PP-ZP9KQ8I_'UC2!&7+J MM37-'225I,[I8B2^M$28+'%V4JPC]$PB=MY;WX*:"TB?GPM1PJH0JN&[DB(DC66PBQ7M7':)[/L[W&, M59#9 A5^P6G+=@L*P8*RCT->+?@!<;F4U3<1$YDL35,Q$#V9C":HW(J"BU#! M,J&JR=9M6<.*?JLR52[!0;P[B5 '2+,J,Y8< !Y1F>H9V+<4> @:;W5&^)9) MMQ8F'-U4LH$ =-? ;RH7?CGDSYS!,#(ON&IT'/9_E56,>CKX(.J/)].;3]\_ M^PQ$>$>9&)63$7\S(_%\-A3OW]^*LX@"6-4&/FA%2J(VEAV)31*Q< L^R]IJ M1\7+7L)[/IQ?SP3)+9> NS[:0^7$QJVTJ-UV0!SG.67A:-!<#P)Z)0ITJ-@8 M=)$K9"53LX0'M4L?V;KC]I/!E]9U8U%!D)FR@:R@Y>A+I 6V(KG(=#1/+C)$ M?[3\=\1"ZL'RIL#ZV=.X.VP"<G1OB.Q4-ZJ'FMS&]0&+X$B*R?@9Q6N$+VO*7LC#=C@E"PZ2,U:LX!'W MT:W'P:V#ZQ"LG$821NSJ$+2)X#P!1@) >,F]INB HP7BDJ1L%7H0[RE$J:,- M[G<0^^0,FTZB/-2_T.4V(=*^!Q#1-H1)SHY!6MZ"%(P;$P!Q$-U^Q^:(S;Q MO'/,0I6'!09 9(WH>191EWTY$#T="3E4 ,MRC:T(%T3L!D@@MDO(L4"]0 H^ MH,.)X@8A63!2A@K]B*AW8+REI@FYT+Z26QY!0)8Q0-W/ MC8X%(<&;(>K1/R5Y?)L1^O42L=XS2*^R\FM4?IM$F[NDF& T)(=5F"7RA):% MX/Q)6=(Y14CKP56(H66A[V2 +LHV![DJEC*4WECVX*I6W=.(@A9 +$:UO$]+ MR8RJ($9%'!W]G00K*6^&2BYT?'K%>2^100"O)9J_>$R;*D[R[2(.=!$"U>4[ MR'#42*?25"=PL:6641.:6I4 D%W(0'"T9%HNDV5^;[*ZR3*2BE064 KG%[P2 M=B6]/"KY1G:.&&$ 59I2H@QCBU!H'9$[A'0H*+DN8H%T%<9BQ,[["(+.$RAS M^G<[.BBQH$D\K5(QV6/N.-V>>)S\21LH2R@)=H@=/(TIK"!6_]X?L5[3I"#II+$ ME /:D.0@I73#%@YC"9HM !DJOD_I9,2G4;)+XX2US*%N<2^M9E7WC@(([AOI MQ>'0Y2O/ U7^#"G RCO50\U>!T#6X'QV+A:C1?AYN#6GXHK*2:[ YXCL;^_COY53<'(&#(4<;Y _)52*DMD[S MPEBI-%5B/%6HX0&0_GD\L((WU8>"(N%\/IU22Z M77_XERJ#4!>XIJZ+D VIZN42UUK*#3%Q5%'O\-H"OHQ4S35:FK>-Q.=(H;^+ MK( "H$0DX%%HW1[@G+B' THT#LBW7 ;PP4P!E!(#J64X1HBXZ=? \4@;EU;XJX&S0@SM^;*^\2AX7W@EX=F)RTYA40OHJY3:5(OWB M.3&P0P,M2"R4D8^):5H(%"E4ZF^.&\/UN0HX$WH@'-#E]A@K--W9*8[B":&. MI!:U'?UO'K'7JYOL)Y:T KR 'A'X>BV MFT,TV \.<=,VJU^VM>I=OB40C<)]B,)]C$9^V_/&4'SUW?$8MS_!PIPO7P^C9AQ8 !01,^[F(G;T).TA*E=;Y"X0D9UC][N5.XK7$]9U/RH YGU-S34H(I,.Q^].^1>(V'%U.1_ MH5MOU;*;\34U&?#)9#P:=_TF3S3R^S Z:0<$\4:WE5V#//3>%/><$'2E>NW9 MV>!3^^A]?!2D&K0'S[MS8U=(KP"SX+(HDY6^YPA!EV]#Q"SC<.]J_)3^*/BJ MIA5'=H5@:YLZ3R5Z;N6F+6M;?;1]E*D.:V=4$I7X,?.&;H9[E\.H62)7156$ MAN>XQ&P-%&<>3"5-PO=R]6OV+JF7;S,0PEAV%4\:-U"T 'CP,T[FX,LR-HYG M^EQCHW7%J39C$]OI MROBHG';^L.?1H4L]!)LC2T-VH %!F.])FA-274@HY+QDW**,6!1<3((N:@L7 M9A*6*A;0"*$;"LHFZ)/?<32]1<%C]D_O7CR)JF%YR"CR-:?QM*9#W!*M$O]-T&U-WF34%&%M0\4L4,Y%@ .[L2I*Z2UMXY(M MK@U%-<]Z2)='Q?F3.\I7XCOTTS')Q;R6RFUR+21'MV(,3%/7(F4(U+NC^IB;*WM'KS9I@"64BW)-21!Y@AYS/QU,AKP/SI9- M7,I/='6O8J<])+PAMR6?P)6#64-[B0MCPW4[G>#[81Z,0$)Y@RH^N)'.-8** MJH0;(+(N*/&D%+YM-HZ%B>T0YRF>-AS0',S2@54"1Z MR"^M8W7"I]+P(*S?HV0IQ$2YE1XIZ0@N=FJ M.+;8Z_NS0NHR#(PVR%T\SKFK]"\T,(=IF(?XIG^;Y#HQ-^DB$3#F8[&RH1># MX=T&V%L&G&_',MONG1/''6%B1C^ /)I*/U5J'-(IYE=QAR"8CIR#=3D=2,*LNO7>D@ M<@S.&#L2C<2?N83?X8*R ''0CL\@JR[HX&T<'8;Q.K\KZ<:A[-.61G>D*<2( M]T4H\X!Y,>-*[G-;SJ /ZONBN[8!%6 0 H4S-&FIGI^9[+8HY\8;NG&W-PZ M9@PA\-$4/@Q"0E,"-^&[N&YY^+H0R>@. MMD!J6&'K>+28#T+]GBZ\J?DK.> /JB_^2=],*4L+\'QET,;&"SJ@_6SR]7\ M4$L#!!0 ( #V$J50?!MW.1P4 0. 9 >&PO=V]R:W-H965TN;"C4]F1M;"D^W=C%PE461ATVE&J1Q_')0"JE[YZ=A;6K/3TWM ME=0XM>#JLA1V?8'*K,YZ26^S<"L7A>>%P?EI)19XA_Y#-;5T-^A0480]&^)EZ@4 Q&- M^Q:SU[GDC;O7&_3?0^P4RTPXO#3JH\Q]<=8[[D&.TE-)^_SY+2KA,8>IL'X-[ZW03@2]W.G $SY;#;(6 MZZ+!2@]@#>'&:%\X>*-SS!_O'Q"OCERZ(7>1/@MX(VP?ADD$:9RFS^ -NV"' M 6_XW<'"WY.9\Y;N_GG&SZCS,PI^1C]$U/^+16I3;==*6)@XA^5,27017.NL M3S_PMM;(PL41K!!0>[0$([4W(.#.F^P33&N;%532,%E81&HU3]7G"[B97$-5 M6U<+6B'[52&S@E&J=D,.271T/([BHQA<(2PZ,'/>]HN#.[3$ R9 0V*.EIVZ MX(TF"/R<]&,J8Z4H@, R,UJW#1I<^P+!;X.,X*TI-+R37.<1F-K"E+S)G+D* MG<-E(7$.;QY("&YO^',^EQG:"(1R!OXUI&;.Q%[\=)PFXQ,',R-LSFQS:=25A+3GZ+]J>!! >%2[1B(?4BD+TT.;Y9&D6+ MA)B,1R>DO_$H-3$E*Z2LD&E%Q<23'#QFA3;*+-:,+$LR)O68S]4[2IU1ZY+@ M':!2U@L,<62FI&/.-6FCATP\H%*AB#R7O$XA M?VNM]^$C!DR%W+N,=OM"E-7)U2;:_8WV1"_(ZQ!EX".M\W!?TR @28@#3\70 M1%>84?O3(JTD06(J;:1V:%Q75O*!RWU'%6QH+%1B'="?]TTN=OOUB2YZ5YIV M((Q>[8C4RG/Q5)[K[5[V_6R[A39BQRTPA5>(Y4Z,]:%:(\(3"EYM==D.L"_9 MQW',?]\YSN+^RTX>IDD>[[#R7V1CZ_55E+PZCD;I\)"?)UHU?L:[8_-CB-TL MM/R,D#.)]!$)6DAVDV8W(X@?YC0WE*F"L):N=4T9M:;D.V292670NQ>4)"'$?#47I8=#;;(PGS M/1A5-T]8>1H"DME2D?V0<"8-RT?&45>2RC:B?#54[P/[\DL$]:N><]2*,HV46KZK6LP4H7%^0K%E7 T M#]+^>%ML>\0(F[N!U*XFH0X*T91 6Z/I;HWF&U^;FOQV["\R-&UG&_=-F!J; MAHJ+5O7M*[U>X39]*\ MV6_-F^\CDH)./4<'_YRVQOWQ40]L\\W1W'A3A??\F?'TU1 N"_I,0\L&]'QN MZ/1L;]A!]^%W_A]02P,$% @ /82I5+>1)WJI" ;!< !D !X;"]W M;W)K&ULM5AK;^.X%?TKA)LMXD(32[)LRVD2P'GL M=H!.)TAF=C\4_4!+M,V.)+HD%2?[ZWLN]73B9"8+[!=;HLA[SSWW*9WME/YF M-D)8]IAGA3D?;*S=GHY&)MF(G)L3M14%GJR4SKG%K5Z/S%8+GKI#>38*?7\Z MRKDL!A=G;NU67YRITF:R$+>:F3+/N7ZZ%)G:G0^"0;-P)]<;2PNCB[,M7XM[ M8;]N;S7N1JV45.:B,%(53(O5^6 1G%Y&M-]M^%6*G>E=,[)DJ=0WNOF8G@]\ M B0RD5B2P/'W(*Y$EI$@P/A?+7/0JJ2#_>M&^L_.=MBRY$9PWF=K-^2 > ML%2L>)G9.[7[AZCMF9"\1&7&_;)=M7<2#EA2&JOR^C 0Y+*H_OECS4/O0.R_ M7>:CR5.&[$9K=B0=1E()]+*H )-G(PO%='R4U$HN*R7A*TK& M[),J[,:PFR(5Z?[Y$0"WJ,,&]67XIL!/7)^P<>"QT _#-^2-6Q;&3M[X;19@ M[59I*XLU^_=B::Q&S/SG#?%1*SYRXJ,_E^0WE5#VGIHM3\3Y .EIA'X0@S^B MF35D]-=^$PBZ EG*5(DT* V4&\.X87:GNGM3'36G[%9H=[I(!+S^^U,NC%/[ M+_4@,G8I%:GG6U%:F9@3]AE2DXT4*X9RH[ES02H2Z7(_Y]\ ]7AP]?GZTV#( MI'$@KMSVFT>1E)38[/-J)1.A*UDO$#&N!=MJB7R"F#;)*$DL8+^;NS M%.S [V5B2^PGP&Y#BPG$(MV=X25)6#Y56(",2=088Z"4-FY[]I,8GF4J:67@ M3 )"L(.!!W:E\BTOGDZ(9NU"D"5*XY];\4&+#'\I$X\HQ!"/^IEL"$ FUCSS M4-<2518DV0.$SF56))M"96K]Y%6&.(Z+Q#7*A?L.%/&#-E*J[SA5165 M>\1CO=L])&)>:#UY%HE$.+!0>6=667@OJ;@D#TOC.11PTG-!G@O=#* ^Y$[N^>( @M?#!6H. M14OE1?*V3@D"W+H3T%UK=E'S0YI/V,^H:TH;6(/FF@I=.2@55FA81UJ)&LKL M7@2TC@=3O:!M?.S6"N[R!CNZ$D%M5UI)!E2$D_,< UVBI5*C2R,OZV!V"JWJ M<:(B(EJ%2C7?;WU? '+C.^E%GMUU2:1,,XMI(%&):(DCY%)*U_[ZIG M02D'! 3Y4G&=DJ!K!Q/,]9ROQ;K,N ;VROM5<>JR!,))!M]NM>)(7/P]R+0J M'3TNR,!^$(@'GI4=OB8*VLA0!3"TA+2UP25VRZ8IMRXL"$ 3=C513RZP:VF$ MIBF(S;X-)CSG"X\,EKMX9L>6TGC7D]XI- M5V.^;-!C:A!5F7"N)H-8KB F%YS29%5F+5_8OI*VB3K=#A(PH7'#R]9F^KU! M=+E>6;I2>+!S0EQ"M(@.QW'=B]XNVIF".&<(QTYX- '@NF$H5Q!4)E,7$E2H MV5*LR."Z>%O^"/7'SJNJ- !OAJ? JH78&_$8!C3$>C.A?7='<'!>.#@KL"^N MS+]W?SWHT&2B58JRTT;U$1O[WG3NX^*O?XG#(/Q[?RGPO3"<[CVKE^Y0)9P- MY,(4PC*U=9'0" Z]R)_C-XP"%GG3B8]?WQ^SL1?C=X;?:0VN/F'8>.SY\^;, M>.*-(Y\%$=3-ZU-![/GC$+77U+5%O:@!I^XIY>3VF:6Q-P'3C2'5'80'<;M6 MW;UJV7$P9%,O@$.#$-BF!">:QEB+HHAL]"!*;.0B(GG 8P/0:"J>_C282KBJ FR9(W["8P01RQ !Q.IQ19(2C'713[ M;.*%A"WVIO$$@^U;D\@1,3X/)K@XAJOC<#(DQ[EHF,$R6H9GPR$[GD[&0_9L M!F+'] 0L0"$N9MXLC(?L:]&5VE2@PR2R*^X\IUI1S9\D/!P[X3'.__.U' 2* M&"Z8#>EJ3A8/'9^O^JZEB1Z8'_!.>Z"NKM_!C7BKRI+ 8(HBCQI&3#QGIYD6 MRAXA[T%#,R[&%&%LS4=_N*TW8>H3]CLE%"_6R;BD1'GFEY2M9KM,$-3N+6#UK,*W;U4_Z(<&(%LPU)^?V-^ZE4OJQ?.,0L"]CM5C M&")3JM3TYMC7J5LT(N]:D8VH9UQ=8T.^A'EMR^X3-X&YTQ _>]\9^E\0N@>= M7VDB0S;BY74EJXF8\+=C76U/TNBA1'>O+%5[LWOY_0>SL)L+%E !U,;%^@Q- M%AG@S=%Y;S[=+' 9A#,TNC .V>)V<<7"&=(DP HZY_,V?M3T[J.F87^LK70^ MHQGL0X:JEC8OF;"\M9H"I7/8"[N^ZY:O&+XA^=XBXPG*=.J-8YI@IA.DZVP? MREJI="?QSK[LSZPTOW\/Q^)0D)"'7B)Z[ZSV2P.**DLT'5/CG<7.+S07'?H@ M-^I] 84?U^X[+[W@(KBKCZ'M:OLI>5%]0>VV5]^A8=):%I2L*QSU3V:3 =/5 MM]WJQJJM^YZZ5!9QZ2[I94EHVH#G*Z5L&PO=V]R:W-H965TS#.W*H"B\4UV%<;\_#&LA53 =>]VEF8[UVE52X:4!NZYK8>[F6.GM)(B" M>\657):.%>%TO!)+O$;W975IZ!1V*(6L45FI%1A<3()9=#I/V=X;?)6XM3LR M<":9UC_Y\*F8!'TFA!7FCA$$;1L\PZIB(*+QJ\4,NI#LN"O?HW_PN5,NF;!X MIJMOLG#E)#@)H,"%6%?N2F\_8IO/@/%R75F_PK:QCNPXW#2?\$A;AUBS[L)Y%F>"R>F8Z.W8-B:T%CPJ7IO(B<5-^7:&;J5Y.>F MLXK:(E2.0 V&,X.%=/!96XMV'#H*P&9AWH+-&[#X!; $+K1RI87WJL#BL7]( MQ#IV\3V[>;P7\$*8(TBB'L3].-Z#EW39)AXO>0'O"G.4&Y%5:.'[++/.T%?Q M8P]PV@&G'CC]-V7<"\;O\-2N1(Z3@!Z:1;/!8%\$N"E9RP92+<%Q?NTKD[_I MVO&U5.0L106"7)P%\0@O;_"J!N^-5.2DUU:HPKX])7R#^*BW0)W)RZXUO$0P M%Y4'% XR7$JEF(U>P J-U 4<0!H-:3U.X=+HC?3O^FGPUZ].XBA^U^T[J*B* MY_&>*8!]J ]_5RO%25MNOY#=@=BR=:Y<+C4YNY)UG^E>+8V!I4CQ>&P#^?B MSL(P.ARUXBAJ=L$4-VC@1CLJMA>3]JY196T^LV=('4"<]N(T9>&8EI,1+PF+ MHT'"VD$O&AW#.;G4F8?N-;7_3^SBWG#$; 8)5WXP9'Y1+QI$?-F+!\,F!2;[ MW*L*=P95C6;IQ[$%'ZJ969VVF_BS9M ]F#>_"^H.M<]"A0MR[1\=#P(PS0AN M#DZO_-C+M*,AZL62_EIHV(#N%UJ[^P,'Z/Z#TS]02P,$% @ /82I5'+[ MG#DN#0 ?"8 !D !X;"]W;W)K&ULS5IMF7=5[]4*HB;NC+^S6@90O/JX, 72U5+OV\; M9?!D;ETM SZZQ8%OG)(E;ZJK@\GAX8N#6FHS>ON:O[MR;U_;-E3:J"LG?%O7 MTJW/5&57;T9'H^Z+3WJQ#/3%P=O7C5RHJ0J?FRN'3P=92JEK9;RV1C@U?S,Z M/7IU=D+K><$O6JW\X&]!-YE9^Y4^?"C?C Y)(56I(I $B?^NU;FJ*A($-7Y+ M,D?Y2-HX_+N3_I[OCKO,I%?GMOI5EV'Y9O1R)$HUEVT5/MG5CRK=YSG)*VSE M^5^Q2FL/1Z)H?;!UV@P-:FWB__(FV>%;-DS2A@GK'0]B+=_)(-^^=G8E'*V& M-/J#K\J[H9PVY)1I<'BJL2^\/9->>V'GXLHIKTR0T5:F%-/H)GHVU0NCY[J0 M)HC3HK"M"=HLQ)6M=*&5%SO=7[NO#P*4(M$'15+@+"HPN4>!9^*C-6'IQ84I M5;FY_P"7R3>:=#3!^0]RQ9ZQO*>W2-OVX7_=3KS MP2&B_OW Z.:N4<"U)H =.+=J*K\F;:=U4%:W30:<5%S?%4IJ% M@E'J6GM&HIW1].(955>9I__-*V%4Z%>8#L9%_L M^=*:")WL'#9C+_H/!/97PCZG@J4] 44B>MZV3IP:TV+3)]58%P2.(9@51X=[ M_^!;TWEK)9U0! SBG2I4/5.N2^TCOOA]EYS)BL,J%C89[FY'2/H8D27L=DWW M<+9^["T#-N ?6C*^W]^E]D5E?8O$&Z<'%-!LG_%3?2[\ )6':=*!5.NCK6/& MQ4A+8?ZT(.F\$I9.*5%'V([> >@6RXRZ['TR\E@@U5FR]@$RNDBR"%@R2NN3 MCC_!%&(B$":/12 I8"&@V>*Q]TS>CE-<7K/5'^7P-=&^WE M9:V(S* @2/_XS!YW=K>--BFL:FE XF@)1?2<6!?'OBR_@,7$K5@F84? 7H4U M0%K':2!#VT4)Q9E8LN";:1FL=)8&/< CSR_-,2*)9!JM/D7L8N!NB$V 2Q%*&U M_*KZ3!Z++VVYZ*N@]&AXFAAU7"QJ"7XSGU."1"<0/A'5J0D58I8 %P,D55K. M=,5\9)RBC(+Z6IDV,11UT]!M.D)3\67Z>D/"J/ BSRB'HEQ>.Q"]+WY5B0Q1 MAM$BSZC@!]<2JZ5&_(&$U3&) OMH\T)+:-4S)""Z5&I<6?7$06[ M81XZTK>P4%RD^"AR-3@5K7 46ZF^_6'DQ:2>M[")NN'"B9W1 5SN+G_Y\&[O MZ&\"1:]4M2X$FZ]$3!:!,-)QLJ=/&K41CJ(TZ"RZB8P]*M(E>GTH5;)#.]+B M9<7!F.*.)2EWG2S0FWE,%:&=X^264#ZN8PBC=26BIK(-71;'^!23"IS'KI7: MZP(YI<0XW4_A3*YA":@&4E)N$>XMT8CCVB"ORA'CC.% KB!$G'$_T^+&"HL M%0!%'#6\(FJ)3 8B^QBUVF#K.8GA*[=@;^(D0SNS8W+?4:3$!T08T;-@GTS.!GHV@XG3Z&11SGY_L'1Z/Q85DAWEQA7R>+BEL=GX&FRG$ MY,7A[A@\;!:834Z^_VA+)G9]AES95YE@\T#X6H;VBUWZ5M"]( M>YNJ=2++LVYPLI&5OIV1O$+U/17(8,4S$G@)+N;4OW4E67G;TP=551?>@';TP)))W9UQ"VF-,([?X'E.@&WYP22A M2\$P5 5F^CN@GNAZ1TZIX%)R^D;QU#7:,%Z!9>1>%);-@I:29@8#O*.2]3DS MM_/,W,Z']?-]MMMT<_QPEPU! T#$:;L -I*BA]M0@A_L';X88@#]&6V&HZ\! MJMW4YI*F&UVXWP*"R>'N-R2U>&I6=X#&N@[N=">[6>.@:?;UP?C@VMY$&V?+ MAXX?4_%"L6P+E2@,S2=NZ!'7.FJ.\8V>KU/=V]"A&.A0DBWU+46&"Q#$B9 Q MJ>O97#DPI"] 6\!":$Q(SDBG;-R&"0( MO4M=M10^6W(ICX[2G0E!(LEV0L4(1%L3H-V95%PGI\'&[")KL M9*WCM(?\=PLP@4;7NJ12UB2&1!2VU/F".992/]PT$O\,\/9Y>?!'?><5/_B,@I4UE2L>!HL41IWQ"W5K=+^L1%CG16,(,Y@/#)XB$]D'R?I+)^\F#C'NJ M>$B!',ZMS3;:_F@A%&YQ&+C1_"_+ZN4Z'\R:*] M$V>:/20;U09=P/N7+;E"J]RY$EBK0G-1IEF,$SNC\\MW'T>[@H@;EI_S\HL; M5;0;+:TJEL96=K$>HEALS'.,4B[Q@Y7F]TW\?B._S8FZ\!NV M+0;U8G3>:1GE[H_$*;@V0*'>>&'" O$W>E>Q@XSWNW'>,IQ2,#*FU?FMS9U3 M]V]%8AI^,<0%&WC P;:,(#>.XX'U'4'CKB.OY1?KB/%LCI-Y8A#G:DY%AL!# MTX+>&9I%I%>#^\.%RL>6:(E>C'R?5(!;5R@? M-IW,4?--)^]320[6^>%X7M,[,_ ;W"Y#WLT*3RF>7*.A?O6$U8;N#\?L8:O1_!J<^2_F6ULY*' MK3@=V9*>M9$PN%Y4BHCL\]9H7)UZJ_1.J3/'N#\G M-AP=?&118=VHWD;) 3EPB;*DNPXLT0$' CI-/8I-7.KQSL>W"#0FC,8?@$V/ M,3\3$\KD,DYGX6IN%KD5J)6D-)FW5;87EL_!^(QM@GQQT'YV_S3JM/XBZ)^>?Q=%B@+R"Z5D#FV'NZ? M/!\)%W_K%#^@*^7?%\UL"+;F/RD@E*,%>#ZW8#+I QV0?W#V]C]02P,$% M @ /82I5)W&0GSK!0 0@\ !D !X;"]W;W)K&ULK5=;;]LV%/XKA#<,':#%NLOV$@-.VF%[R!"DZ?HP[(&6CBVV,NF1E)/T MU^\<4I+MUG5:8"^Z')[K=RXD+Q^5_FAJ ,N>-HTT5Z/:VNUL/#9E#1MN+M06 M)*ZLE-YPB[]Z/39;#;QR0IMF'(=A/MYP(4?S2T>[T_-+U=I&2+C3S+2;#=?/ MU]"HQZM1-.H)]V)=6R*,YY=;OH:W8-]M[S3^C0S<$WHTB62GVDGS^JJU%(#D$#I24-'%\[N(&F(47HQK^=SM%@D@0/ MOWOMO[G8,98E-W"CFO>BLO75:#)B%:QXV]A[]?@[=/%DI*]4C7%/]NAYLWS$ MRM98M>F$T8.-D/[-GSH<#@0FX5<$XDX@=GY[0\[+U]SR^:56CTP3-VJC#Q>J MDT;GA*2DO+4:5P7*V?D][$"VP.ZA5&LI'%*O'OBR ?/SY=BB!>(;EYVV:Z\M M_HJVA-TJ:6O#WL@*JF/Y,7HVN!?W[EW'9Q7>\ M$.Y*JPV[05\UE@5";FMVX\ &S?Y>+(VC_W/&8#H83)W!]"L&7PO#UVL-:^Z@ M52NL9.?"*7#/JJ+VG)DM+^%JA/UG0.]@-'\+:VP1RX3T#4I&A&'R4DL[5J#9>5^7G&'FH-<)0GABB7]0#SBQP1NP/MS,D2D.'3\P8,^U/MH&'7 M0MD:--]":T5IV(.RO/EN_EO^06FVU:IJ2XO1R(I1O**$&;OSU!Y']B-+PB"? MAOCQTP^3.(I_/21%81#'^=%:1[I'"%U4I+U"98W:.BA[Q7&0AE-\QFG$TB#/ M0GR&8<*28(+/ I]YYVXG8'@F3($QBC$?0 M.&1K4&O$H18E:D3*1[!FQA98D4@Q3F.6.;D@*KR> L6)/BDB]PZS";[38(IV MWMR^62!+F&6%$@ITHSE03R)V>)N<<&,P6P%KY5(T#?:+AA+$SHW18,]6*D-<5' #K1$<97#PPI>M^EE? MOD:EFR5.J*$/;XX=0(BG09%%K@BRK&#O3OCCF+))BN\),DWV2IQ[)$O]DN7[ MA0,?9[3E@=9.9]^ &18855X>)$G&W@.9H]WD$W)9=H3F4#BOV/?,I7YN'RAV MXI@8[ ]5H04]\R@Y8!8;U5*VA"R;MO+<)R'GUFE9PEI(20YB6O=J9T>32RT; MX>>X80;?9B50,S5D.'5P8I?=U%RNP1Q[-_N<#,9BTUN"1W-IN#^A;+'3@7&$ MJO1KBN1?,"^<'$U+9\JP.,I8G'Z#XVX/E'ANN3G> ,3"(6 M%4&4GAI_0^^_V.KYT.KYV58_'4C X&F+)SN"26RZQ/G8/)JG9L%90]\^"[JB M,@=I[.'9.Z6PIDZ4ZZJUK::%YJ44VQIKDR-O*_I\KA:%(9?NXAJ0;/UV5%M@JU9UO:$))8,^X M@9)+.%5HK'4]AXL[KH6#"E4948&70R>M%LO6HXBA:_7,&ZJ[@+0T-+>GFX=3LH:.#/"(EV8>V<@8-BVU:;ETO%B M=5&9X'7D .M3<7VQ(]P#7;30%>+MQUU"CY0>F=M;,,UX/UNA_?[X]<61*:<> MS0MW&@K=WEVD_CU%ZHM'HRB(LY1-TF(X' PGAR *3QP2HB"):$1.W?/8IM\] M3DV*\<&]!O%>N]N;0,D%30RXOE+*]C]D8+@VS_\#4$L#!!0 ( #V$ MJ50-W^M)A ( &P% 9 >&PO=V]R:W-H965T=34SLE-2XM4%V6PKXO4)EF%@VC[<23W!3. M3\3S:24V^(SN1[6T',4]2R9+U"2-!HOY++H>7BW&/C\D_)38T,X8?"=K8UY\ M<)_-HH$7A I3YQD$__[B#2KEB5C&:\<9]24]<'>\9?\:>N=>UH+PQJA?,G/% M++J,(,-8;=OV<>;[4* I?:-K<\[,(TIJ<*3LP*RBE;O_BK=N''<#E M8 \@Z0!)T-T6"BIOA1/SJ34-6)_-;'X06@UH%B>U/Y1G9WE5,L[-'_G? _SC MGG\<^,=[^ ,EP:-Q<*]35?,N@-1P8\JJ=B)<0Y/#K52UXY5^[WLUGVWYX8JK M B$WBKW%?0&U]1ODQC2+2 V[)^,HR'"=E0( *P% 9 >&PO M=V]R:W-H965TICU<$[%_?7S7=)0-"@OB>VS_7WVG3W::'-O:#RB),HNAK6 JI@LG(VR[- M9*0K*J3"2P.V*DMAGF98Z,TXB(.MX4HN(_U:71K6PC9+)DM4 M5FH%!A?C8!H/9SWG[QUN)6[LC@RNDKG6]TXYS\9!Y AA@2FY#()_:SS!HG") MF,9#DS-H(5W@KKS-_MW7SK7,A<437=S)C/)Q, @@PX6H"KK2FQ_8U--W^5)= M6/^%3>W;9\2TLJ3+)ICU4JKZ+QZ;/NP$#*(W I(F(/&\:R#/\E20F(R,WH!Q MWIS-";Y4'\WDI'*7185D:2 M1 N?;YS%'HQ"8E@7'*8-Q*R&2-Z Z,*%5I1;.%,99B_C0Z;;2*$GVY.NV/>CZ?-WW>]"!4YP3")7!V4,EZ6FW!;^GFA7(L5QP!-KT:PQ MF-SD" M=\#0Z]!K+G[HG0'R8;IFMM\QT94"]9(4>AWHBB"3Q\&29Q\@ZGY MBYF N),,CIOOC291O$^+$Q]SJL0)/2^\=GGAS@25:)9^3UA(=:6H'J;6VJZB M:3V!S^[U'N.ZEU)9*'#!H='A43\ 4^^&6B&]\O,XU\33[<6&ULG55M;]HP$/XKIVR:6JEJ0H#"&$0J[:I-6J6J M[;H/TSXXR858=6QF.U#^_^XYWPO3M=*/ID2T\%0):69! M:>UR$H8F*[%BYE0M49*F4+IBEHYZ$9JE1I9[ITJ$<12=A17C,DBF_NY&)U-5 M6\$EWF@P=54QO9FC4.M9T NV%[=\45IW$2;3)5O@'=JORQM-I[!#R7F%TG E M06,Q"\Y[D_G V7N#!XYKLR.#RR15ZM$=/N>S('*$4&!F'0*CSPHO4 @'1#1^ MMIA!%](Y[LI;]"N?.^62,H,72GSCN2UGP3B ' M6"WNKUI^PS6?H\#(EC/^% M=6,[&@60U<:JJG4F!A67S9<]M>^PXS".]CC$K4/L>3>!/,M+9EDRU6H-VED3 MFA-\JMZ;R''IBG)G-6DY^=GDBG$-#TS4"-?(3*V17MP:.+IGJ4!S/ TM17&V M8=8BSAO$> ]B'ZZ5M*6!CS+'_*5_2.PZBO&6XCP^"'C-]"GT>R<01W%\ *_? MI=SW>/V_IWS)32:4R]K ]_/46$U=\N- C$$78^!C#/;$N&MZ'%0!!9=,9IP) MX)("U,W[5LUCY\ L%([0RA-R?4J]GM5:<[EP_<;-:R4X&-T-\L0L68:S@";5 MH%YAD-R7"(42-(4.V?KR@E=+"]8I7R5J2V*X1HW_0MF94-FRLJL;,)G#)698 MI:BWMSU(-R!PA:[K;+&G%HW8&I"^4LMN#"]#]:22_ %!+ P04 " ] MA*E483(_7><$ "^# &0 'AL+W=OFZ*FAIM3U5&+ M7RJE&V[QJ1=CTVGBI5=JY#@.PVS<<-&.9A=^[U;/+E1OI6CI5C/3-PW7#]IR%(T>-SZ+16W=QGAVT?$%W9']H[O5^!IO4$K14&N$:IFFZG)T%9U?YT[> M"WP5M#);:^8BF2OUW7U\*"]'H7.()!76(7"\EG1#4CH@N/%CC3G:F'2*V^M' M]/<^=L0RYX9NE/PF2EM?CJ8C5E+%>VD_J]5OM(XG=7B%DL8_V6J0G80C5O3& MJF:M# \:T0YO?K_.PY;"=)]"O%:(O=^#(>_E6V[Y[$*K%=-.&FANX4/UVG!. MM.Y0[JS&KP)Z=G;-)6\+8G<.P;"W9+F0AAU_X7-)YN1B;&'$B8Z+->#U !CO M 4S81]7:VK!W;4GE<_TQG-MX&#]Z>!T?!/S(]2E+HH#%81P?P$LV$2<>+_E_ M$?]Y-3=6@R1_'; QV=B8>!N3/3;N4#ME+XFIBA7QCVY@4"X\990(:*>I,B;^LM%=3,23_NXEDH5)*Q5#H56Q.KE$1)BG;!CD6+ M'=4;J)J3\Y> /X&QJ_+OWD/=*&/9.V,%Z@.?[[G0["N7/;U&!$2A!Y!9?T?S MJ7K89L?1"3MB>1Q$8;Z]F&9!>)8^+9S<#G6NB162&R,J 5L(:V_V&5J"ZC7K M6]Z7PGF&!)7H-L/**"E*[_!\S1=?8^:472U)HUTY(<^7GDLX87LMK"#CEX M09DFCV8'>3O- GK--GK-7YQE.=:3M M@^>1HU"'6\D&K"6[*]T'@7>G^W:_A5^:_M_Y7&GN*;.Q@JPE63!)7'4E">H- M8H1[KE82%=0@^"4UOF*B+$C#S+VB*$==-UV/D]Q"U7_1-+WTIEX24%X(/\P!4>:.T%?\,&\=(0YZ?G6"1 M!M-I?++'S' L1RQ&;/G$+<#+28IT;Z'3?>=Z"2(H9%\.O6BN;,W!?3?G]G>9#YZPZ,3-,G M":TJD!KY73,"4[81)>XF^.L*K")HHSR!F@;1)&=#!$F:L2S/V!=EH8@CF011 M'KM%'*3Y=.>QC+=FRH;TPD_.+O"^M<-XN=G=#.=7PTSZ)#Y,]LC 0H!FDBJH MAJ&PO=V]R:W-H965TC@N5*:9E'I7'T;QY276 FZ-C5J MOMD96PG'6[N/J;8HBJ!4J3A-DE%<":FC^32Q\:AJGI,:5!6JJ2MCC$I4Y MS*)^]'*PEOO2^8-X/JW%'C?H/M\ Z5\D#LQO<39M29](KGZQ?TOT+L M',M6$-X9]546KIQ%DP@*W(E&N;4Y_(VG>(*#N5$41CBTLJ,L@KPA9ZJ3,GM0 M2=W.XOF4AS.%2?*.0GI22(/?K:'@Y9_"B?G4F@-8+\UH?A%"#=KLG-2>E(VS M?"M9S\TWSN2/?_BX"K@S%7--(J3KPX/8*J2/T]BQ&2\P,NZF+. E[T7 MB2.7F(.%M4+O,:R_+;;D+-?+?Q>,#3IC@V!L\)XQ;J.B40AF!W26[/P\V?CL MU_A6KB^B^Y:]I5KD.(NX)PGM$T:O.'W+#$@"J7/5,#V\ %[!'S;95$!8%MX3T M9/G>AK1WDS!F+^TG\& <"UU!UIMD$Y[3WF@RA@N$#CM"A[^-4-@>@3!OK'1' M<,<:Z2V*+]I[F^('IJS-.N<$G&]5"+>>'Q="_VG??F--_&(AA,)EG!;D"B:) M9W\T&L)Z\YD"X^O-@J#?ZX]2& Y26/GSR3CE$DE@M?R7X.9FPO?)3U5 ?/9^ M5FCWX9<@CK71KGU*N]/N(UJT[^__XNTOQF'M)3NO<,>JR?68R;7MS]!NG*G# M:[PUCM_VL"SY,T7K!?A^9XQ[V7@#W?<\_P%02P,$% @ /82I5+IR1&C_ M! "0P !D !X;"]W;W)K&ULG59M;^,V#/XK M1'8;6B!-8B=.TBP)T)<5VW#%%=?N#L.P#XHMQUIMR2?)2?/O1TJ.ZUS38-@7 M6Y;)1WQY2'&^5?K99)Q;>"ER:1:=S-IRUN^;..,%,SU57?-<;1>=H+/?^"S6 MF:6-_G)>LC5_Y/:/\D'C5[]!243!I1%*@N;IHG,5S*[').\$O@B^-:TUD"6PG3PCD)8*X3.;G^0L_*66;:<:[4%3=*(1@OGJM-&XX2DI#Q:C7\%ZMGE MC2H*83'*U@"3"=PH:85<S ,NA .PO $WK!Q?.CPAO_+\5MAXER9 M2G/XZVIEK$;V_'WBU%%SZLB=.GKGU(\<&02Q,O982$_J4GG.3,EBONA@_1FN M-[S3 C1=8(6JR!\AX[S"L.,""A1 -\A14"GD3EZM>64SKE':%[FO MMYQ91+ *I)(7,9,Q5@ZQ ; A:$:Q\F >(1621/9;6XZ18P92E6/9(Y'0$INI MRJ"L.9_!4Z8Y/Z (8(+CK,DP/0*X:Z-Z+R&80CB&3X=&N'\0=*?# )^#80B/ MF=+VPG)='&B?!>1OB+#R'#P0TN73O031U.N_ 8:3V M'@N; ?TW%&:UP7@JR:$@%UV$L(X,QH!)M[_CQ&&CM^*KZT(\N6!H #95S"-UYM!#^>SML-,QF43"2S5@I?38SI=^KHD&I5O.61BS?JN?Z MD^"RKC.\OT11[2NH9#O??B,$O8S0)F-F((JRLJYUH3JGHAYTHV#D+3YH7!]@ M-.F&T^ 43\8-3\8G>?*(PTY24;!3G$_*,M\Y1RC-(J8*;"Z+8\PYB7V<.53U M/H$4=^L276JU$0FFY5O%\#*RC 862/!:QS)>,^T22N3R[;IE5 _N*DN7U3[" M36QQQJ$!J+D:L %9[,[ 7TK:QO:.HO6%0?"ELJ@G,%GM4"-C\< Z&DC -78! MCV^JU3\UD!;FF>*WYZZ[1U8[J-Y2U+>RURL8KO:(\+0K>>OSEGI/[=Q][=R# M=PZYO<&ALG1KRE;!9)7B18V%AYXNV&4 .N _A)K=EMYMPK M/]Z]BOLA&5O-6F!"#I/ZPJW;"W4A9'1[?,<%;GF@3P?ZHP MP?4''=!,_\M_ 5!+ P04 " ]A*E4ZGYC:X@& !S$@ &0 'AL+W=O M\=R^<^&QSM9*?S$+(2Q[ M*(O*G/<6UBY/!P.3+43)S8E:B@IO9DJ7W&*KYP.SU(+GCJDL!J'O)X.2RZIW M<>9H-_KB3*UL(2MQHYE9E2777R]%H=;GO:#7$F[E?&&),+@X6_*YN!/V\_)& M8S?HI.2R%)61JF):S,Y[D^#T,J7S[L"?4JS-QIJ1)U.EOM#F0W[>\\D@48C, MD@2.GWMQ)8J"!,&,?QN9O4XE,6ZN6^F_.-_ARY0;<:6*OV1N%^>]M,=R,>.K MPMZJ]:^B\6=(\C)5&/=DZ^:LWV/9REA5-LRPH)15_L3%@4>"_TPW",OZN"(G+QH/QQP>ZFT ME=6<_3V9&JN1//_L$1]WXF,G/GY./&HJ7Q6"J1DSC2K=JMH%YUYQ5+"G9LDS M<=Y#11JA[T7OXM-"L)DJ4&UDOJ50L:56]S(7ALUDQ:M,(L1R(Z#3KTRM=&.) M8YBN#'09TUII&"\4Q*VE73".DYF"F$+6_%8Q[(TJ9,ZMR%FAP#D54""@)U.E M@!T/4'\L<7BA5@8)9OJG[--""[&5$PP1S19=2%\\$; ;H9TG529PX-O7$GI^ M5_>B8)=240[SI5A9F1GV25DX_MKS30684W:C5;[**&)U31RQR/>2L8_%CS^D M81#^O$D*?"\,DZUW#>D6H7(^4)GE$%:H99,*M>#0B_TQGF$OA^Q MR$OQ'.&9-,8U'(9%D>>/6YYHZ$6QSX(8ZL8-5Y!Z?A2R*V4HF%",OJZY2W'Q M@!9OR$-Z2[FY?.)IZ@V!=.M(O8/P(.UH]>Y9SXZ#/DN\ $-0MB6D#EQDH(6 MQS'YZ ]9$'A^/&9WZ-"PRF-S4<'"NAGQ'+U/4B%2$W?B(F\(5TD0W1!E\S' ME.!]-M.J;,4A_2G L3<.AE@<(]1I..Q3X%PVC. 9D1'9L,^.DV'4!]H:!8>* M::P[IC= 0JQ&'FC,.VSSQ5'+6>NKG*!,L^:HG.PE-0ZOC5M&9R1$YZ"_[?G M:A!6I C!J$^K,7G<=W@^&[L.)GIA#HA.QR >LF*5BQ?L1K[5;4FP0N""-2<. MB:?HP DG;+4!R&NL\2#!"K1)V^#AU>G@KKGFD,]==_((!FDNM@6S" MT$/?L)\>*9?8A"EH'>4*E"#8I+PCBK])N29*["1MV+F&_07-$X"AAZZ22ORMA/9BGJ"U3L<**=PKQL[-H$; MPMTD9&_VY''2Y7%R2 "?D, M_*"=@'4]M^G7M&^KS'51&O]D/3O8K>;Y/UO3[ ,PA&FB# -V>1F@(VZ@(T.#AB- MR&\+7#J4=$;8PR.W5\?NR'UH(N0*8:?F+F)4?8]5\%U,7LSUSY6D0KJSN H( MQB3QHI1&VV2(/KZW?Z<=C.G!,.*>YM56+5T MGQ6FRJ(/N.5"\%QH.H#W,Z5LNR$%W7>FB_\ 4$L#!!0 ( #V$J52)JYP: M%@, +T' 9 >&PO=V]R:W-H965T M7^;,F3F^3'9*WYD*T<)]+:29!I6UZ_,P-$6%-3,G:HV25I9*U\S24*]"L];( M2N]4BS >#D=AS;@,9A,_=Z5G$[6Q@DN\TF V=H/V\OM(T"CN4DM/.[-G@,LF5NG.# M#^4T&#I"*+"P#H%1M\4+%,(!$8T?+6;0A72.^_8C^CN?.^62,X,72GSEI:VF MP5D )2[91MAKM7N/;3Z>8*&$\2WLFKWI,(!B8ZRJ6V=B4'/9].R^K<.>P]ES M#G'K$'O>32#/\I)9-IMHM0/M=A.:,WRJWIO(<>E$N;&:5CGYV=EQ);8NFML+7]E!)>X'=Y3PW:U;@-*#;9U!O,9C= M5@[;A>%R!=;ETUXO_I,RLVZ92Z+ F0!&@:WI8P7'7)*3VA@F2_/J'&XKC?A$ M2R EBJJ3PC41+)CP@,Q"CBLNI6-#!5BCYJJ$(TBC$;6G*5QIM>7^0O\=_.6+ MLSB*WW3]'BK*\C!>CV)9IUC6J]A-\QQYP8I";2352'?' _('8)32ZI!BO<#_ MK)CY+5DO RB8Q94BJG_*](#T:PB5[,#"*7H];<4G,V=DWBS'&6N-EL$(U/X9)>_0)02P,$% @ /82I5(R]B<,F @ A00 !D M !X;"]W;W)K&UL?51-C],P$/TK5DX@K9HT[0): MI9'ZP0H."]56P %Q<))I8JT_@L?9+/QZQDX:BD1[23SC>6_>V#/.>F.?L %P M[$5)C:NH<:Z]BV,L&U <9Z8%33M'8Q5W9-HZQM8"KP)(R3A-DC>QXD)'>19\ M>YMGIG-2:-A;AIU2W/[:@#3]*II')\>CJ!OG'7&>M;R& [@O[=Z2%4\LE5"@ M41C-+!Q7T7I^MUGZ^!#P54"/9VOF*RF,>?+&QVH5)5X02"B=9^#T>X8M2.F) M2,;/D3.:4GK@^?K$?A]JIUH*CK U\INH7+.*WD6L@B/OI'LT_0<8Z[GU?*61 M&+ZL'V.3B)4=.J-&,"E00@]__C*>PQD@G5\ I",@#;J'1$'ECCN>9];TS/IH M8O.+4&I DSBA_:4PHC0^. MRY%R,U"F%R@7[,%HUR![KRNH_L7')&_2F)XT;M*KA _:<;60VO]#1\&E*ZA%AJ9A"-! MD]E;RFN'IA\,9]K0:(5QU+9AV= [ =8'T/[1&'"98>9K_-D9=G84V;=\R[D$WY,XS>\F6REWMXZ3AUN> ML/Q&['BJ/EF++&%2G68;)]]EG*U*IR1VD.MZ3L*B=#*?E=>6V7PF]C*.4K[, M0+Y/$I;]>."Q.-Y-X.1\X27:;&5QP9G/=FS#7[G\NEMFZLRIHZRBA*=Y)%*0 M\?7=Y![>+B@M'$J+/R)^S!O'H"CE38AOQ^X'%< M1%)Y_%,%G=3W+!R;Q^?HOY3%JV+>6,X7(OXS6LGMW228@!5?LWTL7\3Q5UX5 M5"88BC@O_X)C9>M.0+C/I4@J9Y5!$J6G_^Q[)43#0<4Q.Z#* ;4=2(\#KAQP M6>@IL[*L1R;9?):)(\@*:Q6M."BU*;U5-5%:?(VO,E.?1LI/SE_X@:=[#EYX M*#9I5$K[,WB,D#6@,\L MNP$8_@20BY AG\7U[M"2#JXUQF4\W!.O7\V_?E.FX+/D2?ZWY4:DOA$I;T1Z M;O1%2!:K'U<9W/A%G/R]TK_XA1_FF&+BSIQ#4YZN%0Q? M\"P*66ZITZM#>>,*ZMO*G34']AE(G/;M&9(JF9CF#.K7 FMK3\].] MI<)I'68ZKI30U:1Q!XI9!;@0"B*_I:;!RD-!S],)&R"$]N=S>;^PU8ET(#2R MI!HL$ ^5%'?$0CX)8%O3KID7(-BCJ>81M -IF8G5/I3G#&TU:XQ .K*\&C/0 M&RJOU_W]N]ZT#52#&51+D]>CK\83M//IA>><9>$6J(57-2\'U97M5(]UE> : M-# 867 -(S@=*OBTBPB/=O3N6OF!VR,WT@1#=H(M>58VSFG(5:_R[X^DG>-E M7(T>!,=5&&DX(310X2K Q2.-W>FT);'!#!+4MZHAC31D1YI!8_ ?N*)Y0)I* MB(PLMX85LC<]5\A-NX"F%+?5-E@%?@^?D08$+^R$)K2"%[ M.W2%T($)U;0M=->*4.SW"*W!ANQ@ZWFJ[2T'UF#"[KA"8\TJ;&^3WA>Z"O!> MRV$PZV\YL 8RJ .\U(@8S2R."->>PG7-F MU0>T)U@S#(\\#&+-,SQT',3=40\1M[UV&JR(Z^*>+T$S$-L9^+M0"H.'2,@M MS]B.[V44VE9,K/&%1YX2B489&3HEDN[\AQ!IX\5@A8,^C8G&'['CSZCQ=0T* MT0PC(T^01$.,#)T@27^VV2R^2BP[;3YI+A!O3$Z_Q]02P,$% @ /82I5/#XZ;QU M @ =08 !D !X;"]W;W)K&ULC951;YLP$,>_ MBH7ZT$I;(8!I5B5(;:)I>YA4I>OV,.W!@4NP:NS,=I+NV^]LJ)4FM.L+V.;^ M=[_[@\UDK_2C:0 L>6J%--.HL79S'<>F:J!EYE)M0.*3E=(MLSC5Z]AL-+#: MBUH1ITE2Q"WC,BHG?NU.EQ.UM8)+N-/$;-N6Z;^W(-1^&HVBYX4%7S?6+<3E M9,/6< _V87.G<1:'+#5O01JN)-&PFD8WH^M9X>)]P \.>W,P)JZ3I5*/;O*U MGD:) P(!E749&-YV, ,A7"+$^-/GC$)))SPP59+\A\HQV9;VO.+"LG6NV)=M&8S0V\-UZ-W7#IWN*]U?B4H\Z6"]B! MW )90*76DGMK/Y*9DE:CPP9I;$-FG@,T.9^#95R8"XQYN)^3\[,+.J)[CM"-)7"+XQ?4FRT0>2)FDZ()^]+9]#%>2CE_(8O0B& MI,&0U.?+_F/(2JLV^'!DPZ^;I?'KO]\HF(6"F2^8OU(PU&#&@!TTL$M0^ 1N M6^[*3U<4F]T=VG0:E%-Z%8)>L.6!+7^3[4$NN1!0XWZM@._84L @8)>%'@+2 M<7X$>!HTIG0\#$@#('V?>94RP][1DZIY<01V&D*+8:PB8!7OPQ*8LT*<9'P*=!19;1(^3XX%!P!S+NLS67A@A8H2RYO,*& M=7?(=1.K-OZ<6"J+G[D?-OA? .T"\/E**?L\<4=/^-.4_P!02P,$% @ M/82I5-$2'L5 @ *04 !D !X;"]W;W)K&UL MC53?;],P$/Y7K(B'38(F3;J!IC12VX'8PU#5:O" >'"32V+-L8-];<=_S]E) M0YG:PDMBG^_[OOOA<[K7YMG6 ,A>&JGL-*@1V[LPM'D-#;SMT9JY3#9: M/[O-0S$-(A<02,C1,7#Z[6 !4CHB"N-GSQD,D@YXO#ZP?_*Y4RX;;F&AY3=1 M8#T-/@2L@))O):[T_C/T^=PXOEQ+Z[]LW_G>Q '+MQ9UTX,I@D:H[L]?^CH< M 8CG-"#N ?%KP.0,(.D!B4^TB\RG=<^19ZG1>V:<-[&YA:^-1U,V0KDNKM'0 MJ2 <9BO8@=H"6T&N*R5\:=^Q+]P8[NK+KNX!N9#VFJQ/ZWMV]>8Z#9&$'3S, M>Y%Y)Q*?$4G8HU986_91%5#\C0\IX"'J^!#U/+Y(^,C-B"7CMRR.XOA$/(O_ MAX\OA),,14P\7_*/(I9&-VQ!J1JZG=1(K-G"MQ ,^S[;6&__<4%P,@A.O.#D MC.!#TW)A:)B0Y34W%5B:*,D1"H::Y8<(N+6 ]E2_.OI;3^\&?9=%:;@[KN E MCR[F\.C648:5'T9+ZEN%72L'ZS#O,W_-7]GG] YT8_N'IGM$J%&54)9)*(DR M&KVG*3+=8'8;U*V_VQN-5&:_K.DM ^,&PO=V]R:W-H965T3JJ0& MIRKW=:6 IBZIY'X4!"._I$QX\ZE;6ZOY5-:&,P%K171=EE3]7@"7NYD7>ON% M#:K6"F=^AY*R$H1F4A %V:1,/QWOTKTX[:ME2#4O) M?[+4%#-OXI$4,EISLY&[;]#J&5J\1'+M?LFNC0T\DM3:R+)-1@8E$\V3OK8^ M'"0@SNF$J$V(^@F#,PEQFQ [H0TS)VM%#9U/E=P19:,1S0Z<-RX;U3!A3_'! M*-QEF&?F&W@!40/90")SP9RUGTAO]0^D9%4K)G*R!L5D2JY68"CC^AJ#GQY6 MY.K#-?E F""/A:PU%:F>^@;IV9?X24MET5")SE")R;T4IM#DBT@A?9OOHZQ. M6[37MH@N MY3=4/B\".)@B@ZP6?Y_O3P IVXLSIV>/$9O+M2UL)H="GA-2JT M=B6H6.%5)IS1+>/H/VA"#3$%D"WD3 AKNLS<0N6\O[U 9=!1&3@J@S-4\!1= M 1 )$+GE+*?VX#71^-09Z[O?F-U CARD+0XO\S#X/)CZ+X>6'@=-1E$7\X;L ML",[O.C;LJ B!^O;.UT8=<"CBR[T@$$;AG4!#P:/1&C:U)E*,32)FR=B!J?-''>:Q_]W\B13LB0"ZZ^KL,V- M?&,]?O+=M55-H3BE;WS$/1X$<=A3>!P5CL/!Z+3(22=R&PO=V]R:W-H M965T^7T8)EM#SG!_EAFLP74O_@3T8%G;-[)K\7 M=T*=^35*G&0L+Q.> \%F8^\RO+@B?3VA&O%WPE9EXQCHK3QR_DN?W,9C+] 6 ML91%4D-0]?7$KEF::B1EQ[\;4*]>4T]L'K^@_U%M7FWFD9;LFJ?_)+%5ISZ#.R:J@.<1 W\]ILF<5A<^WC!)D[3\!#Z ) H_AJ(_5N8+T;6,$B M^V[.P*W>"DW!95&D2;2V7FTJX3&X7F;+E&HN@"^SF2('>!!4L:P:\^.K0@2W MDF7E3XL]J+8'5?;@%GN:?N2U'W>Y:XW3JW#TG?0T(4%O,/*?=JR.Z]6Q=?7: M&U.F[\\DG[<$]@Q\>2Z4)U@,'I),C^,S<*\NE3,:K0?<2RHD4!1CX,?E;4_O2)'K;44N1"'>';E^O7K?NGH=#EF'HWP5 MCJ+RR"YS[,!#D/%<+DJ+AP:UC8-W9A=2U+*S:UC;.NP$N\+ R&YP)'YM@)H$ M&[;Q*VS(?G@JACF00_";46%SDE'S$+XSQ;"38J'1^A!U@V1&_T-[ CB 9'A; MQ8*@A61&TT-R,I+9D=TD,T(?VI7^]"0C;I*9Q!#VNT$RDP9">QXX@&2#+9+! M/FYCF='V<'@REEF1]3^BB[*@$1M[ZB]/R<03\R; 5J<:_8<._1<\7JK(B'4\ M;9A&TV'8"6[ 1CEN%_#]N;$!>L6-8:^_FQO0:#)T%."OW0S^ UTHBJ%1<(B[ M$5*CZ="NO >$E&R%M-=RLT.CUM"NUF^XV1W(>Y3&T,@TM-?9[\$[=[D,C:C# M03=X9U0>VE7^ -X-MWG7(B3(Z#6RZ_4;>.= =I8RR"0 9"^]WX-U[@H:F72! M.M*^:?1OCM; V>[@M%;0R.@_LE?P;Z&='=E-.Y,2D",EO /MW#4U,CD%];I! M.Y,^D"-][$^[_@$U-3+ZC^Q%_5MX9T4^O*9&)D4@>XJ8*C@JH@6@>0QB%=24 M%QG+]RFRL4D$..@$6;!1?>Q0_;W)L@%Z1990WT0[N\Q&MK&K36/W>T>J;FQ4 M'W>CDX,;G?QC=7+PCDX.)"W]0FPT'I^LE>- WJ/NQD;*L:N9TP$JN@MQ;#(! M[D:_!YO4@(_5[\';_9X!;JG$L5%Y?+)VCP/961(1DR6(O:CO! _=I3DQ289T MH[=$3-8AQ^HMD>W>4DN!1$R*(/8_!F]@H0/9S4*3-8CK 7 '6.BNU$GC(7$W MGA(3DW#(L9X3D^T'Q6TL--F!G.PYL1WY@#+=;[Q\HE_D^4;%/,E+D+*90@[. M^RJD8OUNS/I$\J)Z'^612\FSZG#!:,R$'J"NSSB7+R?Z%9?Z#:7)_U!+ P04 M " ]A*E4_A]?F80" #2!0 &0 'AL+W=OJ1DDW MA=(5LW34Z]#4&EGN094(H\'@^+JTSA&E2LS4NT7ZO%YI.8<^2\PJEX4J"QF(2W RO9V/G[QU^<-R8 MG3VX3%9*/;O#73X)!DX0"LRL8V"TO.(,A7!$)..EXPSZD ZXN]^R?_&Y4RXK M9G"FQ$^>VW(27 :08\$:81_5YBMV^7B!F1+&?V'3^0X"R!IC5=6!24'%9;NR MMZX..P#BV0^(.D#T$3 Z (@[0.P3;97YM&Z996FBU0:T\R8VM_&U\6C*ADOW M%Y=6TRTGG$V_4:/<*V.@1@W+DFF$DUNTC MS"F=@G,5L%R[AJ52-83(W26@I MO",)LR[4M T5'0@5PX.2MC0PESGF_^)#DMUKC[;:I]%1P@>FSR$>?H)H$$5[ M],S^'SX\(B?N2QE[OM$!OF57)&,:MA((#:6IP98(\Y>&VW>XDQE*U[6P$$P> MB3CJ(XY\Q/A Q!MBR[EH/.<2LT9SRTG"_"T3#=48"JTJF*FJ;BSSKT85,&=: M1X5ZK6?&@8RU4C;=EMO M[0?3C7^/'^Q3&ECM?/E+TTX[ZJ4UEP8$%D0Y.+\@2;J=(.W!JMH_PI6R]*3] MMJ2AB]HYT'VAE-T>7(!^C*=_ %!+ P04 " ]A*E4AIU>L-<# !V#@ M&0 'AL+W=O-S?7QR M[[$]VG'Q(A, 1;YG:2['3J+4YLYU991 1N4-WT".3U9<9%3AK5B[7TWHRQW)B/3]B0F(UZHE.7P)(@LLHR*'U-(^6[L^,Y;PU>V3I1N<">C M#5W# M3SYDG@G5M'B5D&N60\)P)68^>C?W!I@>OS)8"?WKHF>RI+S%WWS M$(\=3S."%"*E0U#\V\(,TE1'0AZO55"G'E,#]Z_?HM^;R>-DEE3"C*??6*R2 ML3-T2 PK6J3J*]_]#M6$>CI>Q%-I?LFN[#L('1(54O&L B.#C.7E/_U>";$' MP#CM@* "!(> [@E 6 '"=4T3$G5[]]&+D*V>B8;E2-/"U'#DZ,')(O M/%>)))_R&.+W>!=G44\E>)O*-+ &1-XW)/2O2> %00N?V?EPOP4^M\/G$%GA MG^SPST5JA=_;X8]\BW#/P#V+EF&=%J&)%YX6HR4'_OH#NY$'!9G\VS)(MQZD M:P;IGI1LJ8BLPU\3NL6LTH-VT#([DJ;0ID09M&^":N/<3GS/?$;NMH5-KV;3 ML[*9<2P%H1WS&JT)F2E.X+5@ZD?;V^P=DP@M)/HUB;Z5Q$.N0&!!8BU&/ .R M$CPC-.-"L9_46#%?D9C)B!>Y:JNY_@EQVFD-:EH#*RUM"UF3$J4L>Z^NC4D9 ML;?/Y-;#[-SC4M;5X)AR]Z#C.]+#FO302OHYQZ4V93\A)ER0^GJ-RZW4+2F7 MLIWZ\(CZ >?9\(CS";*W-=G;,[)/,2VOK@M+>?E>X^W>Y:K8WUM"_ O4\;2* M:I%Y;NWRGFW0L VL;"6\?L.-C&WFC4OZ%[1)O_%)WVZ4_Z7\_&.;[!W89*7Q M<<=3&C=6ZMN]= %""S'M!.0)=XH@!!;>0O'HQ:9'8Y)^_X*R-Z;GVUW/Y'6T MMRS(A*(Y$R9E@?.YPOU2V=*^^SDVP, ;X/>$N(VM^79?J\2='4I+_B%GY'9C M2/[MY40.&H\*O/^5VV13B"C!L\,O!:\&ZOUR8^#N;9X MQ3>7"1X,0>@.^'S%N7J[T0/41\W)OU!+ P04 " ]A*E4Z1W9MZ@" #I M" &0 'AL+W=O^+Y,,N\3MV29*3/AQ\,57L(, MU/WJ1NC(=RPIR8%)PAD2L!AY%^'Y.(P,P&8\$-C(VAB95N:EE*C?9(U;K.4"O\@:(@ MBG; Q\WP"20.'F[#?6V: M4^2.*TP1T[N2?Y2#YX*H5R1=U5U>EKQ=RVO^R^LX' 2!]FU=MVQ'5KN>M26Z M[42W&T5?7TP;6N\XEL[A_.VZ(MT#^5OR=NK.1;VP]'F7Z+@# )>GW!N7H/S&WG7C?Q/U!+ P04 M" ]A*E4)?>R 3\# #;# &0 'AL+W=O--<BTHQRN)9(565)Y*]+8&([ M"W!PM_&%K@IM-\+Y=$U6< /ZZ_I:FE78LF2T!*ZHX$A"/@O>XHL$CRW 17RC ML%4[U\BFLA3BUBX^9K,@LHJ 0:HM!3%?&U@ 8Y;)Z/C1D ;M,RUP]_J._;U+ MWB2S) H6@GVGF2YFP3A &>2D8OJ+V'Z )J&!Y4L%4^X3;>O8T2A ::6T*!NP M45!27G^3GTTA=@"&YS @;@#Q?4#_"*#7 'JG OH-H.\J4Z?BZI 03>93*;9( MVFC#9B]<,1W:I$^Y]?U&2W.7&IR>OR=4HF^$58"N@*A*@C%5*_0R 4TH4Z_0 M&?IZDZ"7SU]-0VT>:&%AVI!?UN3Q$?(>NA)<%PJ]XQED^_C0"&W5QG=J+V,O MX161YZB'7Z,XBN,#>A:GP_$!>.*')Y >@^]ETVMKWW-\_2-\"\$W(#5=,D ) M++6'LM]2]AUE[PCE37U\D4K>Y*H\L@9M'(&_@S-DZA&3"@%ZM#[4\.'#FY;U&8>3@4?L\%2QHU;LR"O6G!_X M9DDDK9_)/.=;%G_Q5_%&,HU$4W?,@F?SEP7@8 M30:[@7LR<=2URL@K]!-L@"&,?J-'V8)W>C%^"L;@N!,4_P=K&I(3O#D0^8 Y M72_%_F9:FQ,_VIRNL^(GT5IQUUNQO[F>:,[@H:Z5>$/VQ75-%ON[K+/CQ3,\ MC-[T'NU)UQWQZ$EXTG56//X?GHP?^ME+O"&UN'!GZBM!KMSTK% J*J[KD:K= M;2?TMVXNO;=_B2\6]9S=T=1COQF85J:&ULM5;;3N,P$/T5*^(! MI%UR;=*@MA*TH$4""=&%?5CM@TFGC1U+X\LY9\Y, M'$]'6R&?50J@R6O&C&V M'&,(."3:*%!\;& *G!LAM/%2:UI-2$/<';^K7Y6Y8RY/5,%4\%]LH=.Q-;3( M I:TX/I>;'] G<_ Z"6"J_*7;&NL8Y&D4%ID-1D=9"ROGO2UKL,.P0UZ"%Y- M\#Y+\&N"_UE"4!."LC)5*F4=9E33R4B*+9$&C6IF4!:S9&/Z+#>O?:XE[C+D MZ2(.:Y!)XAZF,_(\=$) M.2(L)S]342BDJ)&MT9H)8">UC8O*AM=CXY;*4^*[WXCG>%X'?7J8/H.DH;L= M]-GGHW^@VUC/IJA>4U2OU/-[]/IK]_L&H>1:0Z;^' CD-X'\,E#0$^A\\1>/ M"& @H717U2MZ6-+-#;"9Q($7.B-[LUO<-LIUPRB.]F&S#I@?1\&P@>WE$#0Y M! =SN!4YO.&1EL]XR2V+GN-3:0QV8D>>ZWQ,I(T:AKNH/8.#QN#@H$'S$KLL M#5K!/,]K66JC?"?JLQ0VEL(OU6Q/-&I$H_][:H=-H.'73NVP\V5_.([3-FH8 M.O&@N[)QXRT^Z.U2:8;=!,U=42;)(^4%=%F,6]]"E\4VJLNBO7-]FUZ+U]&* MY8IP6"+/.8TP1UGUKVJBQ;J\T9^$QOY0#E-L^2 - />70NCWB6D2S9^(R3]0 M2P,$% @ /82I5 .'^5Y] @ WP8 !D !X;"]W;W)K&ULC95M3]LP$,>_BA7M!4B#/*<;2B.-5FB\F(3H&*]-\N]B7?2_6L:P!#7AHN]-RKC6FO?%^7-3147\H6 M!.ZLI6JHP:G:^+I50"LG:K@?!4'F-Y0)K\C=VITJNY]R.\6LRLO3/X MPV"O1V-B,WF2\ME.;JNY%U@@X% :ZX'B:P<+X-PZ0HR_O4]O"&F%X_&;]QN7 M.^;R1#4L)']DE:GGWC>/5+"F6V[NY?XG]/FDUE\IN79/LN]L9Y%'RJTVLNG% M2- PT;WI2U^'D2!,C@BB7A!]5A#W@M@EVI&YM);4T")7OYP!Q2B?+%@GSYSMDB7H M2:[.03H*&F;!![!#FRR=!DL'L/0DV T3#,]U13923A^P]) K3L,/8!-&09)- MHV4#6G82;70WIKBRPY#I0<$FC,95?<5[HYH05SF)FQC9B,>.EREA!-P+(,L^)>%S2C!_F#G2. Y_9=J>J 7/:-)6HW M=R8.2&A*RDQ]YH<_:3.AH,*+>2;-+S@TL9X#XE(JGC?)FD'.BOJ?/#1"]!(T MCCT!-0EHF.!?2,!- O[9!+])\(TR]52,#FNBR&(F^ &(*EJC51=&3).MI\^* M:MUOE=!/F$NH1D"(![W^4;*]76UV! M0N_%UTW8&QWWY78-7K]Z UX!5H"_=[R4.D'.7*7)527/@"WG$YKL!&+Y@Z717PST<=#CXHFLM_1XKY;3'?%/.?*&:JT&,5 MVYK6.*'!J2SF?A%Z*, S][XOU7E4$"$4M5$G)(.69#!*\B.5\D;[1ESF9484 M3?3KKJTO9J0V%$V=Y%PH]I\9L+&O"P0]7F]Q&$73 7U;6#"9(#O_L.4?_H+( MY@6S<0W/2"#L1_Z JB4*8C^P,XU:IM$HTW5?5_J@/SF2VBA&9\4A@L$IPU5T MOF."J9W?I.4W&=\)Y(X+HKAXO+193V"G+>ST][]RT.N,V'NFEZX!Z@N-0Q\/ ME%[;PC#TH%ULV/MBP"=>//V=W?$L 2S?"WY/*YYR3 /40:,7D+SS5(B?2W)\ MOK?#P N'DMO"(+S@=+#S8SANR"N>[TM%14?24)8\50[W1+E3RYM]L[ZX+CW_96F3!^/3G5/2U$P58X+W[D7G+R M\)VKP>ES"3^U&/HT&@K_1-3IX:VS0S1NARM>2"7*NCO01TOM-%NA/_EC)\/. MPA#\_9*CSM80>B;)&Z#^YQ'Y@3>0W!*%$1[N=;?7%>14;$UW)4',RT+5Q^AV MM.W@WIF^93"^A#>KN@_K8.JV4!^2MZR0(*.IAO2N([T+1-UIU3>*[TWO<<>5 M[F3,Y4YWIU14 ?IYRKDZWE0%VGYW\3]02P,$% @ /82I5+Q9B)3Y 0 M:00 !D !X;"]W;W)K&ULC51-;]LP#/TKA-!# M"VQ18J?95C@&F@3[. P(FG4[##LH-A,+E25/4NKNWX^2'2,#FJX72Z3X'LEG M2EEK[(.K$#T\U4J[.:N\;VXX=T6%M7 CTZ"FDYVQM?!DVCUWC4511E"M>#(> MSW@MI&9Y%GUKFV?FX)74N+;@#G4M[)\%*M/.V80='7=R7_G@X'G6B#UNT-\W M:TL6'UA*6:-VTFBPN)NSV\G-,@WQ,>"[Q-:=["%TLC7F(1A?RCD;AX)08>$# M@Z#E$9>H5""B,G[WG&Q(&8"G^R/[Q]@[];(5#I=&_9"EK^;L/8,2=^*@_)UI M/V/?SW7@*XQR\0MM%SO[P* X.&_J'DP5U%)WJWCJ=3@!3*9G $D/2%X+2'M M5(YWE<6V5L*+/+.F!1NBB2ULHC813=U('?[BQELZE83S^4(HH0N$36!PL$(O MI'+P%CX94[92*;CL?5?DO-^LX/+B"BY :OA6F8,3NG09]U1)X.-%GW7194W. M9/TJ[ C2R1M(QDGR#'SY,GR%Q0"?_ OGU/\@0C*(D$2^]#4B#!K\O-TZ;VG. M?KV0(AU2I#'%]$R*HYS/:=4A9Q$9;MUCGB93ZNOQ5)'_!'5%\9-!")>0=-Y+ M[4#ACF#CT;MK!K8;[,[PIHFSL36>)BUN*WH+T(8 .M\9XX]&&+?A=(.UWBFXJ(C24[%Q92.0Y%94,=>?3B.W(K1VTL2NW8HTX:UBM,9; ;*M*B+^ MW"#CN[GC.?N%.[HIE5EPTZ0A&URA>FANA9ZY@Y><5EA+RFL06,R=:^]J$1E[ M:_"=XDX>C,%DLN;\T4P^YW-G:H"08::,!Z)?6UP@8\:1QOC=^W2&D$9X.-Y[ M_VASU[FLB<0%9S]HKLJY<^E C@5IF;KCNT_8YQ,:?QEGTCYAU]M.'ON39[Z.AP(O-DK K\7^&\5!+T@L(EV9#:M)5$D303?@3#6VIL9V-I8 MM9:#&'+Y2L*:.* MHH3SWNA"6SVLEG!^=@%G0&NX+WDK29W+Q%4:S01PLQ[CIL/P7\'X2L0$ N\= M^%/?'Y$O3LN7F UR[[GBV5T%_>KQ,Q@B%&8&/, M7HFQ+VW3BJS4'^)HU3H7D75A+N0VC:,/8>)N#VMS;!3%X3^C9W2S@6[V-CK! M"Y3FSA(&^FQ!=P)))!I[H),\]5X2-\41'Q^;-O-A_031BY8?QY0LF M]Z #F.ZK[].&UA(8%EHWG<0Z)=%UM&ZB>&.;PIHKW6+LL-0_ 13&0.\7G*O] MQ/29X;>2_@502P,$% @ /82I5.CU!=QS @ TP4 !D !X;"]W;W)K M&ULE91=;],P%(;_BI4KD%CST91]*(W4=2"&&*HV M 1>("RVL4_K1U "6[ 279A[4 MUC9786C*&@0U$]6 Q#=KI06U.-6;T#0::.5%@H=)%+T/!64RR#._MM)YIEK+ MF825)J85@NK]-7#5S8,X>%ZX9YO:NH4PSQJZ@0>PWYJ5QEDXN%1,@#1,2:)A M/0\6\=5RYNI]P7<&G3D:$]=)H=2CF]Q6\R!R0,"AM,Z!XF,+2^#<&2'&4^\9 M##_IA,?C9_>/OG?LI: &EHK_8)6MY\%%0"I8TY;;>]5]@KX?#U@J;OPWZ?K: M*"!E:ZP2O1@)!).')]WU.1P)XO2$(.D%R;\*IKU@ZAL]D/FV;JBE>:951[2K M1CW,H2 MI,N:K#B5AKRY 4L9-V^Q)(GB2[^,8U-3#28++5(Y[[#L":X/!,D)@L^MG)!I M],Z;C=%179&?7]"2W%H0YM8 M;)#*CL5V<)UY5W>6M_GYQ>5YG*99N!W!20><]%6<.[ICHA5$_HUE%2F ,&-: M3*1M,#'8@2Z9 5_D]AE1C8MR;),LTQ>X<1KYSSCO;."=_6=\K:V59K^A&MNK MLQ<8%_$817ATY-QU=T?UAN'IX+!&930Y1PM]N$(.$ZL:?PH+9?%,^V&-MRYH M5X#OUTK9YXD[V,,]GO\!4$L#!!0 ( #V$J51:K#\_-0, .@, 9 M>&PO=V]R:W-H965T>>N[,?+H.% MT@^F +#D2932#*/"VNHTCDU6@&#F4%4@<66JM& 6AWH6FTH#R[V1*.,T28YC MP;B,1@,_-]:C@9K;DDL8:V+F0C"]/(=2+881C=83MWQ66#<1CP85F\$=V*_5 M6.,H;E!R+D :KB31,!U&9_3T/$V<@=_QC(800F9 M=1 ,'X]P 67ID)#'KQ5HU/ATAIOO:_2//G@,9L(,7*CR.\]M,8SZ$BUZ#W7D$2PL:C#5;]2V,1O?= 9JVQ-+_.!:$312J%/X/ M<#$7Q!;(N%!EOI5SV!'=3[J53QK6SP]/%==U22O07&WG$\:@"5D"T\$3UZHN M[0;!ZE/SB.5TI0UP"L-T]U-J=9>&A?+9M2*_R3T>?6RQR(V$$'ZKGO3XE5RR M5G)I[Q^JH%U_M/UVA6'2?*5TW5;7 ZLJW\I.E,7&V+\6^"D"VFW ]:E2=CUP#IJ/F]$?4$L#!!0 ( M #V$J50;%]+S?@( (L' 9 >&PO=V]R:W-H965T]W M=B!E$J2;U(>]@'_Y[/N<\K)1>FPP V7.12S/R,L3RRO=-G$'!34>5(&EG MI73!D:8Z]4VI@2?.JXACRW)-+Q:P?UFIC6\7"\IW]VR5,R M2V[@6N7?18+9R+OP6 (KOLGQ055?8)=0W_)BE1OWRZK:=G#IL7AC4!4[9U)0 M"%G_\^?=01PX$.>X0[AS")WN.I!3><.1CX=:54Q;:Z+9@4O5>9,X(6U5YJAI M5Y ?CN>HXO69S2MAUZJ@8AONCNN,/8!!+6*D'6?%%E*@8>]O +G(S0=K,E^8 MH8^DP]+\>!=S6L<,3\2,V+V2F!GV22:0_.GOD_XFB7"?Q#1L!=YSW6%1]R,+ M@S!LX47-H42.USO!>]1=HT:DCSKB&8T<\T10G!;KCR)9; M=F@WXUNW/*FX3MB/.T*R6X3"_&P1U&\$]5O3JZ%/5%XA4U:"%BHY5L5V2L2V MP+5IT7/>Z#G_!SW:?D=';U4[)8HZ0?"N1\&+RTH>)/ZOX()^ZH*J=-UVJ9!ZMQMF]%J"M@:TOU(* M]Q,;H'E_Q[\!4$L#!!0 ( #V$J51D8@$54 0 )<8 9 >&PO=V]R M:W-H965T'YY4>DYEE)%QR(?5$0_C*C.3N. QB<&SYEVU3JAG RVI$M75+Y M9;?@ZBRL59*LH*7(6 DXW8R#*;R?QR; W/%'1H^B<0ST4%:,/>N3C\DXB'1& M-*=KJ26(^CG0!YKG6DGE\<])-*C[U('-X[/Z+V;P:C K(N@#R__,$IF.@V$ M$KHA^UQ^8L=?Z6E /:VW9KDP?\'Q=&\4@/5>2%:<@E4&1596O^3KJ1"- *73 M'H!. >C[@/A" #X%X&L#XE- ;"I3#<7484XDF8PX.P*N[U9J^L 4TT2KX6>E M]GTIN;J:J3@Y64JV?GZO*Y> !U:HQTD08\A[L%A^$8"4"5C,G@1X-Z>29+GX M65^AW#QQY9J"94HX%:HQ*X4D>:Z>"3D*I4I-=Q"N3VG,JC30A30P>&2E3 7X M4"8T^38^5$.JQX7.XYHAI^ CX;< PQN (H1;\GFX/ARUA,^O#X>.T>#:)6ST M\"67=)';7)IR3LHMU44'JQ?0O&]!7DSS]$AX O[Z34F"CY(6XF]'0G&=4&P2 MBB\D]/N^6%$.V*9INVBK)JN>AI>M>W77/V77SX2-Z;.(&R%0] M@RG+$Y#3 \UO0%GG)\SS>0,*!8)LEV>4MV79^U^647N6_3K+OC/+S\H7Q6CP M5%)'N0>UVJ ;_@_KA(;.X56B!RID5FX!UW!M==^MTHMNH^@G1SIW=3IW5U7[ M\Y$YU&!DH1AUH]ZPP6GX*A7WR'A+#I'-"#FE-!KU1\(E9@$'.T(X:!$'W8S[ MH$JM)A:JHUT#.5M&T&N%6AY'7"4M$Z$9BY<3LR25FP07[ M'7'"T@\.WM0)M[K_E;!4A&Z@Z<^][Y6P3(-WW3 "62ZBZ"V-\*C#N.]Q EE< M(C?G*B>V2\?$(6I,B-.I\9:OZDSM2"FJZ)D*XN+1+1L".^ M6+ B]VSQ2E]F'AFO+]AR%;O)IZR(/-\-;-&'83*/&N%6CV.?$9:=V V]\QMQWH"Z^HN! M+0QQ1Q;5V,(2O\JR>NZ1\9/)LA*[(>?PP;W8CBW\XHXLMF.+T/AU%ML>F;5';F6J+?M'PK=9*4!. M-THRNAVH=Y=7N^#5B60[LR^\8E*RPARFE"24ZQO4]0UC\GRB.ZC_%S'Y#U!+ M P04 " ]A*E4M5QQ$^4# !@$0 &0 'AL+W=OX*8V9,Q[:)Y"PO#[OR%/J&OBK7@B M[2_:Y[:>@U8[J7B:.VL$:OOF'7J#8H:^1GPG*0OET%4:H[F3N\KQ M3#,\I &/CSYSIB*)/K 0PF-_5^=6)$@."4Y):\#/5%PC'U\AXA%2@V?V'Y3O2,J("_JG#[K!T*AB1"4;<"LKP[%#9&N'YK1;:QH$O^ \ I- M4K[3UM\^Z9#HHX)4?F\!U"D =2R@S@L(L*ITN:YU6:3 1C+Z\#CV^WY_Z#Y6 MZWEN1()^KS Z MDM0'9_#1+QK0$F6Y(.BGC!972A5P#J_;8N9)&ZE0+WO>"D M">U:! -6A% MM5C>2=NDQ7+2Q@SLE8+H708W<$6C\6]C1QZJ6F6, W+"CQJK;H?4MP*3$B?Y MGQ2IU);NJ0@EXBH"@51$61MU\AM7\0Y($W=P*<;8;P4\U^QIZU IHKAS(:0I M)1._0#-?2IKNN:;TSCAS;M3I-;6@5&(<_"G.!&=X2;>1,Z52XW:IGD^_M'*F MU%/P2PZZ2E+)-?K'YU>-CS#97: ,,!$UL@6BHYZQ8*D'-A-E6CE*+2?=".E3J M+FG7W5=U*#C?TP^\T_=#G14Y>];=RJR:@MC8$5YJ"#K+;*HKSA:?"29V.#XY M/\4WLVS8+\-DWQ[TS+:)F40)K'5([[JGFR.R<3X[4'QK)^)[KO1\;9<1T!"$ M,=#7UYRKPX&Y0?%19?P34$L#!!0 ( #V$J539K[#YI@, +,, 9 M>&PO=V]R:W-H965T#I/ M#E+=ZRV (0^"%WH:;(TIWX6ASK8@J.[)$@I<64LEJ,&AVH2Z5$!S!Q(\3*)H M& K*BF V<7.W:C:1.\-9 ;>*Z)T05#W.@AJ\C]\MXZ$%.(M_&!QTZYU85^ZDO+>#ZWP:1%81 M<,B,I:#XV,,".+=,J.-S31HT>UI@^_W(_J=S'IVYHQH6DG]BN=E.@W% ^\HH7&6( M,[,%+9FAG*R,S.[)U1(,95R_)K^1CZLEN?KE]20TN(TU#K.:NG .-6:R'5]8O_^C>ODVH#0_WG8^PU[W['W+[!7I+*T M=U(3> "5,0TYN6(%T5NJ0'R)YT$@>>"5_)5+SJG2I 15>=CI8"5AW)*> M]-+TF7_G1G'4MGKBWK!Q;^AU[U;)#"#79*VD:+3K,[>Z5%?,P[:@<1R=G4N' M69*D;;LGRD>-\I%?.;,Q7=$BY_A\147Y.UE(3Y*.&^+Q3[@";QOVM_XK0/DI M:=[8O&"RJXK-_30I>03,*X^@.#K5Z.@EDO:4[ZJQNY$$O_Z$:;VC10:=Y38Z M.^!!5/UUGW#<^GK$+U&622%0B%4[N/^3[A*\:DVQ_[B_/\R=UZSOR!S3V4U]M?5RYE+ M,.38TC)QMU,:L,%J9J>9K;IO-^[?O/9 M_,)VY*Y+/-%4[3PV)1N&GG)8(V74&V&<5=4A5P,C2]*O"E#6 M -?74IKCP&[0_$Z9?0502P,$% @ /82I5*KB7/6L!0 PQL !D !X M;"]W;W)K&ULO9EM;]LV$(#_"N&M0PLTL41*MM,Y M!A*[P3JD11"OVX=A&&B9MHE(HDO2=C/TQ^\H*:)=293;)LF'6+)Y+SP>']Y) MPYV0=VK%F$:?DSA5YYV5UNLWW:Z*5BRAZE2L60J_+(1,J(9;N>RJM61TG@DE M<1=[7J^;4)YV1L/LNQLY&HJ-CGG*;B12FR2A\OZ2Q6)WWO$[#U_<\N5*FR^Z MH^&:+MF4Z8_K&PEWW5++G">?"?W,5](Q -N)/SG9J[QJ9J6C5D<&TW@QZ="::>T:03WKQ^T7V63A\G,J&)C M$?_%YWIUWAETT)PMZ";6MV+W&RLF%!I]D8A5]A_M\K$A[J!HH[1("F'P(.%I M_DD_%X'8$\!^@P N!/"Q J00(%\)D$�% (!,<*A(5 >*Q+O4(@6\QN'JPL MTA.JZ6@HQ0Y),QJTF8MLN3)I"#!/369-M81?.0*EHAFL[16*2: MITN61IPI=((^4"FI67STQJ,&S$NU%AY#(W@AN,_+Y)3Q'Q7B/L M^?V/TPEZ^7.=EO&C:)FXM;RG$K3X1@OV"RT+_,P1DIC M)#,6-!B[ /8AL0 BT1@QI:EF:"V!DE+?HY<\!:YLJ&1H =G\"GU!#[&K6XG< M4IA9,OC^ M]DI?>TY?WZ5SEJ1\P:/,/W2QE"QSVI$Y_5)W_^G3=% :&S@G)7PFK[WDUJ3P^9N2AJY:,/G:Z>LNV(MX:5\>2 MS;E&5^!O7/'X4+M%H4^>(>X6;+Z;;$?&/6@ 2"7L[0,/';7 \UN(%T5B8X(B M6<3XELYB]AK-2N]-%8G@P(@@<%#YUD[";6#@G7K>"U=0+?!\-_&FY@2;(YYJ M)N$X0U IU7OD5A.0FIYK6:MRBSV])'FS!BSVGI@FTB##_"5L+ MQ;5RZ;1TQ?[3!Q?OU8YN0GX0Z4FTD=(4)F8#2!Z9_1!1M:JK3@IM!ZSVZ^J3 M8F#H&'CHL:4N=E>@T'"?8.RA&Y:*F8J$JS;!%JXX>(:P6T3B%D0^8AE=F-H/ M-1[@QD!;-.(6-GE'!MDR"C]#"8@MI["["'S4(%=K0-(_:PRRA1MVP^@V;T@0 M'#])K5VW>(CN&94N\A!+,^*F6>CY:+QBBJX9O7.=%,3"C#P#S(B%&7'#[%&; MTSJ ->XJLM<_N_'UH_TIJ7;-#0TJL? C[LJR+0E;Q(](0@M&X@;CE*9H3&4L M%)I"D>M,0TLRTGN&-+28(^Y2[!'3<%*8.N!.+SPC#4MNV4C<;/S!-)R0*@^; MTM"RD+AA=I&FT*+S_Z#^D)5G#H79LTK]@4-'61%8^@5N^N7&,\/0#42P=HJI M.A=:])"6ZC*P\ S=-<]A2U4.)ZA'1K?>[3H!MW7<(*=DC_=VZ1SV$R %2B@-U%U MSQS:LS ,PJ?G5F Q&;@+OB/V7Z&A];EC=^]UAGF]]9[*)0?(Q&P!@MYI'R8N M\S=&^8T6Z^P-QTQH+9+L<@7]'I-F /R^$$(_W)B7)N5[N]'_4$L#!!0 ( M #V$J51(*-)^E ( .X& 9 >&PO=V]R:W-H965T^K[)"JBX.5=+D+0S5[KB M2$N]\,U2 \\=J"K], B&?L6%]-+$V>YUFJ@5ED+"O69F555<_QE#J=8CK^=M M# ]B4: U^&FRY N8 CXM[S6M_)8E%Q5((Y1D&N8C[ZIW.8FMOW/X+F!MMN;, M9C)3ZMDNON8C+[""H(0,+0.GX04F4):6B&3\;CB]-J0%;L\W[#N2O M31VV ,33#0@;0+@+Z.\!1 T@)]2:?,) M-_F,PX.$=UR?LZAWRL(@##OT3/X?WCL@)VK+&SF^: ^?*]]I7;^?5S.#FO[; M7P>(^RUQWQ'W]Q#?",EE!JQTYY,1?V?U:Y*A([$7^B7M723^RW9!WKN$P];E MC;9!JVUP4-NW)6AN_Z(M=5WB:I;!&W%1;T=>AU,0A=T"AZW X4&!TT)I/$/0 MU0<*A^^"1\&.OOXN!47'Q3WJ)"7'^B*.XXU_K2CK,,I&%SLB/.W6D<% M>N$ZJJ' *XGUK6NM;=.^A! FT=:'^N%&X6-D#[Q*5_ 5!+ P04 " ]A*E4 M&@_SCAT" #)! &0 'AL+W=OF^?<]R8G)( EL M7VR=I'M>3B>-MM:]^!J1X$TKX\=)3;2^2U-?UJB%[]@U&EY96J<%<>A6J5\[ M%%5,TBK-LVR8:B%-4HSBW-P5([LA)0W.'?B-UL+M)JCL=IQTD\/$HUS5%";2 M8K06*WQ"^K&>.X[2%J62&HV7UH##Y3BY[]Y-^F%_W/!3XM8?C2$X65C[$H*' M:IQD01 J+"D@"/Z]XA25"D LX\\>,VDI0^+Q^(#^.7IG+POA<6K5LZRH'B>W M"52X%!M%CW;[!?=^!@&OM,K'+VR;O<-A N7&D]7[9%:@I6G^XFU?AZ.$?' F M(=\GY%%W0Q15S@2)8N3L%ES8S6AA$*W&;!8G33B4)W*\*CF/BJG56A)7F3P( M4\'4&I)FA::4Z.$:OE.-#KXB&X<'TS1!J.;5#$E(Y3^.4F(9 2PM]Y23AC(_ M0_E-N [TNI\@S_+\[_24U;<6\M9"'O%Z_V5A)GVIK-\XA%_W"T^.^^#W!=9> MR]J+K/TSK,_QO+&Z%J_HN'VY0\,=8&)0L5J$3L.5-+!#X4[7Z3+#39,)MZ#9 M4>VAFT,E=OZ"^'XKOO]OXBNNDMT8 B<(3TF]C#?H#+(/IW2E1YT9+CF?_4H: MSR5:,E#6N>$N=\W%:0*RZ]BL"TO<^G%8\UN#+FS@]:6U= A"_[>O5_$.4$L# M!!0 ( #V$J51$L4,L60( & % 9 >&PO=V]R:W-H965T)+Q+1J4S)[J M%A7=5-I(YFAKZMBV!ED90%+$R61R%DO&593-P]G:9'/=.<$5K@W83DIF'ILAIOT-VV:T.[>&0IN41EN59@L%I$%]/S?.;M@\%W MCEN[MP8?R4;K.[_Y4BZBB1>$ @OG&1C][C%'(3P1R?@]<$:C2P_<7^_8/X78 M*98-LYAK\8.7KEE$'R(HL6*=<-=Z^QF'>-YYOD(+&[ZP'6PG$12==5H.8%(@ MN>K_[&'(PQZ > X#D@&0/ ?,7@"D R -@?;*0E@KYE@V-WH+QEL3FU^$W 0T M1<.5K^*-,W3+">>R7$O)'97%66"JA%PKQU6-JN!HX2WDS#:P9KP$>C'P%2EC M<+41O&:^"A:.5^@8%_:$;&]O5G!\= )'P!5\:W1GB='.8TX�M>TW) M"YI2N"05C86/JL3R;WQ,\8U!)KL@E\FKA)?,G$(Z?0/))$D.Z,G_'3Y]14XZ MYCP-?.E_Y7S%;2&T[0S"SXN-=89>^J]7O,Y&K[/@=?:"UZL6#?-^H/ UK:A_ M+51&2]#CC?#U/5BQGOLLJT13AQZV4.A. MN;ZDX^DX)BY"=SP[7]+XZ+O]B::?/52PFM/C%%@1Y>3T/36?Z?NYWSC=AI;8 M:$<-%I8-C4 TWH#N*ZW=;N,=C$,U^P-02P,$% @ /82I5 >[F=.] @ MI@< !D !X;"]W;W)K&ULA95K;]HP%(;_BA7U M0RMMY (AH0I(+=6T2:U6];)]-N1 K/J2V2>E_/O9#LU8">4+L1V?]WG/"3XN M-DJ_F H R9O@TDR#"K&^#$.SK$!0,U U2/MFI;2@:*=Z'9I: RU]D.!A$D7C M4% F@UGAU^[UK% -&#K"MU"."MJNH9'P.?Z M7MM9V*F43( T3$FB834-KN++Z]@'^!V_&&S,WIBX5!9*O;C)CW(:1,X1<%BB MDZ#V\0ISX-PI61]_=J)!QW2!^^-W]6\^>9O,@AJ8*_Z;E5A-@SP@):QHP_%! M;;[#+J'4Z2T5-_Z7;'9[HX L&X-*[(*M \%D^Z1ONT+L!23QD8!D%Y!XWRW( MN[RA2&>%5ANBW6ZKY@8^51]MS3'IOLHC:ON6V3B-+/GG3LR:?L)X64N_;!1",(]X>VIEM_[/M,3 Y,I%DV.5* ./K7:Z)/;=R" M,9>$B;I!*&VGL"4 @[U=(CIP$$=I/#KB8*_;Q2<JAZ6)))O&(_W-TQ@7_?V;6QW$)R@HN]LSOSWKQG>YQMC7UP!0"R M)R6UFT8%8GD:QVY9@.+NV)2@Z61MK.)(H=W$KK3 5Z%(R3CM]4:QXD)'>1;V MYC;/3(52:)A;YBJEN'T^ VFVTRB)7C9NQ*9 OQ'G6>6HKA%60D% MV@FCF87U-/J2G)Y-?'Y(N!.P=9TU\TKNC7GPP>5J&O5\0R!AB1Z!T^T19B"E M!Z(V_C2844OI"[OK%_2+H)VTW',',R-_BA46T^@D8BM8\TKBC=E^A4;/T.,M MC73ARK9-;B]BR\JA44TQ=:"$KN_\J?&A4Y F.PK2IB -?==$HBG L<_L.Q9@ M63?K\!R0"^F.Z'11E:5\[ARS R8T^U&8RA&:RV*D'CU3O&SZ.:O[27?T<\WM M,>LGGUC:2]/;Q3D[/#CZ%R4FA:W,M)69!MC^#MC7,GY=40J[1%#N]QZ"?DO0 M#P2#'007%586V+700E6*S?FSIWE+?XTS"CC^DWG,1\-Q/XL?WV ?M.R#O>QW MW JR?(^.88LT_!BC1BW!Z)V,JG&&':.&29*\;=2X91_O9?_&=46S)[Q=>\2< MM' G'^/6I"68O)-;DU>O53(8I?^Y%7<&A9^Y]+5MA'9,PIK*>L=C&ULM5A;;^(X M%/XK%MJ'CC3;Q"8A4%$D"J5EM%VALK/[L-H'-QQ(U"3.V ZTTO[X=2Y-H!A# M.TL?:"[G.Q=_QY\=]S>,/XL 0**7.$K$=2N0,KVR+.$'$%-QR5)(U)LEXS&5 MZI:O+)%RH(L"%$<6L>V.%=,P:0WZQ;,9'_19)J,P@1E'(HMCRE]O(&*;ZQ9N MO3UX#%>!S!]8@WY*5S '^3V=<75GU5X680R)"%F"."RO6T-\-25>#B@L_@QA M([:N45[*$V//^7QHW+:JF/FP.WK-^^3 MHGA5S!,5,&+17^%"!M>M;@LM8$FS2#ZRS3U4!;FY/Y]%HOA%F]+6Z[20GPG) MX@JL,HC#I/Q/7ZJ!V (H/WH J0#D/< Y &A7@/:I *<".*<"W K@GEI#IP)T M3HW@50#O/>#0L'8K0/=40*\"](IV*/DKR!]320=]SC:(Y];*6WY1=%"!5IR' M2=[L<\G5VU#AY. 1(BIA@6:4RU?T!Z>)H$4;"O0K>F"J)[.(&VCDXS_('RNG:B@=^=#M*DCLW3;*=SF:^IZX-K%7]]:;[.V;]=8[&3LUAF[QHS'L 3. MU=AP6$.2@4YXW+V@Q.UV]I*;E';NEAWNV,Z>W?2XOYU2.G4I'6,IP^4RC,*" MZ-M$AO+50*A7^_3.VSG=.E#WIWGH[HTO<=Q]&O;-WA-PU-%.";VZA)ZQA(?A M%/V+\M_AB@/DO:[N/\(*MIN5UCXO+WAK4<=F9C) 2\YBQ4P9,U4QU>*M7:+Q M7FMCW3R>5H:NP7 W7=*D2\PLA)$2&J;&("W%2.7M@]H$+]!%F" 14 Y"O[\@ M^SFY7<]V>@=R:N07MT_IC-'CT,1(([+8.3/YC3IBLSP^@@#*_0#19*'V_6OU M09-6@UI,T[(SY/96;Q/*()\%VBV81OIT,J^QPZ;N:"02FS5R#ERU+AJB&7\3 MG+ED_G,U<8^3U @G/K-RXD8ZL5D[?\_B)[7$LF75W4W'JX:'%S^@R4HQQ=1W M*?!UZ"L+\U288).&[F;9J",VR^/_GN5=%7!GPCJDVW;(;CO=ZPP[GNVVR8&J M2"/$Q#YA:A]J*],FOA%@@L_;2:013V(6SSV.TDQ-?O7]?TP\QT0CGCKEO]49 MYBKK'J*B45EB5MG/;C['E=]MM>EH4]^WT]8XT1D23[<.GF*Y.QS-*D',>_&= MSKSY2&/MANOA7M>!3;N MRZ-)]0F["M5R'L%2A;(O/36 O#SM*V\D2XNCH"&ULC51-;]LP#/TK@D\;T,6)DZQ#X1A(VGWTT"Y( ML.TP["#;M"U4ECR)CKM_/TIVO QHLETL42(?'Y])Q9TV3[8"0/9<2V570878 MW(2AS2JHN9WH!A3=%-K4',DT96@; SSW0;4,H^GT;5ASH8(D]F=;D\2Z12D4 M; VS;5US\VL#4G>K8!8<#W:BK- =A$G<\!+V@%^:K2$K'%%R48.R0BMFH%@% MZ]G-9NG\O<-7 9T]V3-72:KUDS/N\U4P=81 0H8.@=-R@%N0T@$1C9\#9C"F M=(&G^R/Z!U\[U9)R"[=:?A,Y5JO@7[3S#4XPEF6EK_95WO>[T( M6-9:U/403 QJH?J5/P\ZG 1$LS,!T1 0>=Y](L_RCB-/8J,[9IPWH;F-+]5' M$SFAW$_9HZ%;07&8[*$DB?&*?01=&MY4(N.2<96SSUB!83LX@&J!W:N^ 9R2 M;]@C-X8[.=FK.T NI'T=ATAT'&B8#:DW?>KH3.HY>] **\O>JQSRO^-#*F.L M)3K6LHDN CYP,V'SV16+IE%D^\(NP,Y'B>8>=GY9(I*BT0:%*MGW=6K14$/] MN "_&.$7'GYQ!OZQK5,26A>,)LVI2@D&\O8E47NTI4=S(W=(HC@\O$!@.1)8 M_B-&0-IO1C9UFF6X5];XZGXV2O^X;^X]X_"_132Z$L MDU!0Z'1R37E-/VJ]@;KQ[9UJI&'QVXI>)S#.@>X+K?%HN 3C>Y?\!E!+ P04 M " ]A*E4& G8KA0( =,P &0 'AL+W=OP/WXIV?&QQ4-&BC>^2?QQ2+TZI)_WD)(N'W7]K5DI9:(?95$U5Y.5 M,>OWTVDS7ZDR:][IM:KL-P^Z+C-CW];+:;.N5;;H&I7%E,:QF)997DVN+[O/ M[NKK2[TQ15ZINSIJ-F69U;_?J$(_7DW(Y.F#S_ER9=H/IM>7ZVRI[I7YLKZK M[;OIOI=%7JJJR745U>KA:O(+>7^;BK9!%_&/7#TV!Z^C]E2^:OVM??-Q<36) M6T6J4'/3=I'9?]_5K2J*MB>KXS^[3B?[8[8-#U\_]?[G[N3MR7S-&G6KBW_F M"[.ZFJ23:*$>LDUA/NO'OZK="25M?W-=--W?Z'$7&T^B^:8QNMPUM@K*O-K^ MSW[L$G'0P/:#-Z"[!K3?@'L:L%T#UIWH5EEW6A\RDUU?UOHQJMMHVUO[HLM- MU]J>35ZUPWAO:OMM;MN9ZWNUM(-BWD9_47I99^M5/L^***L6T:]FI>KHL_JN MJHV*/E;;*=.F_B+:M;+?KG5M\FH9O?F@3)87S<_VVR_W'Z(W/_T<_13E5?3; M2F\:VU]S.356;WO4Z7RG[6:KC7JTL>B3KLRJB?Y4+=3BN/W4GN?^9.G3R=[0 M8(>?LOI=Q,C;B,:4(GINASYDR*//>$M%.I;?1 M4E6JWOV6LX5%1]Z8.FNAB2F6KI9$QDE/,1)%V,R3V'2O.!TP,^=V"C2=6&M1 MK4[[8#>*2I)*7/!L+W@6%/RQFNM216\*W5C>/=2Z M?-*L*U3KS%%QD;*TKQ6)FI$DP;62& ?!]5^J;*BT//,J';:6J^?YUO =!.C M;,GS1_O2"SL_RG8R^)421P*S M2>X+=:.H\,T'0D$H#0J]4W4'[FJNK%G]\7O9G[/'_8)!D#,X! &+(*=ZQ*Z# MHRRS>#;KI]D-(YQ2WX0 FR!AG_B[MMB-;G+=UB;96FU,/@]F&N!.Q!DR#9 F M84H/R+3+6DIYW^B0*&;MV)-G(#()(_G7/8)W>0DF&;A)9J^?9 KDHV'R/9]D MZG(+JWF0L$#10X%O-,RW$64/=<&%U#U(E+_PH8 W&L;;F-)GU]5QKKCH@Q@+ M(S'W$((",2E[C?)GU^MQXH237C>*<6]Z ;MT"';'%D 403&AB3-W$12G(O64 M%1103,,H'ET$4:0HCV>.7#?*5A(>H%' .PT7[V,J">K6Y4@E@43Y*PD*QD## MQN"2-_IO-*Z\H(!YFIZ!QX!_&JZ;!_#8K8&Q\@()"Y07# R#A0UC!(^9:PD( MCY$H/X\9^ 8+^\88'C/7$@2AM"\4B>*<>X2"<;"P<;R0QLPU!Y8XM0\215-O M<@\V9<(.\C(:,]<:B!7#^YJ1,,;3V",:+(2%+60TC1E6H<^K,,SL'#SC$:PMQU@PL2I[1/832.QY[U)S^X)!!VC3$(,H\C M<[ +_MS5@=H",3,J@#T.4.=GV.GA '4^9*=G]$1V]W4N"*'.ACP6)R7UI1R\ M@8>]X:1-8^X:PH6%7;_FQ,*\"U,.OL''[,Y_579L591O/S39#T^^T2UZWB\S ML+#9(5^.KWZ!DR1A)QGS0TP0)YDYIHQ%<=_%A 2,) D;R5W(C(_[!-0G]/5_ MD E0.AE2WX?*G@39YHF%LU6!A)&84M]D "HG82KWL$RCUPY#60>6)V$6>UF?FRQGP!ADS/LO21 Q>34O9?D^2(Z&')\ M41W0)\+H2 X7"W$-#A0/8C L-Q<'=)&(X#AV,LD 3 3YQA]T$ M_\2INP_"K0^=P0B%' L#4HHP*7VK^@$UCP3JR?CUDRV!?3)NIJ M.767P0BPD"@_L%+@:1KFZ4M'9RS%4D!H>H8U=0K03$]=4^\Z$&&*(5$(Q:8' M#QJ4JEYVSU\TT5QO*K.]#7__Z?X9CU^Z)QMZG]^0][?;)S6@F^V#(Y^R>IE7 M352H!]ME_*YUK'K[+,;VC='K[G&&K]H8778O5RI;J+H-L-\_:&V>WK0'V#\1 M<_T_4$L#!!0 ( #V$J52* >C($@, #X- 9 >&PO=V]R:W-H965T M67"14Z6'8NG+0@"-+2C/?!($'3^G*?.&?3MW*X9]OE)9 MRN!6(+G*2B&!5UE:L;77Z *Z-SP13R3 M]A>MJ[V!AZ*55#ROP-J#/&7EDSY60FP!-,]N *D Y#F@O0<05H#P.:"S!]"N M &VK3!F*U6%*%1WV!5\C879K-O-BQ;1H'7[*3-[OE-"KJ<:IX1TL=1;5&?H, M?"EHD:01S1!E,?JF$A!H!@_ 5H"N67G&3*X^H@EGD4:)U'E8?CTD.RQ\,0W7"F$HFN6 SQ#OS4C!KN6K- MR$:S,7$RWE#10B$^0R0@9(=#D]?#\:YXW/ I1/O@3Z()ZQ,06K[V'KY-AO\U M:1LY:-LU;=O2AGMH=QR17U_U'G2M()>_'1;.:POG3L>?6A#:PADJ0)@Y7;%V M'30W7P>W@N"=P[%.[5CGK8J.';3=FK9[(D5[M87><16=N/E([X"B%[5C%V]5 M=.*@Q4%3_8(3:8JW*BP^LJH'"/&A@XI)XQMYJ[!3%W%35'!X*F&;"H/;QQ;6 M38B#0\(VM0F[B\D.8:]DAPY,_7 <+.^4N1JX;B )#LRXZ_U5AJ M=9>V09?(9J#LE^K9^A(PLJWOL_DQOIR4K7Q#4]XL=#>T3)E$&2PT9=#JZO^5 M*)OU " !."0 &0 'AL+W=O25CGN>W:'+BRMT@2A#3S%?2Z[2RDU^=U&H M'.4J\1F5 7K@3,42W;,0PGV\JRLNR\;;LD>XEO"!B!L4^-<(>QB?T#/^=[A? M(R+,/K =!,VAX/7==M>@XRN]X 2ZC]L0U2W'-6G'#%(1>@K*FSE9) MU?IX4]MELO8[3&PO=V]R:W-H965TH#ZW4$DB 5E6( M1$';*K5:5<;V,.W!)$=BU;$S^X#VW\]V0L0F0'M)?/9]G^_[?':R4_K-E(@$ M[Y609A*41/5]&)JLQ(J9GJI1VI6UTA4C&^HB-+5&EGM0)<*HWQ^'%>,R2!,_ M]Z+31&U(<(DO&LRFJIC^>$"A=I-@$.PG7GE1DIL(TZ1F!2Z0EO6+ME'8L>2\ M0FFXDJ!Q/0FF@_O9T.7[A.\<=^9@#$[)2JDW%SSFDZ#O"D*!&3D&9G];G*$0 MCLB6\;OE#+HM'?!PO&?_Y+5;+2MF<*;$#YY3.0GN LAQS3:"7M7N"[9Z1HXO M4\+X+^S:W'X V<:0JEJPK:#BLOFS]]:' \!@> (0M8#H?P%Q"XB]T*8R+VO. MB*6)5CO0+MNRN8'WQJ.M&B[=*2Y(VU5N<90NL+!G0M?P&56A65WRC E@,H>O M5**&5]RBW" \RJ9CG/4W\*1D&B-Z]R+.O4G*P'"V*$Y@Q?W/'%GB\^P?>/A>;ZB-,_ MIRM#VK;_KS,;#KL-AV<%>'KAZ9FG/W8D#<784[A789N.Q_'=. FWA\X?R1H- M1[==5E-?>-"J[IFP!UIP:4#@VN+ZO=M1 +JY>DU JO;=NU)D[X(?EO:U0NT2 M[/I:*=H'[D)T[U_Z!U!+ P04 " ]A*E4PSLA ZD" #*" &0 'AL M+W=O)XV=<087G$,[FX4KLDJ567"C<8Y7L !UG<^%GKE- MEH1DP"3A# E83ISW_LG4#XS 1GPC4,K6&)E6;CB_-9/S9.)XQA%0B)5)@?5E M#5.@U&32/G[529VFIA&VQYOL'VWSNID;+&'*Z7>2J'3BC!R4P!(75%WQ\A/4 M#?5-OIA3:7]16<=Z#HH+J7A6B[6#C+#JBN]J$"V!WWM&$-2"X'\%82T(;:.5 M,]O6#"LA2I2#0%:R!%8#.6?67,>C?H3/.DY)0BO9GH#"A\D O7B]F:'_O .TA MPM#7E!=2IY%C5VF;II@;UY9.*TO!,Y8^8W&$0O\0!5X0/"&?=LMG$#=R?UON M:C@-H: A%-A\83LT=9F#P+;SFH7LZ+3?).V_/=9!4VSP M:JR5LM^-=4?0EJEA8VKX0JSH#YJ#L!18#.@#^WV?01?L45-J]/:PCYMBQZ^& M??P/QZ W"!_!WA&T9;B3G.FL^7Z"]02P,$% @ /82I5+L9 MDV*S @ PP< !D !X;"]W;W)K&ULC55=;]HP M%/TK5]$>6JEK0A+2J8)(?%6;M$J(KMO#M >37(A5QV:V(>V_G^V$#%J(> '; MN>?XG'MMWT$EY(LJ$#6\EHRKH5=HO;GW?9456!)U*S;(S9>5D"719BK7OMI( M)+D#E

,3ZN?-7)J9W[+DM$2NJ. @<37T1KW[66+C7DR-:67A&602/@NM"P8SG MF!_C?>.RM1KNK8[#3L)'(F\AZMU &(3A"3V3R^&]$_!I-WR*62=\=CD\Z$A& MU-8]'.^QO![(1@#X'?KX][] MI&XH_VGJ]F;NJCE2"ABN#&5P>V?R).N644^TV+@W<2FT>6'=L#!=%J4-,-]7 M0NC]Q&[0]NWT'U!+ P04 " ]A*E4MFO\@R # #%# &0 'AL+W=O M<^SL'7-[TU%V]R#J#0>\9R MV7?F2BUN7%>F<\B(O.8+R/6;*1<947HI9JY<"" 3"\J8ZWM>[&:$YLZ@9Y\] MBD&/+Q6C.3P*))=91L3''3"^[CO8^7SP1&=S91ZX@]Z"S. 9U.OB4>B56WF9 MT QR27F.!$S[SBV^&>*N 5B+GQ36LG&/3"ECSM_,XF'2=SR3$3!(E7%!]&4% M0V#,>-)Y_"V=.E5, VS>?WJ_M\7K8L9$PI"S7W2BYGVGZZ )3,F2J2>^_@9E M09'QEW(F[2]:E[:>@]*E5#PKP3J#C.;%E;R71#0 .#P \$N _[^ H 0$MM B M,UO6B"@RZ F^1L)8:V_FQG)CT;H:FAL9GY70;ZG&J<$MTT*2/ 6D_Q)H*&!" M%?K.I02)KM!S(2[B4W1/A(EM&+/95P,_PDFG MYZZ:W.ZQ"I,HJ*PV:@BK&L+6&H9+(2!7+6Q$E:?H%&+$5?CX.&(48:(-FOTP MW!)CCY4?-R3;J*%3U=!IK2' 5[&'1N1#MA#2K9QU3Z%'4H5/CJ-'LLOT]L[8 M-8F">+\4V*N[L==:0(RODB_%P(WFCD\A!ZY[)?:/(T@9ITEW-]E29(]-%"<' M)*G[+6YON FV>B!]>"&^ M'&2]T <7@28>J^B:,C"1/M"A-L[Y4]1AA'^( T M=??%[>WWA2O"K"CZ@/]RU]0-$7=.(D[=1''W2.)T=X[OYN%=BK-KY/O1=BMS M&S.F&?#U5*9'/XD83#7,N^YH<44Q,Q<+Q1=V[!QSI8=8>SO7WQD@C(%^/^5< M?2[,)%M]N0S^ 5!+ P04 " ]A*E4MA\1)0P# "-$ #0 'AL+W-T M>6QE3'.>ENM+UP];.H;%TC^ZY1W?GR'32Z@VGUTM*=;"NN6CS<*EU\S&* MVL62UJ0]EPT5!BFEJHDV4U5%;:,H*5IPJGDT' S2J"9,A-.)6-67M6Z#A5P) MG8=);PK<[4N1AW'Z/@P#V[.+8_NI!<[" MR$LZ>@+I^%Y.".0B&A>12!=J4R(B)P=+>.SAV,ZA>QU,S(96-[2*X[WFW_ C8SD @ MX[P7. R=83IIB-94B4LSL8NM\0$4=..;36,45HILXN$HW#G8FPDREZJ@J@\3 MAUO3=,)I"7(4JY9PU[*) -1:UF90,%))0:R&K4Y5 M=0 U%?W0".J&CL9-@'^?S7'OT6;/H@T:=B?UYY79C;!SZ!5ZI6C)UG:^+OOX M&'N,LY.FX9M/G%6BIF[O3PXXG9"M7["4BMV;:- I"V.@*@SNJ-)LL6_YI4AS M0]=ZVTWK$M<\?(6:_VZ>*RJH(GQ?M&G]EYSE9RM./OPKR?9'Y5BP5V-W7+UT MD:/7(#)]D2*C[@=][]0X.#-Z:P!G,:R:ZV9(5!14/C@Y# MK\GTP, ,3M;O X1BYM)KCO'S(S'ZP.'Z?S%S^G699DJ0IEM'9S*M@AN4M3>'/SX9I P\L M#D3ZLUSCU<8[Y/$^P&KZ6(=@.\4[$=LIGFM _'D#CRSS5QN+ QY8%;#>@?C^ M.-!3?I\D@:IBVK G&$>R#$.@%_T]FJ9(=E+X^.N#/25)DF5^!#"_@B3!$'@: M<013 !HP)$GL.7AT'D7;*NQS M$P( L !?3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:(7->=I3W;+T]!;X"O.DQQ M0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'A$FN.X$ 6+ #P 'AL+W=OPT#T2BM&O4#JNE@/!!N95[_,E;],-K+>EY:4]?3P61[XQ&L5^6[Y'F$ M?)!/KDWQ\NE>!I#IH!B' A?*.M_F:,N7@?$%0N;MU<:;3ZKV8*^DAVMK-FNE ME[&8\!8C]!IM/>P^MY5X:O]/-9K%0I5P97D!O0-Q#:99:Q?MXX!Y3(_>8%^TNE/O9."?6P2CS ME;0=I9!.89;*C7X!YV,F)Y06=T8/;Z5]AN#L&L0<8U)6F3!KY9-45CS*.C3O M+4BWL= B8SS*)Q-FH>PP?ED FW1.1:A=!2M)P8BG+&A%T:3:/>.D8K PMVX;\'4)*'!-F<\QA&7/\+J[!+*UU*;4DS&HYX.5==6),RC )LV'V^WEO MHU/.29B=R(8##XV9*KI,Q M6V@_YIVT5L9%6XQ)62AEMM!^S/]2,29EH9390OLQ9V#;TO!T+*4LE#);:%]T M]&9,;,J44E#*K" Z/,+KCBFEH)19030F7GE,*06ES HZ&,6]&]LS2D$9^PQH M;Q07QDWI5@*;,J,4E#$KZ"!F_#=HCS$I!67,"CJ(.;.A6#PSSR@%9;TLK07, M:V.J5X4QRAW$?8U(6RK@G0H:_+<)TN1-DG MY[8/B8F[4$'9IV"V#XV)NU!!6:A@MA"-B;M005FH8+80C7F,,2D+%X4)Z M:*!R9D7\V!Z>R?*XP;W8U/5E2/NB/QM9[8ZU[H[DGO\+4$L#!!0 ( #V$ MJ50>WYE>' ( #TG : >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/- MVDMNHT 4A>&M6"P@Y?NJ)*TXHYYDVLH&D%-^*+9!%*U.=M^6,[ /ZD%/(LX( M%8C+/^$3 IY^E4,[[KM3W>W[NO@X'DYUU>S&L?^14EWORK&M=UU?3N]V5,C:+UW;8EG'5I(_#=7=-EXWW53.\O$F3Y@Y2"-+Y@PR" M;/X@AR"?/R@@*.8/RA"4YP^ZAZ#[^8,>(.AA_J!'"'J"8 N!V()D"X'9@F@+@=J"; N!VX)P"X'<@G0+@=V"> N!WHIZ*X'> MBGHK@=XZ>=@FT%M1;R706U%O)=!;46\ET%M1;R706U%O)=!;46\ET%M1;R70 MVU!O(]#;4&\CT-M0;R/0VR8O2PCT-M3;"/0VU-L(]#;4VPCT-M3;"/0VU-L( M]#;4VPCT=M3;"?1VU-L)]';4VPGT=M3;"?3VRF4#OC'IG KTS MZIT)],Z3GTV^4^\Z?AY*O?9\K?'ZWTGU>#ZW7"]_67[MG-SC%YS3;45]_@M0 M2P,$% @ /82I5*5_#G'N 0 D"8 !, !;0V]N=&5N=%]4>7!E&ULS=K+3L,P$ 707ZFR18WK)P_1;H ML. '3#*E49/8LETH?X^3 A((*E"1 MN)M&K>VY$X]T5CV_>_84)]NN[>.\6*7DSQB+U8HZ&TOGJ<\K2QTM)LV3:ZV^>?8N'Y>!&IC,;G8;1RRYH7U MOFTJF_(Z>^SK3RG3UX0RGQSWQ%7CXU'>4+ O$X:5[P->S]T\4@A-39-;&]*U M[?(NMFU93,\MQ7)_B2]Z=,ME4U'MJDV7CY31![)U7!&EKBUW18_V)Z=\P[3[ MY ?GCV7V!>:=M\'YF"<6Z/=Q;R,93D]]+D0A-?M?\3TQES[X_6B8=DWU#[/S M]3ZYL![G$=GX./R./\[XO?XO^Q @?4B0/A1('QJD#P/2QS%('R<@?9R"],%G M*(V@B,I12.4HIG(45#F*JAR%58[B*D>!E:/(*E!D%2BR"A19!8JL D56@2*K M0)%5H,@J4&05*+)*%%DEBJP215:)(JM$D56BR"I19)4HLDH4626*K I%5H4B MJT*15:'(JE!D52BR*A19%8JL"D56A2*K1I%5H\BJ4635*+)J%%DUBJP:15:- M(JM&D56CR&I09#4HLAH460V*K 9%5H,BJ_E/6>^=6_]Q_/@L.]OT;_EL_"/: MX@502P$"% ,4 " ]A*E4!T%-8H$ "Q $ @ $ M 9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0 ( #V$J53!; [?[P "L" M 1 " :\ !D;V-0&UL4$L! A0#% @ /82I5.U62\<\!0 7A4 !@ M ("!#@@ 'AL+W=O 8 " @8 - !X;"]W;W)K M&PO=V]R:W-H965T&UL4$L! M A0#% @ /82I5.W=AP;!! (Q( !@ ("!L!@ 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5'_, MN!]&PO=V]R:W-H965T M&UL4$L! A0#% @ /82I5%F&#);R!@ G!$ !D M ("!E3X 'AL+W=O"0 &0 @(&^10 >&PO=V]R M:W-H965TRZ> < 'L2 M 9 " @<1) !X;"]W;W)K&UL M4$L! A0#% @ /82I5)3-%E*@ @ &@8 !D ("!^U M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M/82I5-7^BM>)!0 H@P !D ("!B68 'AL+W=O MB@ >&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5)W&0GSK!0 0@\ !D M ("!J9H 'AL+W=O&PO=V]R:W-H M965T=E0( *P% 9 M " @8:C !X;"]W;W)K&UL4$L! M A0#% @ /82I5 27@Y^S @ 0 8 !D ("!4J8 'AL M+W=O<$ M "^# &0 @($\J0 >&PO=V]R:W-H965T&UL4$L! A0#% @ /82I M5+IR1&C_! "0P !D ("!I+$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5(R]B<,F @ A00 M !D ("!YL 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5-$2'L5 @ *04 !D M ("!*LL 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ /82I5/X?7YF$ @ T@4 !D ("!%=8 'AL+W=O ML-<# !V M#@ &0 @('0V >&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5"7W ML@$_ P VPP !D ("!O=\ 'AL+W=O&PO=V]R:W-H965T?0( -\& 9 " @1CF !X;"]W;W)K&UL4$L! A0#% @ /82I5(7%3?'; P ^PX !D M ("!S.@ 'AL+W=O[ >&PO M=V]R:W-H965T&UL4$L! A0#% @ /82I5.CU!=QS @ TP4 !D ("! MN_$ 'AL+W=O&PO=V]R:W-H965T&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5$2Q0RQ9 @ 8 4 !D M ("!"!(! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ /82I5'\YV^#-! ?Q4 !D ("!$1H! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M/82I5(H!Z,@2 P /@T !D ("!R2D! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ /82I5+8?$24, P C1 T M ( !OCL! 'AL+W-T>6QEA$FN.X$ 6+ #P @ '>/P$ >&PO=V]R:V)O M;VLN>&UL4$L! A0#% @ /82I5![?F5X< @ /2< !H M ( !^40! 'AL+U]R96QS+W=O<&5S72YX;6Q02P4& $H 2@ ]% ;$D! end XML 78 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 79 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 80 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.1 html 232 258 1 false 89 0 false 8 false false R1.htm 0001001 - Document - Cover Page Sheet http://www.codexis.com/role/CoverPage Cover Page Cover 1 false false R2.htm 1001002 - Statement - Condensed Consolidated Balance Sheets (Unaudited) Sheet http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited Condensed Consolidated Balance Sheets (Unaudited) Statements 2 false false R3.htm 1002003 - Statement - Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical) Sheet http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical) Statements 3 false false R4.htm 1003004 - Statement - Condensed Consolidated Statements of Operations (Unaudited) Sheet http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited Condensed Consolidated Statements of Operations (Unaudited) Statements 4 false false R5.htm 1004005 - Statement - Condensed Consolidated Statements of Operations (Unaudited) (Parenthetical) Sheet http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical Condensed Consolidated Statements of Operations (Unaudited) (Parenthetical) Statements 5 false false R6.htm 1005006 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) Sheet http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited Condensed Consolidated Statements of Stockholders' Equity (Unaudited) Statements 6 false false R7.htm 1006007 - Statement - Condensed Consolidated Statements of Cash Flows Sheet http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows Condensed Consolidated Statements of Cash Flows Statements 7 false false R8.htm 2101101 - Disclosure - Description of Business Sheet http://www.codexis.com/role/DescriptionofBusiness Description of Business Notes 8 false false R9.htm 2103102 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies Sheet http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies Basis of Presentation and Summary of Significant Accounting Policies Notes 9 false false R10.htm 2105103 - Disclosure - Revenue Recognition Sheet http://www.codexis.com/role/RevenueRecognition Revenue Recognition Notes 10 false false R11.htm 2112104 - Disclosure - Net Loss per Share Sheet http://www.codexis.com/role/NetLossperShare Net Loss per Share Notes 11 false false R12.htm 2115105 - Disclosure - Investments in Non-Marketable Securities Sheet http://www.codexis.com/role/InvestmentsinNonMarketableSecurities Investments in Non-Marketable Securities Notes 12 false false R13.htm 2119106 - Disclosure - Fair Value Measurements Sheet http://www.codexis.com/role/FairValueMeasurements Fair Value Measurements Notes 13 false false R14.htm 2122107 - Disclosure - Balance Sheets Details Sheet http://www.codexis.com/role/BalanceSheetsDetails Balance Sheets Details Notes 14 false false R15.htm 2129108 - Disclosure - Stock-based Compensation Sheet http://www.codexis.com/role/StockbasedCompensation Stock-based Compensation Notes 15 false false R16.htm 2136109 - Disclosure - Capital Stock Sheet http://www.codexis.com/role/CapitalStock Capital Stock Notes 16 false false R17.htm 2138110 - Disclosure - Commitments and Contingencies Sheet http://www.codexis.com/role/CommitmentsandContingencies Commitments and Contingencies Notes 17 false false R18.htm 2146111 - Disclosure - Related Party Transactions Sheet http://www.codexis.com/role/RelatedPartyTransactions Related Party Transactions Notes 18 false false R19.htm 2148112 - Disclosure - Segment, Geographical and Other Revenue Information Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation Segment, Geographical and Other Revenue Information Notes 19 false false R20.htm 2156113 - Disclosure - Allowance for Credit Losses Sheet http://www.codexis.com/role/AllowanceforCreditLosses Allowance for Credit Losses Notes 20 false false R21.htm 2204201 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies) Sheet http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies Basis of Presentation and Summary of Significant Accounting Policies (Policies) Policies http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies 21 false false R22.htm 2306301 - Disclosure - Revenue Recognition (Tables) Sheet http://www.codexis.com/role/RevenueRecognitionTables Revenue Recognition (Tables) Tables http://www.codexis.com/role/RevenueRecognition 22 false false R23.htm 2313302 - Disclosure - Net Loss per Share (Tables) Sheet http://www.codexis.com/role/NetLossperShareTables Net Loss per Share (Tables) Tables http://www.codexis.com/role/NetLossperShare 23 false false R24.htm 2316303 - Disclosure - Investments in Non-Marketable Securities (Tables) Sheet http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables Investments in Non-Marketable Securities (Tables) Tables http://www.codexis.com/role/InvestmentsinNonMarketableSecurities 24 false false R25.htm 2320304 - Disclosure - Fair Value Measurements (Tables) Sheet http://www.codexis.com/role/FairValueMeasurementsTables Fair Value Measurements (Tables) Tables http://www.codexis.com/role/FairValueMeasurements 25 false false R26.htm 2323305 - Disclosure - Balance Sheets Details (Tables) Sheet http://www.codexis.com/role/BalanceSheetsDetailsTables Balance Sheets Details (Tables) Tables http://www.codexis.com/role/BalanceSheetsDetails 26 false false R27.htm 2330306 - Disclosure - Stock-based Compensation (Tables) Sheet http://www.codexis.com/role/StockbasedCompensationTables Stock-based Compensation (Tables) Tables http://www.codexis.com/role/StockbasedCompensation 27 false false R28.htm 2339307 - Disclosure - Commitments and Contingencies (Tables) Sheet http://www.codexis.com/role/CommitmentsandContingenciesTables Commitments and Contingencies (Tables) Tables http://www.codexis.com/role/CommitmentsandContingencies 28 false false R29.htm 2349308 - Disclosure - Segment, Geographical and Other Revenue Information (Tables) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables Segment, Geographical and Other Revenue Information (Tables) Tables http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation 29 false false R30.htm 2357309 - Disclosure - Allowance for Credit Losses (Tables) Sheet http://www.codexis.com/role/AllowanceforCreditLossesTables Allowance for Credit Losses (Tables) Tables http://www.codexis.com/role/AllowanceforCreditLosses 30 false false R31.htm 2402401 - Disclosure - Description of Business (Details) Sheet http://www.codexis.com/role/DescriptionofBusinessDetails Description of Business (Details) Details http://www.codexis.com/role/DescriptionofBusiness 31 false false R32.htm 2407402 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details) Sheet http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails Revenue Recognition - Disaggregation of Revenue (Details) Details 32 false false R33.htm 2408403 - Disclosure - Revenue Recognition - Contracts with Customer (Details) Sheet http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails Revenue Recognition - Contracts with Customer (Details) Details 33 false false R34.htm 2409404 - Disclosure - Revenue Recognition - Narrative (Details) Sheet http://www.codexis.com/role/RevenueRecognitionNarrativeDetails Revenue Recognition - Narrative (Details) Details 34 false false R35.htm 2410405 - Disclosure - Revenue Recognition - Revenue Recognized During Period (Details) Sheet http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails Revenue Recognition - Revenue Recognized During Period (Details) Details 35 false false R36.htm 2411406 - Disclosure - Revenue Recognition - Performance Obligation (Details) Sheet http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails Revenue Recognition - Performance Obligation (Details) Details 36 false false R37.htm 2414407 - Disclosure - Net Loss per Share (Details) Sheet http://www.codexis.com/role/NetLossperShareDetails Net Loss per Share (Details) Details http://www.codexis.com/role/NetLossperShareTables 37 false false R38.htm 2417408 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details) Sheet http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails Investments in Non-Marketable Securities - Narrative (Details) Details 38 false false R39.htm 2418409 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details) Sheet http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details) Details 39 false false R40.htm 2421410 - Disclosure - Fair Value Measurements (Details) Sheet http://www.codexis.com/role/FairValueMeasurementsDetails Fair Value Measurements (Details) Details http://www.codexis.com/role/FairValueMeasurementsTables 40 false false R41.htm 2424411 - Disclosure - Balance Sheets Details - Cash and Cash Equivalents (Details) Sheet http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails Balance Sheets Details - Cash and Cash Equivalents (Details) Details 41 false false R42.htm 2425412 - Disclosure - Balance Sheets Details - Inventories (Details) Sheet http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails Balance Sheets Details - Inventories (Details) Details 42 false false R43.htm 2426413 - Disclosure - Balance Sheets Details - Property and Equipment, net (Details) Sheet http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails Balance Sheets Details - Property and Equipment, net (Details) Details 43 false false R44.htm 2427414 - Disclosure - Balance Sheets Details - Goodwill (Details) Sheet http://www.codexis.com/role/BalanceSheetsDetailsGoodwillDetails Balance Sheets Details - Goodwill (Details) Details 44 false false R45.htm 2428415 - Disclosure - Balance Sheets Details - Other Accrued Liabilities (Details) Sheet http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails Balance Sheets Details - Other Accrued Liabilities (Details) Details 45 false false R46.htm 2431416 - Disclosure - Stock-based Compensation - Equity Incentive Plans (Details) Sheet http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails Stock-based Compensation - Equity Incentive Plans (Details) Details 46 false false R47.htm 2432417 - Disclosure - Stock-based Compensation - Stock Options (Details) Sheet http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails Stock-based Compensation - Stock Options (Details) Details 47 false false R48.htm 2433418 - Disclosure - Stock-based Compensation - Restricted Stock Units (Details) Sheet http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails Stock-based Compensation - Restricted Stock Units (Details) Details 48 false false R49.htm 2434419 - Disclosure - Stock-based Compensation - PSUs and PBOs (Details) Sheet http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails Stock-based Compensation - PSUs and PBOs (Details) Details 49 false false R50.htm 2435420 - Disclosure - Stock-based Compensation - Stock-based Compensation Expense (Details) Sheet http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails Stock-based Compensation - Stock-based Compensation Expense (Details) Details 50 false false R51.htm 2437421 - Disclosure - Capital Stock (Details) Sheet http://www.codexis.com/role/CapitalStockDetails Capital Stock (Details) Details http://www.codexis.com/role/CapitalStock 51 false false R52.htm 2440422 - Disclosure - Commitments and Contingencies - Narrative (Details) Sheet http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails Commitments and Contingencies - Narrative (Details) Details 52 false false R53.htm 2441423 - Disclosure - Commitments and Contingencies - Lease Cost (Details) Sheet http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails Commitments and Contingencies - Lease Cost (Details) Details 53 false false R54.htm 2442424 - Disclosure - Commitments and Contingencies - Other Lease Information (Details) Sheet http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails Commitments and Contingencies - Other Lease Information (Details) Details 54 false false R55.htm 2443425 - Disclosure - Commitments and Contingencies - Cash Paid for Lease Obligations (Details) Sheet http://www.codexis.com/role/CommitmentsandContingenciesCashPaidforLeaseObligationsDetails Commitments and Contingencies - Cash Paid for Lease Obligations (Details) Details 55 false false R56.htm 2444426 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details) Sheet http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails Commitments and Contingencies - Maturity Analysis of Operating Lease (Details) Details 56 false false R57.htm 2445427 - Disclosure - Commitments and Contingencies - Other Commitments (Details) Sheet http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails Commitments and Contingencies - Other Commitments (Details) Details 57 false false R58.htm 2447428 - Disclosure - Related Party Transactions - Molecular Assemblies, Inc. (Details) Sheet http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails Related Party Transactions - Molecular Assemblies, Inc. (Details) Details 58 false false R59.htm 2450429 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails Segment, Geographical and Other Revenue Information - Narrative (Details) Details http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables 59 false false R60.htm 2451430 - Disclosure - Segment, Geographical and Other Revenue Information - Segment Reporting (Details) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails Segment, Geographical and Other Revenue Information - Segment Reporting (Details) Details 60 false false R61.htm 2452431 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails Segment, Geographical and Other Revenue Information - Concentration Risk (Details) Details 61 false false R62.htm 2453432 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues by Geographic Area (Details) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails Segment, Geographical and Other Revenue Information - Revenues by Geographic Area (Details) Details 62 false false R63.htm 2454433 - Disclosure - Segment, Geographical and Other Revenue Information - Long-Lived Assets by Geographic Area (Details) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails Segment, Geographical and Other Revenue Information - Long-Lived Assets by Geographic Area (Details) Details 63 false false R64.htm 2455434 - Disclosure - Segment, Geographical and Other Revenue Information - Goodwill (Details) Sheet http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails Segment, Geographical and Other Revenue Information - Goodwill (Details) Details http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables 64 false false R65.htm 2458435 - Disclosure - Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details) Sheet http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details) Details 65 false false R66.htm 2459436 - Disclosure - Allowance for Credit Losses - Summary of Finance Receivables by Aging Category (Details) Sheet http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails Allowance for Credit Losses - Summary of Finance Receivables by Aging Category (Details) Details 66 false false All Reports Book All Reports cdxs-20220331.htm cdxs-20220331.xsd cdxs-20220331_cal.xml cdxs-20220331_def.xml cdxs-20220331_lab.xml cdxs-20220331_pre.xml cdxs_20220331xex311sp.htm cdxs_20220331xex312sp.htm cdxs_20220331xex321sp.htm http://fasb.org/us-gaap/2021-01-31 http://xbrl.sec.gov/dei/2021q4 true true JSON 83 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "cdxs-20220331.htm": { "axisCustom": 1, "axisStandard": 34, "contextCount": 232, "dts": { "calculationLink": { "local": [ "cdxs-20220331_cal.xml" ] }, "definitionLink": { "local": [ "cdxs-20220331_def.xml" ] }, "inline": { "local": [ "cdxs-20220331.htm" ] }, "labelLink": { "local": [ "cdxs-20220331_lab.xml" ] }, "presentationLink": { "local": [ "cdxs-20220331_pre.xml" ] }, "schema": { "local": [ "cdxs-20220331.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/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-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://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd", "https://xbrl.sec.gov/country/2021/country-2021.xsd", "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd" ] } }, "elementCount": 490, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2021-01-31": 13, "http://xbrl.sec.gov/dei/2021q4": 5, "total": 18 }, "keyCustom": 20, "keyStandard": 238, "memberCustom": 44, "memberStandard": 43, "nsprefix": "cdxs", "nsuri": "http://www.codexis.com/20220331", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "0001001 - Document - Cover Page", "role": "http://www.codexis.com/role/CoverPage", "shortName": "Cover Page", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2105103 - Disclosure - Revenue Recognition", "role": "http://www.codexis.com/role/RevenueRecognition", "shortName": "Revenue Recognition", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2112104 - Disclosure - Net Loss per Share", "role": "http://www.codexis.com/role/NetLossperShare", "shortName": "Net Loss per Share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2115105 - Disclosure - Investments in Non-Marketable Securities", "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecurities", "shortName": "Investments in Non-Marketable Securities", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueMeasurementInputsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2119106 - Disclosure - Fair Value Measurements", "role": "http://www.codexis.com/role/FairValueMeasurements", "shortName": "Fair Value Measurements", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueMeasurementInputsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "cdxs:BalanceSheetsDetailsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2122107 - Disclosure - Balance Sheets Details", "role": "http://www.codexis.com/role/BalanceSheetsDetails", "shortName": "Balance Sheets Details", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "cdxs:BalanceSheetsDetailsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2129108 - Disclosure - Stock-based Compensation", "role": "http://www.codexis.com/role/StockbasedCompensation", "shortName": "Stock-based Compensation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2136109 - Disclosure - Capital Stock", "role": "http://www.codexis.com/role/CapitalStock", "shortName": "Capital Stock", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2138110 - Disclosure - Commitments and Contingencies", "role": "http://www.codexis.com/role/CommitmentsandContingencies", "shortName": "Commitments and Contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2146111 - Disclosure - Related Party Transactions", "role": "http://www.codexis.com/role/RelatedPartyTransactions", "shortName": "Related Party Transactions", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2148112 - Disclosure - Segment, Geographical and Other Revenue Information", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation", "shortName": "Segment, Geographical and Other Revenue Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1001002 - Statement - Condensed Consolidated Balance Sheets (Unaudited)", "role": "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "shortName": "Condensed Consolidated Balance Sheets (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:RestrictedCash", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CreditLossFinancialInstrumentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2156113 - Disclosure - Allowance for Credit Losses", "role": "http://www.codexis.com/role/AllowanceforCreditLosses", "shortName": "Allowance for Credit Losses", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CreditLossFinancialInstrumentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2204201 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies)", "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies", "shortName": "Basis of Presentation and Summary of Significant Accounting Policies (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2306301 - Disclosure - Revenue Recognition (Tables)", "role": "http://www.codexis.com/role/RevenueRecognitionTables", "shortName": "Revenue Recognition (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2313302 - Disclosure - Net Loss per Share (Tables)", "role": "http://www.codexis.com/role/NetLossperShareTables", "shortName": "Net Loss per Share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2316303 - Disclosure - Investments in Non-Marketable Securities (Tables)", "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables", "shortName": "Investments in Non-Marketable Securities (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2320304 - Disclosure - Fair Value Measurements (Tables)", "role": "http://www.codexis.com/role/FairValueMeasurementsTables", "shortName": "Fair Value Measurements (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2323305 - Disclosure - Balance Sheets Details (Tables)", "role": "http://www.codexis.com/role/BalanceSheetsDetailsTables", "shortName": "Balance Sheets Details (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2330306 - Disclosure - Stock-based Compensation (Tables)", "role": "http://www.codexis.com/role/StockbasedCompensationTables", "shortName": "Stock-based Compensation (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2339307 - Disclosure - Commitments and Contingencies (Tables)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesTables", "shortName": "Commitments and Contingencies (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2349308 - Disclosure - Segment, Geographical and Other Revenue Information (Tables)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables", "shortName": "Segment, Geographical and Other Revenue Information (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:InvestmentsAndOtherNoncurrentAssets", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1002003 - Statement - Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical)", "role": "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "shortName": "Condensed Consolidated Balance Sheets (Unaudited) (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "INF", "lang": "en-US", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "usdPerShare", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2357309 - Disclosure - Allowance for Credit Losses (Tables)", "role": "http://www.codexis.com/role/AllowanceforCreditLossesTables", "shortName": "Allowance for Credit Losses (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "us-gaap:NumberOfOperatingSegments", "span", "div", "us-gaap:SegmentReportingPolicyPolicyTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unitRef": "segment", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2402401 - Disclosure - Description of Business (Details)", "role": "http://www.codexis.com/role/DescriptionofBusinessDetails", "shortName": "Description of Business (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R32": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407402 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details)", "role": "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "shortName": "Revenue Recognition - Disaggregation of Revenue (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "id66e12748a1f464fa586756692c59e98_D20220101-20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetGrossCurrent", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408403 - Disclosure - Revenue Recognition - Contracts with Customer (Details)", "role": "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails", "shortName": "Revenue Recognition - Contracts with Customer (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:CapitalizedContractCostNetCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetCreditLossExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409404 - Disclosure - Revenue Recognition - Narrative (Details)", "role": "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails", "shortName": "Revenue Recognition - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetCreditLossExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410405 - Disclosure - Revenue Recognition - Revenue Recognized During Period (Details)", "role": "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails", "shortName": "Revenue Recognition - Revenue Recognized During Period (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueRemainingPerformanceObligation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2411406 - Disclosure - Revenue Recognition - Performance Obligation (Details)", "role": "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails", "shortName": "Revenue Recognition - Performance Obligation (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueRemainingPerformanceObligation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iaac9ab89fc9443738fe69c801b6cfb35_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2414407 - Disclosure - Net Loss per Share (Details)", "role": "http://www.codexis.com/role/NetLossperShareDetails", "shortName": "Net Loss per Share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iaac9ab89fc9443738fe69c801b6cfb35_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "idd13b0f97edf431a93c975be3e2600dd_I20201130", "decimals": "-5", "first": true, "lang": "en-US", "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2417408 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details)", "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails", "shortName": "Investments in Non-Marketable Securities - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "idd13b0f97edf431a93c975be3e2600dd_I20201130", "decimals": "-5", "first": true, "lang": "en-US", "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2418409 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)", "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "shortName": "Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i9b62c17ca71046e692024b932b68df23_I20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1003004 - Statement - Condensed Consolidated Statements of Operations (Unaudited)", "role": "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "shortName": "Condensed Consolidated Statements of Operations (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:InvestmentIncomeInterest", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff", "ix:continuation", "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i2db2f3a8607e47f3afefeb21917de31f_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2421410 - Disclosure - Fair Value Measurements (Details)", "role": "http://www.codexis.com/role/FairValueMeasurementsDetails", "shortName": "Fair Value Measurements (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff", "ix:continuation", "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i2db2f3a8607e47f3afefeb21917de31f_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2424411 - Disclosure - Balance Sheets Details - Cash and Cash Equivalents (Details)", "role": "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails", "shortName": "Balance Sheets Details - Cash and Cash Equivalents (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-5", "lang": "en-US", "name": "us-gaap:MoneyMarketFundsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2425412 - Disclosure - Balance Sheets Details - Inventories (Details)", "role": "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails", "shortName": "Balance Sheets Details - Inventories (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2426413 - Disclosure - Balance Sheets Details - Property and Equipment, net (Details)", "role": "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails", "shortName": "Balance Sheets Details - Property and Equipment, net (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2427414 - Disclosure - Balance Sheets Details - Goodwill (Details)", "role": "http://www.codexis.com/role/BalanceSheetsDetailsGoodwillDetails", "shortName": "Balance Sheets Details - Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R45": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PurchaseObligation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2428415 - Disclosure - Balance Sheets Details - Other Accrued Liabilities (Details)", "role": "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails", "shortName": "Balance Sheets Details - Other Accrued Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PurchaseObligation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i7c2cf4a3de1c450cb195ee2edf6532c5_I20190422", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2431416 - Disclosure - Stock-based Compensation - Equity Incentive Plans (Details)", "role": "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails", "shortName": "Stock-based Compensation - Equity Incentive Plans (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i7c2cf4a3de1c450cb195ee2edf6532c5_I20190422", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i778f50bba2e34c3e872e38aabfb7875a_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2432417 - Disclosure - Stock-based Compensation - Stock Options (Details)", "role": "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails", "shortName": "Stock-based Compensation - Stock Options (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i778f50bba2e34c3e872e38aabfb7875a_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i4a0fdef3f78c4374bf9ca90161d4e18e_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2433418 - Disclosure - Stock-based Compensation - Restricted Stock Units (Details)", "role": "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "shortName": "Stock-based Compensation - Restricted Stock Units (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i4a0fdef3f78c4374bf9ca90161d4e18e_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i0746f24f513d4be4a3f74d99b949014d_I20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments", "reportCount": 1, "unique": true, "unitRef": "installment", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2434419 - Disclosure - Stock-based Compensation - PSUs and PBOs (Details)", "role": "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "shortName": "Stock-based Compensation - PSUs and PBOs (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i0746f24f513d4be4a3f74d99b949014d_I20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments", "reportCount": 1, "unique": true, "unitRef": "installment", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ic01348905dd44909ba8332cd790af3da_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromRelatedParties", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1004005 - Statement - Condensed Consolidated Statements of Operations (Unaudited) (Parenthetical)", "role": "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "shortName": "Condensed Consolidated Statements of Operations (Unaudited) (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ic01348905dd44909ba8332cd790af3da_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromRelatedParties", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensation", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2435420 - Disclosure - Stock-based Compensation - Stock-based Compensation Expense (Details)", "role": "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails", "shortName": "Stock-based Compensation - Stock-based Compensation Expense (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ib58717fe11dd4a25b3e4667b44dd497b_D20220101-20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:ShareBasedCompensation", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2437421 - Disclosure - Capital Stock (Details)", "role": "http://www.codexis.com/role/CapitalStockDetails", "shortName": "Capital Stock (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "2", "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "reportCount": 1, "unique": true, "unitRef": "usdPerShare", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-2", "first": true, "lang": "en-US", "name": "us-gaap:AreaOfRealEstateProperty", "reportCount": 1, "unique": true, "unitRef": "sqft", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2440422 - Disclosure - Commitments and Contingencies - Narrative (Details)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails", "shortName": "Commitments and Contingencies - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-2", "first": true, "lang": "en-US", "name": "us-gaap:AreaOfRealEstateProperty", "reportCount": 1, "unique": true, "unitRef": "sqft", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "cdxs:FinanceLeaseCost", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2441423 - Disclosure - Commitments and Contingencies - Lease Cost (Details)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails", "shortName": "Commitments and Contingencies - Lease Cost (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "cdxs:FinanceLeaseCost", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2442424 - Disclosure - Commitments and Contingencies - Other Lease Information (Details)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails", "shortName": "Commitments and Contingencies - Other Lease Information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2443425 - Disclosure - Commitments and Contingencies - Cash Paid for Lease Obligations (Details)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesCashPaidforLeaseObligationsDetails", "shortName": "Commitments and Contingencies - Cash Paid for Lease Obligations (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2444426 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails", "shortName": "Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:SupplyCommitmentTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i36488343bb55428fb730a269f80666de_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:SignificantSupplyCommitmentRemainingMinimumAmountCommitted", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2445427 - Disclosure - Commitments and Contingencies - Other Commitments (Details)", "role": "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails", "shortName": "Commitments and Contingencies - Other Commitments (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:SupplyCommitmentTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i36488343bb55428fb730a269f80666de_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:SignificantSupplyCommitmentRemainingMinimumAmountCommitted", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PaymentsToAcquireOtherInvestments", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2447428 - Disclosure - Related Party Transactions - Molecular Assemblies, Inc. (Details)", "role": "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails", "shortName": "Related Party Transactions - Molecular Assemblies, Inc. (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i28ffdf01ef8b4f8c919b84753c69c485_D20211201-20211231", "decimals": "INF", "lang": "en-US", "name": "cdxs:DueFromRelatedPartiesShares", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "span", "div", "us-gaap:SegmentReportingPolicyPolicyTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:NumberOfOperatingSegments", "reportCount": 1, "unique": true, "unitRef": "segment", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2450429 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails", "shortName": "Segment, Geographical and Other Revenue Information - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "us-gaap:SegmentReportingPolicyPolicyTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:NumberOfOperatingSegments", "reportCount": 1, "unique": true, "unitRef": "segment", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iae979ea5124c4174b9714fdb6a42da18_I20201231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1005006 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)", "role": "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited", "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iae979ea5124c4174b9714fdb6a42da18_I20201231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2451430 - Disclosure - Segment, Geographical and Other Revenue Information - Segment Reporting (Details)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails", "shortName": "Segment, Geographical and Other Revenue Information - Segment Reporting (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ie1235948804f47ed8c66a7be269258e8_D20220101-20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ibe773a048bb44cc980e22adacb6ecf37_D20220101-20220331", "decimals": "2", "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2452431 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails", "shortName": "Segment, Geographical and Other Revenue Information - Concentration Risk (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ibe773a048bb44cc980e22adacb6ecf37_D20220101-20220331", "decimals": "2", "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2453432 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues by Geographic Area (Details)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails", "shortName": "Segment, Geographical and Other Revenue Information - Revenues by Geographic Area (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R63": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i97dfb881f2b84ad9b3ea6b05ab8c801b_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2454433 - Disclosure - Segment, Geographical and Other Revenue Information - Long-Lived Assets by Geographic Area (Details)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails", "shortName": "Segment, Geographical and Other Revenue Information - Long-Lived Assets by Geographic Area (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i97dfb881f2b84ad9b3ea6b05ab8c801b_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2455434 - Disclosure - Segment, Geographical and Other Revenue Information - Goodwill (Details)", "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "shortName": "Segment, Geographical and Other Revenue Information - Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "ie28e3aab93174ae9aab268b33ad5fdf3_I20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:Goodwill", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForNotesAndLoansReceivableCurrent", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2458435 - Disclosure - Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details)", "role": "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails", "shortName": "Allowance for Credit Losses - Analysis of Allowance for Credit Losses (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i70bf0256055943dca9ff88ab9d015c19_I20201231", "decimals": "-3", "lang": "en-US", "name": "us-gaap:AllowanceForNotesAndLoansReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:PastDueFinancingReceivablesTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AccountsReceivableGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2459436 - Disclosure - Allowance for Credit Losses - Summary of Finance Receivables by Aging Category (Details)", "role": "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails", "shortName": "Allowance for Credit Losses - Summary of Finance Receivables by Aging Category (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:PastDueFinancingReceivablesTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "i1aee3874e8af4c76b7e5fd31a0ad74db_I20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AccountsReceivableGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1006007 - Statement - Condensed Consolidated Statements of Cash Flows", "role": "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows", "shortName": "Condensed Consolidated Statements of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": "-3", "lang": "en-US", "name": "us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2101101 - Disclosure - Description of Business", "role": "http://www.codexis.com/role/DescriptionofBusiness", "shortName": "Description of Business", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2103102 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies", "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies", "shortName": "Basis of Presentation and Summary of Significant Accounting Policies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "cdxs-20220331.htm", "contextRef": "iea69d0cc175b47eb933d7bca96dd93ff_D20220101-20220331", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 89, "tag": { "cdxs_A200220PenobscotMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "200-220 Penobscot", "label": "200-220 Penobscot [Member]", "terseLabel": "200-220 Penobscot" } } }, "localname": "A200220PenobscotMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2019PlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2019 Plan [Member]", "label": "2019 Plan [Member]", "terseLabel": "2019 Plan" } } }, "localname": "A2019PlanMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2020PBOMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2020 PBO", "label": "2020 PBO [Member]", "terseLabel": "2020 PBO" } } }, "localname": "A2020PBOMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2020PSUAndPBOPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2020 PSU and PBO Plan", "label": "2020 PSU and PBO Plan [Member]", "terseLabel": "2020 PSU and PBO" } } }, "localname": "A2020PSUAndPBOPlanMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2020PSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2020 PSU", "label": "2020 PSU [Member]", "terseLabel": "2020 PSU" } } }, "localname": "A2020PSUMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2021PBOMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2021 PBO", "label": "2021 PBO [Member]", "terseLabel": "2021 PBO" } } }, "localname": "A2021PBOMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2021PSUAnd2021PBOMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2021 PSU And 2021 PBO", "label": "2021 PSU And 2021 PBO [Member]", "terseLabel": "2021 PSU And 2021 PBO" } } }, "localname": "A2021PSUAnd2021PBOMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2021PSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2021 PSU", "label": "2021 PSU [Member]", "terseLabel": "2021 PSU" } } }, "localname": "A2021PSUMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2022PBOMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2022 PBO", "label": "2022 PBO [Member]", "terseLabel": "2022 PBO" } } }, "localname": "A2022PBOMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A2022PSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2022 PSU", "label": "2022 PSU [Member]", "terseLabel": "2022 PSU" } } }, "localname": "A2022PSUMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "cdxs_A400PenoscotMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "400 Penoscot", "label": "400 Penoscot [Member]", "terseLabel": "400 Penobscot" } } }, "localname": "A400PenoscotMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_A501ChesapeakeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "501 Chesapeake", "label": "501 Chesapeake [Member]", "terseLabel": "501 Chesapeake" } } }, "localname": "A501ChesapeakeMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_APACMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Regions of Australia, New Zealand, Southeast Asia and China", "label": "APAC [Member]", "terseLabel": "APAC" } } }, "localname": "APACMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "cdxs_AgreementDateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Agreement Date [Axis]", "label": "Agreement Date [Axis]", "terseLabel": "Agreement Date [Axis]" } } }, "localname": "AgreementDateAxis", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "stringItemType" }, "cdxs_AgreementDateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "[Domain] for Agreement Date [Axis]", "label": "Agreement Date [Domain]", "terseLabel": "Agreement Date [Domain]" } } }, "localname": "AgreementDateDomain", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "domainItemType" }, "cdxs_BalanceSheetDetailsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Balance Sheet Details [Abstract]", "label": "Balance Sheet Details [Abstract]", "terseLabel": "Balance Sheet Details [Abstract]" } } }, "localname": "BalanceSheetDetailsAbstract", "nsuri": "http://www.codexis.com/20220331", "xbrltype": "stringItemType" }, "cdxs_BalanceSheetsDetailsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "-- None. No documentation exists for this element. --", "label": "Balance Sheets Details [Abstract]", "terseLabel": "Balance Sheets Details [Abstract]" } } }, "localname": "BalanceSheetsDetailsAbstract", "nsuri": "http://www.codexis.com/20220331", "xbrltype": "stringItemType" }, "cdxs_BalanceSheetsDetailsTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Balance sheets details.", "label": "Balance Sheets Details [Text Block]", "verboseLabel": "Balance Sheets Details" } } }, "localname": "BalanceSheetsDetailsTextBlock", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetails" ], "xbrltype": "textBlockItemType" }, "cdxs_BiotherapeuticSegmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Biotherapeutic Segment [Member]", "label": "Biotherapeutic Segment [Member]", "verboseLabel": "Novel Biotherapeutics" } } }, "localname": "BiotherapeuticSegmentMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "cdxs_CommitmentsAndContingenciesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commitments and contingencies.", "label": "Commitments and Contingencies [Line Items]", "terseLabel": "Commitments and Contingencies [Line Items]" } } }, "localname": "CommitmentsAndContingenciesLineItems", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails": { "order": 3.0, "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition", "label": "Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition", "terseLabel": "Performance obligations satisfied from new activities in the period - contract revenue" } } }, "localname": "ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails" ], "xbrltype": "monetaryItemType" }, "cdxs_CoreSegmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Core Segment [Member]", "label": "Core Segment [Member]", "verboseLabel": "Performance Enzymes" } } }, "localname": "CoreSegmentMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "cdxs_CustomerAMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer A [Member]", "label": "Customer A [Member]", "terseLabel": "Customer A" } } }, "localname": "CustomerAMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "cdxs_CustomerBMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer B [Member]", "label": "Customer B [Member]", "terseLabel": "Customer B" } } }, "localname": "CustomerBMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "cdxs_CustomerCMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer C [Member]", "label": "Customer C [Member]", "terseLabel": "Customer C" } } }, "localname": "CustomerCMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "cdxs_CustomerDMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer D [Member]", "label": "Customer D [Member]", "terseLabel": "Customer D" } } }, "localname": "CustomerDMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "cdxs_CustomerEMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer E", "label": "Customer E [Member]", "terseLabel": "Customer E" } } }, "localname": "CustomerEMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "cdxs_DueFromRelatedPartiesShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Due From Related Parties, Shares", "label": "Due From Related Parties, Shares", "terseLabel": "Milestone payment received (in shares)" } } }, "localname": "DueFromRelatedPartiesShares", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "sharesItemType" }, "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Equity Securities Without Readily Determinable Fair Value, Shares", "label": "Equity Securities Without Readily Determinable Fair Value, Shares", "terseLabel": "Non-marketable equity securities purchased (in shares)" } } }, "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueShares", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "sharesItemType" }, "cdxs_FinanceLeaseCost": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails": { "order": 1.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Finance Lease, Cost", "label": "Finance Lease, Cost", "terseLabel": "Finance lease costs" } } }, "localname": "FinanceLeaseCost", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "cdxs_FinancialReceivablesNotPastDueMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Financial Receivables Not Past Due", "label": "Financial Receivables Not Past Due [Member]", "terseLabel": "Current" } } }, "localname": "FinancialReceivablesNotPastDueMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "domainItemType" }, "cdxs_FinancialReceivablesPastDueMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Financial Receivables Past Due", "label": "Financial Receivables Past Due [Member]", "terseLabel": "Total over 31 Days" } } }, "localname": "FinancialReceivablesPastDueMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "domainItemType" }, "cdxs_IncentiveStockOptionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Incentive Stock Options [Member]", "label": "Incentive Stock Options [Member]", "terseLabel": "Incentive Stock Options" } } }, "localname": "IncentiveStockOptionsMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "domainItemType" }, "cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities", "label": "Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities", "negatedTerseLabel": "Accrued compensation and other accrued liabilities" } } }, "localname": "IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "cdxs_January2022Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "January 2022", "label": "January 2022 [Member]", "terseLabel": "January 2022" } } }, "localname": "January2022Member", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "domainItemType" }, "cdxs_LaboratoryEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Laboratory Equipment [Member]", "label": "Laboratory Equipment [Member]", "terseLabel": "Laboratory equipment" } } }, "localname": "LaboratoryEquipmentMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "cdxs_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": 5.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Lessee, Operating Lease, Liability, to be Paid, After Year Four", "label": "Lessee, Operating Lease, Liability, to be Paid, After Year Four", "terseLabel": "2027 and thereafter" } } }, "localname": "LesseeOperatingLeaseLiabilityToBePaidAfterYearFour", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "cdxs_LesseeOperatingLeaseOptionToExtendNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Lessee, Operating Lease, Option To Extend, Number", "label": "Lessee, Operating Lease, Option To Extend, Number", "terseLabel": "Number of options to extend" } } }, "localname": "LesseeOperatingLeaseOptionToExtendNumber", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "integerItemType" }, "cdxs_LineofCreditFacilityAccountsReceivableBorrowingBasePercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line of Credit Facility, Accounts Receivable Borrowing Base Percentage", "label": "Line of Credit Facility, Accounts Receivable Borrowing Base Percentage", "terseLabel": "Accounts receivable, borrowing base percentage" } } }, "localname": "LineofCreditFacilityAccountsReceivableBorrowingBasePercentage", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "percentItemType" }, "cdxs_MAIAgreementMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "MAI Agreement", "label": "MAI Agreement [Member]", "terseLabel": "MAI Agreement" } } }, "localname": "MAIAgreementMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "cdxs_MasterCollaborationResearchAgreementMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Master Collaboration & Research Agreement", "label": "Master Collaboration & Research Agreement [Member]", "terseLabel": "MCRA" } } }, "localname": "MasterCollaborationResearchAgreementMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "cdxs_MolecularAssembliesIncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Molecular Assemblies, Inc.", "label": "Molecular Assemblies, Inc. [Member]", "terseLabel": "MAI" } } }, "localname": "MolecularAssembliesIncMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "cdxs_NonMarketableDebtSecuritiesWithoutReadilyDeterminableFairValueAnnualAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Non Marketable Debt Securities Without Readily Determinable Fair Value Annual Amount", "label": "Non Marketable Debt Securities Without Readily Determinable Fair Value Annual Amount", "terseLabel": "Unrealized or realized gains or losses" } } }, "localname": "NonMarketableDebtSecuritiesWithoutReadilyDeterminableFairValueAnnualAmount", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cdxs_NonStatutoryStockOptionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Non-Statutory Stock Options [Member]", "label": "Non-Statutory Stock Options [Member]", "terseLabel": "Non-Statutory Stock Options" } } }, "localname": "NonStatutoryStockOptionsMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "domainItemType" }, "cdxs_NovelBiotherapeuticsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Novel Biotherapeutics [Member]", "label": "Novel Biotherapeutics [Member]", "terseLabel": "Novel Biotherapeutics" } } }, "localname": "NovelBiotherapeuticsMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails" ], "xbrltype": "domainItemType" }, "cdxs_OfficeEquipmentAndFurnitureMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Office Equipment and Furniture [Member]", "label": "Office Equipment and Furniture [Member]", "terseLabel": "Office equipment and furniture" } } }, "localname": "OfficeEquipmentAndFurnitureMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "cdxs_PercentofVotingInterestsThresholdtotriggerhigherexerciseprice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percent of Voting Interests Threshold to trigger higher exercise price", "label": "Percent of Voting Interests Threshold to trigger higher exercise price", "terseLabel": "Percent of voting interests" } } }, "localname": "PercentofVotingInterestsThresholdtotriggerhigherexerciseprice", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "percentItemType" }, "cdxs_PerformanceBasedOptionsPBOsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Performance Based Options (PBOs) [Member]", "label": "Performance Based Options (PBOs) [Member]", "verboseLabel": "PBOs" } } }, "localname": "PerformanceBasedOptionsPBOsMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "cdxs_PerformanceEnzymesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Performance Enzymes [Member]", "label": "Performance Enzymes [Member]", "terseLabel": "Performance Enzymes" } } }, "localname": "PerformanceEnzymesMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails" ], "xbrltype": "domainItemType" }, "cdxs_PerformanceStockUnitsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Performance Stock Units [Member]", "label": "Performance Stock Units [Member]", "verboseLabel": "PSUs" } } }, "localname": "PerformanceStockUnitsMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "cdxs_PiperSandlerCoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Piper Sandler & Co", "label": "Piper Sandler & Co [Member]", "terseLabel": "Piper Sandler & Co" } } }, "localname": "PiperSandlerCoMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "domainItemType" }, "cdxs_ProductSalesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Product Sales [Member]", "label": "Product Sales [Member]", "terseLabel": "Product revenue" } } }, "localname": "ProductSalesMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "cdxs_RSAsandRSUsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "RSAs and RSUs [Member]", "label": "RSAs and RSUs [Member]", "verboseLabel": "RSUs and RSAs" } } }, "localname": "RSAsandRSUsMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "cdxs_ResearchandDevelopmentRevenueMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Research and Development Revenue [Member]", "label": "Research and Development Revenue [Member]", "terseLabel": "Research and development revenue ($245 and $132 from a related party)", "verboseLabel": "Research and development revenue" } } }, "localname": "ResearchandDevelopmentRevenueMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "cdxs_SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price", "label": "Sale Of Stock, Commissions And Reimbursements, Percentage Of Gross Sales Price", "terseLabel": "Sale of stock, commissions and reimbursements, percentage of gross sales price" } } }, "localname": "SaleOfStockCommissionsAndReimbursementsPercentageOfGrossSalesPrice", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "percentItemType" }, "cdxs_SaleOfStockCommissionsPercentageOfGrossSalesPrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale Of Stock, Commissions, Percentage Of Gross Sales Price", "label": "Sale Of Stock, Commissions, Percentage Of Gross Sales Price", "terseLabel": "Sale of stock, commissions, percentage of gross sales price" } } }, "localname": "SaleOfStockCommissionsPercentageOfGrossSalesPrice", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "percentItemType" }, "cdxs_SaleOfStockPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale Of Stock, Period", "label": "Sale Of Stock, Period", "terseLabel": "Sale of stock, period" } } }, "localname": "SaleOfStockPeriod", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "durationItemType" }, "cdxs_SaleOfStockValueOfSharesForIssuance": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sale Of Stock, Value Of Shares For Issuance", "label": "Sale Of Stock, Value Of Shares For Issuance", "terseLabel": "Sale of stock, value of shares for issuance" } } }, "localname": "SaleOfStockValueOfSharesForIssuance", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "monetaryItemType" }, "cdxs_SanCarlosSpaceMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "San Carlos Space", "label": "San Carlos Space [Member]", "terseLabel": "San Carlos Space" } } }, "localname": "SanCarlosSpaceMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_ScheduleOfCommitmentsAndContingenciesTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of commitments and contingencies.", "label": "Schedule of Commitments and Contingencies [Table]", "terseLabel": "Schedule of Commitments and Contingencies [Table]" } } }, "localname": "ScheduleOfCommitmentsAndContingenciesTable", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "cdxs_SecurityOwnedNotReadilyMarketableMAIMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Security Owned Not Readily Marketable MAI", "label": "Security Owned Not Readily Marketable MAI [Member]", "terseLabel": "Arzeda" } } }, "localname": "SecurityOwnedNotReadilyMarketableMAIMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" ], "xbrltype": "domainItemType" }, "cdxs_SeqWellMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "seqWell", "label": "seqWell [Member]", "terseLabel": "seqWell" } } }, "localname": "SeqWellMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_SeriesB2PreferredStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Series B-2 Preferred Stock", "label": "Series B-2 Preferred Stock [Member]", "terseLabel": "Series B-2 Preferred Stock" } } }, "localname": "SeriesB2PreferredStockMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock Above Minimum Threshold, Percent", "terseLabel": "Purchase price of common stock above minimum threshold" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePriceOfCommonStockAboveMinimumThresholdPercent", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "percentItemType" }, "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate", "terseLabel": "Estimated performance goal achievement rate" } } }, "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "percentItemType" }, "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments", "terseLabel": "Number of installments" } } }, "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "integerItemType" }, "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier", "terseLabel": "Performance awards, threshold level, number of shares, multiplier" } } }, "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "pureItemType" }, "cdxs_SharesReceivedInExchangeForServicesRendered": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Shares Received In Exchange For Services Rendered", "label": "Shares Received In Exchange For Services Rendered", "terseLabel": "Number of shares received in exchange for services (in shares)" } } }, "localname": "SharesReceivedInExchangeForServicesRendered", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "sharesItemType" }, "cdxs_TermLoanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Term Loan [Member]", "label": "Term Loan [Member]", "terseLabel": "Term Loan" } } }, "localname": "TermLoanMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cdxs_VariousMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Various", "label": "Various [Member]", "terseLabel": "Various" } } }, "localname": "VariousMember", "nsuri": "http://www.codexis.com/20220331", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "domainItemType" }, "country_US": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "UNITED STATES", "terseLabel": "United States" } } }, "localname": "US", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag", "terseLabel": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code", "terseLabel": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Cover [Abstract]", "terseLabel": "Cover page." } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date", "terseLabel": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Document Fiscal Period Focus", "terseLabel": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Document Fiscal Year Focus", "terseLabel": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Document Period End Date", "terseLabel": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r537" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report", "terseLabel": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r538" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report", "terseLabel": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "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'.", "label": "Document Type", "terseLabel": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One", "terseLabel": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town", "terseLabel": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code", "terseLabel": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province", "terseLabel": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key", "terseLabel": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Entity Common Stock, Shares Outstanding", "terseLabel": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Entity Current Reporting Status", "terseLabel": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "yesNoItemType" }, "dei_EntityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.", "label": "Entity [Domain]", "terseLabel": "Entity [Domain]" } } }, "localname": "EntityDomain", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "domainItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company", "terseLabel": "Entity Emerging Growth" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Entity File Number", "terseLabel": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "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.", "label": "Entity Filer Category", "terseLabel": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code", "terseLabel": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r561" ], "lang": { "en-us": { "role": { "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).", "label": "Entity Interactive Data Current", "terseLabel": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name", "terseLabel": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company", "terseLabel": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business", "terseLabel": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r535" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number", "terseLabel": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "employerIdItemType" }, "dei_LegalEntityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The set of legal entities associated with a report.", "label": "Legal Entity [Axis]", "terseLabel": "Legal Entity [Axis]" } } }, "localname": "LegalEntityAxis", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "stringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number", "terseLabel": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r534" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security", "terseLabel": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r536" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name", "terseLabel": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol", "terseLabel": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.codexis.com/role/CoverPage" ], "xbrltype": "tradingSymbolItemType" }, "srt_AffiliatedEntityMember": { "auth_ref": [ "r355", "r427", "r428", "r430", "r529" ], "lang": { "en-us": { "role": { "label": "Affiliated Entity [Member]", "terseLabel": "Affiliated Entity" } } }, "localname": "AffiliatedEntityMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "srt_AmericasMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Americas [Member]", "terseLabel": "Americas" } } }, "localname": "AmericasMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "srt_ConsolidationItemsAxis": { "auth_ref": [ "r99", "r154", "r173", "r174", "r175", "r176", "r178", "r180", "r184", "r256", "r257", "r258", "r259", "r260", "r261", "r263", "r264", "r266", "r268", "r269" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Axis]", "terseLabel": "Consolidation Items [Axis]" } } }, "localname": "ConsolidationItemsAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "stringItemType" }, "srt_ConsolidationItemsDomain": { "auth_ref": [ "r99", "r154", "r173", "r174", "r175", "r176", "r178", "r180", "r184", "r256", "r257", "r258", "r259", "r260", "r261", "r263", "r264", "r266", "r268", "r269" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Domain]", "terseLabel": "Consolidation Items [Domain]" } } }, "localname": "ConsolidationItemsDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "srt_CounterpartyNameAxis": { "auth_ref": [ "r53", "r55", "r97", "r98", "r275", "r294" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Axis]", "terseLabel": "Counterparty Name [Axis]" } } }, "localname": "CounterpartyNameAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "srt_EquityMethodInvesteeNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Investment, Name [Domain]", "terseLabel": "Investment, Name [Domain]" } } }, "localname": "EquityMethodInvesteeNameDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r191", "r334", "r340", "r501" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]", "terseLabel": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "stringItemType" }, "srt_MaximumMember": { "auth_ref": [ "r274", "r293", "r357", "r359", "r440", "r441", "r442", "r443", "r444", "r445", "r446", "r498", "r502", "r531", "r532" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "domainItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r191", "r334", "r340", "r501" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]", "terseLabel": "Customer [Domain]" } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r187", "r334", "r338", "r449", "r497", "r499" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]", "terseLabel": "Product and Service [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r187", "r334", "r338", "r449", "r497", "r499" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]", "terseLabel": "Product and Service [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r274", "r293", "r347", "r357", "r359", "r440", "r441", "r442", "r443", "r444", "r445", "r446", "r498", "r502", "r531", "r532" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "terseLabel": "Statistical Measurement [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r274", "r293", "r347", "r357", "r359", "r440", "r441", "r442", "r443", "r444", "r445", "r446", "r498", "r502", "r531", "r532" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "terseLabel": "Statistical Measurement [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "domainItemType" }, "srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis": { "auth_ref": [ "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r530" ], "lang": { "en-us": { "role": { "label": "Name of Property [Axis]", "terseLabel": "Name of Property [Axis]" } } }, "localname": "RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain": { "auth_ref": [ "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r530" ], "lang": { "en-us": { "role": { "label": "Name of Property [Domain]", "terseLabel": "Name of Property [Domain]" } } }, "localname": "RealEstateAndAccumulatedDepreciationNameOfPropertyDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "auth_ref": [ "r54", "r55", "r97", "r98", "r275", "r294" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Domain]", "terseLabel": "Counterparty Name [Domain]" } } }, "localname": "RepurchaseAgreementCounterpartyNameDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "srt_ScenarioForecastMember": { "auth_ref": [ "r109", "r358" ], "lang": { "en-us": { "role": { "label": "Forecast [Member]", "terseLabel": "Forecast" } } }, "localname": "ScenarioForecastMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "srt_ScenarioUnspecifiedDomain": { "auth_ref": [ "r109", "r114", "r358" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]", "terseLabel": "Scenario [Domain]" } } }, "localname": "ScenarioUnspecifiedDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis": { "auth_ref": [ "r206" ], "lang": { "en-us": { "role": { "label": "Investment, Name [Axis]", "terseLabel": "Investment, Name [Axis]" } } }, "localname": "ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [ "r188", "r189", "r334", "r339", "r500", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r528" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]", "terseLabel": "Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r188", "r189", "r334", "r339", "r500", "r514", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r528" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]", "terseLabel": "Geographical [Axis]", "verboseLabel": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails" ], "xbrltype": "stringItemType" }, "srt_StatementScenarioAxis": { "auth_ref": [ "r109", "r114", "r245", "r358", "r436" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]", "terseLabel": "Scenario [Axis]" } } }, "localname": "StatementScenarioAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]", "terseLabel": "Accounting Policies [Abstract]" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsNotesAndLoansReceivableNetCurrent": { "auth_ref": [ "r5", "r19", "r46", "r193", "r194", "r481" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of accounts and financing receivables, classified as current. Includes, but is not limited to, notes and loan receivable.", "label": "Accounts and Financing Receivable, after Allowance for Credit Loss, Current", "totalLabel": "Total financial assets, net" } } }, "localname": "AccountsNotesAndLoansReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r35", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Accounts Payable, Current", "verboseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableGross": { "auth_ref": [ "r193" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business.", "label": "Accounts Receivable, before Allowance for Credit Loss", "terseLabel": "Accounts receivable, before allowance for credit loss" } } }, "localname": "AccountsReceivableGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r193", "r194" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_NotesReceivableGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, before Allowance for Credit Loss, Current", "terseLabel": "Accounts receivable" } } }, "localname": "AccountsReceivableGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableMember": { "auth_ref": [ "r518" ], "lang": { "en-us": { "role": { "documentation": "Due from customers or clients for goods or services that have been delivered or sold.", "label": "Accounts Receivable [Member]", "terseLabel": "Accounts Receivable" } } }, "localname": "AccountsReceivableMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r38" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Accrued Liabilities, Current", "totalLabel": "Total", "verboseLabel": "Other accrued liabilities" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent": { "auth_ref": [ "r472", "r491" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received.", "label": "Accrued Professional Fees", "terseLabel": "Accrued professional and outside service fees" } } }, "localname": "AccruedProfessionalFeesCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r33", "r233" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "negatedTerseLabel": "Less: accumulated depreciation and amortization" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapital": { "auth_ref": [ "r20", "r377", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Additional Paid in Capital", "verboseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapital", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r101", "r102", "r103", "r374", "r375", "r376", "r392" ], "lang": { "en-us": { "role": { "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.", "label": "Additional Paid-in Capital [Member]", "terseLabel": "Additional Paid-in Capital" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Decrease for Tax Withholding Obligation", "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards" } } }, "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.", "label": "APIC, Share-based Payment Arrangement, Option, Increase for Cost Recognition", "terseLabel": "Non-employee stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r360", "r362", "r379", "r380" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.", "label": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition", "verboseLabel": "Employee stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "verboseLabel": "Adjustments to reconcile net loss to net cash used in operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": { "auth_ref": [ "r195", "r212" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of allowance for credit loss on financing receivable.", "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]", "terseLabel": "Analysis of allowance for credit losses" } } }, "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_AllowanceForNotesAndLoansReceivableCurrent": { "auth_ref": [ "r25", "r196", "r209" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_AccountsNotesAndLoansReceivableNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on financing receivable, classified as current.", "label": "Financing Receivable, Allowance for Credit Loss, Current", "negatedLabel": "Less: allowances", "periodEndLabel": "Ending Balance", "terseLabel": "Balance at beginning of period" } } }, "localname": "AllowanceForNotesAndLoansReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "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.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Total shares excluded as anti-dilutive (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Information by type of antidilutive security.", "label": "Antidilutive Securities [Axis]", "terseLabel": "Antidilutive Securities [Axis]" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]", "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "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.", "label": "Antidilutive Securities, Name [Domain]", "terseLabel": "Antidilutive Securities, Name [Domain]" } } }, "localname": "AntidilutiveSecuritiesNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AreaOfRealEstateProperty": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area of a real estate property.", "label": "Area of Real Estate Property", "terseLabel": "Area of real estate property (in square feet)" } } }, "localname": "AreaOfRealEstateProperty", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "areaItemType" }, "us-gaap_AssetRetirementObligation": { "auth_ref": [ "r237" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees.", "label": "Asset Retirement Obligation", "terseLabel": "Asset retirement obligation" } } }, "localname": "AssetRetirementObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetUnderConstructionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Asset in process of being built.", "label": "Asset under Construction [Member]", "terseLabel": "Asset under Construction" } } }, "localname": "AssetUnderConstructionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r94", "r162", "r175", "r182", "r207", "r256", "r257", "r258", "r260", "r261", "r262", "r263", "r265", "r267", "r269", "r270", "r388", "r390", "r403", "r433", "r435", "r466", "r482" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "verboseLabel": "Assets" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r6", "r7", "r52", "r94", "r207", "r256", "r257", "r258", "r260", "r261", "r262", "r263", "r265", "r267", "r269", "r270", "r388", "r390", "r403", "r433", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "verboseLabel": "Current assets:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss": { "auth_ref": [ "r202" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Debt Securities, Available-for-sale, Unrealized Loss", "terseLabel": "Other-than-temporary impairment losses" } } }, "localname": "AvailableForSaleDebtSecuritiesGrossUnrealizedLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesDebtSecurities": { "auth_ref": [ "r200", "r201", "r222", "r470" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Debt Securities, Available-for-sale", "terseLabel": "Debt securities, available-for-sale" } } }, "localname": "AvailableForSaleSecuritiesDebtSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r363", "r372" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]", "terseLabel": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails", "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "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).", "label": "Basis of Accounting, Policy [Policy Text Block]", "verboseLabel": "Basis of Presentation and Principles of Consolidation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "auth_ref": [ "r87", "r88", "r89" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred.", "label": "Capital Expenditures Incurred but Not yet Paid", "terseLabel": "Capital expenditures incurred but not yet paid" } } }, "localname": "CapitalExpendituresIncurredButNotYetPaid", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CapitalizedContractCostNetCurrent": { "auth_ref": [ "r227" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer; classified as current.", "label": "Capitalized Contract Cost, Net, Current", "terseLabel": "Contract costs" } } }, "localname": "CapitalizedContractCostNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Cash": { "auth_ref": [ "r31", "r435", "r509", "r510" ], "crdr": "debit", "lang": { "en-us": { "role": { "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. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash", "terseLabel": "Cash" } } }, "localname": "Cash", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents [Abstract]", "terseLabel": "Cash reconciliation:" } } }, "localname": "CashAndCashEquivalentsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r3", "r31", "r85" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 }, "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Cash and Cash Equivalents, at Carrying Value", "terseLabel": "Adjusted Cost", "verboseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of cash and cash equivalent balance.", "label": "Cash and Cash Equivalents [Axis]", "terseLabel": "Cash and Cash Equivalents [Axis]" } } }, "localname": "CashAndCashEquivalentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails", "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Cash and Cash Equivalents, Fair Value Disclosure", "terseLabel": "Estimated Fair Value", "verboseLabel": "Money market funds" } } }, "localname": "CashAndCashEquivalentsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails", "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Cash and Cash Equivalents [Line Items]", "terseLabel": "Cash and Cash Equivalents [Line Items]" } } }, "localname": "CashAndCashEquivalentsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r78", "r85", "r90" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for 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.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "Cash, cash equivalents and restricted cash at the end of the period", "periodStartLabel": "Cash, cash equivalents and restricted cash at the beginning of the period", "totalLabel": "Total cash, cash equivalents and restricted cash" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r78", "r404" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Net decrease in cash, cash equivalents and restricted cash" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Change in Contract with Customer, Asset and Liability [Abstract]", "terseLabel": "Amounts included in contract liabilities at the beginning of the period:" } } }, "localname": "ChangeInContractWithCustomerAssetAndLiabilityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ChangeInContractWithCustomerLiabilityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Change in Contract with Customer, Liability [Abstract]", "terseLabel": "Changes in the period:" } } }, "localname": "ChangeInContractWithCustomerLiabilityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ClassOfStockDomain": { "auth_ref": [ "r92", "r94", "r117", "r118", "r119", "r121", "r123", "r131", "r132", "r133", "r207", "r256", "r261", "r262", "r263", "r269", "r270", "r291", "r292", "r296", "r300", "r403", "r539" ], "lang": { "en-us": { "role": { "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock.", "label": "Class of Stock [Domain]", "terseLabel": "Class of Stock [Domain]" } } }, "localname": "ClassOfStockDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ClassOfStockLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Class of Stock [Line Items]", "terseLabel": "Class of Stock [Line Items]" } } }, "localname": "ClassOfStockLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r42", "r244", "r473", "r490" ], "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Commitments and Contingencies", "verboseLabel": "Commitments and Contingencies (Note 10)" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]", "terseLabel": "Commitments and Contingencies Disclosure [Abstract]" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r241", "r242", "r243", "r251", "r519" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and Contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": { "auth_ref": [ "r44" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares reserved for future issuance.", "label": "Common Stock, Capital Shares Reserved for Future Issuance", "terseLabel": "Maximum number of shares to be issued upon exercise of stock options" } } }, "localname": "CommonStockCapitalSharesReservedForFutureIssuance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r101", "r102", "r392" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]", "terseLabel": "Common Stock" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r18" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "verboseLabel": "Common stock, par value (in dollars per share)" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r18" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized (in shares)" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r18" ], "lang": { "en-us": { "role": { "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.", "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares, issued (in shares)" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r18", "r307" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common stock, shares outstanding (in shares)" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r18", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Common Stock, Value, Issued", "verboseLabel": "Common stock, $0.0001 par value per share; 100,000 shares authorized; 65,304 shares and 65,109 shares issued and outstanding as of March\u00a031, 2022 and December\u00a031, 2021, respectively" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComputerEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.", "label": "Computer Equipment [Member]", "terseLabel": "Computer equipment and software" } } }, "localname": "ComputerEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r142", "r143", "r191", "r400", "r401", "r518" ], "lang": { "en-us": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]", "terseLabel": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r142", "r143", "r191", "r400", "r401", "r508", "r518" ], "lang": { "en-us": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]", "terseLabel": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r142", "r143", "r191", "r400", "r401", "r508", "r518" ], "lang": { "en-us": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]", "terseLabel": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Concentration Risk [Line Items]", "terseLabel": "Concentration Risk [Line Items]" } } }, "localname": "ConcentrationRiskLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r142", "r143", "r191", "r400", "r401" ], "lang": { "en-us": { "role": { "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.", "label": "Concentration Risk, Percentage", "terseLabel": "Concentration risk, percentage" } } }, "localname": "ConcentrationRiskPercentage1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTable": { "auth_ref": [ "r139", "r142", "r143", "r144", "r400", "r402", "r518" ], "lang": { "en-us": { "role": { "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.", "label": "Concentration Risk [Table]", "terseLabel": "Concentration Risk [Table]" } } }, "localname": "ConcentrationRiskTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r142", "r143", "r191", "r400", "r401", "r518" ], "lang": { "en-us": { "role": { "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.", "label": "Concentration Risk Type [Domain]", "terseLabel": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConstructionInProgressMember": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Construction in Progress [Member]", "terseLabel": "Construction in progress" } } }, "localname": "ConstructionInProgressMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r322" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.", "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]", "terseLabel": "Contract with customer" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetCreditLossExpense": { "auth_ref": [ "r211", "r320", "r333" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "Contract with Customer, Asset, Credit Loss Expense (Reversal)", "terseLabel": "Impairment charges related to contract assets" } } }, "localname": "ContractWithCustomerAssetCreditLossExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerAssetGrossCurrent": { "auth_ref": [ "r316", "r318" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_NotesReceivableGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before 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.", "label": "Contract with Customer, Asset, before Allowance for Credit Loss, Current", "terseLabel": "Contract assets" } } }, "localname": "ContractWithCustomerAssetGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r316", "r317", "r335" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Contract with Customer, Liability", "verboseLabel": "Contract liabilities: deferred revenue" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized": { "auth_ref": [ "r321" ], "calculation": { "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied.", "label": "Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized", "totalLabel": "Total revenues" } } }, "localname": "ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice": { "auth_ref": [ "r319" ], "calculation": { "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails": { "order": 2.0, "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in estimate of transaction price which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due. Includes, but is not limited to, change in assessment of whether estimate of variable consideration is constrained.", "label": "Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price", "terseLabel": "Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods" } } }, "localname": "ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r316", "r317", "r335" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer, Liability, Current", "terseLabel": "Deferred revenue ($0 and $245 to a related party)", "verboseLabel": "Deferred revenue" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "auth_ref": [ "r316", "r317", "r335" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.", "label": "Contract with Customer, Liability, Noncurrent", "verboseLabel": "Deferred revenue, net of current portion" } } }, "localname": "ContractWithCustomerLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r336" ], "calculation": { "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails": { "order": 1.0, "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Contract with Customer, Liability, Revenue Recognized", "terseLabel": "Performance obligations satisfied" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDuringPeriodDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConvertibleDebt": { "auth_ref": [ "r14", "r467", "r483" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Including the current and noncurrent portions, carrying amount of debt identified as being convertible into another form of financial instrument (typically the entity's common stock) as of the balance sheet date, which originally required full repayment more than twelve months after issuance or greater than the normal operating cycle of the company.", "label": "Convertible Debt", "terseLabel": "Conversion, debt to equity" } } }, "localname": "ConvertibleDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConvertibleDebtMember": { "auth_ref": [ "r271", "r272", "r273", "r274", "r276", "r277", "r278", "r279", "r280", "r281", "r282", "r283", "r284", "r285", "r286", "r287" ], "lang": { "en-us": { "role": { "documentation": "Borrowing which can be exchanged for a specified number of another security at the option of the issuer or the holder, for example, but not limited to, the entity's common stock.", "label": "Convertible Debt [Member]", "terseLabel": "Convertible Debt" } } }, "localname": "ConvertibleDebtMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CorporateNonSegmentMember": { "auth_ref": [ "r173", "r174", "r175", "r176", "r178", "r184", "r186" ], "lang": { "en-us": { "role": { "documentation": "Corporate headquarters or functional department that may not earn revenues or may earn revenues that are only incidental to the activities of the entity and is not considered an operating segment.", "label": "Corporate, Non-Segment [Member]", "terseLabel": "Corporate" } } }, "localname": "CorporateNonSegmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r66", "r449" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 1.0, "parentTag": "us-gaap_CostsAndExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", "label": "Cost of Goods and Services Sold", "terseLabel": "Cost of product revenue" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostsAndExpenses": { "auth_ref": [ "r64" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Total costs of sales and operating expenses for the period.", "label": "Costs and Expenses", "terseLabel": "Total costs and operating expenses", "totalLabel": "Total costs and operating expenses" } } }, "localname": "CostsAndExpenses", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CreditFacilityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Axis]", "terseLabel": "Credit Facility [Axis]" } } }, "localname": "CreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CreditFacilityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Domain]", "terseLabel": "Credit Facility [Domain]" } } }, "localname": "CreditFacilityDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CreditLossFinancialInstrumentTextBlock": { "auth_ref": [ "r210", "r214", "r215", "r217", "r218", "r223", "r224" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security.", "label": "Credit Loss, Financial Instrument [Text Block]", "terseLabel": "Allowance for Credit Losses" } } }, "localname": "CreditLossFinancialInstrumentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLosses" ], "xbrltype": "textBlockItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r140", "r191" ], "lang": { "en-us": { "role": { "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.", "label": "Customer Concentration Risk [Member]", "terseLabel": "Customer Concentration Risk" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DebtConversionConvertedInstrumentSharesIssued1": { "auth_ref": [ "r87", "r89" ], "lang": { "en-us": { "role": { "documentation": "The number of shares issued in exchange for the original debt being converted in a noncash (or part noncash) transaction. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or payments in the period.", "label": "Debt Conversion, Converted Instrument, Shares Issued", "terseLabel": "Debt conversion, shares issued (in shares)" } } }, "localname": "DebtConversionConvertedInstrumentSharesIssued1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.", "label": "Debt Instrument, Basis Spread on Variable Rate", "terseLabel": "Basis spread on variable rate" } } }, "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentInterestRateStatedPercentage": { "auth_ref": [ "r40", "r273" ], "lang": { "en-us": { "role": { "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.", "label": "Debt Instrument, Interest Rate, Stated Percentage", "terseLabel": "Stated interest rate" } } }, "localname": "DebtInstrumentInterestRateStatedPercentage", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff": { "auth_ref": [ "r225" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of writeoff of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Debt Securities, Available-for-sale, Allowance for Credit Loss, Writeoff", "terseLabel": "Credit losses" } } }, "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DemandDepositsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Accounts that may or may not bear interest and that depositor is entitled to withdraw at anytime without prior notice. Checking and negotiable order of withdrawal (NOW) accounts are the most common forms of demand deposits.", "label": "Demand Deposits [Member]", "terseLabel": "Demand Deposits" } } }, "localname": "DemandDepositsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r83", "r231" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.", "label": "Depreciation", "negatedTerseLabel": "Unallocated depreciation and amortization", "terseLabel": "Depreciation expense", "verboseLabel": "Depreciation" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails", "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisaggregationOfRevenueLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Disaggregation of Revenue [Line Items]" } } }, "localname": "DisaggregationOfRevenueLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [ "r334", "r338", "r339", "r340", "r341", "r342", "r343", "r344" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table]", "terseLabel": "Disaggregation of Revenue [Table]" } } }, "localname": "DisaggregationOfRevenueTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r334" ], "lang": { "en-us": { "role": { "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.", "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Disaggregation of revenue" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r381" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Share-based Payment Arrangement [Text Block]", "terseLabel": "Stock-based Compensation" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensation" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Payment Arrangement [Abstract]", "terseLabel": "Share-based Payment Arrangement [Abstract]" } } }, "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_DueFromRelatedParties": { "auth_ref": [ "r96", "r259", "r261", "r262", "r268", "r269", "r270", "r428", "r471", "r492" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "For an unclassified balance sheet, amounts due from related parties including affiliates, employees, joint ventures, officers and stockholders, immediate families thereof, and pension funds.", "label": "Due from Related Parties", "terseLabel": "Due from related parties" } } }, "localname": "DueFromRelatedParties", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EMEAMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Regions of Europe, Middle East and Africa.", "label": "EMEA [Member]", "terseLabel": "EMEA" } } }, "localname": "EMEAMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "Earnings Per Share [Abstract]" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r63", "r106", "r107", "r108", "r109", "r110", "r115", "r117", "r121", "r122", "r123", "r127", "r128", "r393", "r394", "r477", "r494" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earnings Per Share, Basic", "terseLabel": "Net loss per share, basic (in dollars per share)" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r63", "r106", "r107", "r108", "r109", "r110", "r117", "r121", "r122", "r123", "r127", "r128", "r393", "r394", "r477", "r494" ], "lang": { "en-us": { "role": { "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.", "label": "Earnings Per Share, Diluted", "terseLabel": "Net loss per share, diluted (in dollars per share)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r124", "r125", "r126", "r129" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "terseLabel": "Net Loss per Share" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r38" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Employee-related Liabilities, Current", "verboseLabel": "Accrued compensation" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]", "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]" } } }, "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": { "auth_ref": [ "r371" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount", "terseLabel": "Compensation not yet recognized, share-based awards other than options" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": { "auth_ref": [ "r371" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost to be recognized for option under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount", "terseLabel": "Compensation not yet recognized, stock options" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [ "r369" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Payment Arrangement, Option [Member]", "verboseLabel": "Stock options" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails", "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Equity [Abstract]", "terseLabel": "Equity [Abstract]" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r0", "r58", "r59", "r60", "r101", "r102", "r103", "r105", "r111", "r113", "r130", "r208", "r307", "r314", "r374", "r375", "r376", "r384", "r385", "r392", "r405", "r406", "r407", "r408", "r409", "r410", "r503", "r504", "r505", "r562" ], "lang": { "en-us": { "role": { "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.", "label": "Equity Component [Domain]", "terseLabel": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "domainItemType" }, "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": { "auth_ref": [ "r203" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in equity security without readily determinable fair value.", "label": "Equity Securities without Readily Determinable Fair Value, Amount", "terseLabel": "Total non-marketable equity securities", "verboseLabel": "Non-marketable equity securities" } } }, "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock": { "auth_ref": [ "r203", "r204", "r205" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of investment in equity security without readily determinable fair value.", "label": "Equity Securities without Readily Determinable Fair Value [Table Text Block]", "terseLabel": "Carrying Value of Non-marketable Equity Securities" } } }, "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "auth_ref": [ "r395", "r396", "r397", "r398" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.", "label": "Fair Value, Recurring and Nonrecurring [Table]", "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Table]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "auth_ref": [ "r395", "r396" ], "lang": { "en-us": { "role": { "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).", "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]", "verboseLabel": "Summary of financial instruments measured at fair value on a recurring basis" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r278", "r284", "r285", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r356", "r396", "r437", "r438", "r439" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value Hierarchy and NAV [Axis]", "terseLabel": "Fair Value Hierarchy and NAV [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Fair Value Disclosures [Abstract]", "terseLabel": "Fair Value Disclosures [Abstract]" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r278", "r348", "r349", "r354", "r356", "r396", "r437" ], "lang": { "en-us": { "role": { "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.", "label": "Fair Value, Inputs, Level 1 [Member]", "terseLabel": "Level 1" } } }, "localname": "FairValueInputsLevel1Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r278", "r284", "r285", "r348", "r349", "r354", "r356", "r396", "r438" ], "lang": { "en-us": { "role": { "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.", "label": "Fair Value, Inputs, Level 2 [Member]", "terseLabel": "Level 2" } } }, "localname": "FairValueInputsLevel2Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r278", "r284", "r285", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r356", "r396", "r439" ], "lang": { "en-us": { "role": { "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Inputs, Level 3 [Member]", "terseLabel": "Level\u00a03" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementInputsDisclosureTextBlock": { "auth_ref": [ "r399" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of the fair value measurement of assets and liabilities, which includes financial instruments measured at fair value that are classified in shareholders' equity, which may be measured on a recurring or nonrecurring basis.", "label": "Fair Value Measurement and Measurement Inputs, Recurring and Nonrecurring [Text Block]", "verboseLabel": "Fair Value Measurements" } } }, "localname": "FairValueMeasurementInputsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurements" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r278", "r284", "r285", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r356", "r437", "r438", "r439" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy and NAV [Domain]", "terseLabel": "Fair Value, Measurements, Fair Value Hierarchy [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FinanceLeaseRightOfUseAsset": { "auth_ref": [ "r411" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease.", "label": "Finance Lease, Right-of-Use Asset, after Accumulated Amortization", "terseLabel": "Right-of-use assets - Finance leases, net" } } }, "localname": "FinanceLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]", "verboseLabel": "Summary of financial instruments measured at fair value on a recurring basis" } } }, "localname": "FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FinancingReceivableAllowanceForCreditLossesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Financing Receivable, Allowance for Credit Loss [Line Items]", "terseLabel": "Financing Receivable, Allowance for Credit Loss [Line Items]" } } }, "localname": "FinancingReceivableAllowanceForCreditLossesLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FinancingReceivableAllowanceForCreditLossesRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Financing Receivable, Allowance for Credit Loss [Roll Forward]", "terseLabel": "Financing Receivable, Allowance for Credit Loss [Roll Forward]" } } }, "localname": "FinancingReceivableAllowanceForCreditLossesRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Financing Receivable, before Allowance for Credit Loss [Abstract]", "terseLabel": "Financial assets:" } } }, "localname": "FinancingReceivableBeforeAllowanceForCreditLossAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_FinancingReceivables30To59DaysPastDueMember": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Financial asset more than 29 days past due but fewer than 60 days past due.", "label": "Financial Asset, 30 to 59 Days Past Due [Member]", "terseLabel": "31-60 Days" } } }, "localname": "FinancingReceivables30To59DaysPastDueMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FinancingReceivables60To89DaysPastDueMember": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Financial asset more than 59 days past due but fewer than 90 days past due.", "label": "Financial Asset, 60 to 89 Days Past Due [Member]", "terseLabel": "61-90 Days" } } }, "localname": "FinancingReceivables60To89DaysPastDueMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Financial asset equal to or greater than 90 days past due.", "label": "Financial Asset, Equal to or Greater than 90 Days Past Due [Member]", "terseLabel": "91 Days and over" } } }, "localname": "FinancingReceivablesEqualToGreaterThan90DaysPastDueMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FinancingReceivablesPeriodPastDueAxis": { "auth_ref": [ "r198", "r213", "r221" ], "lang": { "en-us": { "role": { "documentation": "Information by period in which financial asset is past due or not past due.", "label": "Financial Asset, Aging [Axis]", "terseLabel": "Financial Asset, Period Past Due [Axis]" } } }, "localname": "FinancingReceivablesPeriodPastDueAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FinancingReceivablesPeriodPastDueDomain": { "auth_ref": [ "r198", "r213", "r221" ], "lang": { "en-us": { "role": { "documentation": "Period in which financial asset is past due or not past due. For past due, element name and standard label in Financial Asset, [numeric lower end] to [numeric higher end] [date measure] Past Due [Member] or Financial Asset, Greater than [low end numeric value] [date measure] Past Due [Member] or Financial Asset, Less than [high end numeric value] [date measure] Past Due [Member] formats.", "label": "Financial Asset, Aging [Domain]", "terseLabel": "Financial Asset, Period Past Due [Domain]" } } }, "localname": "FinancingReceivablesPeriodPastDueDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GeographicAreasLongLivedAssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Geographic Areas, Long-Lived Assets [Abstract]", "terseLabel": "Geographic Areas, Long-Lived Assets [Abstract]" } } }, "localname": "GeographicAreasLongLivedAssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GeographicDistributionAxis": { "auth_ref": [ "r219", "r478", "r479", "r539", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r555", "r556", "r557", "r558", "r559", "r560" ], "lang": { "en-us": { "role": { "documentation": "Information by geographic distribution of business activity identified as either domestic or foreign. Excludes names of countries, states and provinces, and cities.", "label": "Geographic Distribution [Axis]", "terseLabel": "Geographic Distribution [Axis]" } } }, "localname": "GeographicDistributionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GeographicDistributionDomain": { "auth_ref": [ "r478", "r479", "r539", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r555", "r556", "r557", "r558", "r559", "r560" ], "lang": { "en-us": { "role": { "documentation": "Allocation of business activity identified as domestic or foreign. Excludes names of countries, states and provinces, and cities.", "label": "Geographic Distribution [Domain]", "terseLabel": "Geographic Distribution [Domain]" } } }, "localname": "GeographicDistributionDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r228", "r229", "r435", "r465" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Goodwill", "terseLabel": "Goodwill", "verboseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsGoodwillDetails", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r61", "r162", "r174", "r178", "r181", "r184", "r462", "r475", "r479", "r495" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Loss before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": { "auth_ref": [ "r162", "r174", "r178", "r181", "r184" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.", "label": "Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest", "verboseLabel": "Income (loss) before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]", "terseLabel": "Income Statement [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r235", "r238" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]", "terseLabel": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r238" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]", "terseLabel": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r95", "r112", "r113", "r160", "r383", "r386", "r387", "r496" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "verboseLabel": "Provision for income taxes" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r82" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Increase (Decrease) in Accounts Payable", "verboseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "auth_ref": [ "r82", "r447" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Increase (Decrease) in Contract with Customer, Liability", "verboseLabel": "Deferred revenue" } } }, "localname": "IncreaseDecreaseInContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInFinanceReceivables": { "auth_ref": [ "r82" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in outstanding loans including accrued interest.", "label": "Increase (Decrease) in Finance Receivables", "negatedLabel": "Financial assets, net" } } }, "localname": "IncreaseDecreaseInFinanceReceivables", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r82" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventories" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "verboseLabel": "Changes in operating assets and liabilities:" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in noncurrent operating liabilities classified as other.", "label": "Increase (Decrease) in Other Noncurrent Liabilities", "terseLabel": "Other long-term liabilities" } } }, "localname": "IncreaseDecreaseInOtherNoncurrentLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r82" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]" } } }, "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_IndemnificationGuaranteeMember": { "auth_ref": [ "r252", "r255" ], "lang": { "en-us": { "role": { "documentation": "An agreement (contract) that contingently requires the guarantor to make payments to the guaranteed party in compensation for that party's or parties' loss or injury attributable to specified events or actions, such as a patent infringement action against an entity that relied on certain representations as to ownership rights made by a software vendor.", "label": "Indemnification Agreement [Member]", "terseLabel": "Indemnification Agreement" } } }, "localname": "IndemnificationGuaranteeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InterestPaidNet": { "auth_ref": [ "r77", "r79", "r86" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities", "terseLabel": "Interest paid" } } }, "localname": "InterestPaidNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryFinishedGoods": { "auth_ref": [ "r47" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails": { "order": 3.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.", "label": "Inventory, Finished Goods, Gross", "terseLabel": "Finished goods" } } }, "localname": "InventoryFinishedGoods", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r4", "r50", "r435" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "totalLabel": "Inventories", "verboseLabel": "Inventories" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Inventory, Net [Abstract]", "verboseLabel": "Schedule of Inventory Components" } } }, "localname": "InventoryNetAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InventoryRawMaterials": { "auth_ref": [ "r49" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Raw Materials, Gross", "terseLabel": "Raw materials" } } }, "localname": "InventoryRawMaterials", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryValuationReserves": { "auth_ref": [ "r50", "r226" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of valuation reserve for inventory.", "label": "Inventory Valuation Reserves", "terseLabel": "Inventory net of reserves" } } }, "localname": "InventoryValuationReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWorkInProcess": { "auth_ref": [ "r48" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.", "label": "Inventory, Work in Process, Gross", "terseLabel": "Work-in-process" } } }, "localname": "InventoryWorkInProcess", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentIncomeAmortizationOfDiscount": { "auth_ref": [ "r69" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accretion of purchase discount on nonoperating securities.", "label": "Investment Income, Amortization of Discount", "terseLabel": "Interest income from amortization of discount" } } }, "localname": "InvestmentIncomeAmortizationOfDiscount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentIncomeInterest": { "auth_ref": [ "r68", "r155" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.", "label": "Investment Income, Interest", "verboseLabel": "Interest income" } } }, "localname": "InvestmentIncomeInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentOwnedBalanceShares": { "auth_ref": [ "r511", "r513" ], "lang": { "en-us": { "role": { "documentation": "Balance held at close of period in number of shares.", "label": "Investment Owned, Balance, Shares", "terseLabel": "Number of shares purchased (in shares)" } } }, "localname": "InvestmentOwnedBalanceShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_InvestmentsAndOtherNoncurrentAssets": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investments, and noncurrent assets classified as other.", "label": "Investments and Other Noncurrent Assets", "terseLabel": "Investment at cost basis", "verboseLabel": "Investment in non-marketable equity securities ($12,713 and $12,713 with a related party)" } } }, "localname": "InvestmentsAndOtherNoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Investments, Debt and Equity Securities [Abstract]" } } }, "localname": "InvestmentsDebtAndEquitySecuritiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment.", "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]", "terseLabel": "Investments in Non-Marketable Securities" } } }, "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecurities" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r421", "r423" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "Lease, Cost", "totalLabel": "Total lease cost" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Lease, Cost [Abstract]", "terseLabel": "Lease, Cost [Abstract]" } } }, "localname": "LeaseCostAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r421" ], "lang": { "en-us": { "role": { "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.", "label": "Lease, Cost [Table Text Block]", "terseLabel": "Lease cost" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r232" ], "lang": { "en-us": { "role": { "documentation": "Additions or improvements to assets held under a lease arrangement.", "label": "Leasehold Improvements [Member]", "terseLabel": "Leasehold improvements" } } }, "localname": "LeaseholdImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedDiscountRate": { "auth_ref": [ "r415" ], "lang": { "en-us": { "role": { "documentation": "Discount rate used by lessee to determine present value of operating lease payments for lease that has not yet commenced.", "label": "Lessee, Operating Lease, Lease Not yet Commenced, Discount Rate", "terseLabel": "Annual rent increases" } } }, "localname": "LesseeOperatingLeaseLeaseNotYetCommencedDiscountRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1": { "auth_ref": [ "r415" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease renewal for lease not yet commenced, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Lease Not yet Commenced, Renewal Term", "terseLabel": "Renewal term" } } }, "localname": "LesseeOperatingLeaseLeaseNotYetCommencedRenewalTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1": { "auth_ref": [ "r415" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease not yet commenced, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Lease Not yet Commenced, Term of Contract", "terseLabel": "Lease term" } } }, "localname": "LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r422" ], "lang": { "en-us": { "role": { "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.", "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]", "verboseLabel": "Operating lease maturity" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.", "label": "Lessee, Operating Lease, Liability, to be Paid", "totalLabel": "Total minimum lease payments" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": 4.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year One", "terseLabel": "2023" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four", "terseLabel": "2026" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three", "terseLabel": "2025" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": 3.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two", "terseLabel": "2024" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": { "order": 6.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.", "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year", "terseLabel": "2022 (remaining 9 months)" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r422" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.", "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "terseLabel": "Less: imputed interest" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseRenewalTerm": { "auth_ref": [ "r414" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Renewal Term", "terseLabel": "Renewal term" } } }, "localname": "LesseeOperatingLeaseRenewalTerm", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r37", "r94", "r176", "r207", "r256", "r257", "r258", "r261", "r262", "r263", "r265", "r267", "r269", "r270", "r389", "r390", "r391", "r403", "r433", "r434" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r24", "r94", "r207", "r403", "r435", "r469", "r487" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders' equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "verboseLabel": "Liabilities and Stockholders' Equity" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r39", "r94", "r207", "r256", "r257", "r258", "r261", "r262", "r263", "r265", "r267", "r269", "r270", "r389", "r390", "r391", "r403", "r433", "r434", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "verboseLabel": "Current liabilities:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "auth_ref": [ "r36" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.", "label": "Line of Credit Facility, Maximum Borrowing Capacity", "terseLabel": "Borrowing capacity" } } }, "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LossContingenciesByNatureOfContingencyAxis": { "auth_ref": [ "r244", "r245", "r246", "r247", "r248", "r249", "r250", "r253", "r254" ], "lang": { "en-us": { "role": { "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur.", "label": "Loss Contingency Nature [Axis]", "terseLabel": "Loss Contingency Nature [Axis]" } } }, "localname": "LossContingenciesByNatureOfContingencyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingencyAccrualCarryingValueCurrent": { "auth_ref": [ "r244" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer.", "label": "Loss Contingency, Accrual, Current", "terseLabel": "Loss contingency accrual" } } }, "localname": "LossContingencyAccrualCarryingValueCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LossContingencyNatureDomain": { "auth_ref": [ "r244", "r245", "r246", "r247", "r248", "r249", "r250", "r253", "r254" ], "lang": { "en-us": { "role": { "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability.", "label": "Loss Contingency, Nature [Domain]", "terseLabel": "Loss Contingency, Nature [Domain]" } } }, "localname": "LossContingencyNatureDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_MarketableSecuritiesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Marketable Securities [Line Items]", "terseLabel": "Marketable Securities [Line Items]" } } }, "localname": "MarketableSecuritiesLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_MarketableSecuritiesTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about investment in marketable security.", "label": "Marketable Securities [Table]", "terseLabel": "Marketable Securities [Table]" } } }, "localname": "MarketableSecuritiesTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_MoneyMarketFundsAtCarryingValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months.", "label": "Money Market Funds, at Carrying Value", "terseLabel": "Money market funds" } } }, "localname": "MoneyMarketFundsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MoneyMarketFundsMember": { "auth_ref": [ "r348" ], "lang": { "en-us": { "role": { "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.", "label": "Money Market Funds [Member]", "terseLabel": "Money market funds" } } }, "localname": "MoneyMarketFundsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails", "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NatureOfOperations": { "auth_ref": [ "r134", "r148" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.", "label": "Nature of Operations [Text Block]", "verboseLabel": "Description of Business" } } }, "localname": "NatureOfOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/DescriptionofBusiness" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r78" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash provided by (used in) financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "verboseLabel": "Financing activities:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r78" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "verboseLabel": "Investing activities:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r78", "r81", "r84" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "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.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net cash used in operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "verboseLabel": "Operating activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r2", "r56", "r57", "r60", "r62", "r84", "r94", "r104", "r106", "r107", "r108", "r109", "r112", "r113", "r120", "r162", "r174", "r178", "r181", "r184", "r207", "r256", "r257", "r258", "r261", "r262", "r263", "r265", "r267", "r269", "r270", "r394", "r403", "r476", "r493" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss) Attributable to Parent", "netLabel": "Net loss", "terseLabel": "Net loss", "totalLabel": "Net loss" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "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": "New Accounting Pronouncements, Policy [Policy Text Block]", "verboseLabel": "Accounting Pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Noncash Investing and Financing Items [Abstract]", "terseLabel": "Supplemental non-cash investing and financing activities:" } } }, "localname": "NoncashInvestingAndFinancingItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1": { "auth_ref": [ "r87", "r88", "r89" ], "lang": { "en-us": { "role": { "documentation": "The number of shares issued as [noncash or part noncash] consideration for a business or asset acquired. Noncash is defined as transactions during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "Noncash or Part Noncash Acquisition, Noncash Financial or Equity Instrument Consideration, Shares Issued", "terseLabel": "Number of shares received in exchange for services (in shares)" } } }, "localname": "NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_NoncurrentAssets": { "auth_ref": [ "r189" ], "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Long-Lived Assets", "terseLabel": "Long-lived assets" } } }, "localname": "NoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized": { "auth_ref": [ "r424" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of gross operating revenue recognized in a nonmonetary transaction.", "label": "Nonmonetary Transaction, Gross Operating Revenue Recognized", "terseLabel": "Research and development revenue from transactions with MAI" } } }, "localname": "NonmonetaryTransactionGrossOperatingRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NotesReceivableGross": { "auth_ref": [ "r198", "r209", "r213", "r216", "r220", "r221", "r551", "r552", "r553" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_AccountsNotesAndLoansReceivableNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of financing receivable.", "label": "Financing Receivable, before Allowance for Credit Loss", "totalLabel": "Total financial assets" } } }, "localname": "NotesReceivableGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NumberOfOperatingSegments": { "auth_ref": [ "r150" ], "lang": { "en-us": { "role": { "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.", "label": "Number of Operating Segments", "terseLabel": "Number of operating segments" } } }, "localname": "NumberOfOperatingSegments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_NumberOfReportableSegments": { "auth_ref": [ "r150" ], "lang": { "en-us": { "role": { "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.", "label": "Number of Reportable Segments", "terseLabel": "Number of reportable segments" } } }, "localname": "NumberOfReportableSegments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/DescriptionofBusinessDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingCostsAndExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating Costs and Expenses [Abstract]", "verboseLabel": "Costs and operating expenses:" } } }, "localname": "OperatingCostsAndExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r162", "r174", "r178", "r181", "r184" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "Loss from operations", "verboseLabel": "Income (loss) from operations" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r416", "r423" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails": { "order": 2.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Operating Lease, Cost", "terseLabel": "Operating lease cost" } } }, "localname": "OperatingLeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payment, Due [Abstract]", "terseLabel": "Operating Leases" } } }, "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r412" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Operating Lease, Liability", "verboseLabel": "Lease obligations" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r412" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Current portion of lease obligations - Operating leases" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r412" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Long-term lease obligations - Operating leases" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r413", "r418" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating Lease, Payments", "terseLabel": "Operating cash flows from operating leases" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesCashPaidforLeaseObligationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r411" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Right-of-use assets - Operating leases, net" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": { "auth_ref": [ "r83" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense for right-of-use asset from operating lease.", "label": "Operating Lease, Right-of-Use Asset, Amortization Expense", "terseLabel": "Amortization expense - right-of-use assets - operating and finance leases" } } }, "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r420", "r423" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Operating Lease, Weighted Average Discount Rate, Percent", "verboseLabel": "Weighted-average discount rate" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r419", "r423" ], "lang": { "en-us": { "role": { "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.", "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Weighted-average remaining lease term (in years)" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OperatingSegmentsMember": { "auth_ref": [ "r173", "r174", "r175", "r176", "r178", "r184" ], "lang": { "en-us": { "role": { "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Operating Segments [Member]", "terseLabel": "Operating Segments" } } }, "localname": "OperatingSegmentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]", "terseLabel": "Organization, Consolidation and Presentation of Financial Statements [Abstract]" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent": { "auth_ref": [ "r472", "r491" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses incurred but not yet paid classified as other.", "label": "Other Accrued Liabilities", "terseLabel": "Other" } } }, "localname": "OtherAccruedLiabilitiesCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r34" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 8.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "verboseLabel": "Other non-current assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherCommitmentsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Other Commitments [Line Items]", "terseLabel": "Other Commitments [Line Items]" } } }, "localname": "OtherCommitmentsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OtherCommitmentsTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about obligations resulting from other commitments.", "label": "Other Commitments [Table]", "terseLabel": "Other Commitments [Table]" } } }, "localname": "OtherCommitmentsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r41" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Noncurrent", "verboseLabel": "Other long-term liabilities" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNoncashIncome": { "auth_ref": [ "r84" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other.", "label": "Other Noncash Income", "negatedTerseLabel": "Equity securities earned from research and development activities from a related party" } } }, "localname": "OtherNoncashIncome", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r70" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 3.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other expense, net" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherOperatingActivitiesCashFlowStatement": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Other cash or noncash adjustments to reconcile net income to cash provided by (used in) operating activities that are not separately disclosed in the statement of cash flows (for example, cash received or cash paid during the current period for miscellaneous operating activities, net change during the reporting period in other assets or other liabilities).", "label": "Other Operating Activities, Cash Flow Statement", "terseLabel": "Other non-cash items" } } }, "localname": "OtherOperatingActivitiesCashFlowStatement", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PastDueFinancingReceivablesTableTextBlock": { "auth_ref": [ "r197", "r198", "r213", "r221" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of aging analysis for financing receivable.", "label": "Financing Receivable, Past Due [Table Text Block]", "terseLabel": "Summary of accounts receivable by aging" } } }, "localname": "PastDueFinancingReceivablesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PaymentsForRent": { "auth_ref": [ "r80" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Cash payments to lessor's for use of assets under operating leases.", "label": "Payments for Rent", "terseLabel": "Annualized rent" } } }, "localname": "PaymentsForRent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfFinancingCosts": { "auth_ref": [ "r76" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for loan and debt issuance costs.", "label": "Payments of Financing Costs", "negatedTerseLabel": "Costs incurred in connection with equity financing" } } }, "localname": "PaymentsOfFinancingCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r75" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Payment, Tax Withholding, Share-based Payment Arrangement", "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireOtherInvestments": { "auth_ref": [ "r73" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to acquire investments classified as other.", "label": "Payments to Acquire Other Investments", "negatedTerseLabel": "Investment in non-marketable securities", "terseLabel": "Payments to acquire other investments" } } }, "localname": "PaymentsToAcquireOtherInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r72" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchase of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PerformanceSharesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement awarded for meeting performance target.", "label": "Performance Shares [Member]", "terseLabel": "Performance Shares" } } }, "localname": "PerformanceSharesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r363", "r372" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]", "terseLabel": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails", "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]", "terseLabel": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails", "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r17", "r291" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value (in dollars per share)" } } }, "localname": "PreferredStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r17" ], "lang": { "en-us": { "role": { "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.", "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized (in shares)" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesIssued": { "auth_ref": [ "r17", "r291" ], "lang": { "en-us": { "role": { "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.", "label": "Preferred Stock, Shares Issued", "terseLabel": "Preferred stock, shares issued (in shares)" } } }, "localname": "PreferredStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r17" ], "lang": { "en-us": { "role": { "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.", "label": "Preferred Stock, Shares Outstanding", "terseLabel": "Preferred stock, shares outstanding (in shares)" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r17", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Preferred Stock, Value, Issued", "terseLabel": "Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "auth_ref": [ "r6", "r29", "r30" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Prepaid Expense and Other Assets, Current", "verboseLabel": "Prepaid expenses and other current assets" } } }, "localname": "PrepaidExpenseAndOtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrimeRateMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers.", "label": "Prime Rate [Member]", "terseLabel": "Prime Rate" } } }, "localname": "PrimeRateMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "auth_ref": [ "r71" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", "label": "Proceeds from Sale of Property, Plant, and Equipment", "terseLabel": "Proceeds from sale of property and equipment" } } }, "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r74", "r373" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.", "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from exercises of stock options", "verboseLabel": "Proceeds from exercises of stock options" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails", "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r33", "r234" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Long-Lived Tangible Asset [Axis]", "terseLabel": "Property, Plant and Equipment, Type [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails", "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r32", "r232" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Property, Plant and Equipment, Gross", "terseLabel": "Property and equipment" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Property, Plant and Equipment [Line Items]", "terseLabel": "Property, Plant and Equipment [Line Items]" } } }, "localname": "PropertyPlantAndEquipmentLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r11", "r12", "r234", "r435", "r480", "r488" ], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Property, Plant and Equipment, Net", "totalLabel": "Property and equipment, net", "verboseLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails", "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r11", "r234" ], "lang": { "en-us": { "role": { "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.", "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r11", "r232" ], "lang": { "en-us": { "role": { "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.", "label": "Long-Lived Tangible Asset [Domain]", "terseLabel": "Property, Plant and Equipment, Type [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails", "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ProvisionForLoanLossesExpensed": { "auth_ref": [ "r211", "r474" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of credit loss expense (reversal of expense) for financing receivable.", "label": "Financing Receivable, Credit Loss, Expense (Reversal)", "terseLabel": "Provision for credit losses" } } }, "localname": "ProvisionForLoanLossesExpensed", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesAnalysisofAllowanceforCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PurchaseObligation": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier.", "label": "Purchase Obligation", "terseLabel": "Accrued purchases" } } }, "localname": "PurchaseObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsOtherAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Receivables [Abstract]" } } }, "localname": "ReceivablesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock": { "auth_ref": [ "r173", "r178" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of all significant reconciling items in the reconciliation of total revenues from reportable segments to the entity's consolidated revenues.", "label": "Reconciliation of Revenue from Segments to Consolidated [Table Text Block]", "verboseLabel": "Schedule of revenues by geographical area" } } }, "localname": "ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_RelatedPartyDomain": { "auth_ref": [ "r355", "r427", "r428" ], "lang": { "en-us": { "role": { "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.", "label": "Related Party [Domain]", "terseLabel": "Related Party [Domain]" } } }, "localname": "RelatedPartyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RelatedPartyTransactionAxis": { "auth_ref": [ "r355", "r427", "r428", "r430" ], "lang": { "en-us": { "role": { "documentation": "Information by type of related party transaction.", "label": "Related Party Transaction [Axis]", "terseLabel": "Related Party Transaction [Axis]" } } }, "localname": "RelatedPartyTransactionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionDomain": { "auth_ref": [ "r355" ], "lang": { "en-us": { "role": { "documentation": "Transaction between related party.", "label": "Related Party Transaction [Domain]", "terseLabel": "Related Party Transaction [Domain]" } } }, "localname": "RelatedPartyTransactionDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RelatedPartyTransactionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Related Party Transaction [Line Items]", "terseLabel": "Related Party Transaction [Line Items]" } } }, "localname": "RelatedPartyTransactionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Related Party Transactions [Abstract]" } } }, "localname": "RelatedPartyTransactionsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "auth_ref": [ "r355", "r427", "r430", "r450", "r451", "r452", "r453", "r454", "r455", "r456", "r457", "r458", "r459", "r460", "r461" ], "lang": { "en-us": { "role": { "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.", "label": "Related Party [Axis]", "terseLabel": "Related Party [Axis]" } } }, "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "auth_ref": [ "r425", "r426", "r428", "r431", "r432" ], "lang": { "en-us": { "role": { "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.", "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "Related Party Transactions" } } }, "localname": "RelatedPartyTransactionsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactions" ], "xbrltype": "textBlockItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r382", "r448", "r533" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 2.0, "parentTag": "us-gaap_CostsAndExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Research and Development Expense", "verboseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.", "label": "Research and Development Expense [Member]", "verboseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RestrictedCash": { "auth_ref": [ "r90", "r464", "r485" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash restricted as to withdrawal or usage. 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.", "label": "Restricted Cash", "terseLabel": "Restricted cash, current" } } }, "localname": "RestrictedCash", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RestrictedCashAndCashEquivalents": { "auth_ref": [ "r10", "r85", "r90", "r464", "r485" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage. 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.", "label": "Restricted Cash and Cash Equivalents", "terseLabel": "Restricted cash, current and non-current" } } }, "localname": "RestrictedCashAndCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis": { "auth_ref": [ "r31" ], "lang": { "en-us": { "role": { "documentation": "Information by category of cash or cash equivalent items which are restricted as to withdrawal or usage.", "label": "Restricted Cash and Cash Equivalents [Axis]", "terseLabel": "Restricted Cash and Cash Equivalents [Axis]" } } }, "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Type of cash and cash equivalent. Cash is 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.", "label": "Cash and Cash Equivalents [Domain]", "terseLabel": "Cash and Cash Equivalents [Domain]" } } }, "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails", "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails", "http://www.codexis.com/role/FairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RestrictedCashAndCashEquivalentsNoncurrent": { "auth_ref": [ "r8", "r13", "r85", "r90", "r516" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage, classified as noncurrent. 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.", "label": "Restricted Cash and Cash Equivalents, Noncurrent", "terseLabel": "Restricted cash" } } }, "localname": "RestrictedCashAndCashEquivalentsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RestrictedCashAndInvestmentsNoncurrent": { "auth_ref": [ "r515", "r517" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The noncurrent cash, cash equivalents and investments that is restricted as to withdrawal or usage. Restrictions may include legally restricted deposits held as compensating balances against borrowing arrangements, contracts entered into with others, or entity statements of intention with regard to particular deposits classified as long-term; that is not expected to be released from such existing restrictions within one year of the balance sheet date or operating cycle, whichever is longer. Excludes compensating balance arrangements that are not agreements which legally restrict the use of cash amounts shown on the balance sheet. Includes noncurrent cash equivalents and investments that are similarly restricted as to withdrawal, usage or disposal.", "label": "Restricted Cash and Investments, Noncurrent", "terseLabel": "Non-current restricted cash" } } }, "localname": "RestrictedCashAndInvestmentsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Restricted Stock Units (RSUs) [Member]", "terseLabel": "RSUs" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r21", "r314", "r377", "r435", "r486", "r506", "r507" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "verboseLabel": "Accumulated deficit" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r0", "r101", "r102", "r103", "r105", "r111", "r113", "r208", "r374", "r375", "r376", "r384", "r385", "r392", "r503", "r505" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Accumulated Deficit" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Abstract]", "terseLabel": "Revenue from Contract with Customer [Abstract]" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "auth_ref": [ "r153", "r154", "r173", "r179", "r180", "r187", "r188", "r191", "r332", "r334", "r449" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, excluding 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.", "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Total revenues" } } }, "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r322", "r323", "r324", "r325", "r326", "r327", "r330", "r331", "r337", "r346" ], "lang": { "en-us": { "role": { "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.", "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "Revenue Recognition" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognition" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueFromRelatedParties": { "auth_ref": [ "r65", "r259", "r261", "r262", "r268", "r269", "r270", "r512" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue, fees and commissions earned from transactions between (a) a parent company and its subsidiaries; (b) subsidiaries of a common parent; (c) an entity and trusts for the benefit of employees, for example, but not limited to, pension and profit-sharing trusts that are managed by or under the trusteeship of the entity's management; (d) an entity and its principal, owners, management, or members of their immediate families; and (e) affiliates.", "label": "Revenue from Related Parties", "terseLabel": "Revenue from related parties" } } }, "localname": "RevenueFromRelatedParties", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]", "terseLabel": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable": { "auth_ref": [ "r345" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information when using transition method for cumulative effect in initial period of application for revenue from contract with customer.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Table]", "terseLabel": "Revenue, Initial Application Period Cumulative Effect Transition [Table]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligation": { "auth_ref": [ "r328" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Amount", "terseLabel": "Performance obligation" } } }, "localname": "RevenueRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "auth_ref": [ "r329" ], "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": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period", "terseLabel": "Expected timing of satisfaction, period" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "auth_ref": [ "r329" ], "lang": { "en-us": { "role": { "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]", "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock": { "auth_ref": [ "r329" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of expected timing for satisfying remaining performance obligation.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]", "terseLabel": "Performance obligation, expected timing of satisfaction" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenuesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Revenues [Abstract]", "verboseLabel": "Revenues:" } } }, "localname": "RevenuesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_RevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.", "label": "Revolving Credit Facility [Member]", "terseLabel": "Revolving Credit Facility" } } }, "localname": "RevolvingCreditFacilityMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SalesRevenueProductLineMember": { "auth_ref": [ "r141" ], "lang": { "en-us": { "role": { "documentation": "Revenue from specified product or service, when it serves as benchmark in concentration of risk calculation. Includes, but is not limited to, revenue from contract with customer and other sources.", "label": "Revenue, Product and Service Benchmark [Member]", "terseLabel": "Revenue" } } }, "localname": "SalesRevenueProductLineMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of accrued liabilities.", "label": "Schedule of Accrued Liabilities [Table Text Block]", "terseLabel": "Schedule of other accrued liabilities" } } }, "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Schedule for 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.", "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]", "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]" } } }, "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "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.", "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]", "terseLabel": "Shares Not Included in Computation of Diluted Net Loss Per Share" } } }, "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCashAndCashEquivalentsTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of cash and cash equivalent balances. This table excludes restricted cash balances.", "label": "Schedule of Cash and Cash Equivalents [Table]", "terseLabel": "Schedule of Cash and Cash Equivalents [Table]" } } }, "localname": "ScheduleOfCashAndCashEquivalentsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsCashandCashEquivalentsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfCashAndCashEquivalentsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of cash and cash equivalents.", "label": "Schedule of Cash and Cash Equivalents [Table Text Block]", "terseLabel": "Schedule of cash and cash equivalents" } } }, "localname": "ScheduleOfCashAndCashEquivalentsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": { "auth_ref": [ "r362", "r370", "r378" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements.", "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]", "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table]" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "auth_ref": [ "r362", "r370", "r378" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "verboseLabel": "Schedule of stock-based compensation expense" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": { "auth_ref": [ "r189" ], "lang": { "en-us": { "role": { "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.", "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]", "verboseLabel": "Schedule of long-lived assets by geographical area" } } }, "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFinancingReceivableAllowanceForCreditLossesTable": { "auth_ref": [ "r212", "r554" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about allowance for credit loss on financing receivable.", "label": "Financing Receivable, Allowance for Credit Loss [Table]", "terseLabel": "Financing Receivable, Allowance for Credit Loss [Table]" } } }, "localname": "ScheduleOfFinancingReceivableAllowanceForCreditLossesTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/AllowanceforCreditLossesSummaryofFinanceReceivablesbyAgingCategoryDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock": { "auth_ref": [ "r230" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of goodwill and intangible assets, which may be broken down by segment or major class.", "label": "Schedule of Intangible Assets and Goodwill [Table Text Block]", "terseLabel": "Schedule of intangible assets and goodwill" } } }, "localname": "ScheduleOfIntangibleAssetsAndGoodwillTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r9", "r26", "r27", "r28" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Schedule of Inventory, Current [Table Text Block]", "verboseLabel": "Schedule of inventory components" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r33", "r234" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about 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.", "label": "Property, Plant and Equipment [Table]", "terseLabel": "Schedule of Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BalanceSheetsDetailsPropertyandEquipmentnetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable": { "auth_ref": [ "r429", "r430" ], "lang": { "en-us": { "role": { "documentation": "Schedule of quantitative and qualitative information pertaining to 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.", "label": "Schedule of Related Party Transactions, by Related Party [Table]", "terseLabel": "Schedule of Related Party Transactions, by Related Party [Table]" } } }, "localname": "ScheduleOfRelatedPartyTransactionsByRelatedPartyTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "auth_ref": [ "r162", "r165", "r177", "r230" ], "lang": { "en-us": { "role": { "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table]", "terseLabel": "Schedule of Segment Reporting Information, by Segment [Table]" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "auth_ref": [ "r162", "r165", "r177", "r230" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Schedule of segment reporting" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r363", "r372" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about share-based payment arrangement.", "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]", "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails", "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.", "label": "Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]", "terseLabel": "Schedule of stock-based compensation expense by security types" } } }, "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfStockByClassTable": { "auth_ref": [ "r43", "r92", "r131", "r132", "r288", "r289", "r290", "r291", "r292", "r293", "r294", "r296", "r300", "r305", "r308", "r309", "r310", "r311", "r312", "r313", "r314" ], "lang": { "en-us": { "role": { "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity.", "label": "Schedule of Stock by Class [Table]", "terseLabel": "Schedule of Stock by Class [Table]" } } }, "localname": "ScheduleOfStockByClassTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": { "auth_ref": [ "r139", "r142", "r143", "r144", "r400", "r402" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.", "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]", "terseLabel": "Schedule of customers that contributed 10% or more of total accounts receivable" } } }, "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SecurityDeposit": { "auth_ref": [ "r51" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of an asset, typically cash, provided to a counterparty to provide certain assurance of performance by the entity pursuant to the terms of a written or oral agreement, such as a lease.", "label": "Security Deposit", "terseLabel": "Security deposit" } } }, "localname": "SecurityDeposit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SecurityOwnedNotReadilyMarketableAxis": { "auth_ref": [ "r463" ], "lang": { "en-us": { "role": { "documentation": "Information by name of not readily marketable security.", "label": "Security Owned Not Readily Marketable [Axis]", "terseLabel": "Security Owned Not Readily Marketable [Axis]" } } }, "localname": "SecurityOwnedNotReadilyMarketableAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SecurityOwnedNotReadilyMarketableNameDomain": { "auth_ref": [ "r463" ], "lang": { "en-us": { "role": { "documentation": "Name of the security category or actual security title.", "label": "Security Owned Not Readily Marketable, Name [Domain]", "terseLabel": "Security Owned Not Readily Marketable, Name [Domain]" } } }, "localname": "SecurityOwnedNotReadilyMarketableNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/FairValueMeasurementsDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails", "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SegmentDomain": { "auth_ref": [ "r149", "r153", "r154", "r155", "r156", "r157", "r158", "r159", "r160", "r161", "r162", "r163", "r164", "r173", "r174", "r175", "r176", "r178", "r179", "r180", "r181", "r182", "r184", "r191", "r239", "r240", "r497" ], "lang": { "en-us": { "role": { "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Segments [Domain]", "terseLabel": "Segments [Domain]" } } }, "localname": "SegmentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SegmentReportingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Segment Reporting [Abstract]", "terseLabel": "Segment Reporting [Abstract]" } } }, "localname": "SegmentReportingAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r149", "r151", "r152", "r162", "r166", "r178", "r182", "r183", "r184", "r185", "r187", "r190", "r191", "r192" ], "lang": { "en-us": { "role": { "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.", "label": "Segment Reporting Disclosure [Text Block]", "verboseLabel": "Segment, Geographical and Other Revenue Information" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingInformationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Segment Reporting Information [Line Items]", "terseLabel": "Segment Reporting Information [Line Items]" } } }, "localname": "SegmentReportingInformationLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationLongLivedAssetsbyGeographicAreaDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesbyGeographicAreaDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingPolicyPolicyTextBlock": { "auth_ref": [ "r167", "r168", "r169", "r170", "r171", "r172", "r188" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for segment reporting.", "label": "Segment Reporting, Policy [Policy Text Block]", "terseLabel": "Segment Information" } } }, "localname": "SegmentReportingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r67" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited": { "order": 3.0, "parentTag": "us-gaap_CostsAndExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Selling, General and Administrative Expense", "terseLabel": "Selling, general and administrative" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling, general and administrative expense.", "label": "Selling, General and Administrative Expenses [Member]", "verboseLabel": "Selling, general and administrative" } } }, "localname": "SellingGeneralAndAdministrativeExpensesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SeriesAPreferredStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Outstanding nonredeemable series A preferred stock or outstanding series A preferred stock. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Series A Preferred Stock [Member]", "terseLabel": "Series A Preferred Stock" } } }, "localname": "SeriesAPreferredStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SeriesBPreferredStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Outstanding nonredeemable series B preferred stock or outstanding series B preferred stock. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Series B Preferred Stock [Member]", "terseLabel": "Series B Preferred Stock" } } }, "localname": "SeriesBPreferredStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SeriesCPreferredStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Outstanding nonredeemable series C preferred stock or outstanding series C preferred stock. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Series C Preferred Stock [Member]", "terseLabel": "Series C Preferred Stock" } } }, "localname": "SeriesCPreferredStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r82" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Payment Arrangement, Noncash Expense", "verboseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails", "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "auth_ref": [ "r364" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period", "terseLabel": "Award vesting period" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails", "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r366" ], "lang": { "en-us": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized", "terseLabel": "Number of shares authorized" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r372" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant", "terseLabel": "Number of shares available for grant" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationEquityIncentivePlansDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r361", "r367" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]", "terseLabel": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails", "http://www.codexis.com/role/StockbasedCompensationStockbasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price", "terseLabel": "Weighted average exercise price of stock options exercised (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationAwardTrancheOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "First portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period.", "label": "Share-based Payment Arrangement, Tranche One [Member]", "terseLabel": "Tranche One" } } }, "localname": "ShareBasedCompensationAwardTrancheOneMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationAwardTrancheTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Second portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period.", "label": "Share-based Payment Arrangement, Tranche Two [Member]", "terseLabel": "Tranche Two" } } }, "localname": "ShareBasedCompensationAwardTrancheTwoMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage": { "auth_ref": [ "r364" ], "lang": { "en-us": { "role": { "documentation": "Percentage of vesting of award under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage", "terseLabel": "Award vesting rights" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "auth_ref": [ "r365" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period", "terseLabel": "Expiration period" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Purchase price of common stock expressed as a percentage of its fair value.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent", "terseLabel": "Purchase price of common stock" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_SharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.", "label": "Shares, Outstanding", "periodEndLabel": "Ending balance (in shares)", "periodStartLabel": "Beginning balance (in shares)" } } }, "localname": "SharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation", "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards (in shares)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_ShortTermLeaseCost": { "auth_ref": [ "r417", "r423" ], "calculation": { "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails": { "order": 3.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.", "label": "Short-term Lease, Cost", "terseLabel": "Short-term lease cost" } } }, "localname": "ShortTermLeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r91", "r100" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.", "label": "Significant Accounting Policies [Text Block]", "verboseLabel": "Basis of Presentation and Summary of Significant Accounting Policies" } } }, "localname": "SignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SignificantSupplyCommitmentRemainingMinimumAmountCommitted": { "auth_ref": [ "r42", "r473", "r489" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The floor amount as of the balance sheet date that the entity must expend to satisfy the terms of disclosed arrangements (excluding long-term commitments) in which the entity must commit resources to supply goods or services to one or more customers.", "label": "Supply Commitment, Remaining Minimum Amount Committed", "terseLabel": "Future Minimum Payment" } } }, "localname": "SignificantSupplyCommitmentRemainingMinimumAmountCommitted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StatementBusinessSegmentsAxis": { "auth_ref": [ "r1", "r149", "r153", "r154", "r155", "r156", "r157", "r158", "r159", "r160", "r161", "r162", "r163", "r164", "r173", "r174", "r175", "r176", "r178", "r179", "r180", "r181", "r182", "r184", "r191", "r230", "r236", "r239", "r240", "r497" ], "lang": { "en-us": { "role": { "documentation": "Information by business segments.", "label": "Segments [Axis]", "terseLabel": "Segments [Axis]" } } }, "localname": "StatementBusinessSegmentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationGoodwillDetails", "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationSegmentReportingDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementClassOfStockAxis": { "auth_ref": [ "r16", "r17", "r18", "r92", "r94", "r117", "r118", "r119", "r121", "r123", "r131", "r132", "r133", "r207", "r256", "r261", "r262", "r263", "r269", "r270", "r291", "r292", "r296", "r300", "r307", "r403", "r539" ], "lang": { "en-us": { "role": { "documentation": "Information by the different classes of stock of the entity.", "label": "Class of Stock [Axis]", "terseLabel": "Class of Stock [Axis]" } } }, "localname": "StatementClassOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails", "http://www.codexis.com/role/RelatedPartyTransactionsMolecularAssembliesIncDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r0", "r45", "r58", "r59", "r60", "r101", "r102", "r103", "r105", "r111", "r113", "r130", "r208", "r307", "r314", "r374", "r375", "r376", "r384", "r385", "r392", "r405", "r406", "r407", "r408", "r409", "r410", "r503", "r504", "r505", "r562" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]", "terseLabel": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Statement [Line Items]", "terseLabel": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]", "terseLabel": "Statement of Cash Flows [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]", "terseLabel": "Statement of Financial Position [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]", "terseLabel": "Statement of Stockholders' Equity [Abstract]" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r101", "r102", "r103", "r130", "r449" ], "lang": { "en-us": { "role": { "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.", "label": "Statement [Table]", "terseLabel": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnauditedParenthetical", "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_StockCompensationPlanMember": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares.", "label": "Share-based Payment Arrangement [Member]", "terseLabel": "Shares issuable under the Equity Incentive Plan" } } }, "localname": "StockCompensationPlanMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/NetLossperShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "auth_ref": [ "r17", "r18", "r307", "r314" ], "lang": { "en-us": { "role": { "documentation": "Number of new stock issued during the period.", "label": "Stock Issued During Period, Shares, New Issues", "terseLabel": "Issuance of common stock, net of issuance costs (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesNewIssues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesOther": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares of stock issued attributable to transactions classified as other.", "label": "Stock Issued During Period, Shares, Other", "terseLabel": "Release of stock awards (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r17", "r18", "r307", "r314", "r368" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period", "terseLabel": "Stock options exercised (in shares)", "verboseLabel": "Exercise of stock options (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStockDetails", "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "auth_ref": [ "r45", "r307", "r314" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of stock issued as a result of the exercise of stock options.", "label": "Stock Issued During Period, Value, Stock Options Exercised", "verboseLabel": "Exercise of stock options" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r18", "r22", "r23", "r94", "r199", "r207", "r403", "r435" ], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "Ending balance", "periodStartLabel": "Beginning balance", "totalLabel": "Total stockholders' equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/CondensedConsolidatedStatementsofStockholdersEquityUnaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Attributable to Parent [Abstract]", "verboseLabel": "Stockholders' equity:" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r93", "r292", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r306", "r314", "r315" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Capital Stock" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CapitalStock" ], "xbrltype": "textBlockItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "Supplemental disclosure of cash flow information:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_SupplyCommitmentArrangementMember": { "auth_ref": [ "r15", "r468", "r484" ], "lang": { "en-us": { "role": { "documentation": "This item is intended to be populated, by the entity, with Members identifying each supply commitment about which information required or determined to be disclosed is being provided. If only one such commitment exists, this item may be used to capture such information; if multiple commitments exist, this item is the dimensional default, which will aggregate such information, as appropriate.", "label": "Supply Commitment Arrangement [Domain]", "terseLabel": "Supply Commitment Arrangement [Domain]" } } }, "localname": "SupplyCommitmentArrangementMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SupplyCommitmentAxis": { "auth_ref": [ "r15", "r468", "r484" ], "lang": { "en-us": { "role": { "documentation": "Information by arrangements in which the entity has committed resources to supply goods or services to a customer.", "label": "Supply Commitment [Axis]", "terseLabel": "Supply Commitment [Axis]" } } }, "localname": "SupplyCommitmentAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SupplyCommitmentMember": { "auth_ref": [ "r15", "r468", "r484" ], "lang": { "en-us": { "role": { "documentation": "Supply arrangement in which the entity has agreed to commit resources to supply goods or services to a customer. Excludes long-term commitments.", "label": "Supply Commitment [Member]", "terseLabel": "Supply Commitment" } } }, "localname": "SupplyCommitmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesOtherCommitmentsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SupplyCommitmentTableTextBlock": { "auth_ref": [ "r15" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of arrangements in which the entity has committed resources to supply goods or services to a customer. May include identification of the goods or services to be furnished, identity of the purchasing party, pricing, effects on pricing for failing to deliver the [minimum] quantities required to be furnished, cancellation rights, and termination provisions.", "label": "Supply Commitment [Table Text Block]", "terseLabel": "Schedule of supply and service commitments" } } }, "localname": "SupplyCommitmentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_UnbilledReceivablesCurrent": { "auth_ref": [], "calculation": { "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited": { "order": 3.0, "parentTag": "us-gaap_NotesReceivableGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Unbilled Receivables, Current", "terseLabel": "Unbilled receivables" } } }, "localname": "UnbilledReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedBalanceSheetsUnaudited", "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r135", "r136", "r137", "r138", "r145", "r146", "r147" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]", "terseLabel": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]", "terseLabel": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_VestingAxis": { "auth_ref": [ "r372" ], "lang": { "en-us": { "role": { "documentation": "Information by vesting schedule of award under share-based payment arrangement.", "label": "Vesting [Axis]", "terseLabel": "Vesting [Axis]" } } }, "localname": "VestingAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VestingDomain": { "auth_ref": [ "r372" ], "lang": { "en-us": { "role": { "documentation": "Vesting schedule of award under share-based payment arrangement.", "label": "Vesting [Domain]", "terseLabel": "Vesting [Domain]" } } }, "localname": "VestingDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/StockbasedCompensationPSUsandPBOsDetails", "http://www.codexis.com/role/StockbasedCompensationRestrictedStockUnitsDetails", "http://www.codexis.com/role/StockbasedCompensationStockOptionsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r116", "r123" ], "lang": { "en-us": { "role": { "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.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Weighted average common stock shares used in computing net loss per share, diluted (in shares)" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r115", "r123" ], "lang": { "en-us": { "role": { "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.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Weighted average common stock shares used in computing net loss per share, basic (in shares)" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.codexis.com/role/CondensedConsolidatedStatementsofOperationsUnaudited" ], "xbrltype": "sharesItemType" } }, "unitCount": 8 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r100": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.M.Q2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1278-109256" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "55", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2626-109256" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258" }, "r129": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(17))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r148": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(25))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(27))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(j)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8844-108599" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "34", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8981-108599" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8475-108599" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599" }, "r192": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "http://asc.fasb.org/topic&trid=2134510" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5111-111524" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=SL6953401-111524" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=124260329&loc=d3e26610-111562" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(aa)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27161-111563" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27161-111563" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919253-210447" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919269-210447" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919272-210447" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919230-210447" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919230-210447" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919236-210447" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124267575&loc=SL82921835-210448" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "79", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124267575&loc=SL82922352-210448" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "80", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124267575&loc=SL82922355-210448" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124258926&loc=SL82898722-210454" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922888-210455" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922895-210455" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(g)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922900-210455" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 5.BB)", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123353750&loc=SL49131252-203054" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "410", "URI": "http://asc.fasb.org/extlink&oid=6392692&loc=d3e7535-110849" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(d))", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r243": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14394-108349" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14453-108349" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14472-108349" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349" }, "r251": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "15", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123389529&loc=d3e10037-110241" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12021-110248" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12053-110248" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123408193&loc=d3e13051-110250" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466302&loc=d3e4852-112606" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(c))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "69E", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "69F", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(CFRR 211.02)", "Topic": "480", "URI": "http://asc.fasb.org/extlink&oid=122040564&loc=d3e177068-122764" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=65888546&loc=d3e21300-112643" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21553-112644" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496180-112644" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21484-112644" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21488-112644" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21506-112644" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21521-112644" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21538-112644" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r315": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130531-203044" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130532-203044" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130533-203044" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.14)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130558-203045" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130550-203045" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(i)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048" }, "r346": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(n)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=123468992&loc=d3e4534-113899" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a),(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.F)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11149-113907" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11178-113907" }, "r381": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "http://asc.fasb.org/topic&trid=2228938" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19279-110258" }, "r399": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "820", "URI": "http://asc.fasb.org/topic&trid=2155941" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "845", "URI": "http://asc.fasb.org/extlink&oid=123385986&loc=d3e32049-108421" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.28,29)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864" }, "r432": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "850", "URI": "http://asc.fasb.org/topic&trid=2122745" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314020-165662" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55415-109406" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(1)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(2)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "820", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=35710923&loc=d3e45360-110995" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(1)(a))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(16))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(17))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(6))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.10(3))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.15(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(5))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(16))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(19))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(2))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a)(19))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.15(a))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.3)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "210", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=118262064&loc=SL116631418-115840" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.8,17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "45", "SubTopic": "210", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=118262064&loc=SL116631419-115840" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "210", "Subparagraph": "(c)", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=99383244&loc=d3e12121-115841" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07.1(c))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=120401555&loc=SL114874292-224272" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "http://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "210", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=120413173&loc=SL6242262-115580" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "210", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=120413173&loc=SL116631458-115580" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "210", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=120413209&loc=SL6242269-115581" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=123364037&loc=d3e3115-115594" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column B))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column C))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column D))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column E))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column F))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column G))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column H))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column I))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 4))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226024-175313" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 5))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r534": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r535": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r536": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r537": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a" }, "r538": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r539": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1402" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226049-175313" }, "r540": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)" }, "r541": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)" }, "r542": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(3)" }, "r543": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(4)" }, "r544": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(5)" }, "r545": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)(i)" }, "r546": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)(ii)" }, "r547": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(i)" }, "r548": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(ii)" }, "r549": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(iii)" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313" }, "r550": { "Name": "Regulation S-K (SK)", "Number": "229", "Publisher": "SEC", "Section": "1402", "Subsection": "Instruction 5" }, "r551": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1404" }, "r552": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1405", "Subparagraph": "(1)" }, "r553": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1405", "Subparagraph": "(2)" }, "r554": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1405" }, "r555": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(1)" }, "r556": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(2)" }, "r557": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(3)" }, "r558": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(4)" }, "r559": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(5)" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r560": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1406" }, "r561": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r562": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1(e))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7(b))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.8)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4304-108586" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4313-108586" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4332-108586" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=SL98516268-108586" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18726-107790" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(d))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(e)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(k)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(2)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690" } }, "version": "2.1" } ZIP 84 0001200375-22-000018-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001200375-22-000018-xbrl.zip M4$L#!!0 ( #V$J51T1>@Z9N$! +_Z% 1 8V1X4S5&%E'?I&KG#@(DA[JQ2< D![YDJ)D"$S=L MVX3FU]^I99, @002@[V,LW>!\>JT-)_YZ)G2E/3W_SGMM&M?H#]H];K_6J++ M9*GV?U[^_?\5Q?^\VGI;6^N%XPYTA[75/K@AQ-I):WA0^QAA\+F6^KU.[6.O M_[GUQ15%>S:P?X+PI4!(6-A'9>%(%05+H II#4*3!!X M#7FV_R)Q&8.SOM#!AT(X$@NG/9ZF:*#1214C/(LO>.31,^&I)$&D0)R@D?(0 ME8J4!@OYL0=#?#M\P^[@1836OY8.AL.C%\^?G_I^>WD 87F_]^4Y'GB.Q:7_ M%DOC4P?]X==3DQOXY5Y__SE^69Y6$%IP>G%JZ_3KF2_'E6=1:^_PT M5\.W$@\+?/4K)U]4Q;<"/Q_V77>0>OV.&R(R\OO(@IC+;S[H"4;U;:]/\/5' M9WQ]]V'_UI/M'_;.;K34^6%;4Q058Z,\_*$<^[-T OMX_GEZM MJ]"+<-H:X.].OB\C_%+U#UHWU2O>F#[_G_K;[7 '5>TNH.AZX:OCSC]KDA7 M[)&/7K+'S67_D3$8*0@K*+L,DM:/3'&Y?"_:KKO_KR7H%CO;2^@CX.++OSLP M=+5\?0'_/FY]^=?2:J\[1,\OFF='>%D8_?6OI2&<#I^7>'K^\G_]K__U][ U M;,/+7*7%1=7]_7STY=_/1[?VO7CV\N_8^E(;#,_:\*^EV!H;R#]]%MA]/S3X1:D?RVUP"D;20A42R\T>,MYU!XI M YG!\I0^K95%H>A'W\S9=9W\:&B]6.]B^&WNX>=CX7&=;K?HA_M?<.=D]W^KLGK\Z:*R] M_EQO-@[WUG;9WMKZZ>YYN_V6-]J[Y[WSO;7&Y]W##;)[N$[K;^IDKU,_V6V^ M/\7SSG?9>];HO#^M?ZS+O0^&O&5[9[L?@]IL[N!U^^>[AY]%HU,GC;6(]_I\ MOM?9.=W]B'^_69>-)AYK[GR);UZW_)L=M??Q/_*)^1B5C*;PUB%1 M*YT*!R *Y9RCS#("EBR]).@J&81:_OW\BE$?TL8KV&K%W'*];KO]I=K(=_"V MI\,7J74*L4BNG1EA8?0?&_W\.Z-;2F0 )"#C$BN$L*KP++(B>2VMT)[(J)=> MEM7[B/:^$"JO6X/@VKO@^J_QF\'"P#\S,/G.P!Z<5]9C"Y.R_ K>%H9GKV8J M&N]-()HOOW%AX3M9F'[/VXE[KE%H I&\$%Q'=&8!!?...*ZU M#(HNO7Q/']&^J\?]_A7W7>_&-8PXKE)WQ&^*#C[VH(ANT63_U/3L.],#3<)# M=(7&\"N;7A3&.UI0%3@&3TGS@$TV9<_Y_:P?/7@J: *1A$[*RD!98L@6":QB M\M/&=:./ YX76_ %NL>PA2JZU6UU]]&U2XNC6-WT[=9^J7C73X\@8/C9;'7P ME,VTC=\.D@OYV(@+Z!6@Y #G13SNEU"9+DS.&ZNV$SJONYN=/;S?+JF_63]O MG.^+>O,]KY^ORWIS@];7WI_4/VY]KI]_.&PT-\1;OG6PVSEM;Q[NGNQV=MC> MX:N#S3?_'.P>OC]I'$8LVPJM'X:SQEJ[W3BOGS7./[0NKL%G'>^Q'=4X?-7: M:V+),K0ZKUMX#6NP=5)?V\'S-\CFQQU\_@9O?/PGC2!20H5AV61]Y1,-/#'& M7.$C=]C,:U<8P6SADW7HWMIJ@JV O0](A#-41,NT4EQHD8S1UO,4K)>")\>G M!)(S9)L%1NZ"D?-K&(DF&(C4%9(ZA1@)J/\=Y05%FS*I6#1,()G.*3Y+)0Z/R%H#(4GEADE,0PCC". M8 !Y3XPD##0B"\8Z9H0CX#F3@2$XF 7/;+J,D=-!ZT6WU?[7TK!_# \'F04R M?HX,=@T97EBI$U&%"C850H(N/%A>,!=H3!: !$3&?8"A@2?J8P!.48L0:P/A M-@7&L*T"%\Q"A-M YOA#86MQ3A6CK M.#-214^ET#1822.AAC/NA3!6+UJ8&E%0YTPAM V%91 +EB)1 MH(&!AWNV,!0H@*2<:Q0@0D0GK3&@ Z-<&\3, B,SCI'K*L1%+YEVO C*8UNC M""F<8*'0CI(0$"B@R#TQ@G$1H'SAB@$17"H'TB?BC42J"P.A61XG($*0P'C\E5*D6&P9T>;B?"DG<2*Y (0@;$J64,?-<7(D%@4,H*JB0I1*2T\#Y!X;D6:,KH08;[ MMC!))Q"*:\H22M/D?(J)!^\(!DA1+_K+9ATCUU5(!*)1>\@"A($\=*H+&X,K MF%3"14F0 >P],>(,U\IF4#".^)/6.IJ2T,$9:[PE"Q4RD\BXKD)8Y(((R@JB M&,8P/"C4(TD7QB:J-'@TKKQ5A;SNCRQ0.^ZV1K#H'G<\])>N=[^3%"'QI$W( M S\^V> LH8I& =3 C2-T$4*KX]J#?RV)ZXC9/G!]R'E5<;77.8+NH(3(2K_O MNON0QVI?G7T[Y9T[RU^MG+A^+']\@,$0,;25LP4'B)V 1]T^PC(/ .)3"C9= M)-%Z:XRDPR ::W6Q^;%QN-O-YH?6[L<-?.9GWCBLTT;SG\[NX<[9 M-R3MX[,;G<;''=DX?WVP>_Z>;[[9$9O-UX<9%9MOUFGC,)#&>?L[)&VN(7+9 M+MUK?N;UCWC^6A![343)QSK'L@HL Z(&[Y>1M/I]CPD$T%:Y@EJ4*4)*7J#L M] 7QBE**:)**+;WD_ )+%^ 9@>M2\E4?$O0!W7]P0\Y83F![,2ASWQ!VBY3*'*N)Z$7UWT[]K68\=*IO.#TVR-&1R[^OGC(\RL5 M=6.],1XIYT0)[XU(+CK&3'2>Z9 DUN1%_[DD8@:J:Y2Y.!S7@"R(^'JC\9&[ MU4#FQO+U!YF3!E_?K -N<-R'EV,#E NW=M"F>C)9$9*Z,( MW#M))7[$1A"L%^-D DK9K-4F+; !_]7:O%H#1G*6NY*D<,(+Y]!+K0D:>!!: M*?)X>!J[!>SGUGOT9\2'G1ZU6Z$UK$/6&;78PJ.C"03?Y&0[SQ=XAWQVULS9 MRZ-69O#J[/*1E=,6>N*@/WRQDE*KWD387S&4 M#L)895A,)(B A(H:GG!';8I164(>#ZIS::C?\JC+_(0"L]2B7ZT06U^P]BZ? M6HIJ-^SU?Y'*OKL^?[D&W1Z&2C?=]JX-SI5;/+]:^I\Q*?.!)V%%S)D8/H#3 M>?Z,9B$/E0/C4U!(]\5IQMR[?B\>A^%F?QOZ7UH!1FC,HO+BT#;&#(/)0W'Z M6BV@1E.1.>U)SG4(J"=T)$R9W D4R,B"],*"=&'!'UF0WMV"='(6))1C(T%D MC$)88KTSG+,0M24N\>@JX(./U%;\+I*V8 "N'PX<&@N^0+MWE-]OW+$UC^00 M@P B05C.C" ^&0N.&FZ%$II;[BM #@MHS29K,9_ @*4^(LB"3SY$9X3 *%>& MW&58 =::89-.A2T$XO_/LZ3F7N=HUX7_QR,W.'B-/R^T^MN#WOA\^P&ZE=,8VG0SDI4,QBW M>I=[_(P-08+E1OA(Y\8T*S&VLL1Q[7>N%3>ZJ^ZH-73MBIB)"4J=Y9HYX025 M"2V6'4I)263NOIT;,VW!T+6Z*#-=/P^+/T"(^B#V"SDD2@; M044=(E!6 ?TV2U0W??6F&;6* T@TH+"$FPB&!NH8>IV&:.;/H(]&D-,W+@-% MD4&%<98)J9C33BBMC5%*<.;"_!GWX6EU^E85"A2@G%&2$$%]B^'(Q ( SF44/"_&))50-F%,#9HPGUB2WC(R-Z:9!L--SDR,14^C MPUC-42&$]SXI$P78 -X1 7-CID=EN,G91Q.?").*2&ESI[FS*1GC?)X:)@.U MCV>?J=6 L#Y@Z&F#Y(*DB(S/E4@^Y0$BXV,%A@UFB>RGW_F-40G)LU#R8KD8 MED@7##)/TCE#G FNYL^@T^E)F(IQ#1I7HA3CW#L,-ID#I3&JL1ZKWX4XA][Z MR#T)TW%9ZIUT5%JKI !/G.)@HXY,>V1B,9HM.@_&?+SQJDF%0-@".IZ2DCXX M(5AP+(7H/4-S !+J_)AF.N-5DS)3](1$[Q0("\)Y:H62R4AN!4B6W/R8Z9'' MJR9E'XI!J<,0R'$=A<)X2&ACB57H3$$!<8]GGT>L@6]SDD;5_]TLFC*K97SP MXAYWGD:C->";>C!)$.$=-RD)94+(FR/P:$D%!A4FESI\?S=[=3Q /QH,MD>E M'5QZ[FJO#^.OYW'<(K(@&%$*(%%AJ,&8E\B4._8T: %5R%B>4>"\:O6&!]!W M1W \;(4YAI#U%@R7(D0FA5?*IAB8!:HDCYI!%<*0&870XW'/E"(=#&O *I*, M$3$R*Y4!Q\&8)%5B54AIGU'@3(-[IC/A!M6]BH$;2A6J?.H9!.^<5E*KZ&T5 M,F4>,,^YHF0TE5:,$RX"" @QR;PY61Y]SE U)E 'I J3(!Z:(:8)Y6IB"H%$ MF7->6B8PZG7,6$H4(8GD16FA^@W<$V2GZ;1SBIJ\.X\(>0$G%YUUTJ!.HC)8 M[7RJ )(6[#1KF-+<0%X_"<-^88-S)K$$^'_E)354S5F+-^?Z!1@&W1B&>RJ, M\"9ZDA*S7"K-&.A*=.3,>H0S'0W!5/)$*.5<$DYPSQEC1O&D;Z.VCV0Y:P;4O+<10+D7JYK0/=$K--M.&DD"X(H(Z;JFT05*5 M]\NQ$&Y \&>6:/$B?-WD5B@G.M">&XZ_7UE?EL/:8C'&UP2EM-$Q.",>,UBDAPSG"( M+)IIK*D_)\!Y,K&')38J$0ES 00S*#Q8T%Y)RJ(BM!*+64P.0I6T(//&40-H M/ZZ$\\$8(?)D8L((<*FJT+\\HR0PY[$'949P99P#&80TVB5'$L+$6^ZXY',0 M>SREUF,J$!), O/*&&.I !^\2%IJ"2E/V FT*ODQL]%Z3&<\2R5L)E3 UB)B M[ $N:9$\R4DJ*"9#%7((?F+!TB-7WJVLSF?3,17-(16V%PQC#69UWH_7.44M M55X2QO,0=P50,Q/93!. ;47QXZ("Y:@44@B/$:N-CB#]9/$:4A5R79ZR^;1U MACOJA"-: DVLB2D--CD:V$JD=+RM!N-J4@-F[A(QA"65T$PQ'M+K)#>"LX3 M:.,J@)I%HS'->#5)C_$&,"=0G29G@Q"H7A6)$;6'J<)2.$_9?! ]>"IH I&$ M3LK*0%EBWIL$5K$97F!UXG,$\]Z[\79V^>W=O; O><.#K*\IG*$B6J:5XD+GIDY;SU.P7@J>'%\ O+H YQ>, M^90!KF((05GFJ$XB1(F1OO'4.I3^+!(_]768YPYU8IJH>T36F!6 )RTQE W& M.I;W[P3/F0P,D&:GOH+UW %<+@#^J #WP2LON2+6<(%(=X89Y:EAQ)C( MY QO53Y_MM# $_4Q *<8%1%K \D[FC&F"0<7S+1M,7=D,]4@Y7"&/U O'S%+4L$+_4HD !).4(0R>$B$Y:8T ' MEK='00]8('X1,B@3!@5$IJVL:9 M.SI:C 0AZ@@++A&,<7@P@DKCJ5%*0?*"TACX G5S%>C,"NI\T@F$XIJRA/%T M M.]1-5?#/#.IA>2YK$ "\=>M>O .L=4^'K:^P#:$ MXWYKV(+!^FEH'T>(K_N]3MX]YGA8FG$S76P5@U;>/G!]>'5V\PVN3E\I-VG* M]\&GES=ZUW;=>4Q-#CSG(@>:J.7"YEV#%'?2"R# ;5"\ DF"P5V;]*3VK7+<6"7R=!.1/%:!X5@)#M6*$M&P"K4:7[.( M5]MN,,#V//OQI/"@ -J;QE'BVL MA-4Z,"&G'FS?P98C;C[;/.E";/2&6^"0ML_JKO\9ALZWX?JVB]TOT!^V\, : M^ >8*O(@BLTXI-H4K0&4;%(D:X0%9.(4G*1)C8;"Z$SOG3V[9J*3VT":$6P3 MK&?$)$&E<,SFBG2HJ 0S@LV--XU9\M\?H?VS;3$G0?6A:?EA1K-M M (4A5L@;VZ(3.Q\U_H[.0%X U3U%;,R*;:Q7+% =G*9$* R&<_^4MSROSA 3 MFWKGWV1M4^^U\>RVZZ\,!GC#-KK41C=4Q%2@S&FYQM@K81#9$D MLTQPYUV4 >-;F?.;/8ESQG@_/;>^LE$1_B,&B--@K"5)&)Z,2RE8K& IF111 MS)M33=EPD_,XQ4-,UMO(+$;:Z',.('$:(Z24EPVYN37*ZJ]:\G;72/CH>#\@PZJ6AAU0T.5KHQ_\J[Q']Q;?AN@_AZ MKPMCK+P^[L:JS&VP0"7A>3]8ET0(TB6-P7]>F%3G1<*>"%+8 BD_18H7*N=G M<:8I%3P$([GAU+D0L3V/I@*M^"20PA=(^2E2HD@L!1-H7B-*:^JB,4%%GX> M"8QEPTPC98Z-(W0 EJ*)5#KA//6 @IS*&)5/TI X^YIN(0T>1T12HA/7+@)) M7.2=XVGD5()FCG#@1C\-I,RO-)@<4GCB05*KA=-"N,!<$-SZH*EUD*AD3P,I M\RL-)AF8ND"$"HF*( "4(SJZ%*/TQ*0X7GEGII$RQ\8QB4.TSFFK0U[]RXB@ M&<'/S$1F2:66_9NQ$>#I9U6QZ%GBSBBB06##[A(D\(Q:JB-P6H4=2"IAW*ED MU@A01F&;ZVS>7P:\L9%KY0+GEOALW)F/N-[U>_B^P[.W76 M/#NZW$W[UOE>WPU[_;.OYU0D]*)4:<>E0%H5@BCNT6+"$*8TB8RG"LBDV;72 MY%I! =(+)2'QE$1RX$ F:5GNQM#1F@KD3MS)2A.VYTCOJ]+V52 M3%7Z,B331#BL1,9!D#Q.Q2G69G*")Q.,GQ.'FIZI)N=5TI"0E/.2)R*\=_@_ M3EQ2,3%C05<@6^U>IAKE^T._:DU4\L$YI;@.#H3AT9@(3$G.'/%$>S5G'O6X M9IJ@-SE%%9=:.AJ$ 6^]HL'[1+/:BVI>VJA226RFU KP]3B>^_JXWVT-C_M5 M6=H X^H\[&%D]%%H#@8D8SY/? I,I ASXE13M=;D?"O%9'+,Y/&G0.GGM2=. M0EXMQR19A=R)>U(@5E7_N)Q>NM'%2_?[,*B* $2K9,;S7J8@A&&6,VH=XUZ! MB597(.MOUFTUP?D*@84D'(^ ;98DP5.;MXB F+*^".6D-FJ)8&QF;84V:KC. M9;I;R65^F(F8WXQ ;5ZJA;%)C-1P ]H$2H(R@G%F&!666&Z5PZ\#&1M!/?S< MRBH:04UF>J?6V) 0#((89K1YZ-_C'ZG4]1BE3&K%[G O^U2P=#,U1XKP(U4W[=9+5SU.Z=P647GT=#.@@A,1LT\4D(;"2# MYI*D8(,3A"9=(4-^@,&PU=V_-L>Q7'["#2!>7EAB9/.^ZV)!-[L_B]L64+H; ME(SRB2>CDJ5".^9U2(II9FBP!"3,/Y2:)[T%E"8RVNM(BGE\"B6[X%IXU K. M$JKR7M#4/ $H/3PK;6'!^JV\#E<)IAU4;8.M[9UYA!-G,3)0QB%.!'7!98UB MA8X0(7 GYA].#\],3PA.1 N5F$B2\B@\"(<\):*UW@KD*!%GO__T%AM>6JVO MA-0,=Y)^#5/+R]KM7(#O8M4R++MTPKTC5F\D%T))+K$1$JB*(8%FY;0@!;DS M:>Z)X^';H4< W?0IPRF)3.&M%40(,-03*T**S!JP DB5XN69;8&>!) DB3%% M)S#82B+Z@*V.LD!M-,A((&R%@/24S6@-4=0YE:A/@@0D@< D2\"3S/-)IKX9 MSZ^.4C#V[J>:KP( >:!-]C0-D1/-111.2A,]U\XJ[9D)DE=@>O&M-G^UN;#Y MS0)2$,-R-B!H#!H\&"$3-8!F1C]7N@(+0MYB<[KP\UL[KQ0U-(FDC4R")F9Y M9"PH$XWCFL@*A(>WVGSAY[?-^B,)@T2JE2)*X/\=M8):PT%BN!B#JI LFWZ@ M^ /*6>G&N0'B]%6H$#+0%!"C6@DNA7',"REET$Y($T8#\OP"M7P.43N!J#3O M7/9UL=7M %V']3\J1WEH_,WK7A^"&_PL_WKA)#]P$GYW)^&3&SS@H)6-W$0I M!;B$T;9/AO&8\A3O\6JF,SU5^!:HD'F3<'2":X99SEQ45DLNF"$V1N\LB<1( M&:6U%;;Y/)#"@]A<6\ULE$0PJ41,P3*2;%+>AQ!,2E5:&V!F)1P9M4X(PCLD MLU8 B--?](!*GF(2EG$9A';.2:.%HAU&YT0Z\#7P. M[TP0NCUY(AR^^*5*]L7KY]F0#_ K+'I M&]AKH07RD)#,"*VDR]N?N42C=50XR2K4F,Z\@:?2[GC"E:)41&J%$)I;1_"# M5CX(2H*H4B[_G0R\#>TV-DYOH M]UT8SK\1.J]L:#/LN3P096WHNR=H2\%Z# MQQ"8"Q(-ZF3-O52,!L+<.'MNCGQY-DP]G8T)&8^60HS(VB)P96+>H=[2/$J9 MESVLD*EG)H%Z*H8$%D#+ %*#$Y"4%50'0KQ@W-+H*K4G[0U3K;:V5P:N&[>V M=^:2<754T0))#+U.4!%LBL(Z2176;G):5]<-']EZ4_$];;D77DKMN16.&>?0 M:!YX A.#455:A_ FZUT.4+]F>L^C%^;^WDA9"HDJD;@PVAKPE&+32!/A4'$O MG(8=I^*/J%4A)FU1L7IAJ/%*YT6Y\AZ@Q)E8I;'YG]BQ["<;SSI^]VIS+KU2 M2A_ (+<28'F99:>==!B**&H< 6?GQRL?V9I3\4TG%#"6DG><"4JD<6"%48)P MZD%(F/U M05LGA(@$6RZJ; I*2[!!DHK:X9%4Q\,LQ@I$! _!>1$%-CP^NA0<=][K0#65 ME;?(P[BO_FRD),"1>-1;8SBMH\ M8&3E.$=^)JV6\_NV7'K2S+'GO:)!& M$!3MW&E)HR544OS(*^"A\VCK&?#]A!9B3$C&D<"%\ !*,8P!I.48JE=A@O6, MF&\JP7ARQ!EL;TW61"X&'[DGH-&&@@KFS.PJHID@V,FL@##X=_I^Z8/C8?]% M/G!Q\9V7/& \8A2.S:^A2JB\.83G23O-(& 0$F=X9FK)T( 6'>3QW3QN&\)Q MY[B-?\0U..I#:)6CO6LP"/U6J7(WT\7JM%=3OO(;OH-NSP]"[V<9^[.B@BEP MEWO !% N(C<>,"3Q6FG'0 @WPZLZ3\QP@I16JY#1F*00M+':TR"B#LX$DH3@ MJ(=!!J!/P&@H^E8/8.".P'V>X?7NO])M'[IPXMJ?>N4[W;SFS-5S[LW! JR- M#" $8)*Y[E)Z--6@6!><3N[J/A^-:B;=Q.\RQZ#:]!Q.9WNJ#>H3A\1BE9J MG>+8=A)AM'$^.1NL=,YK[ZJPI6S%3#?!W8#1U41DT7LFA:7<2 C,V\BC@H"! MR>Q.^ID4%Z/J777]=F^P?>3"0^]F,;&IUWF*%E4L24^T<$)$&A;&OL78=V;_>^W6L3(8P'"G M&W.@_&W?CGG$74S !??6 IB\Y*/UT4@9.-.0NZKI[#;K5>&6!VG2@S>WCX^. MVF>KO4ZG-0U)XXIFPQ12L4*)!;-I5%K%UKMJ^,&3>AWWO8>>(LF/;$M MFE3P&!S)A.3H!;7<)66=0I^QSBO/534M\:T3XTNO_:75W;]Z4D5LPR.DX(4W M)D^JC-HX"X1:%)A@A:/EI/Z1;8J%D>X9/UPWTP_BA^NG_D;\8/(6PUY(:D40 MU@@'RG))@1@9@C#VPJ)EW/K4+'KG1V?=ZWP;MKZJDV]A*YZ=OWX,\-PI^)P@ M>!2WS'%OI$U.4&ZMH\ 839!WV&&"S+Z6>=L;#%;QE1 9T TM&+PZ:[B\8^YF M^O;U-2QM="-TNOC@T1S=-RA D4YAAH>(KG&X-8!WE)IHH9FTDE/GF UX(.^3 M-KN]R94SVN3ZDFF41IO 7 C(B6>)BM%=$"2T8Z-/(W,(CN/EAH\@'C<1OOD M7KM,N\.#7MSH?H%!&2-\_RW M>5NZKTVA..VZ^>NO8YOH]4WNF%B'0T7$^]7 MVVXPV$QE!OCUR?=]?.;*NSXDZ/?'F\D\*'K(Q&0;38D%$Y*)H(5QT7&BHW&) M::1K\*.)9F3ZL#:YC[KT=HR7[1_F)DW"@6>EU9R:EF B%9+Q()EAJO1%:\J L M!COC^1@(I=$@W0*<"W#>9=B/LCL/^UU!\N_L]):($%P([7)2G@4'8(DU+E"C M-09?8Q$O%@UYQ1ORJ]&$F(P>!.XMMSEX\$1X"-Y3!AA<,*N#E%*-DQ7$1;+" M D95A]'U1 5Q]T0%,1D]Z$Q,7D:9@J M/2YCV2-O6"L!8RJ#J/KC&7OSEAV M,HSEN4KO6/(\+O(FM+L1"8Y431Z%P3)FW9(!I)$!%C21LF*)(LND#5SZ:#,.ADL M59+R('Q EE)>48"4(@O)56G5_0<2SPMD5Y,S(9532 M"2YH!3AS@>Q91_9T5JQ745OEC)'""> &@QC@G@2).I,;2:^.SBV0O4#VPXX! M3@[94GK#$S%&2"*XU=Y3@]1M9%Y7A:9TC;-G<;QEOJ+V1^]GO#N;3FIDA"*^ MO)9*2!U%3JR/Q*- P%\T[^UC*Z" %YBKF#:-,0*31EC&O' 8QQ/-E$PI@9,< M2%4PE^=*]MJM6#90&VC=:Y/G-[%*7$ZOVQ[=]K?G>>6'ONOWXG$8;O81+5]: MX#5A<&@XMWN?3 4;41RDL3()9XZRFW7 =!F7 0G0,;! %A"+D>,B_0.MMHG4;C/)WU;USDC$EE3=(B M)>*-]M$[J3G7CH8%R\Y\XSP5V!CGHY:<"-!><)TR>H 028)+.\LN.C!7.#HCK/^:/"*I62-2B+D2 M5P+((0KG#+/.4BL0O];S&!51TE'.P/H%D!>+2!4S6[FZ62!4\:E M%<80D82&:()23GM@RC)IQFOJ/STP5=*65H-+T4:=>!3&1Y]\<)YIXYC@"L)" MHU2I;9G.:*EP)L5H0XQ2^#PG)!BI(91+75%6G8ET,PRA)S.$R3'$E\H'Q502 MU"AC970N;YDDA6+BJ?)1)6TIG:"*Y/4E4'4ZK5RPQ"1!A'?*<#4OHA/I_2A/ M*(%&KSO'JH\'RKF,W+/ A*3@K<1XE/ 0\#L9YJ4WX_&M.9WY;J U=P0EGQ_M M?T& L3RSTZ/H2[P*>9S?+-8->,5X2E=K\/FFS8A6CP?#7J?>*:/ Z9Q3SZLPWE4A++]Z*EB>SMH1+BH*V@43M !&K8MYLVWJ MN371J2K-L)\NEA\+99-QJM5YQ#(GR,L6I" Q"$-19!A)F9&,)PY,+K \40BM M5<5CJHEE2YEG))#(G @4Y45$2N;)<4]U2&Z!Y4EB>7V!Y0?$,@B(G&D=!%BA M>7"". I6>:6D"JE*ZU-5 ,M3B/U60LCKL""< [2^Y#V1YC'LT]: )LHIH5!B M\. #4*^U]EE!@Z_"PB8+&,\4C*>R5HK5,7EC:&+>"!>MY^"4)])Y$PRA?O;W M[WH#O?V^.SIHA;768-AO^>-+2R]E"_;/7NQL3])J#[(G%PG*!6>XR8,,;D=0BS7J$:8YSPQP9/-TV_!!R&D9AQ S:XA9GX< M^1WT4Z_?<4C!Z]WSL\Y#3&A\$$QXKYTC-G :@N":.N- 2"6BY(E[1V>7)1>8 M>"C"5I0H*A389(5P5AGO38S)R+PRJ5%ZP1._C(E&[PNTKR:=5(4I'!B4_T@2 MGG+!G?44@B)2DT!L#, 73%$=5$R.*_(<2NZ/+TXG&Y[KVI7,;O>'XQ(HX M$A46M;$7%%6R4,%Z05@(2E "6+G@YL9D/SJ=DV9/VC5W-JB6\;!)2IY$)?+Z M4M(32\ 3ZGE$JS(1U9,PGD+CF0H:CUB?E""<*6&%21Z5A0A6R&A25&Z6A<4$ MC;?^[V/7;O;>] %%9+]YX+J65,^4S'MG>2*)0=X#P%OO@%#J\GJL2;XPR M014*RT0P1IL;D\V.3IE@'VR*7B?G G5,I)2G=%B!P9O$AQ@O*[";?.5TRN2, MQYE0P&.*1@01P%DCK*'6:Q!!:4A/PGC3U"D3-&4B#N-SQJ@7(MI@4E+4H>1D M>7M,;>?&E%/5*;]HK^>MTQ=]&/2.^P$&HS\/P,6R/+'UY>7?^&-LQLBC9\)3 M28)(@3A!(^4A*A4I#18^9?-]NV8P/&NCH3JM;G$ K?V#X0O!EK4\&OYUTHK# M@Q>4D/]_J3SUY=^#(]=]^;?O/\<;C#Z/[O/=W7*9"]=N[7=?Y*0,Z"^-+KXX M'GKM7O_%?Y#RWU\)7[)(KM-JG[WXKR::=5!KP$EMJ]=QW?]Z-G#=03' :DFC M$P>MOEGD&2[N] MOKJSM='<6-^NK336:NO_L_K?*XTWZ[75S7I]8WM[8[,QQ5=@=WJ%CVYP@/XW M['6?U=:65Y=KC$AA;RUVQ_7W$7C#WM$+CO>?%4.\WMRJ_^=_4$7^^AO]K-OK M-HX[>*=0&[OC%J3<]^_R!D0A4"V]T.!MWK' !V=5C!COW;C71JWK,BU&:+U8 MZX7C3" Y(VMI''GP#V=^K??E+=OZLLOKQ_%P_&WNX>=CX7&=;K?HA_M?< M.=D]W^KLGK\Z:*R]_EQO-@[WUG;9WMKZZ>YYN_V6-]J[Y[WSO;7&Y]W##;)[ MN$[K;^IDKU,_V6V^/\7SSG?9>];HO#^M?ZS+O0_F]"W;.]O]&-1FLWU8_[@A M&FOMSXW#_?/&&[S_^;ZHLUV^VWG/ZH>[9XW#0.J=W2_QS0<1__N?]AYK?_&' M/;GYL7ZZ>[A/-C^^9YMK=;+[\?WYYMK^^=YA;&'Y\+H-UCA_?[;7-F?UM3K[ MQ)@"H-(4@F,-B4!E8:Q*A?$T>L^Y05LLO:2D>%^RW35',86Y;+DKA>WTD[2+D_>*.!O#BXL-?L34X:KLS;!#* M>Y87_35^(=\;#GN=_$Y_?8'^L!5<>^PFI<>,#H_YVMIE(WFF["&V#<-X\> Q MFR^7;/Y\&+\_)I#VU:U'R3*]]=B/[FKY,A'B3K=]7I9X5&JLEUQ[_UKB2Q<7 M'+D8D5M>L*/3&KW*%FU(WU5-IQ5C&^X.@I4^BH':3K<5>A%J]>W;*(3\# :C M!O/AB>/]L>LC1[;/MN"HUQ\NU5UR[_947N' M.^?UYBL\K]W9;;[^W%A[?[:Y=M#9/=P]W?OX#Y;O]>%F\_5!_?S]^)H/^"S9 MW6L>=1K-^FG]#7+0Q[V#^L?WI+&V(3;?[+4:AZ_;N^/RU3^NGS=>FY.WS95A M?9N?+/5,,6X*297.W"0*;T4J@I-41HQ/B=!++__S/ZP6ZJ]; MZ6F,]\>'\MWXS/ZL+2R!_'YG9:NYOO5VM[:U_FYSJUE[M[.UO;/2:-::FS54 M+$V4):.VDO+:YE:-RC_BGZ,O-E_7FO^]7KLD:[Y*FI759@T/4\O%E>HJ*>!Y M27X_Y?='D O7??T6N=#KUX8'4/OWA4/61BJ^!MT(L?8(5# *K<3Y).S1K/1;I3EP&L/W^-]]D\V/Z[S MW9)OZM?%2:NQ]IEN-E?POANTSG9(*60P*,+KR.;:BMQMQH-ZB/ MQJ)/4[W5JH[KX_9^U86]B][I+>SI#-;S:ZW1:@]P374LM;$Z[Q[F? M^,5#ZK[ULJ_Y-3ZM43ZLDC3Z6_U'XE.Y?;O\W\UW9#X[]+=C/<]%<=YAW1G]R^']_ M]DE+#9 X*8B.V/@[;0J'E550K;TR)@E.9":G"*>MP;,1LVYTP_(,.<+=^/6/ M]5,7AB4":KU4ZW^U?,T-:H,C"'G4,-9:W5IK.*B%@S((_[/*[GV[PU!XZP]EV=]XX>OQ/@H:/ $4,CUXS7 MO$1E5$X#6AW-%5;\$([ZO2_Y/A7MG!H'AA]SH!9H_7!'UM_D MP#!(O.YP[W ],_KI7O,SEN4?O-_N]<#P8.\PB,;YSED.+'[.)[XW/;;1O" PU4PF(QI@0P& X&%QAN5:%9!:(XMY#-$LOUZ#M M3EP?'CXR''')HP_#E?"^%DG\TCL].9=MNM.-<1I.*-VVPM'%8_OBQE5?]%9X M&A443$E:B,ADX31114B$1&\2^BHLO=2T($8S:^T/O7'2K<[C..;-(/ZC; IJ MO7ZMG.]9.SSNMP:Q%"91WK7JZM M=X[:O3,T\55.J35ZRW_>HUOM)KW^Z#)8$_TK,IB192WTQ 4K9K,38A\%@_"LO8TBK+ W.#UI[ M'U$*=/;:]8\[YXVU#ZU\S>8:EK'3:.]U=D\:*!&P^;\N#0XWW_S3SE)@K[.# M$J).&A\WLIP0C3=[K5WVH;-WN$(VU];IYH?O9?I;OM6&_]XZV_L8CSP3:K?S MH=-H[DB\GJ%<.6F\V3C!]SFHG__S>?<\G.^]^><0WP/K**9Z'X3>L+;6 M;WWY3O\_>_@.ZS%R5O'C9K_9.ZETE%=]^)QOKGS24@I&E2VXYQ9UJO6%8S86 MWOCDDC2,2;[T<@OB2:\7:]ERT\--J1PW^^_ZO2^H$N>[#Z'ZZ"+U_4]!.:4B MLI%DVA3"$59X$D7AP$JAB/5*ZJ67J]AXHBF[+??CS)J%Z'^R/1-C!GC70Q=O M[[6.1GV("_?^J7N_O]8MX630J!2*/)NY$#KIPBG#BAB$N?0NW3V6[0USWBY<]=I;GMQ'R_QK4AM"&HX->]R([Y5GN9VL?9]O67!]< M+6<6OJC]\8!$GK7C"CZJLM3]R^/UI'[^^1,H3:Q,I&#>!A3:5!4N)E%PEK 6 M\0@PL?1227*==_]\2'W]MH>N^RX#H\)=_;]NF,9:_1/-4YH3>+2$AD* X85E M.A5>BN L'HA++W$(*DPR#2_GSU1$?K8QA:PWQJV\(ZCC OH0ZP='?<'QSGU M8MBKX1EE?RYE?_@_<_N9TPQ7PO#%O=[M<;MRT8++9"19[YW2P)>I-9/O=-7+ M6DZ^+Y?+92WNEH#QD]&EL4VRA'F!$J!6KDU8RP#\:WPHYV->.U*I 8MF:]@N M4XO673BHK;;=8' ':?0$ZJ7O5 [)5;/TJX:I5!5OGW5\K_W'G>*P7P3CC;5Z-R.- M6Z";'S87!/'H,XG&\N.,,E_2+N8W/%UB.\WH3[XFBMLYRF?<.]SZNGZ"P/46Q>[[763]I MO#9GW^6#B0!@38P%8<1CR!%TX:V613+<"&?Q'U&CZ0O(5=O#7OC\K';D^K4O MKGT,M?]=*B6:9XO4!@>_EC"V\(^'\H]QVSSBQ85SW,$YUJ_/HA-Y\793.)\S M)@-3A:=YBG_D3#INH@H,G6/M?[8?'_?S(9:FUF9<2+#1S)#K@X2 1RL_/OAX M;G,MKY$IJJU/L8@:6"$H?C*,V()):\&08%S$-J5Y +6&&T3W[]J;=L^[=FT; MVA"&M;PX#@Q_/K1PQTF64YJZL=&-.9D-:OZL%@X@?*[E7>9J)P=0IC3F?I!O MLU1>U/Z@XRFG!VY03A&,-==NXREY:G3N7OGW<2MWK@Q[-0_C$_#.X_Z5K]-7 M>_W+TU?'_2V7NFF^1AXK6-%X.$]?K44\VMTO3SWJ0X"RQY>RT3W*92$&M3_P MSN@EM<$Q1BN#@UZ>/W,Q271XX(;EU=^ZDVLG[FJARUF/Y<7C5_KS6C1 MQ]7C?A_+-IK+GEO=H1L>#RI)'[\UZ5)^$F" &_"%BQSRC',H#%9OH?,R\\IQ MQ[U8>KD+@^LN?M/\WL=>_8"-AK[&B_;]VLA]IG-4!M=%;;R#+)A7+(=\T-72W/K;[.S-_N<;D; M?.NX#2.["2(S[R)3'K?=-^K>+IJU/_)'_1?C;'E\UO"@54Y6/,J3%2='T_W; M:7I4_*_$"X,_I\>HE^H[5_>88)\%Y% G.U-I8;:BX$Y-6^R^28N:6?%>"-W]80PL6-!P8= M)&1\2O]"9B'O=+ 2SIYEZ8NW0X&8ZVB_MM_OG0P/+@XOHPB&LFP14JM;KG%2 MYO,LW5:VI=K235_6EFXMPE(I:)=N*<%2GGS^K1V@S!?L8D#TLBI?KMHT;D:7 MS1UG1M_KMLM,37Y6C%#+U$Y^=OC#U8&^_>C#K3WV,'T_TU]Z[-N2./U5].K] M7O_LAKZ?\J32W\/XI$IW S7.]]E><^6\?OC^!'_CM?BL-^LGF_C\S;5UMO=F MZZ#>S--8K^>1]OCFVEX;8[JSQMHK_+U/ZN=;GW?Q'G7V7M2;>Y_Q/J=X?WY3 MFO@G)J6FC&>M0D@AC SX*>@B)NV,+8ZO-G9?'7?8;TJV3#QDTJ[0F8\$DYZO9([HZ<]*OF M'?TYEK9S9O('%R!EE5[L=3V/RYX^DN0X_6[JBE#6.!]M(;R5A: ^%EX[R!/* M/ N,&97"W98]O2--W\/9'^;4*E#(^LT1\8(V[D<;%]7XIJS%U8MNA05]_")] MG'U''Y1A@$(C+6S(^1Y$^<)H_.&2L\11PPVC]Z"/NPQ0J^GUXZ4?])?EN3\W M=O.UTDTC)^5X"2K ;J\<[C@>P&WK"??ZY2/:9_F9)RU\(CZMUL57ZN4NM2^M M02DDQ_NNY;@P+PB73\Y[H$77CX-:GKV==V"]>:8!_\/]>6/'6NUA^G;OMN7/ M/;IV'V!;HH?KVAT<0+M]@9K:'XB%LH-UM-;F';H[;Q]?VH7!S'3,/[PDS-4X MEY3^6T-?[)-)#GG8LD(E&9&2)2L\#:30"I2GUDM"S$\I>3'<=)=!N?L--WD7 M/F.;<=R-Q;C J?SWUV-5\,J@UINF@5.M[L[&@_JC/5^>97;K0^TD_QA3QNMR M!!O;I>-N:T0899XTAGU72(3Q2#DG2GAO1'+18:P2G6WR49O'P[+MQ$;T*K5TCSM%[ V+\0U1=:.4 MQGN1IT4TUW;]>4\^)1$")U$5EGB%821%'1B %LY%@_8@5H9R'NXS3L0SHKY. M^+PP]LM1,OS@HL'[UFC^YW^@A-1_#6IWSJA_5NM]L]_RK;YZ;5_6H]Y(=[WH M0TXS^0+?[=3Z;62Q'"0DWRYQ?M!K'P^_O^1GF[N.?A[TOT5O^QAZ]\%]1@4] MA/X+USYQ9X.EYP^XJ^R-G'7+=-H?S[6]VT:Y>NGV0EP:?[WC+D\_F??[R_=] M[(G!%RO*UT:+R5?]=;[NHE@;I7?F>7NOD4AKHYU'J_YZ%]N_C%^SMEYN27?# MIF:W3V2?.<3/BR1GT>?"_L;& &JVNG0GO#;0CR8YD=F=EG3S!.-W*V_62UII[-1?K6_=-%YP M38[145_.CQ? ^OEDXME:-.N.Z[V]6]EJUC:6:Z\W&BN-U8V5MS4,5S:WZBO- MRYO4WZONIC+^,MD!^\>PQ\T^N]%<'V]83YP]?ULS6^QX\*=Y\/$_%9WOM00]%)M\PA&CUDX]GQ872P< M>ZY-K.[HV.6@P$&OC8\8_%=M_=_'Y8KZ"Q>? _O+A8O/M8GM'5U\U0T.:J_; MO9-%VST?5E<+QYYG$S.6I[L,L4S#7NT6#[^IPV;AW7-A>O-[WEVAOF&VZ!N> M<3QJC!3KKNOV2X;YKT%MK34(QX-!3C++"Q"L=%W[;- J9<8W2LJ<-"XO>A%F$ML,/9DR(HOR&K& 6EIF3V5$U/+-,22??"+]L7?F;S:O<%QSI9T MOG=\L?QC;:LU^+Q@I+D /_-7H\*,9)8,-*L U*7733#/MJE9*-W_5Z F EH M03=S85W^D[Z8:WE&C'R79_1]3MY$DXQ&.#W@$[^#4[=WSY%V&Y?K)2'NZLN":F8>D6GJ9.PYJKUT8]OH+FID3FSXA MFED,P,P^(NW2RYWNI1UOMUU[--E[E*MU><.5W,.P,RBW?AS+GP4IS0D$^-,9 M%5X,M,P\(BE;>KD&R1VWA[6=H[RT!'1;O?XE+EKPSGQ8^0GQSF(X9?81*9=> MUO$:%$$)4/M<&M!=$,Y\F/<)$8Y<$,[,(](LO=PLUZ//SUH^=8BDW]>[,GM8J;.?!M9++W1' M;OO=2OMW6@1P=M9,O?MZHWD!D-]?:)7RY9O66;T!Q_=95/$^E_UD148^^37P M[<^2QMCE5TSR.7_6Z+P\Y,8>^TL-)L MO\255<-FO*@;W5KSH'>,MX@(D?73 $?#VCN,]LO%S&LKG;P?R.#K>SSRDJ9J MV3+[*TN:*K4L].0WGJ5B6?-?VR;WQ\>D% ]36#/)_6Q_3XP_Y@JC/T5_V0B7 M:R[7+I9;?K1-!V>O(M8@0,>CUX_K@MYG<[;OMZ8( 0!E[CWU?:<58QNF4P$K M@\'EAN4'*^S>]K)C,LSK0=^^[NX=]R_D/>V_7A;DNGW$%XW_,T= MA*O'_3ZZ8\V5 'CQ2PBX]LJ_9*"'OL>$?+A6_K8_-^CCL-DM-LVK_>1,L) _ MP+^/6U]<^XI4O]H>WNGE26VJ"X7?[#G>!"O[>Y# M'0 W6H!Q202MO :9(J>.N*A%]./=?A_R%C)WV^.'3WF/G_JJ[83.Z^[FX4&K<;A/Z\U =IMU MCL_KU-GK@\WF.L-[=\KG=#;.ZH<[9V_YUL%NY[2]>;AUV%AKXS.#V#U_W6XT MW\N\A\\NVQ$-]D]K[[!^@M?1^N&'@XMK\%G'>VQ'-;!(9(WS?5E?^41DB,E# M*((TK!!HS,)3:@JBDZ?$*>MIIQ3-VPZY -Z^:_RN$=P_/F&3+OJ"GN:0G MX6RT)#)C912!>R>IQ(^><;!>,%G2$Z5L04^S1D_GU^C)2A*#2:G03"(]>5"% M]5H6T1,3HG;."+[TDE+U3%L]0_PT(5%?"3&X!8-AOU5NEYOEX+-:&"G^6Y4^ MNU\]W$B\5::G2:FG;Q6?&6I!-?>@FL;J=THH> !&G<_Z1Q:"98L9'*8QVZ)G:SI!G/J7>H&]CMK_3QS?!3M@'N\O*D%.#"DQ_-DZ_+10_.>6UH MX86PA;#!%(XK6^2>)*4D)88G]&3QS$H^0YX\2<4XZ]JB7*\2:WPL&'])5]RU MB[[*;#2Q<;9Q?7]L#0]6CP?XZM O$S(6I/00I+3Y?>^2\#&JE%C!M3"9E$1A M%0?D*"V3\"2%Q)9>VF=:TAGJQIYTW/74_7EB U,+?WYD?[XN,A)+1!&J"H/6 M*X0/KO ^^2(XZQGJC.1#GN3Q3,IY'9::=8VQT_6M=AOBI?Z+7Q,:3R'LF930 MN*CT;V'/@HTFSD;;WZD+K;5@S$/!@R>%4%X6GAI?$"\D>&=3HBZK"VG$#$4\ MB[Z+V507"R=^%">^+BD8D'Z#^[Z9U==7WLOE6-0&-"V$ )\X;22!2%12R44#ZIL9 M^?W$N<=R_:?42_*]I/GQS[9+;^G8Z1U!D/U!2")54(;U5AG:.%!FH3Q[A+&8\Z MAJKOF.S/1?_)'+CLQ)(_%B[[8"Y[37\8D8@V5&'H83'T"-:CRVI=!&$)$!F# M!3%#+ON4TH+O*RUN[DMY5NO"KTTE^IE:\!PT3<\<9[;^$Z: M0.)6)2D+KF4H!+>VL!X ZU !HK%M&P5 B3$UU!A,)&@H1.B;$L;W&@GRGYX)VM,]?=,NN::*/[ M!1VDUV\]M9Z3*2B7B[H^0V9:4-+D**G^G3CAA!,,Q&PAD\$@S'A;^$1,H77D M*3JN=:8D^DS^_AHRB^Z3F?7;2>F,A=\^F-]>'[SY?^R]:5,;2YHV_%<4S,3, MZ0BE3^Z+/2\1/@9[Z&B$CXW;#_[BR-64+21&BP'_^C>S2L(@@4%6290@._I@ MT%*5E9GWE=>]4V$#"1A@(BF@- 2@850JM'?04D8M2M6Y41LU2FZ?D@WE[<"? MZDBV_/EI*MID_M8/7W M',EPP5FDK0'<) M(A"X@C?0 *Q,4]MQH;5/$/>&L01'W.8.FF20CB_.ZQ7F& M>WCE)2,PQ:@C#"@C#$BK2:0B!EI%(VHG7RMK"]BDNI.UAH:(9G./RA]3 \V8 MS,$3-;_6YHC)V+0:;/HP'\^*K(W:CP&XK#H9F(_8I#B(2I%P04I/!8IZ$:5M MR>LJ.M4,;TN-MHXG*NZU>5NRN*],W&>HB/5&(R01@))K0!&%P%!#@=8"Q;7B MS"$1Q9VCMI1UI=XTS*7R>_U$&E1U-ML_UEIL=KXJ=J??LQFLZ@:KHWEN KE6 MU'K@A741K)A*.*4!-]@:(F0Z>DI?"UJ:F60S2&.E>C6%:K-4KTVJ9R@(U-Q1 M23W ,!6V-<$#PP4"!$+#@Y .0=T\J5Y3ZZK+FZZ^.>GM41O#4>I%VBIZK3CW MX$0/OOFJ56/J?C2Z: U]%)1B5,2;_O&?BTBR9 0;:0RC.I).K8-V2EKA250V M.8>+1#M48QQ.K9D_A;=2)K((UR?"=K3_ZIH(?W=O_DW=__ZS^PEWOYNO?7BP MX[YU#O$0C%9SC"L)%//=Y#SZ*/7@$/WO-B3'8 >8CW:1>!6"$ M4(!X;@4EPGL<;M^#9\7HN*5;9>OQJ*.=ZL'H8J99;XZ@66'D6Y;#= X MKKAWD #EM0.41*51*ARY.C$\]2Z+RYC2H'%;H;J2@K)9N'F27!?AR)*\/DF> M=4;C5$U-2\"(BEHW-!2HX!' 1J, F2(Z5(F^4#4ISG7=IN#&4(VJ^9E?FF@\ M!7VH+J(QF?.[P2D4Y]Z!'W[0S[BT$"Y]FV,8B@4E!3& 4T0 =5H!R7 4G I M@]:,N)!J?DB,\(L&Z4#9IM%,BO%+&ICMR93Q4GA7-<_5"Y?/]+JT47IGDM>X]-DTZ.7/;<[G?Z<8UPG%GV=KPTMF=;.2 Z,=Q!0''\HBQB(+PMI!+?!XJUM M3-I4+-V;(ELF&BO(]>7M94%>DR#/^D \89Z4Q5%34@PU!BBF#$!.!.4B! L) MHR"C-J'9,+%6,7S3[[NSHMO-=H<5LXCI1&>@J0]HYJLP.X=M\%X#[B&)0(-2 M)^Y4X$PZJZ4D.+ZWM4W:F"[=*C/;&1HKLW41ABRS*Y'9&7* ."/.<@BLH)'E M"^> TD8!S#A"W$(9?S1/9I] ?$09+%2&K.=Z0>L-AOA93^1J$DW&F05P9KX, MLM:46800(";A#($*R$ %"#80PR0/.*7JXD8UWED4EXH&M*AG8,K"ML$I3!K9:@6V&40:&B,=! $AE!#83U3TI1*K6I#RB MGFGF$[!1WB9R/A&UH<#VJ.)=Q(WB^*]"FZ);E41((2_O1WW[[;C?C1,[_._6 M;EDVX58SU#VFXLH:D;@*KC].Y1AF%^E6-;H.57PUHWP"+LM)7;M6]^<>>?Y; M>^&^[I2'O,93*E@_;1+5.M47J3S*,NK\(R-;-SWA8^%3=7<;?%OMGES^LG9^ M-5]1S@I!!*<<8 (MH!P*H /G@&+/G#=845W6GE*T2;6G:CK*,QX]2CRJN^=A MQJ,5XM%L9P!!-!>!@6"8!Q0A"A2E&AC(#>;%*VX$QZ@"%_6$:5RQ$^;(Q=7;8-*< M9TQ:)2;-EW#R5D!D*0082PRHD1&3'%%1]S',$"BXLZ2L,8=$+N'T>*6X1LM% MEN(U2/$,LV#:1$X1-& T,$"Y<4 C*P$5/L1UA%H26!9-9F+I5D+9>K&4[_&T M/RB%L1^JXDVMOHEC*XT9-]60S :.M9:/G +718:MVF%KOKJ34\Q0@VRJ&$,! M]10#R80&4BF%E8&&.96:*ROA5O&BZW<=B=/QJ/(R3Y0?S\IM%]/XB^N/E'5U:3KOQ><^/ MOAX?=PZ_G.V?[,/.SLOSHX]'K/,QCOGPR\7^CWC_K_\\.4*S75KVV&>+9'"2 M(8 YCR>W02)56F) $!>@5YH9R[:VYWNH/UB3H+S%-FJ+[*=*2 MI--2(!%7@ ME+)<\-4=( =CS[OC6J%]G#Z"G8/^I2YNZGYAE)E:C#,YZC'V0 M!$(. DY5.#WEP# F %;64V1U?+>,J^,P%[Y[O/)T/66&WRFVW\[DER]ANE\L-W63H MJHN*9!_4*H%JOH">U%X%I!&0COC(URT'DG $-.,"<9;RPVD$*M6FRT?0;E@B M>!;\=7*6+/@K%OS9VCM>P\ X!2)8 2A4#&@B5=3;92#2^/:3-Y&J-L QB=8'8?(D_J!!64%E DT- MT'P 2C("J,0:2ZL8-"R5$J4\FTT>KTBOQ6R217I%(CW#2^)"(0&)!-:X*-+$ M0V 8YD +[(VE7$*;>$E;-"K#^ F4X?A7O_<%C/S@)$? -8%_W!(WDV%J%3 U M7T%/6Z)4""1N)T13JR(/I-<,2"TX8Y@R(5791)FPN@KH;:AIY%%+\XJCX+(T MKTB:9\L(J& MYS9.:!1I"A4$\14#M+*(>X@$P3Y*,VDSGGL2/$!J7_MM2W#%+IO1:!5H]/>\3R:P$*PG0,8U Y0%!+3T#@0G&$."(Q5D"@8AN$G. MXVS5:"BUR%*\'BF>:VZ . E0 8>53B%=%&CG89Q?I!%2!M$RNZ]-T-*4HGF& MC UJ;Y!#/QI"-ZY@5$:F^I#IPWSU?XD]@9H#:WBJ_B\T,%9CH*$51%D7_[-; MVX*W.:FKHDF.^7A,$K^"F(\L\;5*_ P7@3@J$! )$)AVR:DB050R!$!6.(8T M5]S@K6V)VDHM72\D!WO45WV@?W)2C%+'\JHJ?G)0QJ'[GDUU\O_H]$>^A> _ M;J4MOZ&&K>;8/Q\6SWM%]__;&@W&?M[M>OF4+WONVC-F<;^'N,]7:>::"@=1 M (ZK%-09-)!,(1 Q@"(GH!=4)3&:$?0'ZWOP^YMPD9,H;\+5;L*9,\<(;"$5 M&*2>+( B*H'6G*8.?ZF2GDO6K%LWX1/PIU]O<>++%B>YK\7C3=I_.YB&;@[3 MRK=_G5#]U@_>'^N!KT77WNN\GL6[R]&4V_"M'AP,WH]2YNV_=7?L?]Y]0KQA M!L%[@."7.W*K^ZQS>/RU<]CM=N+3I6?O[/P=GW^/[+^)UXKS<_#QJ'RN^,P7 M^W]_%CH><"QE9XB4L$^I!\9A!""4BB.)J8?PU^?E+?OH]S2XO(\V=!\9+[1- M:?C8I.A8!WD\ABT''#+KDX?;4K2U#9]% )PW1L]GZI_J0>M[6M_6J1^TAFF% M7[1NW87E^\/U;,!RMPU?CD?'_4&$9I?-"@W=E; 3T(KC7]V0HSKT#/_R@GP_? MA]N.N'/V&2H1]>"X$RTW)E59VXE?S=_.L>#*TH-T/I(>O_Q)I<.VXM43O7I;.T^MPIEEDONJ=8SOCU!-8$ M.<.!E9@"BKB(3#(0@#DV&'J&K8ER]5__(3'"+QH45)A#@YL9?Y-E=X6R.^,. M5=HH'HP @UD*KGF.NQ0:T.\MX[6K MC0I70\FNEOH$]=M=W/?'_IM=^NED%W<./Y!/;_;@P>&GKT>']L>GPP\_XG7B M>W_#_1_Q/O&9#^(9;:(.CD0 R'H-J,4>:$(X0)QPX@V76H3?GS?FK4?E*&!2^A 0I!&YFF%D#1R#DQ M\T0SB"0.=&N;LS:YH?/$[0#<5\/['%EJ26HW4J'9OG)'6_]B?&#:V_%G_&"ISY>_[OO M7BSAK7P*==960%$F[HXLI8M)Z6RJ(<:"2R>!(:51%&HIVES) M9@AUG::,S6BE/;RAGM4RIHRG6UZU+CO'U0ICN^5Z9)BJ#Z;FNU$2H8)E/ #( M!4P5WS502'(@D#:62\*TCA**F&QSLG0S[46E9(/L'T]7\NLRCF3)7['DS_:/ M$JF+-G7 B>"BY*?>+2C^9HV2FB!K.-)1\CEM$U57MX?F%5A>LA7$PU.8*ZT@ MRL"-^U":U5:);YIQZ3]7]_B/!<-7T [C9<]E1%\EHL_W]T38Q/53)JJLYR#/T<.(:O\9T2VIE\Z'OP4@2\>F('7WX . M\0&?Z^Z9OAAN_7E]6N*<3 9$\3.1EN&V&:QY7]_TM?4+Q=PRB1N7Z57?^?-B MV&[M]>SMV[DYHYW*YJNKLOG^4B)3 T7=]#NN?7QG'GK!ZTR]ZGU\B2>XZ/ALH]6'DN&)XVM47SXM>.=#R2R^NWR!AP P%*.]7O?T3'E*QC 01$XO6 MY,Z3MY^5;\VPENH]02+.D%O?AL_0K>_]ZK((/4/R]K=_==E?OTJQ/)AGFH.ABJ+[/$@4KO]^+GC M86LW'A"NRJ]K$=2^1Y>DO#GNM3ENU"ONU,2:O7.2>;6N!UY,(=O\B4,K%ZT' M$-=FMP*]FY:5B_/.?_>]L1_^7HNX17R&=79R?,A!/H)]VL@P]+M-!9-^=WTW MMJ/6H-JXRP3A/;"?X)X/O+"CH F^@'L^VP+. &PL"511YR2FQGHMD--,8.NQ M\AZ3SSNE_Q-!!.[G")T@W^M!_R3U94U#^%B,CE^-AW$^_" JJ-UQFL>7PZ&/ M_W>'^GQ#' 47$T?!R>MOGTYVX<%.]_CH9)<=Q?MUD@,@_?OU)=G?^>OK_@]+ M]O'^%4?!_H_]'T?GG3>=;Y\.[47G\-W)_F'Z?KSWX9?SSL[1C\[)WOG1X0<\ MZRA(W^Q\W85'^%VW\V,/==X7(5+O?)F]]%8/ M1F6'^XPL]T:6SBMX-D$6LG^XCP_>*_CI_QU#>_+OGOZHQ@=?CW#GT'7W?^R2 M_1_=;YW#](SOCO?CZ_L_7/<([YT=?-R'G8__+/[?C]VS@\-O:/]P%^]_M;1S MN/N90*5@P*F_F]$@,N@ M/844 F%Y5!JGYHG83J?05!NNT5VF+/40^:I(EA2 M:()47B-)%.54$$7,,D=>WF'-W&$[]K.6+C(=2H!'4 #JO *&"02 M18SG*&O$&R:=LQHQ5X@%'B5(8.8!#2P*%&>1: 8K>5QZ@A-DTS9G2RO$N;)- M<^6<0N+CDF/)I:3$64DEIPYS1EA(]1"S!KEA(D#3 MH%-C9V\%1DI#N+4MVA(NK4"N7,X?@0+Y>YW&'A1-JCRSB3HX_*WT^%J2+#8: M9[WFRD%KD6"&"F\4(4X8JQ5W3I$0,I_:*)Q]/\>G,'1*8B. MCA$G!613T'. M0%2-O<2(!(G$UC9A;4+K\C!L2NY5AHC[63:PD )1Q2VGE II%);"!VR%TTBY M3,4V#2)FJ1AS5 E"XY:WR$6(4!@HAFVD8C)8AV!@A&YM(]F&-Y@Q-@HB'@%1 MV\!PJU?]X:@J M"O$@]Z7UK^_#2E*2P7@M64**L<2+4I@51I*Z8,F--?!U0M MP@P>]^%?NWZ05N @O.GW79F7[ ??"^N'[_O=36D!M EG_'R@D8?,<(T@L(1: M0*640!H# ?'06225<G%$6YY5Q^2S.:Q'G64H<@_@ MD4L=A D!2E@, B62:VB092QY23":K^'9-'%^!)2HD;U3E@RT>2RM4S: $TV7 M("+HSL\%V*U4I(RC=>'HP;RW60LN#"4FHJ=+G50$!5I"#9"#A!-B"(-J:QNI M-KNA9W;3W%#9W=P<7I1%>ETB/4N-B),"*LN ,RQ5FW-1TX$^]2YUB%+LG<$P MBC1J,U%7^=#,C1ZIN>B][\87O[1;7WS/#W2WY$C:G12]8C@:E(6*LNEH;31I MLAIOJK6(R/KRVDID<*T;7.>]R019+I@F +,@ 0T< L6LC]-+?& &6\=,*LO> M%G#IJNS9CM1SC?L MQ4((Y7P $"$/J" 8&!:Y$] 3$:P,M7GNI\+ ? MCEI%*>U$76:E3& >E^7H8'3L!U/W7+O5\[\7^+VY40\-,0VE9>CT M>_WKJN%EW$-&R050^996_ M#;7S/'*Y7:$I)\MMK7([PVX,(A)K18%FS@-:_B9PU$4(EC(PX8).::OS\4@- M$MQ'P&LVT#!3>L2,#_V!G]AF6B-]G@.0FD=]?AK!IQ6!BMXXSN3/+J5_EXP+>+N^6B@XV(4/3VXV!OYDV&$X#3<0;\,(_VI76:K>EW@_/<;@B3JXN4KSPSKL)G@[48[_\CT?BNP!6 PV/\S1,"<]XE;RU(8IZL@60: T#\ 9 MXI3%7E'M(FPV/F4G&[B:Y*[+LEJ+K,Y0'&Z)]T980'7*L0O0 *.\ H0%!5G0 MRJD4!]YX67T$-&8#;5H=/VIUHUY3&]=]U!TV%WOX9I\%S;#4Q?V7(U97<5 < MS9$Z$3@*&,63 7$,J&<>**\ID!8*$@F=1XJ5MC6V2EVX28:U#'(9Y-9A/LP@ MMSJ0NYC57*G"ED+@B/$ITM0 Y3 #:0V=EL%;'2J#WS(.W@<$N<;2Y.E'IO(G M2JBM6R^_QS6NK J)4^_Z8]/U[0J%$V=D,\";VI=>KCSC_6 ]]N&3TL M;%7SMNB.1]XM$PC[2%G%8^$.;_W@?5KU>A4E?"N%V-6#7IRWX?2^.]4.N^0+ M,/.%>_"%+_.9*[]COWFJR?S5+*XZF&^ZDB^KA>R,3XP?'(0)C2R)Q/!@/!J.X@K% MFT$1^I5=Y$%WS-Q6F?#/ MO%]6MU^H5X88B0!'/D1R*E,7!V6!MA0J+8.5P6UM<]:&:CZZH/%U)'+9EV5. MBMI#2?-)\9"2/VN>,,@Y;2W TD7)=S*>&="(5!H3<:-#8,HT=*GPD61W?:'Q;I>'@^\-VRV=>+L\*- MCJ?L]/T-Z! ? M\+GNGNF+X=:?UZSM^[DY MHYT*YZNKPOG^4B1;_1#_ZMMOQ_VN\X/A?[=V_V]M$ MTB<8(1]$V&\9_5ZO=7C<'\=KN.&R#U">=C\!L8Q+C0_2U:=#_WSZRXOI:5GT MRN&47WIQ_09)YF\V:ZP(/<-\4S8!PL\X M(O>Z[,V:#X9K8#2MT&T]5M-90CR'V; Z2TO'9'E:WNI97&S&!OVS M63/S1DW)RSC61+HCRR\YW%M=.%#TJC]>Z=,B]?[,\V#1DC<1GK6D77>>/=^?$-7M/59Z!>TS-W<_[=";MY4D4E;I0J::/WB+U[%=2 M7\>2UK'Z^99/X);K#M(K;00/$33PE^[JGO4M71J-_JE[8SVX:,T>0I7U+H=B MK"840W ?O/'00L.H8%P2:*2 GJA@2>#V\U[RIR-\ES]]0V,L.L7$9_[UY5D' M?R"=G6_G^SO_//GT]6_4V?E"/[W9/]\_V8O?Z7S=WXG?Q?\L?OK,_RKV?WSZ M>O3CRUGGJ_NZ'\<6_RXZ7[^=?3KY@(\^'M'.21K[!S3G,W^S]R-=\V#G9;SF M_H_.F]*_C@\._SKY=/CI^-/7+_C3F[V+SN&_P_X%O/A7U7@4=WY\8?LO/R.! MI:3, (>"!I1!!:1,8590$<C6W*N,S"M%)CH##"I8#Q6B /O1 0FRQ70@<"HH?&X<,&B(",P M$2G:7-50:2YC4L:D55,DFG '.BP5<]02HQEB\5>#26)+F&6*U @D.M]_-5/" M2LM H8@&.4 99@#PRD#QFK"*(\GC/1;VXC3=E3>&L21GD*7F-US/[#%T">+ M=Y61WC\M^T7=Q[.8FUFVP82H.U H(:5()4LIY,IY[H1U'N&%DXU+6-L; M#L?>[8P'<>[>QL?H3[(-RSS9F]-8R@Q;@$5J=6-%X3 M8(3"P&.HE&8&.+L"&8D AA-U1QV7B_[",7W=]CC'F9\C+E M9=G';[%]Y7Y!H87=7].4D=P77B!MDOENT[>9GR,C5/;5V# MT^.E^SH>CLJZ2H?]G[414E6$O=ZD'$*IP):X^>H*;+[S_S#[X7U ME;+[SMO^EUYYE=*4E^-P:E.'BSD'2H"::*X#$"D6AW(2U6&# [ ^E5OS5FKN MM[9)6PC1()M>!H6,W8]FF1[2A9*Q>X.P>\X=@S5FS$&7.EU00*7GP/CXF_1E M6TC!?>JQUC3P?@H.F4Z_!_Q*M,9L[LA6J;Q,>9F>C-;XURSSN!K:<2<+R1QC M$8XQG\KJE8GD4F" E9* 6JM2Q(%(XU_4/)+J' M^CQ>[#1*2ZMLZ!&UOU&_;.%:QI*UAGXTZI;]"%+V\&[ZF0][-\;7-D/4/R1BS3 M(I"\2EM!AN0'A.0YXX )3EMD*8@G+0%4: :,]P)8*HGU!F/G<:,P^4FXA_VH MU>T/MEOG9P]J=TNQ MUGAJ[?5L_\3_*QY=F;75QMK>S]5II501Y&$ VC$&*!($&.,A0%Z80$A0DY2FL6XSHUM"S&:Q;C>>6+4">P1T"S^".BL04&"P98< YIKR5! MHE%RO.YLSH:T]2I;2U8D:*Z_Y.*MO6HT0]VOQ>*&P-]B'EK*/??("LX@I,@$ M'1CUV!,JK)4"586=[^V8S4V_5E'7^?#E:+^X#GG>D_ M8LOB5V>&LG&!J83$ Z>A!53RJ'HIHX'V3'-A( G(UM!$+$-7AJ[F//5"+8 8 MEARC$(BFT 8E@T^MR:SA46*07P:Z,B^K$==F>!F'1".-$? \54H6E ")&0%" M(DZ0-(PAGGJ2T39?OB=91K>,;LUYZH7,;I ZB*#T\1^*B) :DR"1HE )&V"X M'=YRA[,'P;F#&?ZF@W'8, B(1PA0JRW0)"5#H, 1@PX3PK:VB>)MR.85T(4C M'C+$98AKP%,O@'!(>T^DH%[J0*,*:H1GP1&DH7:".I,)7#. K?SO?0*W(W*P M\^WLL]6(0.XQX,%!0#U30&J%0'R5.H8KWK[Q5GA1L?/E7P&E4IGP<1_-[EQ]2YZ5AX3,W)? MO4?$,T[EK6_#9^@WWXLLZ[>^^:O!JF="J(T9*Y6_.Y[UCY63V]]MUE@1>H;Y MIFP"A)]Q1.YUV9O/0XS6=""JN8_>0/@K=%L/^54SW%?@] M JKO,V.#_MFLBWZCIN1GL8;6_YC!G]LI+1D4O>J/2>6&5IZK:JZL'9^,J_S\ M'1\*6XSRS%0%#/IIFUS5\_Z[56EZUR;H9M1"]!>HU>RJ\/>.!]ZW]^+GC M86NWY^+V*<.(6I,((E33+IKGM-_$O\[K0HKTP>7VDCYEIMXRW4G%#8DIO6?NC?6@XO6[&FT>#SK MTP[:7RQJ57LEE-<,86HI$M0H@6APAFN*G4:RM*Y#A'/4Z@W&]73]([;_\9\G M\?UB?^?=R?YA?._K$3[8Z1;['X]@Y\W?9/_KEXLYXWI\ED]?OYT?G1SA([QW MUGES=-YY\[KH?#VB!Q_WSN/]X:<=>W&P\\^P?S%?2"@H89ER XL(%ZQTVP>&N;<+YDY:J,21F3UM5#!9H ,>.0,46) MLUJ%(*4VRD'$+%*9(C4"B>:J.$0F)'5 %,BHEP$*G08Z4EQ@L;>A)M.8^]P-;#'VR>)=]UEK]JNU$+J&_8DNWH,I8Q8F*F@.%P2FA M"*?!A."EE\:5!6K0M$ -NF= ^=YP./9N9SR((I<@P;654:T/DE!QA2GA=<%NV[;T%;3/)K V*9^UPFCIC)=? .\-3 MZ7P!I D2>$.]01A(8W"4OB MK7 :*6/#1^"I7SW_FN MUU?5_24:YN6XMJ9J^P>C8S_(*+8(BKV?T^XY)BP(0H"P@8"H,V!@($? 4Q,U M>V8@,3:"&)GWGFR\6_>1BVZNVI^7*2]37J:\3-F=5K,[[>2TV[_POB+7P*1> M;?%A?S9KRVZU;/[)RY27J7EJZQI<)E>:7![V?]982-45]GJ3L@JE FMF>UR^ M\_\W+H;%R+_W@^^%]96R^\[;_I=>>972TI>->K6IP\6OB!@ D M> JHHQ(81^)O@6/IJ8Z[Q#0/O-?DD#DIG.OZ!Y+I3K\'_$JTQFSNR%:IO$QY MF9Z,UOC7+/.X&OEQ)PO)'&,1CO$S$Y;N[QS!U',7@(P#:I!]"!X%6P0/E M.).08,%2PAE'V5NZ8;*?(7HCEFDCE,,,T>N$Z$LUL.R9L//RLZ.>$J@,"#0I M?XHIH(S @ 4&C=;4.\@;AM%K\AH^J YXJ,_CQ4ZCM+0&OJJD.^JW>G[4*F/) M6D,_&G5]$J\4M^?+E-5E O>>MA7M]BH(:XK<*^^2L/%U?Q"7_F,Q.D[9R'$: MXPLWPV1&OL60;S:63R)$=.IJY8-W@-H4D*R] %AP*8QT1M!(3AE>OJ%5MH8W MFY?F96H,W*[7=O"N.ED/^_>&W.R0J-U8,,7C8#WBV%N >8JMY@(!E7*H!:7( M>QLW@25E@@B<]T=D2&ZLK&=(WHAE6@225VDKR)#HRUY\);HPQ$6%MW'\OF+;5>XZFUU[/]$_^O>'1EUE87:SMX-5?F M%7)E)4E43:029)ZYRK"I O>.,J>"-EO;J@WY?!&R32[RFL6X3@TMB_&:Q7A. M^7+6<8RM L[)*,5D7^MZ.V=PS;!60 M-U]>!5EG#5$$V%1CA3JF@+$. 4&,\Q)#I8(L>X9165?]U/O)R /;GG_[(>XE MZXTS<-V_MOW"S[^A&'>#6[0N@,M]R)8$L=D^9)Q3HC4-P&'JHOI%.-!,1AV, M>6DX$A:&4$,?LD6W?H:P#&'-@C!IG"8A<&:LIA1;C8-UQN (6SX*RE(0EDE: M;?@V&Z?!J:;,> %H/&WB#Q: QAP#QX*CU@JA@TKMS50;8YA1+J/<(T2YA6QQ M!D)G-/=4>:H-4I2S(*-\4,]PT+^ N=PU[2'P;M:<[C"W% H"3# R*J5: 6U@ M5$JUPHI18JF+?(X(%K52L7P41(:Z#'5->O %D XQH[1&5!/A*(\T@ JIH.*1 MUEGNH M%\Q-G!'3@4SVM"HQ[&8(O-/D_EL?O?*@)#Z*ZX]-U\\]:;[G([YGN17_'.GX MP:E+*/Z87O!$#[X4/5#MWN1NNLN]]2]M4 4?W+N(4MWK]4;SXJ-\:'?MX*NFQ*T9E MC9R>\[VJ6DZOA)4R>3(4/=VSA>[&8<<7RECC9[<^\^3.%#\3+([NM#\LDXV? MEZF8Q7?_XJQPH^/I"7GEBY/IAS^_HDTN+)/ZQ2JM\=POYYO-^#"O M_$R#+P]:XH@SF!K$H*7!0DU12M-QG#N$K/*?D=J:?NEX\%/8OGA@!EY_ SK$ M!WRNNV?Z8KCUY_5IB7,RLPRWS6#-&_NFKZU?*N:62=RX3*_ZSI\7PW9KKV=O MW\]WC?;68WI]CS&5VE=7I?;]I:PF1_LK/3QNO>[VSX8/!U;W?)X_/DP!Z1_- M'^M>KW5XW!_':[CA8L,MS[29DS$.NZM/A_[Y])<7KAB>=O7%\Z)7WKS\THOK MYU42[QDZ5]ZO>ONGY#^#E?1/HDPF=YZ\_:Q\:X:!5N\Q]0S+V]^&S]"M[_WJ MLD@^(Y3^UF5__1XC*QHLO]=E[XCDN9,NJ;F/WJ#C5[MH/8DX2JZ,+Q M(+*,_?BYXV%K-R*2JX)[6@2UKRDX]YR?!S5LW$FK)C'<-VEOO^:]=RILS5YE M##&NZX$74Q@V?^+0(F+0[&*<]WOF@U,_B)0_ZAO)W/$] N'_A9&8)5LP'SMNR[I7."F_:@"UN\FV#4OM^C+>*^PYXC MQ2"56F'*.-9"4RZ$E"G.!^LJE!Y/0^GQXPZE/W@_M7"_+O;??+CH?'W]=?\P M?N;'N^+@\/7QIZ]'R>H-.S]VSSJ'+W\C&/L M[A]^.MX_W$?[.YWC_62E/DG7^T!F+=R=PZ/DCD.?/OZ-CK[^?=%Y\^&\<[)[ MOO_CP]D^WKWH[,3G_+A_WCET8?^BLFY?<>%1J@CR, #M& ,IO0D8XR% 7IA M2%#"NZUMV2:L(6G,:_+194QJSJ/E])['C4D_9C#)!BDI8A@H1SR@G*.$3AP$ MR"!2$DNNZ/+9/*7S=>V+#"0/=[\@5.):^YS#EZX?1U5G/9U%=9U'G_1P_CNH--@IB("TD@%ID@1)& "]/0%-_J>CWTMU?UVK"J%LVG%Y>F_7^EB7^71G40/@S] MR[1,5]=SMUK.3$%JP[=BCH(H)RP3E ,17*K^BBG0B$>D4U0H0IW!DE:5!I?. M*(^*:F<=FUS&>"- :=[])P*W7C )&*$J,@JB@&0F M*E#8"VR5T)R*K6W2EJ2NJC+9O-$\2:Z=6V1)7KDDS](+B:FVFCB@/** $FB MB<@,XMI2QBA5$L*R9_4-F;C9#K(.@:SR-5M#;\>#T@'6\GK02PDX@_Y):^"' MO@RH378/Y[_[;O^T[&'VTV%6?5!?=CT[U8/1Q=,RBBP2"E"_561T[ >=?B]Y M-JM0@ Q:"X#6P:LY^@&%D)9) 3!*!5,8IU$G<@)X";U602 #=00M.N];R=5X M'X.(UF_4R"*ZI(C.\@J((0P0<<"-3+Q"4"")YP!KY'B BFB9'*!DF6: V6+Q M6Y)6;O96G')0QMH4(W_R>SZ2C=5QUDP';HD,+-?ATISZ\I*OI:3,E)-YF:J9 ML6@1++HA&$,RA6P0(&DSD2Y$0-+:4X ]X]!;;E1@6]LU5!K*1HH&"O#J0GNS M *](@&?)!"<>.1,TX"(ULF0T@(C* DCLL=!00"KPUK:DS9#@IV2<>'6L>U_B MU:['ZE91&FXW+9ZS92_[ZLNY+M<[M%+:=^>/:S$E1/QTD MU_N.K_[=ZU4KXM]YZXOOJ11$SC.I+\^D.HFN57>32"+$K098<0:H1!9H%G\( M&ZAD)GA-X=8V;U-.FG$B94[9.,?7+90R"_?:A?OBNG!C[ZTT%@,$7S3>@SB6KM/*XMKK>(Z M0Q,4\0P3(D$@)4W@&"B*/%"..>Z4A<'PE#W4#&E]6A:*MP-_J@LW31JJ+%'] MTNM5F2R>EK6B$32:K-*.#WXP\&Z2+O"RYTJS>IE.D%6=&C%L?XYR" 8# M="( 29T"E$0M)ZXX!!8J@U50V%N35!VBFA3[EXT9FVO,N)_,9[%>3*QGJ DR M!%H?]0<=1*K-A2!0!"O@'4-*< X)CYJ$J*N36#9?+)S9;&U\EM&P=:HODD4O MVS":P$>FJ_*V6I1,/>K#J+_GJ ?#TEADHN9D* <4.PT,P0A(@^,+"DGN6:(> M$,_G-69[1U-%NUGFCCF!SC*[F,S.\(H@XUH1Y@"1&D5U 3-@-&( .Z>MY@$; M$6ZV4#Z.3.2-(!:#\4P>\E7CQ^3M*T$Y3\L2\B#N$^O.AS>@T^[):;=_X?V[ M*BOK7S_7Y%(=JI;KRCL9PA:"L ]SM,,*"ZFD 1"L*: 28V"$)P ;)I5APKH M(^U(1?ESW,8C%.K:6$>M0IT5C1HE?I:T"!RX%P$@S:+$ZT1:E*( 6ATPLD(P M[9*B(4A#9/YIF4*J7*1NO_<%C/S@9&EJLK&J4U.M(I>9D>/!P/=&&;=6@EM' M5E %JF&9%!F TGSN$HM4IX%>3%! MGB$@3DL:5PX#*RT$U!$,) \*\+BR4>W07J$4*(*623_,!I/?KD)?.2); __= M]\:_YXEY$IK3.CG'JWCC-*2/Q>CXU7@8Y\^&\^^OB0UR]J#_-%X'(/*4^;/LR'S]B%36::F H)X *38#! MQ %C,9?,NE2[,O(4U$9RF0:4BXK2!AE/GC \K+398X:'AX"'6:.+]($HR(%V MTD8UQA"@)9) (8J$L)2KY/7A;4IK2*=;.3K49)-ICR[*:";_?^.B+'*<781K2_Y^JR_* MYJV'_9]MSN=%'RR5;;R?;UY1SQQ<$[+1D%@1 (*$P1 M3#S^B 3&,D,\%D9N;;,VE#EP^G&*=NV1TUFT'TBT9_.V',4J94)@A 2@3%D@ MB6+ "*2(T_B^DC!M 20$0\HY1YH+S$0T >),0[&J)NJ M*.=,\<1%=YT?E$9P,K.346O;,YPH@??_"AE+E[I_90M'@]G\2B#)'^N4S;AUXA7 M/^OA'>SLG7>^?OO,30IQ5AH(H5.:.)% <@H!UD1KAZ)*A"M#1ZZ(MT$2W2@[ MQZ\%.A3GWH$??M#/LKRH+%],9?DE.]CY\-ES:#BW!MBH*0 *"0>22@6L2[UB MXR;FG&Q%HB$QPB\>:_;X!H8D%3=XY98Q;MSJ[]I )&MT/-*E.S4''*R6K5PF MEC,N#5<41&9"(EMA#"B*$5!:,ZM#0)R(J%W!-I3+Y&LM)$<;9#;)P4CK"T;* MV+ F]G-I>=%(.HM#LIE&]H.Q D8Z 2C"UL3E%H:8TJ]#:LBI:%XPTLU\K,G! M2),.1S4$(]T5(=:8OE8+CO#I>O[\N1_8(A65[HT(G8$J>T$D0AAZ+"CN1\ MZE#V]CT6L5VMM^]FLIE6I9A:,TP$6![/E*4L^*T7$98C2Z:(4I07TL[D $ MFVASN]E]'!Y]QLH' K$'D/,(3-H1H+ATP!"/ M",-QFQJ[M4USG:,-DM0F^/GF!36[]^H1X$OWWE&\]OYGZ0T1@0K@K2* \L"B MWH A"(1:I2W6TOC'[MYK.K]N.RI>(HQ_UNFL;7_<'[M%I_Z:@MO;I2 MY#MK3O7AVWPMQF"YT-(+ #U%@,9#"6@"/6"6&Z/CZ<53"3?4CN\THY1*-H4T MSTF7!;V!@CYC(O'2ZL!L%'1)4N5A!RGE#03 M=42+&) 61Y71"ART(C(HO;6-<9M1F2.],[BL/,P[@\L&@\L,06.(2*\\!HH& MGYJ%6& 8YD!#XP,4V 4OMK9E6[$:#% -HV>_%R?^H/$Z]Z9C+3UJC8Y]R_@O M1:^7+%3]4+YP6LK?8PGCJ5W9I%HY!1V6BCEJB=$,L?BKP<0K0S'[O)? $N&[ M=,RE,#)#7GV0]VV.3WDEF;!: XNXCI#'#-!$:<"QA<$ZJ2%,-G&;@? _YJM3:Q*U50(E M@$)P0"&+^JNF$@3J+??((2[QUK;B;4+K*C37&-?B'4:R#(<9#J_#(3-*:T0U M$8YR'1054D'%H](3907J2K?-<+A)<#@;3X:0PQ!ZX.,Z RJ% 9(B#HQ4&$GA M=4#)WTI16_*Z4FG750!B.I#)]L>P1+N;P7*1"@4_AT_B %U_G I@_D;CEM7> M\PZ5H)',_^9B%^_'IZ=5X+_NMEPQM-W^<#PHJYN7=#]T^V>MHE?!1-R6]RF$ ML9IE>O(-\+&PA-I33*:;Z&W<0QV?ZVHO=L;O MSU=^D\8ACZ.B(WE4>3@R0-/ @;=((6.1=)YV]44:K/\U M1JWKDX_*X'\/VI_:#91D_TK!WYZ[,9]FJ::<3>F[^>0UB5?ZM$@+[\]/?<\5 MHZCP72D\8\:CN"5&K0N?58TG=/+7KFI,=MGNE4VV-]EC?XU'G?[HR)>L(%." MA2C!?((Z1C8$YSRP/%A #:= 8D4!4D9*9B-[DVAK6]S0$C1K(1F+FHA%M6LA M&8M6A44SZHDE#DE*$+"6(T %QU$](2&91X0(F,=5A5O;3#0)BTKJ]V?9:RO^ MZXKOV_]3_JA&8@9_;E^.:OKFC/N#XBIY_K0_+$HK>5EDI_CN7YP5;G0\%8 K M7ZQ&\!S^_(HVPWYW/+K]*R=Z\*7HE7Z*&7YI?5*RUU_K"Z,CS7%U )0],I%*+_T M8B)K$RE-&W$&0H])I]QA6]] M&SY#M[[WJ\NB>%GR>Y?]]7N,_MXW[QPLN^]E'X,9J9'6HIN9V\U'\^4SJ?L\ M4P6W3;*!E=C5BK!U#YM6W@GWV@DW!E7<&8?2[&V2SK2Z'GBQ:)3-GSBTO]&!P$6?MW[H[]D\B M/O5\_^O?[.#0_MC_^/KD8.?=2>?-'OOT\6_Z:#RKOKAMAVJW1!]48E%2_#<"9_/ZVB^P] /^=RI)YB M9M1Z8/9BCGD:3]*!R4" )#)/&SB0S*=* $%SS@45S*:6N%#6E2;:H$S0+,HU MTZ8LRFL4Y5G&9#P2&',)..8&4*05T-0C8 ,-!#J>RB(F44:H26T%'RTEVCQ+ MY&'I'?[]TK:_3:^?LBK^2/7P7&'D,9TVG5=SQ)%;(R57&@2,$* ,>F"T,!D;54,5]3&&PV26:39*XNLM%0.$>\'>%&8PH$9A)0& 20/G6L MXC P@:R@R-=67"2;*F_DY3-1P.P7-5!6FM!V>P63QN3TM?V3>.OD:DP) MH/'BDPCN.^.Q)ZG"49'_&9G]+"=-W#[?XO:DB33XDA 11YS!U" &+0T6:HH< M(M9Q[A"RRG_&>.N195JL32KFEFDNA+%7LOWJJFR_OI3M]Y>R?1?:3@15/HC$W?R8?WR8@M@_YD=_3WEC6W<^<@*9 M*YB#\!I.S]O7M86>M29:8V=\$J]C:\CYGNG?IU,VY4$X./6#,A=I^+#ZW$7G M4I][5W0.NR>?=N)_;_;/DDYW].-UU*?V6.=P+^IY?]/]G3W8^?C/XZB;=?W_ MOKOX]-&=QBW HPZ'#CY^^I;^._KQ\KRS\^GK_L==MO_U&]K_NH<[.U_.HMZ' MCDY>A_@,YP>'1Y^QT]0(2X 2(74RL!H8" V BE +B21Q@BLMO>B-O7N9U&+, MO,68:,ZUHX1++1E!0F*CE14&\:V6CUKR:4*+P3@2SIWXYZ XG:9\_34>QF4? M#J?JW62-9S GOC>Y:Y4K5J[.G7>^\Q0M$EK$S28?C!_NE=EB0U\#66F77_VO M_Y!QD[]X5=&@=ODG>C%]^7KZ2/!635_OCP?35@0]^, '7\B1IET=) M^>DBY;Z-S;!PA1X4>_^V[_M'S@ MH>]V6[[WXR+=++W0CW,^2$F-(U_TXBP=Z]3OL!L9X*#U/<6ZI8F+L]FRW:)T M!Q5IAJ)Z6:9$#OTHR4!\X'&R/U4;(#+8* )I<>.(XTU259/4TZJDM.,3$Z\< MO].+@[L<2KL5H?LXY3/&D9S&"XWTX&*Z7NDU-[835U2\_ZD>C'IQ38^+TS)[ MLAI?'$$_WK>VM;I5C5[C(E9)HN7S_928@1^.NW$V3.I,GW;LK3;)H?^2)*O> M(B-[G==SYT^YJ@?A73GNR!BE6F4)TO4$L:;IY]/XRNFS1SR/#W12V&H?SKW<.B[/A4@R M>NE UN6)/=+Q^A$,3\>FFS[B=7=495.EI/Q^^IH]UMVN[WU)8TTP7MX\8D_7 M50=)'%G93['L!1>WJ3\Y[?8O?#J-TA&64+28B,UT*TZW?20([?1H9^DXU=5V M_?#L_;/)S2^N'*V3X<0+E;>.&KZOGC.,TU%\/DI3$2?P[+BPQ^6%YB?@K.BF MPM"#.-CN1:L_2 ?N]*\B\B1;'1'34;8OCXA^N#+BJP7E4KA'/U5A28);7=Z? MEOUD>G%@29N8TH8JP[_D!6G)C^,NB'>]7.2)U%Z4U4HQ&"=G5R0L@T*7]0S*X@;5NNSX[DB7'SV(EQW$VTX_UBY?+3OI M5,MPTWBF\]N[SC+:K9Z_5I2[FJ(T$Y'-#KZ4XXQSU+LJY=4S5< =!Q?QLE<1 MIEXYE<4H/.9:XNA55BJK^ MY2L12;[Y7YD$FPDUA_U6PLQXH/AJO=,JI+H1IC_915,Z&''B>^KOZ%,EBZZ? MSFS2]-+OPU1N\:*2],F).*6VTT6]*J+_VS_S)7T^J["NDH^T2R9;(3[9.,1U M& ^FQ1J[_2_%,!VH/X=4IG?&Q?;_-XY?[5ZT$R\?C$^K'1#7_(IX)F&-U[W^ MWT=5MK\ZBF4I$0N+KV/XEJ1N]23W+TM4T;/VQ=5#^LO6/\G&B1G?W M!%Q9CL0[(I$X28OP<]'CZGQ,"QTUDKC@I=Q5.NC52Y>;X5BG\^*DZ"7N>D5N M(JKX]$ AR5LJCW(\\#["2V]T/$QMM>+#758F* NJ7$I-HS2$\ARYZ0BY/#G2 M\MUP0OS_[+UI4QO)MB[\5Q2.^\;MCB#9.0_N&XZ@#?:U[Y9HV[@)^.+($82% MQ)&$,?SZ=V65A$8&,4I09Q^[996J*J?UK'FM::XPDN:&G*/@">,;WXW'&:,& M^#]!#7,8QMI@,)ER)GF%M^T!J[CD#^4^P\L2G$3X\11$_6?*>+*0N5!?8RY< M!N,@?73CX#<0X9L@< /'V_ ^U_N!??ZG U(3""4[\*:_@8O\?&85;/O]4 5K M'-<_-D -.VPU+D"EVOG:W/_XG>\?;U%0S7["MA?^G0U( M&=O^*478D>CS[?3X.-LYX-K8)M5&NU0;;M,=C(LW#W-R6AH.EK0$.R$X-]'I M "3$ \7JQS6JS3=IHZH^?EWZ_XG++Z!L"8)'Q./@?."E!D+8VI^<#<4AJ*" M#1]$$#Y!<3[/5^))(>>- .EDM*J#.G'?V\5 "K]DL=0;!3Q8$/T^;FS\,Q#\ M"KT'Q%2XD$7SK*\-,PL.3ELC^2__[EL$%7*D>V_]!D4^:_'O02EO]@I3TQ]O MOFV]AT>G0A<&+:=Y/#;G<:TL%](.'7A4%CI*-11& K)-H=N-F[J*[,\\AV[. M?BB*<)_7\A2*M^35;T5@V'/#++(@UHN70[G;_O0..Z>MD"4CT "+O8%[CD!Z M&BCI_5*V&WOT#0\<32F+_W&D:98[GP7"C38PC5;MZ\#.W*Y]@ 6I$8S^WZ5L M?!YM=R 3;T8?LZ5WHM@@*,ISB9H"\U?>49=$/L7G&]_ MX+\H],4K=W[48:LW;IDH5FKMKKM?ZXUQ\'&"&7#PVFFO7/62]BXK1M[96W9[ MW>6R&.1:(8[G)X.:FF7WP9GJE*H3Z%V#,9:2Z="9=_L-&$#"P'>7'7!$_=4K M-_B:DU9HAEE1.!FL-C?=-F MY"W-$..SI61T/3=>."YP#-0D'Z\Z[ZMF0;GS$9O#,3KM40G1PC4Z-+,M!$MK MPZ/2.0'=O*2$TO2??Y*),+6RI2.3JPU'I[W^9:%1"UO?/2[<8-F07%!N$?Y0 M'FR #WCOY<$I31R%:%!+MMD=&(!&XQI&L5U=2W72F@HWC^G.=Z'!L:/:ZX-$ M>]AI90O)_RZ2[OKG=Z/K816QH@+K'1Y18MB0?PTGG(DRH^=P.9O9WMP&I;T( M$1S"U_#7^:W9P#,P!PP?5K8FSR0W'!9L!B!LP5CFJ/H3:LYP>"#V4:_H#%>%T@)+S0UW. &LR IYE M"7 \[F6]MM%JE10[4#.&@ELI1?:[L"I#O\6(*\16$XY-,;I26AWI6.NSM%N; ML5H\HC7A>R]NIZTA/W]]5@/<^/*#>6-Y,@IY3B+B0E%D8] (AQ U#EAXZ5Z$ M%0 V.Q_ZR^U>00%M2BW(/VP@'P6S$![R(;_5K-T+S7S8TN9 M9FWH<"F?7K2\ZET: %K%9*;Z'A? <5 X98OGE@ZVT:,+%U!I/,A"7?Y1KS=P M XW$^-()<0)B2"F\#*8P=/_D OX'[4($6"L:K[7[G6XQ[ASZ=KD9 \&L[,PV M<&\<=#JA\)' @WME!$'A!+OTL%@/=Y7B178T>P_D%287IQ#_:O;,=L.8+WKT M:IL[#PQ N-?KP$Y?.DM"#FK,DF[?_AZL$&"X[Y^.Q8?YPIP0FC#G[E"=[DPL M3^'OSJ[R\D>Q/?3X.9 :;1;?X'$#+?#F7)/EBFH85^U[ME46+O4-P MPLA.=U5\PF5PPBB>82H&YIXA"F/1%8-HA?&(GC@=NS"M+3QRD'T\&_--=&%( M>;>*?:P\%87,0>L'/TQ*UBH=46*<(:Z#1=;AA+2V4F+)5"+F1<@ M:W36BRL(\[7:O&B/Y]N0+5L@=2]']=:^'69^\<=.YP0PCDK\YUIM,[I^86RE M?]4[H;![CECCUN^\<2"*')8LYX]OIZY?W,P51B+?G^VUP!B+FP;/^5:()N,7 MAJ]41/]9&/Y*O2^ M!8(2W ,;OMMM]D%$J;W/!L;MDZ&05H9JM7NGE[ZHK&SA2L$7^='"G0T6SN>%ZPPTA(%-V U]L1.2P"!8U\>1MR-$$-F+8-"1 M66%J2K;5ZXQ4EB*!)!_?I8S" L%ECCP\[F::GERAA?0*.VCAYBRDLZ&9.@ZI M'43<6J^@]CENVKR20-7E-W#]$@_6:K-P42A+0S3OCP\%MNXSB+S94CXT"1#["A MC=,#$'7S>N-YG*BX@+">8OP+,J@Q!I0_EB<4-OH7B/)#W_IV$0T_P-HI M+D3QG[?@*+6[LI0A;R^6=&SI9UA+,>)^,TW^;4XHS_X*0[-$T4 MYHV172.,;6[/@P(/^G@.,,D'9/"6B14NT/'\?_>RN7K B=9A6VJY3$VIX$]@ M8*=@2KX()LE92/JX8GTVTI1PFK=F&E)+X@?!_FL8A'@7B9.%"G9@Q#->8EQ<_?LZ62W\:"9 M%<"=)3"0#!#F2OM(8;P]SW%O@_U;OJG?Y)B:#KH:GG4?IT*K)B>>^?DHSN7J MWX4R>^I6P2I+"5./;2JZ]N67[@,@Z1'U9F&H6SOI9*&E4$G'KP 2G=YD1[]/ MP@TC*U>?ASUZ"L[7TM_XH=LY'NH1NZ BO1^X.Y;$97!1OZR#X,_J'S_AQF;] M?/_X"]^#]^T??^*-G>^D?G2 ]RYR!=9_#^M'7^A,'82+C;.]HR^X?O'Y>'_S ML-GX^/EX[^B P+WGVYM?C^J;\*[=7'5U/]6//ETTOORP2?) ?4+24X^XD!PY M(27R*>:&!M@F9J:3&[ BU%J71#*"TQ0M[*=(GDG&&4F83+L8!CL //72XWN' MG)J;WSHY2I^' I>PY6 M=_6X&XB*V?E;L"!;:J\#,7,B-T&:8:EL*H >Q<]"U)R!P#ERF@^\'@5ZET)B]MR#\3\C^\X=7 MC&=.A9!2))Q]V<@CG2?T,Y:!V?GY@[2.7NV/B8R/M=I[V[;!EJ/\;U:^AS_] MW\(8N>?M\H6K4)&AZ?>O)R0T1OA=9II M,">IX8+IR#D-QG*)&>%<&L.\M';1(3^NT# )L[FX4D'2.YF.7['$@.L'/SRC MC'KED@D]1M[LH@'#2BV^''_X:5L)NMHM7%S?]-2EK9Z*<*O=>G.3R M\HA>UW%)LX-&1X,W#RZO%Y>F*M27UZA:)T1>>1FODRNO7?=8 @,B5]]ZW6.O MOR;8U2^]QV"%$:LSV,=964W9Z@RV.@9Y9?6M'GM# [0;^P80,?/;.0UN2J'H M>5J]S!@'RJYHA4&J7AJDMJXQ2%W3J^#5+@Z96)S['J&QYA8+M#]YKA74MUK! M.24:;W&@;C7_5[6.E6M3>K MU,6LZ_:HTYUK07U[FU-TK[9J=VJ^=4/;R&J0U2!?UR 71JGY3<>7&J7*$B*W M^?N?$LF&'IO[=&)_YL:QMUR:VW>.G3?%9VH.>\NY+= =5JD(8W%1)XZYLTRG MQ*7V/H=1L&#P#5T89MO$WA!DL/5[D"JZ4:1*Q[!C?Z]$<]B[.AG*YK#'^S\; M%XTFC #&]G>SOOFUU=C\?-C8:33W=S\?-^C617WWR^_MG0TVW1P6WL'J]/,1 MO.,WO/>L\?$[KA_#>.GGUM[Q'MO;J>?QBOIF2/7SF3[9D5)"K:&("DX0AP.# MC.8&< +F*W4T'68I UW<^:Z"B%E &QI"SB+DBDM>-( M),D B:C5218H:B/U,1(625KK1AP MD2G@TEPP)X-!SDF0L!*SR$22\_TR8\)!VT@K6:O"K668VP*X99R)F@GN ^@0 M3DJ3@@?$(E*P I$*'"+#'&+5+BU[+C%IG#+VIB "6ED":.(8Y60U;G_! _" M$0I:H@IOWA&\1JFL<*O"K17!+4F""M%(G+0&H8L:(76T+&J=A$S4/3UN53KB M72%+3$$6,RS8* RBBC#$F;7(F900-I)CQJT!8;O2$2O,6HJY+8!9WCDM [7* M8$AO5P3NMB:S$7G%8B=M4H*)8,SNC)SK1*$-=[/N!0IMI9Z31%- &.<<8&+H&$1XA7B(@"=*T.0$XPAJKWQR46&OIH MB O!<^^2\\%JSB/3PF,B*SI?-3J?=EM9HR*ECB-%4Y''#,I(, J9I+1R-ADK MW)MW?$V*>WNM*CI?7CIGP,2+PC+" *(+9ZDV!$N,$]9"AEB9'E:,SJ?=/%@S M:S1+2"6-@9_'F!LQ$12P58P'84AV\_ UC%E%YR^7SKTD&OBXX9X$'FVP@.]: MZT2$-\JZ5-'YBM'YM&\D$"\P"&D(1T=1CHY$5M" F&%"&9#@I$MOWK$U7='Y M2Z9SCEEDR5,MM>8L>,UUKG G!1.)4>2X M4$@$D;#Q&$@?OWFG@-#O[4EX0$)_H,2KXMVJK/>US+Z$(C_VLO/@HJZ;6^<) MOU O[^WG_V)PVRNF8Z[0!HR;&V^M3J"7P_]+)X@FLK*WK!1N?YOQGV E0E(< M(VRY SU,6.0\D\A[$[ET1)F@03YC:]C5Q+!8>O#@XC]=1H)ASA MFCL='$Z)@B8C%:51/4>F5P6']X+#:3>3]\30H!TBT=ELEJ+(>()1@KUV25#L M6'@@-]-K0<-7#84O%0?O4LNWPL'EQ<%I-QS15AO*#4J")<2CI @.OT16!4E4 MP)B*G#TFUAA_J.RQV]'0JJ+@:P?"EXN%C,KD,)?2VL0M9XY12K5DG#MG1.25 M:7/%L'#&50G'EE*AD9#&(.ZL0$;JF!/4K&4QT.3DFW>$KU%:J<@5'+YR.)24 M))Q;$3"+>73:)6I!7[8F"".<)A4Y1CJQ'/"6'-/8<&2&L MCCI@ZM0#>70K-*S0<+71,%"E%>%&>LDY5]H9JE5, (_!$A,JO_>JH>&,WSMH M$Z3E&A$B!>+2$&1IH$B:&!5AR2B5I4.]!DQQ5?!PX!4?#F1X^$NT>]Z"J@RF M%#JGN170$I=]K499C7*51_D:ZA'_TP7^UST?Z_AH6S7XYF?L]^Y6-_T&\;!Z M1O6,I7_&4_=+&.LN^?P]< M<&'9UG>JY>8>@Q)>FQLV;XLO1U*2,A"JN+4E< M\F2%EDI(::@7)E:5 E9+4]N>K10@L(]$)X<"I;F2KTG(J&"0"(Z'*$7V9.?0 M#B%>8"9"!5LO%+8BI4H3[#&3F!/+#!'&"R*Y$II+-*T1]0(+G%2P]5)ABS$<3++*2,,C#\9X[[36 M$GL>O?05;*T8;$T'D*44&-=1(N*81#Q%@9SR$GG#-;$D1&=Y]A*J^UO%*]BJ M8.NI8KU2\#EE51NL>2#$4)TD)1%K&P"GGJ&*;P5;]X*MZ5BOO(\>\X"T%*E, M5S><""24CC&(*)(JXO^U>H%EIBK8>J&P955*D46F(IQM'H,6P4H=F6;!&BZJ M*ANK!EO3,5FPJ5Z%X%!,+%?!) X S&!$<)0Z$B4UQ2SJAR.(1@+,TM0(+PM(*M%8.MF> I)1DA#L0M%91 '&N&M#( 8]C" M%0/,2HE5/)JS'B^OY%&.@(].:SC& MGN/HK5!82AV$58X*5UGF5PN]9DMG2&4I)]8C';!&W%.'7(P<">&]P4D)[&PV M<6$IEJAWPD,'FKQZ.H_&6ZF,(HER3JEV*ED5K=4Y-2SH*A=ZU>A\V@/';-Y7 MH9&R))-SJ=]/-+DQM@Z>W9$1)RG@+3U M!K%H;(@B&N,*.A>LHO,73.>$:LZDMC8*SX56-EF<@*J=898)5CE%5HW.IYTB MQN*@DO+(D:R?*Q*1\R8!L>?&K(8807&6VQ6O]/,73.>W@17D7C!"D3J!W2@_81.*B@-BF>',[=4E2ROBK O5+H5=_9 MZ,_T8 :F([# 2&-.RU*+EH+4$A@QB5IBL(EOWE&UQO4+C#FK*'U(Z4*"$D*M MBM0H[KFU5A)#I!.8LEQ6\.DI/35_QX N8K=3$?FB1'X^2>28">RXL*!\Y.XH MDF-DF>)(F\0T#M)A8=\ -6M*Z%\5E;]D*K=!1FF)X()S9ZTVP6)@[-G,Z%-5 M07[E2+TQQ<\I\SYA8A$V!/AYP 9IC1421FK+IX M3+TB])=+Z"#"\0003T$QYQH[!QH;%\YPQE)4VCX]H5>"^YUI?'N*FSL)NVNY M03A1EB,#'#(Q\_44G".,1IG[8U6"^XNGY4K6R\; M/Z]:F#Y\HZ87EB6VV.1?#&17S4M?%F1OS?A.*(^&&1#,DLMQF]Q+I"E5L+[$ MJB@2$;DXTM-T+UVFZ(^'J\3_RI#PY8)AU;KTQ8'AE#F*>4,$SJG_V"G$K0M( M.XZ1-C8Q%G62I.I=6L%A!8=5!].7"(?3?K@HA81]]H(D#]X2 M3N!B>*H6IA4>5GBXW'A8=3%]<7@X)1Z"HARIP1:YZ"+B4H&NS$5"-$4B$\9$ MYQI151O3"@\K/*S:F+X\/)SV[)K(&,-8H: -1=PGC9R(&"7E4N"8\!2J/J85 M'%9P6/4Q?8EP../]=IX(G)@ ?9E;Q%7R"#:9H^"P3H%&QQUY&8U,Q35]3!=I MK/90W1^K=U;O7+ WYW_Z%G[X;DB'C=.B:=TPC7(LU?/8=@^:[9+$Z) 1/TGJ M9_'$M\T^T*6_GAG1S(R&7*#VMVW9MH]3_??F3\G,G]'$HCR W7>2=T1=< MO_A\O+]YV&Q\_'R\=W1 X-[S[-?NUGECQJ<7G(JSNG,8019IM3IG0)VU@A1K)]W8@R/8J[G!^:UU M4C&WXE#;?#YZ:R!BP?%HQ5#K1A^;O_*=\.WESWRGEW]EVV'T76MPI)KPR#^: M[5K_L',*@P^]/]_6AC12#F$24V Q6O:D%]\./_P5FKV3ECU_VVP74RIN^FM M327?S*QQFJ,6]%5>_NNL&?J';XU>Q\9D 7(0=C9X<7F5K!>RY90,4%Z3;%U1 M?>5EO$[N>$UP<:<[KQLL$>N*7WUY"0=+;_78&P(&'XG1W:$HL@=ZBMVG49G, M%.&KN1I3W7;]88V1M5IF#K=H$OWJ5F@3<.W8Q>YPDQF%C]TNN(G:V7PB\_S;W=OX^!,&WU3BN MG^]=_,2-CXV?TP:8^M'GUA[=(C!^MKWY]W%C\\M%8_?S8?WCUD7]^#O=N_A\ MM+WS!>_1KZG^#9]/MW!Q(F34E'BKY M8#DB62NTJ]#NUJ7E M.76.2*1A][)IP"+GDD/>&D>]ELEY7M1@%?>NP?HD:/=$+6&>3[#]/L=P<2?I M]IZ^QY>,ZO.F^&*P^Z$DU>%!_#HZAQ5@/S1@-V?$4Z44I]1%Q+S#B$LGD"/: MH5S5*CIK4B(VBZ="\R6JL5F!4@5*3R%05J#T)* T+452+(!S:(]T[M', ^7( M1160H-XH1IP+VKQYIT&*O'?;TP<$I==C!"W<6<]A WW)@/RB6[X^F#W3GA21 M!QSB,C=B_Q.4*>F\/O>1D8 M0"^72U0HI<*>"GN>Q+I88<_#8L^TV,=4)$2*E!TD%'$XC,AY[Y$SW&@K(I8$ ML$/O@I*-#^#*E7NJD87:TU4/^M3X<.N0E/<@/C?[_^WT>EN_3V*[%V\L]8U7 M$Q3NG&W2N*C3']BFD&(RB 1#$(^Y=J\%NF846R\#8+8E3YGQ6FWQ@V\QDT;' ME/LZ,NH1IYXCJ[Q BF-A36*",_?F7;LS ]DS7]3F0M!3(4W>\EKS^,0VN\< MQS5_"% -C^_&ENV#KMSOU%*S;=N^:5N#./):D?<3X4\WQMHQO.*P5XN YJ$V MF9)0I [E\[A^C_2YI<+EG&O5;/MNM+W\83JEJG9F>[63+E!=%]Y="Z;9X:@$S-R;E/9LP,5B BTPV2RE63&0*#JN6U_YX3OR9S"%\GA1" M4+K6<:EX+9Q#*->UOEVFVT()='P=&,AC9/NQN^40WCC8VR41WC?;S[RP!+6= M@H762Q:Z-AMX62&10_AG?M!/#KI2CP&CP-6V(?QE _VJ!U^DGL'7TA>\?P MW)T# N\XAW$>[1U__KF]V3B<\33LM%IU6C^O;^Y=[!VUFHW-?YMY#MN;WV$^ MGX_J'QO-/1A'G7Y(PX8,XV%R,7B73$!8>8YX5 XYQA1*U+,@M(A)I3?OR!HV M5=I$A5BK@E@/7@UR4<2J0&D14+J8!B5#N2=>(^/6B_M36QEX?@+#P]'3AJ0.X M/>DV01.PK5;'#[U )S>I"*5WH]GI#H[+U;DVU[7OO2TW7FF6];1"]OO3X],6 M[-*O^-[V_>'WDXUP!+_)[KZ=SH"?E:?B4WMK!Z2;@*PB"A"47<,(>,4@Q%$;6PGAK,-!#^,JG<#R3?KH0\=*/ILPS1 M:,/;\K[\*LWIDQXK-+*YWY1;_L'D-BZW M;&R?MR^W^=MPDR?5^GRILD0^&"8V9X0A&7#B' ODH@"E7V 0AC07R 2=# \D M*>W?O&-\#;.'*C"X1$F[%1@\N#Q4@<'J@,&T@$28#='8B(*+H!EY' $'',NU M1X$L,!/8RS?OB%HC2Y7!_^*S:';9 MIB[(2R&0)D8BPP'IG1(4&U;UNZZ LP+. M9S +5L"Y/, YZPXWCE+*$4LTUZ)."8%HG%!2BFG"N8WDA30^9*^J\>%,OO1X M8M,R94P73[Q]I[QQ\^D(/.[3+^\YLI >N4G?)80>VV8.OIX+N#G=UO=CV"D2 MZK93"< E9;_V!G[G];,?)$G,N.<@2,HB>E$@@ZE%+@)'M#$*C\UT S]E?+3. M"ZVIX2I$32CPJ62B<(Q:PZ<;^,WKI3<(K>^-A4H,$R+C8,MR?(2;E]&23ONG MW3B>3'M5&$7_T/9K%GY[VAYY'G(LA05@M:W6^<2%031_;(=A''\WGG3@ES#J M0?1%F<\Y.^;0@:FT._WAO,:23[/=#-[9! (%Q3^<=@=C@U=TVK%V'FTW#ZD5 M>[DMX"#S "[^LMUFL53PJ%X3D+',UK3]?K?I3LM5A*EW.^>VE:UO:_DI8QZ3 M=CP#.69\">+OV/7-7IYI\88B*:KD;L/DXO79JA/CD#,+L6,@-*!]3M=5]DV= M='J%E>]ML4_-7W&4%YBQ8>S&058A'MUB'?#+T_[5M\P#O/'\F6="/(*GUFOL M[\/NB"<>1.2ZT?Y$-L%@W]K6F3WOO?G/Y!1A?E-+NLAJS,+_N__CNO^9WM ' M2A_&S$D \%TY)P&8SG "@A6TACFI;57W7\Z$XPPP(U!U-H,,[/'1:3@XCF4JU:].ZU>)X0/XS+ Z@/)"\NL-TO8' MFM5$VGZ!RP/XRM"5T;>;BR<4@G*O=G+:[9W:=O';;NQE!@*(,X;"5R+>LC1< M%>N,DKLD2S.V3L4C=!LEZT2:QTB6EO*5#Y:N"_$836;C4S@ [,_Q.9&67\L>#6 Y6+9V: M/6Q;X56;/G^RZ:\8L<#:B**\$RB9H!YDW> QR.7>X+GJ9[#PP3]'28-G=9W\ M,UDDZ\&Z*[YT#]K"\W\Q'K087'2$DQ1YXBI)(SRAB3JG4S1R4 ;W%A$'M[+4 MO@P?U_'WWXW=/=(XVCC;.X9[86S[FP>\<1&.&IO?X;T??N[O;IWE/],^KOV= M+;)_])W6-_]N[AU]88V/^S^W-P]8@]9Q8P?FN/NUM;?S=_Z3^ZU.!PLYQ91EXBG/%AEZ)MW\MZ! 8N2PY+WR\-M40E[H.PG&E'C.5"T(!=K-#L&=&,3*,932IWNT') M*8YX$AQ9[ VR@'*88$V,RV6"\*/+9Q6<57"VE'"6E#"!>FTLU=SBZ!@5G@*. M41,=->F!X>S%AUL^'=:Q*:PS*040W 1BT7G$N20>*$S::<0!4JZF6CFB*M0Y4X I'EQ5'?P_- M>HTCS[=W0&@D1GDM0.K>-F)Z"JR1%SPD1'""3;&8V:2IU1A%JW7%1(M M)Q+-EI90P$FL '75,8X1CX$BRRU!B?-DL"4A>9>+W%*Q8,6=QQ//%J@3\<*I MT%A&M9#!$<$5\4:0@(EFE#G.M5&5F>@9"6W:Z!U55%YBCH(V!C@^9L@(9Q%+ M0E/OB8T!Q'_-%^3W%9D]?B_K2+(#EC$E+.<9+HW6L)F4L)R'ZA^1V7%,C/>\2"4\X GQ-2OP%2TY30ORH27#(2=(%% M;3&3-&+.A+11N(2==HY1YR*I2' )27#:> @;1Y7D!@4G ^*:FES942&32&!) M1E"%5Y $'R/Z\K60M35!1TFY0,!=@56'GOHDQ)5N"[G. [6SW,^B@4$P0Q*1SBUG%DM+%(>,$B MP9:0%+(-CY%[5\U^+3'"%>R]5-C#U-N$!4@H7G,BM"-:2AF3XX0$SQX:]BID M6P39IHVFW)#@%"4HRI"+V&",'-7PSVSJ=A$T?^[>O#,5KE6X]MIQS265(I=, M$9HXU\FZ%!+SSF)/0E!5!L1SXMJT-9I;FCT* FFM%.)$$J234TAYKF3R4EF, MGR1FN,*U"M>6&]>L9DJ:#&0T![T)8RQ)B2MOM='.5$%O2PMZT_9_X$*2 <"A M( E!7+L(H,=S1JL6!@1Q+*U[HN#A)8.]*GZX@M*G"&3(:4I:\:AMXEY)IZ)( M@1&+;5 \5.Z6I872V?AA#2JP"1I)32/B%!ND@2$B!3P1_E@G-'WS3JQAJ5<% M2^>7O9;7E+V^>V?-6SSCP0IE5Z.L1KGX*!^CE--#SORF NW7E&PO )\%%ASE MC@CL>?+8[N-5N,H'&;N.EWJ?'_WTSEP05&GGR[@N;2Q^?.LL?/S=^-CG>\= M?SC2S!68,W>' M;K'B2]^&X6_; W!IPRZUAKO4RPM2:_;@?!V?G.9"]NZ\!A-IAJ)"_V$<_1PN MY'^7;X@!69#.[ '\X/38E54]BX<5Y97A:<>=/#_ F%KGM-_KVW9^XEI1W3X7 M9NX#3>37E3^Q9[8;>K4_KVVV6P5 MXUU@.O>?RO#KF1GE$<\?Z5KMI'7:J]E6JY;Y8CY1MG7YU/)Y16G^L\YI*]0. M82PU%V-[\B6VUSO-?2M@,C#M7-'Z!%A'.Y?9GCO"0QO*IS3AQMQDN0/3@CEW M1P_H17_:+=IUKM<^P.4\PD%S@]H)/",7:PQK<]9W+9?UAH-4)+N5N[!6-!9H MY@.>Y?5:KYD;,%P_Q'Q'_%TT21@T@QOGR-4(HGWK[!RT:>SN9P3[Y=[LGR3>S::7QJ7YX=H)GAF5F;(+/: MU60V?M1/X#'=8:EW>W("ZUCB\* 51[\;;>^T>SXX3<>Q?]B! S@X2KW1J6N= MSSOL8T>MP(C+9X=Y@#).IT!0WI[VABU+,C7V3OWA;:N=9;6B=TJ-D;5%"FQC MUQ3OJ31L%+T.5\,!?$?%8N AM\>U7\W+G[B[9U/9_N;7X_V MCCXT]RZV6./H[^/&1?UL>^?#T?9FG4X[@/?HI_,Z_&Y[!]YS]/?/QD=XUN[G MH_J.I_6/L (7&P+&R.L7^_/*MDC-J?<&-C31;/(VH*)X8A HB482:@-1/OM_ MM3$S_M_[4-^]@+ZBX*LHV+- $_L-8108C(%CZ&^U0RC6?VKU^][2X\M[V#N'[ M_)]\[1?0!GS[O=V-@$87,<"UKX./'VVSWVRF:2]/]CU^/_X!G[VB;<=_&=P+,)$-5YX^/^ M81W&L[>S_W/_X]XYW$OK%U_.&IM?4_WH.V\<_)#4)A9Q0D&D' =O,#):$X2= MCH;G\@!FIDEU(-RYE.!Z8#Q$91PUP0NE);>PBW+:'C>V>]GZU>BT$6B\/V-I MFAJWT%_7('FN$_'FH4P.G0<'_)EC[P3\PCCC8K*&&I*4)YRP*YV.F<:6U^[UF.J_!:4#'HXF%/+&1YV&M=G;8S$4BN[%FO<\<<^"9 MR];17[;9RGR! -5,($S!+:?ML9N:;9 :>F,NDU^=[-V# MUY^O#7KVKI7/&>O6/O#TC#EM8%Z'G598KZW.Z2"T/!TA]F/W&*[4#C*.%RW> M"RS/>U%,$S8[?PLCA@4Z;?8.B]JAV8]V[7D:[)BMY2['>?$'#M@T=)B5KK'U MVHBI#(:0UWLPAL(;YIKIM.N+/O;QV,60K7P@5 -3RD?D\N!VX\ O7)KZ84WZ M_1;\M!M#/#XI7IFBS4[O7ND0AC.4I?.RS7QQ3N+OD]CNQ<*MO#8\T:=M"V,A;$>&B<++ XC5S#5#RC>OU[Y. MCF%TLF_U L"$SG&L_3$X$W\6AV*5*'SH^6YT?L7"HPT"(5[+6'4"Y'1H!^>X M4#,+M]9I5E:;[>),MT$6[0W#,]QY;:,+"VEK[SO=D_7+0)CRRV$H3 ;*6K3= MUCEPW.Q('_/*V19@,CP22"K$C,;%1=L&E,T./_K7[=1&^_ ME?<^8T7&W>:EI%LX: =B3'- LC,"R32J-+,I'1Z ')S)(C9I$F;6:T ;GT]; MYYDN2$$7 VJ(Y?NO0:GS0OC)N&&[W?-";BB$& "/18ZR83''Z,'"2,>IL!H; M+9TCSCL<]:!O)<%JRCPRIW=<&+AJ'5JBYG(B+!,&U";M D\.=A[S6#W+5=>\J#I M#4;N3XT/TX<@[WQY$'KP^O?#HSS2Z4NOQJ<"TLGMS@A^W6>$;V_\("8)DDW3 M'AN*N* :.1\CLI$"I&DMK,MIGEBM836+;&.1FM^ @<.GOQ'-\8LI=KN7\:5P M=8*_;IYVA\I.OW!P'Y<.[CCIX"Z!ZYD#F>>+'<\E?18O/RNE.U#YLO"W""#? MR;IV'3*/K#6?"G%RX[@#.'TQL%-O-GO^]I;IUP;8]9T-L;WS_7=]9^^B<;%W M5@<1 Y;>N-R<+B0@1ILLRLUC$#/,D11=C)Z_>8?79XLRUD98?2D9#$7\0LF\ M_!*DA79IB>B<=L>%D$(=;/8F!8$E#/&]5C/;.#*:FP@Z5O)6D"3+RO!PC*I=?L)=%H*' ME(A"N0$TXLYYE#MD@8S*A*7,NZ(:8KLSQZLV#8'-2=?!35:80FHIA(U2VAU( M'+10T#:C+XP*$Y?($J+A[8W_!3Y.&?\'\3XK:_X'%;<4%_/&%3IN$6%61$Z# MSF)KWPH!])^!0:BV<0#B9JER9P6W%_]G-[9::SG@:63V&7P[9O?)!O=?MA]! MF3Z,K5!SS4X_^L,VS/+@?&3J.3GM]DZS#1Y>7=IL)XQ1BVE0BF+0E8T#8DB< M"&ZI*9+=/$F<:DYOY$D^_.Z]+3=XM+^[S1SV#:^P 79CM9%Q3\-U@="?;87E%$9$;0 MO\,Y6B0JY17+_ODTO/P+E.I'D$<8&&&$(%FGF$O!%#UOH K/&OGDGYI@7 MA[+_%'>:'T8R6:^#TW65CR+0.[=I;XX#'P7?Y=00,Q,_%)#;EX6[W3 MBCE%MEO;Z/5 1&P5H043\D-]X]/@$\@. \-7?L, WM=KH*3V)J/D+$$O:!['(!S]M9>=W:2D8"Q\HXPR&O\O#&B49=W+8 1P#6(FQ_1G&#@#S M*+UKW?4BAN?&31V?Q5C81!$PD4]%-_^\,!OF].?2XSKF,ID(UJ#W#=8H9S&U M1Z,(C6NC,F#50YGBWNS"J;)=F&OYF$ZW7,/+!9I=PO,Y"]A;K^W";H>C4]C; M,DE[VBES(]F4TN@HNST?I\%ZAY$QMLPA+I;VTL X=CIFW,R+>);O'VVP:J[I M@2D*5JG=&2UX0<:Y(EN_K HP!V$V/LV#C;),0<=G,IC#(K7E";V7XF3#\;&_6.>A-AA!,HXG(F^R<%)8BHW-!(-B_'%8QD[[VUD!G],Q5^M>%9%U1[2> M"6I^S"IEBVOX._E?KSHF_LL/S"W%/C'D-*.Y./+@#.=VE]0F(33',S4G5D%V M&2M0T1\H T7T:>\*&;1S&_7MBKH3EQ+="I6@8.N*ZE6J%5$5MG@)50\62.E< MJ43\21[XBA=BZ'F\C(!Z=>4)0 %^C*3G.Y?,?M7U]5]H<7WC) 5IV5M%,)=1 M&J T#F(S=5*'1&_=?^F1_6+/G*U]5Z&ZS-8^:C7W-W.@Q]>?]5RT[>*+V-O- M&=Y?*(SQ9_WHY^_&\7<,]^+I;.WMW<\_MW?V:./C%YC3X5%CLW6XGXN_;>X? MU3]^.=_>@??N? &!' 3Q;_A\D*W-ZSL;?/O+#Z-P=G-B% )F()0K@S37 J5H M%+5.Q"A G21T39&K8I\?AX!6M6%3!8$O#P(9T8%Y[***F N5;ZKB/R61$XU3<)CZH71G(FD5=)" M6U '' D6ZR<6;N9X_2KZOA5]XRGZ9@Q+Y55$UA&0:YBD"'1X"_1-G;=6>4#P M;$[5E-"_EHC"7X/AK@Q:>=2"A=WG YI7)1HTDJ*&<66>#\"10X023 M#H?*<+5"Z#8R7 W+#$:;)&<^(&X\03Q*AG)#940\2#6" KO*!?[(&M6SA4+O MIK0MD76J(O(AD6,=L551&X,3URQIFY(WF% AJ."!5Z:952)R/$7DQH"JF5@6 M8:1&7$B)-%<&61TPMT)YH>+R$?D#V5]*6F4W2S+'S1!:S]"@I>R[T.G;UHWA M+(]AI[EEW?U[E6-^:0;\AUR:%\-#'JI]>,5#GIV'--Z/F;DV?UXT-GX09;$R MBB%"K$<<>XLLTQ0ISR0A"H.<8("'F#6,Z0-IP0]4"/XY[6,5N%;@^B#@FHM= M&QQ 0A.!>^:L( (^.LJBR:7N*@%]E< 53X&KLS0JKQQBK/"=:H$<#0ZEH$6 M/=7$YI1^_D+ =;(EP67N^$1Q]?NT)&!+WI) /GI+@DOBK8^2 #\5I;ESB;16 M)W^W-'D4EPTZMG#]^ O9N_APM'>Q1QH77X!6,QU^/SK^'C:.0&C".'](( MC8EAR'M!$8^YZI,*"2C.VJ"=X$[XZ?+\@@D50I+!8LFE*0J+4B==\"#U6D>G MLR[R)M2*7:B-;<-=&@G<_.:I1@)P>&S Q,=@N*'$<:DC=A;D8';$ M/'J]V.\-IA^VVU^'6=6Y.?GRM+=X\B-8/_^A2$P,&] M42[@P%Y$(L]E?_$RZQW$B[;/7<*;H^XH@Y;H\8:\_)F<_/Z"];1RGGRK2-D? MY.]?F;2_% UK04Q#UG<]'>SM_MQJ[ M6QCF O*X_KV^VYC6L=EJ(R(5!@AF/N*<2::\) M$C::R#5CG*HW[Q1=(WBVW^TR9@]5"905Y#UX#GDD C-JA,P1%E[8I%A,UFJF MG'?\L2%O&7,*5@/MIIM[1\,D9H*C&+!"7 N*#,8:60P<#;B990^84U#!705W MRS/K!>#.<J%][AA7."\IZA/FH5\5 -=GD'6T4\7!7Q<)=J2,OG>;M7 M*=27LZ\OT:E:14-4T1!5-,0*+F 5#5%%0U3&HQOS Y6/- 4=B+#<.N*B=9:( M$*1+0N-PV_S RG@T9CSRM+&[?PS//&\<_;QH7'QM[NUX4=\Y$/N[__[_8/]Z'\7^BVSMUUOCX^;!Q\?/W]F:KM;_[M;5_]/UB>V?_ M$-X_+QK"&XD]8QHY00/BT4H$N\I1DDE8PP)7,KUYI^4:-F(EC$>5O;R"O >O M-X%58LJ&B!/C$B=- B,B*FHQRX4H'AGR7IQ[\,G0;CH:P@LN4A(!.>48XDIX M9(1G2"5,B/(J">8K]V %=Z\;[EAB7A"CN%6<6T^MY\PXKXBQ,1%!*[A;4KB; MCH:P00FJHT<^>8JXC0ZYX!VBC@0'\GMV]U9P5\'=ZX8[R:S'7/I$N.<\B"]!PWV> 2C3I(UDYLV[ MS;MTGUZKS5G2..MUOP-\VKOPX]A):?G[RC]Q&9_Z15W\X-ZP8!5#S.=@H]=V./O[6X$X>8BAKSCU4[/VVE#K!,X M=T1P1B)02'QVRC#D8"\$Q88[;]^\:W=FI-:;O^CG>E:=@S9L ##!\UH/Q,QF M I&SW:_Y@A!KH)KT@'$]*WI4!^G^!^G@X@A1+K;2J#[][;_^VK2PI?3N,L=_;A*5NMI:FB&6C.3CK1_^V&CNMH[V=PY_; MNWMT>_,+WO_X7=2/MNCVQWQV@09VO[/ZYBVSAH;/S2P&:F,14IIACBG%%F& M*<)&&P9,AW@59^J3<@L2E+1,<,D)3R Z,:6$](ER$X2;+GLY6/9:N>ZUP<+? MH9#JS2^>'&C(V&H(%8E$+B-S04MIA;"2.AX%?W,='3RAUE\\\6VS#]#L;T$J MV1I:&S.'SL+!K=4T@3EA!3CH' P9B39J:.['-8GXI3%T>;5[/ N-*"%5S7\AGK-7O]&/+- M_8ERLU-%6R_97)7#M&J9-M5@JQRF)\EU,2^N:.L=?27F&L=]ELUL''G;C2W;;_Z*?^73AMCZ'#W'V5[,#WCS M[@_RYZ3!H K@JP+XGKBUVSV'9"C19C>"].QJ(!L%[,+;C#\>-B[^/ MX'=G^T=?C^L?_SWV?[NAUP&B=9W6L?[FP>D\?%KL[&Y/R\;#6O--+4,$:5UKE;)D4U$(H4= M\0%'B;E?J5)&5;QR!7>K!7!N.B6-"]@F[W*5 8%S!BY%AFB.(A<6=ED$ M8&\=,A$S%)25.I]P3=Q* M05Z5D?:R7SB1D?:@4"G6]8W68GJ=M9CT"7["GH9E=&, 30FSWRD\%#1>>#3<(4>P5 M(8KKM0U8#WL0"Q:28>/4MF 0_4%,;A&I%.QY[\]:LU=K=_HU>W+2@N6#W5V_ MQ)7I\,8;XFYOBC=\]L2YVL95 5]K9:Y@+O5WS5X,UQB>\;\6*11D8ZX'Q*/. M;9.4="J*%!BQV ;%@[O"-",>44^1J\FT[Q&JN"&V=[[_AFOGVSL_<>/+#RJT MT(1;Y!G-<D-47*%'5NSHT=C11>/LA\NH$R'7]9/SHH4Y*Q8_N#T\7P(\DX9A@F9!(T2,N%0=^)!D" M]H"#YGW4"+LR/ID*JKBLN,U"J.%U76?.>U8@(M>-]B>R"0;[UK;.0.E^\Y_) M*<+\II9TD=685;C?_1_7_<^[>0.DL''Q.(.E#YG"MH!5?R7RGAX^,VQ% M%^)>"6 /E7( G.V9/-M?[5EV.,#-MM5[,%?E:X]M>+GA#7,Z$-UP*4G MZ\/S]T*B%4!:NJB3O9WOO/[Q^]G^SI?SQF8XK!]](HW=.MT[_M#:V_W2L4601%9O,1)>8\)&-1 M%)$BSC'(08QRA'$DR>"(+=#7-G9,@ MBAF?$)0#RX(QYN/ ?\[J_AH2+)T*7\QFN[;#,9:DU8BGE,I6)(&N30IXE MY4@6_TD KKW&Q&STQ-W$_R4R5%04_&@B0$7!CT7!T_)!T))+ZW*7B^ 1%UPA M%X3+/4^",$H21DFF8,SE$E'P2]'1RQ6<_7M>F,74\KX2*^CK,W8^N#C4B/T* M0A\*0AOO9TLI41Y,4@0I03-P>HQ,BA:)Z$(T6CAA<(90L:CQXID\-C:'(\^!B7(4\#XL\T\*;U1CG(A](I-RFPR2.+ L<88H#DPES)WQ&GH7-ID_E M9)D*?F:/G=@^/ORGROR^\IV3[4@7R O.H5*#)Z*,I\_9?70\2C.G8.?N9]W< M$+0=^SE8LQOAP;]R-Z.E;/OY//D:EP"94W6*H/&O@V6JLCAN3NW:^%T_^"&9 M,H)+APP-('1AH9#A3J(4*4F>!A4)?PJQN]K;A]];1:(P#K:5":H1)_ 7,#)@ M:TX:0SV7@FE@:^O\YF9KHQ2M1RE7<4N4N4-+G/7;I%YNMY8YPTQ7KT=,!QD.XY^6;?1W_BJ+)(JBZ3*(JFR2)8DB^19K4+_ MM8!F-HNI(Y"L\DFJ0.R;%. HM>3,6),HY]%I$YB2UC-FL,N-R&_IF[A2)BOZ M4;\"F^'QY^;V+MQWM$$:._M']9TO=.]H@^]__'36V-PXWX.1;F_6S^J[_QY. MVPSWCC^)_=WOM+[YG32.Z[\;F_O-^N8AC'L#US<_-^%IO'ZQ\7M_]\.\K)/ MN0;QN9#S+.(V<*13+H4> 2N-30FS\.8=DVN82H4#98G>UB52 =Z3 =Y,?DHR3I(HD3$,(RZ<0T8KC $ MHV0\4.T?E+LT^EPZ>_AMM+QYV6J'6/#[I=G[%XXFNYHL$ MXH ML1$Y+ 0*5B>L723&QYP$LR;PO:/QYB/"HXI?4Z^\4SSMJR!E014P)1@.99'C MJ(%SP3-8LAQ.A]>NDCJ6CI2GI0YM'5=8491<%(AK&I'6(:"HE,5<&]AB69 R M(?=N-O6 I/P:;%_O.\1JY9 -84J12,6NRPO0;#Q79*31^GI(MTV@5R/+VC>/$Z MM!XKB61""4L\U]%ELYUW+I'L6@JR,F L&2C-284)L&$^$(V,$0QQH0TR27D4 M;?(X>F^8*K()J5DFI:>R7SPP)>O$_WN:4F$S7;MI-LY MZ-ZNP-=KU79"TCDZQ<'?7"3AE,-6Q # I)/PJA(LE@R.9J-6H@D4"V<0BUP@ M@)\(@@4 $Q&6"VH\B5Z]>4?7N%@TTZVR6ZP0)0/-9F7 .9$\YYH:1HFQE#D9 M=3!*5X+%TE'R3,$1F8RBA*$8B4+<@TQAM7.(J*BDD%[JW!R%K<$>+A$EOP:[ MQ?S4B?O8*^X7,+?22/5053PJI'HBI)J-QF#!HF&UG>S<=:&DB91_0U/&*0>"A"FI4(/!D(# MKG!'B05Y$WD0 M6A!7(2&M'$?!)"V=3+"9]LT[H=8H?2A#R/)%CUXC2*FRM]XRRS57%5F;_?N_ ML==[6[/>GQZ?MFQ.% WQI N$5#;VRW*1/>[ S"Z*+UZ9Q>6/9Q!_-D9[L3FV M%?"Y%?,' ,.-L1VY$B@KC'PPC)P-*M'&1I*B0=10BK@F#EE*!+/RC#S$@C^H42=BN"7D."GA2(7E+'!$12\UXBS1)'14H-09*AW M!%M)>OQ/VU\?TKFK)\C5>1W@NSM1<\<+#P>6)&(YT*BNZ DSG-# M6 A&P=>2&[WV@HMU62ZFU7JB>NP]&;-6<+>"N^]MN%O!W?W"W;R$6A2& JY1 MD$LQZ-N'@AAF' F:.N!;RNH@ .[8NI#?'.CPGW>[_@W:N+MQ[ UCJ^KY[AB3\5:]%M#20<[&FY. H1(0XI?8 M[=]7!33]/Y?5OVNHZ\?GOZ:>?=YT\? MWU6?MO[XO+W3/>A\_/.P<^9/0;L\G-="H8\PIMV33Z_A/5M_=3NOWW4_O?[K M<_OU6[7]\17;_=@6G;,W)]NO.\OR^5C)2ZH=(T891J2*D5A7.%)X[;TO@M3: MY2 :]N"I%I_2L>D*W5;H-D6WP$M=,FD*7T@I2^T,UV5,W)?!,A-\1CGBA8N&9(E;0" !F G'!%,1H4P;E!1@9&LAM;R.;K5ST)BUEN\>8%2[#:\$G5[=ZD],H3*GDQZ7;KP(:6;7D[ M&)QB38LOMCN.K2=9=JO_.'6W)C.UJL1T?26FS[QSLB>IL5['@B0O,#<0RM?U?65=UJ-%LF_/8\ZV'+;[WW M!S&,NW$[-;V>Z?0.2A _;QDNV*1O]TJJ*7?>$.^,))+9DA@6&0G V9R*46M' M%\IP/<:6JTG/-J37/5_%55VM55VM55VM55VM55VMM1<3SGP\!I*PZ!^QJJKU M4./_84R@]^9[9[M';\[:._\<=/@_G]M;;\\Z6W]!7^'> MP]VOGW;@S6=_'>[R#W+>.-HY[%2[A^VOG8^OQ*>/;T\Z6VW:/GIS"E):U3G\ ML]N!4;:/8'P[!\LJ:96&4DF=)$H7H%))ZHGS5) "%HXS'A)59NU%N5Z852&M M%<;]Y!AW;Q[5*XQ[2(Q;. J$W/&,:*XYI@&TA%=\D3*(+E)QJA"Z;47Q7JI MG@W&_0RA@%,Q=-!/<3B$U6B\>/OCT; *H'K'P1=,4IUB7)74^AY9#' Y_IY9 MC3]AXE^.!X.8XT(Z_9ZOOZS0[-[0;-$?1S'/K(B1!!8LD^HG*(JMM_3C;>EY(*0M51N%*4@CIB12E(!ID"<)* M%ZPH4[(2%#&USN0SRE4],7Y#9^/52/"][OS1.OQ#&!SSJVAZ MOC;@X,'!<7DT0:<_BBV]T7K@$("M:NB[_>%X$+?3R_X19KS(T_@NYCS/+_O# MT?#]@1W$/^PPAK_M:4X3]53B K;?3_#PTV%G9Y^W#]^(SFO$*L HP*SVV=NO MG==_'0 ^Y8QTG:UWW86X@*,VV][:/6T?>KK+_ZHZ6YN\S=\ -KZBNT>O^*?# M_;,V?.Z\_BU7S=:.Y,'\@W#\3$T M%S'5%;YC$(^[UM?)[*K1L(4M#B),-O82 :BU=/+K]_S/_]& 3;_GV_#7_)W] M_FOKY*#R!SD'74P)QH>/P0MJEWZ\?3V_O-?'"NYU! P.8=C*$;A M+\"+X&(SY/HEO[<.^B<1./QZ_GT4!T=U@CU,D5?5V>^:B)GI,W6[D[W2&O5; M^S"7 RP^6X/\S=^6V B Q3 MT 3.-"+TS(--V T]?\0ZD'O&H\L?64;CLP$,CT3D3,S-U\S?@ZG(=6SW(W&# M:#\3FZ"SO]GNB3T=KOWKXA!A?'-3>IO96-SQ+_ZO&_SKQ;(.+@7?:\%T#GR- MTC&:I#F341H08)B7-&JF!(\L%I>#[Q,"J8M8@8A3A8AI).M-F+^<\8J#15,_=^<[CVZY([4"&M;_B0;P#,RUHB]([4J[:/"3HO?>[OQ>=:-4>? M# CN^6,[W]// -8,9]#R=GC0W-OT,Z<%K7 FFR(!7T EQ92=@$,1]FR%TG0\ M.N[V3V.<8MEPW 54&DW!#$6)#%>#C%K'%I5?_#8GCF;'<*%;WB9$C:/08_(1$A])LG>@4F)/O'QWU>Q.*^&*K;@Y_1%*M MAL-Q7K(+[*,AZFJ(:V"[./MX93@^PB9_J7YM76K6J-\\9]DH/?=)6A$B;'10 M5!PS*D8>0RI@R_MLV6"&2LYG+1MO.G\N!/-.I?19<7%S )MM/R=W_>-T09#/ M++^3IV8[Y:O#SC/+"/W)-('VSJ9LO]UCQKM4^H(X)1R1S)3$ M2ED2SYP- /)2%@+C3+0IUYE%BEB)N'?)Z@>ZE>"#';4AQO@2^^Q-L#+O)6SWO32'J-:4%/T MNX@>U3$ 0?\Y'H&F^Z;9V"O*7D[9;V1G?\\9+RW3G/#@.9%646*HT(1I;5+P MJO#1Y\,)P&[\[S+2;AW94Y3%$4V1:(_[=5+J^#4.?(6DE2YE][\TJL&;]]O# MB5:P 3I$ZZ]Q+S9ZT.V(30@=2^T9]8667' 4LPPUPA06?O:T(;9"T.^$MN/1 M07\ O"P\CVPIWY\8VV+[[9X67J?""")-2$12#H"K 7"U5]%X(%1!@1CUQJ)K M^"0ARH0:[73"K^?Q&4<'<1_S)PPN .[[Z,>#.L'"IL^B+#-"9,$)J"1G@)Y5 M;2_>/J7D9RA&G7.:*?XO2/67[.;U++ECJOGQJ#\XG;^(,C;^W82_?^?/*!E? M*=%/K1O3D.[F$C)+%.ZFTG#][LG7&7/)G)3\ V2AR?ROM5U/ZS.DL)H@SMD# M""V^D<, F@_!O'G.WQ$X'F;YB-63\XPG\Z1@"?]_=*RQPW M6I!2*T-D61KB4A%(F0H'(HHUJ>0@E2P11_Y[F@#'5H,F_]XR'; 13[ P!EZO M4:T1DZ\@SBNP#77%.])F(8M2:A6TUAQTB61 ;"DHR,@^ 4=T>D6;3X,V/S,0 M4E0JHS$,I!(\VY;<4F)!EB0F12N XP=*'0@IB\&XWT*:6>8(L5;<@!N[TQD[ M3>M-6D?2RQ9N &I\RDZ>.Z?G*4?L9KL0-&%'HT'EQIE"^R= P@V;[0^'&$T% M*N4-M+VE%.V4+EF9(F,A2,N5$U$61>FDA.^F=#>G:!^^#G]K:*^?_NFC->X- M&JWC<#3$DAQ#//08]6$D^_MQ< !\!JXU.S=OW)^88K%/FWN.%MH;*8AA@*&2 M*4],*0)1W)9%4);+$G6\*\!TA"ZJ2*4N4]^7O I )R>UK ZI\/,PWA>7OV>ZN[/Z=SF,;KK^E]BN>M71^&A*OBML/7PCVR=[ MGM*HK1A%69S=:+V_ MP+XG]C:TLT_-ZTWY+4#, PL2J6T=V:^XG/0'81A[/QVM0;N;>P)39S@LPBI-(M)&3ZRG6)]0T4(R MS9/7:R]&L=4P%:D,$L* MI^VW>[%4DFI;D$)*$.DH W4#V"2AL!9*):$+ 0PR(7];3@MIT#]:)K3!I]J[ MX79<#&C1)VY\25V2TA36ET+1Y(VWT+E4?D=]8)9^WF6K2\.K[/Y/+5B]99C1 MV07N7<%)H3BFYL%BITHK AN\&7J0(9.1J9'4]Z47SJQ4Q>M<7K MEA2C"Y=$TD4R3):6N]*G@I=<,V]H5'%%,8]/,0H$G,*+,K$82(@!1/&8!+$& M/@$ <>EA=<._&ZT/O2ZH@4"-4X'H?X?3 ML\.L,Z9I%J,*U-/:62I4P]KK/FN9(=K1P7IS'K3TT?7LH3#N352#FJO..$], MW+RFIY)S^Z8>>)Z98:NQ4L>I^#.1 NO6UFL\1H^P?+9O!]UJP6_K.=J#WYT[ MI]1B[8<+3BW/S$(,Y NXU&_H]UP^D]]UY^V>EYKS$B1S52:T_MI(+&,:BU^4 M23-52@3)<[Q;$,>.\\S6>"?$5#5<=+7 7Y&FIEB(5E\+Q(7- F797J\"NAK: MP>FDDBDP,K?A^?>R5.);G+KY#W8]$:-EN@C=LY^9T;1B&AC MN%ZEYB6Y7U./LR%:?E%(ZS?B*UIYL\H\><_$S19EOSE!-K_\EE+L\Q?M_E[N MCGRIQ%>[(V^$*3=UK&@"9W?8'@_YXOWXYC WH M/;M=7X24CP>Q/O&<]9_?[\.$9* )$7J9U\/AL5'?Y2;PU&EF".<'2:/3X]KM MNW:C17=_W]_O55.MN)#M_)T5[/'LWC6 MU1].8;Z^X8HCU*HW!##H'N4CH LB 2UED;A,BHD@7906M!89C'%&@L8BP_+, M'TN/L:X2 ]PE8D#MQ=A/;\X[.%R4&&%VIA+C3^I-V]EZP]N@N>A@?4B:,.<# MD1)T&"/*DACCDU>Z8#0(T%Q.^HL.C'68P0PE#.\B0CJMA)2%$@H46YF\B2F6 M7 DM6!'1\74E0CXZHUS!?5=H$3>2 -ZD*_A_TY^IU7'G[OI-&?0% 7"T(#2= M],?0)(@8TWBO ]M-D;VF>4_C[&]N)SHU3?;P,PCM1?]A0F> M:V4Z83-NAN/L!(A"OD7';/C]N-_-(+[1VIP9G8O=_LFRW=FT"K^-NU?+P$M9 MDJ(AI&"EU462P7D0? L3F0D:Q)DHS5WXB!\_HT?G[N>/AOW&4$S&Y#O9I MPU"K8SQ7NACLDZJO,9 SN/'G%9-WWLK.VSW&79(T45BT7 E98A&(:$CR6O.2 M!EL&O_:BMT1*;O:9BTB7MX6[57J&VZ5GD#].>H8?(=W"FUFA;2)T )TC\JVW M3F)M\8B-I>B7M5R*>]88B"QB\G.3CB +=U,OI8GI8RJ>S1B1L@!WD:%]LHJO?FD+ MNM_OV?Q".\Q]_GOS__U[^Y\W6R"%2\U_GTS;^HP)K[%M#6>FT/>'>1'G)ADC M\=#^MU_Y"\L9>V? #M$^BKH"RCC#V5M=E1-;V./'I<+\SX&,2J@'>>VQ]G*&(2 PB(6"68#W0)^%+GQ,"@=/@AFP;'#K2+ M^JRD/X8^@Y"V>5F)^KQ?D,B/:F/O02.&3?=,?N-TJRR1VZ;BTJP4>SOIQFA: M,&N+Q) =>M"R/5<\19%43$SYY<8]?C\BS:O)X&=DF]UE8VNU]^LI8 M,A\$+84,TBJE@Q.E-47IN/9*B!5Y/"'R.&V?[)66&E\J2J@4@4A=,&*BMH05 MA90RNL2TN,0P,XFSN:#C-[(L &GW=+U)P);/,LXF*8BN.,< !/. IHCUW=.- MUC,[Y\OY[SB[1*QAR\4:]A3$F@5^NLA%@9U4Q_GHK&7#%]N;2.1O+4A8N:JE@=T6 M0V"=15FLL/&I8&/G[#/FF?')!F6") PT,")!&2.NX(%PFHJ@O0#A+"?!7RQ- MF*_)X%/)0G$_UMF)#-: M1%5R%7QQC?V2KP[4OJ,,MWFRO;GGA0V)"4J8CX3H5WP@0AA&;W1'(YE&9B*K^,ZL3%8]^) MYK!4#=#POSNI ?Q&:L#ZE2]_8!WD+L?=$[?="^?;SU+WHI?H7G2Y[D6OT;W" M]U&^%BV6P[B?V]X?](>8I1!G?!W^/<1L/C!A"SI7UH?0J;-6EJXQB.(L7&W\ MK-.739O I&HSMLTKE2UVE;)%+RA;] &5+2%B60 0Z:"4C#:9R%S27(24F/2\ M-D2QE33]^!P%I&D!RI;AH 4'/%4U1A$IF">H?9'2\ ++0&(=U[47>K$(SUUT M+1.-X#84IE1"Z]3JA/\L8G@NT"0 M*_?%!W?^.-S%'#\J. M4R*%) T7RLO26B=$07U( 'N%D&[E)_OXA.9%9W,O2:^X4:"[QU(0*2F6;V*4 M)%"I0"GFPI7RNQ$:GXO*^UZZ1>..A.K%+0/>+BWP]LA);\D?"\6R6J^:V)UO MT+0>MO[:>W\0P[@;M].K)MCL?;VJE\1R=[M]GS]MIW=39EJ';.=:;3]Q938& M/(1+EH!]* )2)B;>B998%T#>Y0%%3J\BY?.5UAY%EWY_7;19-6S4V7/X&/C6!>IPKOJY-58V]+6U6?@GSI$"-,&U5X^N6X.NO0"Z9R 4IX; TT:,&KX MZV^3C9%K+)Z[*N9*C3 7N?K#;Y,/OX=J"'KJZ6]5+X\H/_3[14!!#[ZYPIEY M4]67&^<^HS>H,>C?UQ1X;U[_N5*?];5";LA27'J9;K!+KUW5+%,; MI;S\\E7-7GU-2?4PG>4W:K:I4GI9K=9R9E2LK'^DB6.WV0>+PJGW,Z3=\>XR]^<;E\!N1GPI$5RL$=]Z#I#Q M7P\T^)L7_7Z,45]J?A@/PWQ %$\RQ>BD," #1VU#*DK+!&-!E-2R:VP/1-PL ME]34=B">IWZ1J]IO'^Z#/K$KX%VL??3I<'?G7;6]\Q=<@S[MO#IK'[ZE[<,/ M7SOPQLDS\*[Q)_ZAV-YZ!V\,,*X/IY^..@>=UV]4^^C/ZM/AIVY[IWW:V7I[ MVMEY):"EU*[HUW_OO!JUWU/>.=M7[Q,^.93\NG+E2@C[F@U1< MR[)0UJBD;6+!6":MXM?8[%=P]C!P=C8'9Y%B-7EGB;+:$JQ/0ZPO#)&&)2\M M+ST#.)-E^=!P=E^(=FOILC%]/AOI\GWLPH_[ZY,T;5G*M.&HZE79%Z'Z$B_5 M4_CMYF$I&C]O5**B*!B3@1DI92F,I?"A+)R7C'IY73FFFZ/234I!KB#K!I!U MNB"!:5E@8M] 1!$3 !5-Q&EN2; B%50[[Q) %E\WE'\K:"W'A@>5M.9>>:FI MX*??RH9&Y\KH@M!"TJ!-R4OA5,&9I]PV*57O0\!8;>5[V\KSTD>9/.BYCI'" MAPA;&>00K:DDH&"9PI04,-KA5N9+R@(]WE:^)P-6?G=99TQXLM)&/R'6M5AT6?TF#?,>=M+S,*JM,'6%J3?'U,!+ M73)I"H^)"TKM#-=E3-R7P3(3_$IJ?GJ8.B\U2^UT::4E#,M-26,U,28IHI2A MTG)0@F5"J;G0]VRU>T1,S3+WO[*[THOYNAR+/H&WR"SV)#T)EWL-GY<%J,O- M]L+<+[E,P";ZZU>CTQV>24I!4FDM(&BP[ICCA6PG:)-!6%C#ZJ M\DDX$V+*T=J_+[LB9U>^8TRCEG-Z]*>EEJ_R-W2GK6'TX[IJP>EQO$?OPZ?B M(=7G:U_NFT.&OW96[7[\9^#3UL' MT-J[HP[_5,'O%'IY.*_IP_6J<_:9=CY^./L$&GUGJWOPZ>.?G[=?=XXZKW?% MIZ,W\#OVM;/,V9 FRCPSDIB4?7)T)$ZE2"+3PNG$K:*@Z6OZX,Z&S],TND*T MGP?1 A?!L!@"UU)Z4>C A**&859=:?W*W_!Q$&W>=BD,=;;PG'"!2=B2HL1Y M&XC&E&:.*L\96WM1%(L55I\HHOWP_H;O)N'P[]YO+HB6*W>DJ?V7^U@J-"A& M*R.P:\E*3ZF37!@6K%H=5C\U<%KT+#16%472@E"G&)%<:@*R,2=,"LDT%=*@ M9R%;9\7*L_ 'WLIE* *>$'"0'"23WB30B:R"5:2LC;$ M2&Q( 42)$ D(?8PDY9T66H*D8=9>*/F4]NH/;XC"Y#EW$A*6#/0'1!8#4J]3 MJG3"2,NUM0 H+HH4=?"ZN#^/MA6RW!A9ECBM6:5B"1H)X2451 8GB+-)DP3K MP1B&2Z'3FBZ_&5FN< Q^),O*:J^>QQ<$&AA//K%")B%U:71TC&F0"1(5<24% M/,I>73 H1,%@;20Q99&(M(D24_"2*!FD !'.*\$Q@/&; PCN<:_^\#8#S)RW M,A55CE@ART,@R_O%.$-6I$315)FD M!V3!) \>OCKN31 A.,4 68SY9L?UE2W@Z>Y5I9R/&N1U&KDL/*C_5EG.?,&T MI=&:E;_TT]O(\R*"8ZXLE7/$6UL2R4%8T-)+HFA)DRB9\CJA68^NH@Q7488_ MP[GP*B)F%67XC!%^25(N6)6".4-<]""J>1>)2\H1)GA!E2MBE'X59;B*,EQA MZBK*<(6IRS%U7FHN4F T.4% \TE$!L.)+)!Z&01;;\I4C'N#957WODE&E1\Z M_5Y=3"27=AEF#6?V.E9_Z/1'NW%T7AKZB[9.] M:$H7;13$4:>)++0CVHN"< ;,RQ4Z J]9>U%L+'I*MX"@NT@G@]C-49"C/I!, M4_9E.!M7L7XKVM+6JNBD+'@PLA2%U5SP(((3OO2175+'_'O2UK2E^J%MK'2X M0(;CF@<2A,.\)B#)&!8CB51*71:>EFA3,AN+1\17TML% M9\O;T1LW#*@KEL:"R!6HU(P5)OFB5-%X15?T]ESI[L^#N,EI'5Z&ZJ."3%$INL_<4;'OO MHK=.!IELZ8)-W@KK7.E9R=1J[SW7O8!069+H2D8DB(O$)>-(244! MRJL3-NFU%_)9[3TL;5>+V= [/QX,L#Y%;$JN#B=5\G(94/PR4\IYHW5MY2N@ M)7Q\V!29;HJ3NSA;/71T )M[_R"_YC3: :HHQ5S-.YS.IEA>?L$%[:L9H^3U MV<9Q?UCA/;_EX59?8I,UHK%=S#S8Z)?T_!'K0)4J[2N[':X8-/_O**A0"QL64V6@^= M% @WVT&_&^)@^.H_XVITBB_>JH:^VQ^"UOM$,ORPSA2;WXCMC_] V[M?.V> MRCMO 4_?J/;.9_CO@^BNVM]Y]WMUIJWEL!DQ6GSX"MA^^$FW>9IVM]DG[ M\//7[9W/7SL['K#^PTGG];N#]EDWP;U?]Z2+PAD0@Z0'/):BH$1S(T@2*A2B ME*E0Q=IYO6.@G7M0\)WLU2%&41F9O/!_32'F,5RQKU%HU" MLY0Z!U?U@ES_OHO]$RI)%WQ1T&0DUDU@,E@E.=;0#0'&<]5>N*[RYSUNCMSB MS0M\OOH:![X"E@#<9'LN3\'5!4[5Q0*G5Z#'DY$=_ZP9(#*Y&%M'=:*6>#%1 M2[;)9?%WT58'?T^P@.00B\1>*H?6-6SO]SAS60EC)/PWN2];XT'5VZ^+E6:1 ML>@4B;$Z G%(V+/& MQJ@I2'E,KTNQ>,C2U+!>!ZEZB,9PD'F[I^NM\3%016VQ!(&\7H-ARXY:ME5C M5@S$?HD#$/"FUUO'@UR&.EUM<8*ESNM\OY##;W;8-U,S?=@43?]COFCZ'.D- MW_1JZOS8#'RS'O?D^M\XZI^6 ML[_F1/!T4E3X903@LB:1#$%A%T6VE* ^(3 M%Q&+:6P(L1R.[D(OWPA**WIY-'H1>](G+Q57!!<+((L5Q%*3B/3L\ ##J^QC#\%H\NF=/K@5SW-]-1_X<](^^ M@;4]LMGL$52S]M<]J@M!G?-$!1LQALX0'"(F=2F(C %4T9=MZ%_>; M2G@PH/>3E,9HYP:U_*CUGHB:WZ""_O[52W2+"<"83@XJ4,Q![3ZRF$BYVT7; M-JCNM0_ .J9C3G$PF#@%K -RN-$DXW)5>Y^@R#&"3\=CT.A!V,CXA'3=''0A M> U;">"D-8+AHTD^_UN!Q-X#^7O0.NH/4 Z'-X%J-=QH86+HP>R ICF:6WC> M!,]&N#GO$1QA&_I>UB:$C=:;^OO4GI!-U3D=-+P7UNA* FC]LO9J:W/MUWJN M_JZ0=[^',73AW_^Q1\>_MU[VX9Z_W[]<^_7B%,)/,%K@WN,!*!B^.QYBYT", MZHW640_!WT,U](,XFJ \_#H+$2(T.98A/CUFG) 7T,H%$!RE8132&5XCX"4VJ8@YHP!W5NBO7AZ_"W]S8G9L>E MKV7$"]@/=.M_"^/!27\0AK'WDP%^YW"3=L[:7]MGGUEG9U-U-O>T5EH:YXC@ M!>@5)CA@_Q88@>7<,1^$96[M1;:/$3S^F3>LHJP(D]RL^D%657U-HLW9%% G MZ+I(#!8(X6MU-#ZZK<#HO>(QE*R 3DH;-*C=(+8P@X5JC2IKEXF&%)8:1>8I MXQ_;'4_2]P\!;=!.8GNH,ZSDA&4*Q:;:WOGPM;VS"^UOGG7>[G&E3>F%)#Q% M4"^8!?4B)DF$+[0M=1&2!K)1=..R2*V)[ B44)M'QK::%"<+GB^QWA,L0$\!<3M;_;MR-+N/@,$!)QK4DY9G':?U?-;Q6P;^ MD V.TV6;6;6:42(DY*/FFF< HZRM81D_[*!;P63VTV^M7ZI?\V]5LSTS#QK" M'LQ'W?!\\^[)&3521--,32YX/]90J.KR"+/4 SS\EZII?]*-.=2"%;;> Z?( M[\[\%<6"W/1&ZU6%OAFM8SL WHQT>#Z820.S *D,8H]G,PJ5;Y^([)) M>* _T]R2-T\[GN43;"QSXMF6UNMV&I*=F^')7NKU6[X:^/$1""@]W!TPAQ=7 M$K;#L-\-*!SAM(\F'AN )+4=GH]Z ^'>-OPHE&*\)^;B;#VR1X#?4>"\D^XC)[( @N^ M.%.21'DH,,]"M,!$%NU3_SW9I/LXN1D0AN>6\1E*OHR,@;0F6PH$WW@\V?@^ M#D:VFOK'#+,TGK?1A/IJ0>9V-%=8PY-SEGD0M:A/5MA2L6 H4PP^BGNAN5QD MJ#IR,-C:E+HBPNN)D&.1+E'Z!*(D,4%%(F,2Q/E2D%AH18L(;V!V[<5B..+5 M1#@CCER*I>A]E=',97G"'O7'O2PQS <@OU@=EWQ.A#B_PZG1)KO23$.YZT? M5WIE/4U98[EGQO6>%ELS L=U1_GKMSR:]8E3>$PJ+H!Q2.EB+ H>C51&:*;I M/1_4PTSF2W.NGJGZ&@,YBX/^3WRN<6'S"JQ+K:2D@2>B2AJ(% 8X""@@& 57 ME$K':(1?>]'K7W8FNTSI ,P?3'TZEC*/*R*W;J/5)DNM!@E$HSNR#=X%X6@L M@;HDD]SJY<[(*ZWV@5#-GYY7YO;+"?'OGW7.7JG.UINS]MD^V]T! M8M_I5-L[& /\ 7\[:Q^].=W>^G V3_S;6VT!FX2V#]MGVUO_' "Q?VUSV#B' MG6YG!W]KGT)_9&>GDV!#G+3W]QBU0G+!"2N2 PE<&F*LE:0HA9(%-P70U;S? M8S) 9C#?I0U,2I]KF9I2RL)$J;GE"WZ9Y^N0194+*W$'/\WKWW^QOU;P6,+P M@K

?-)KCP@S43*%+&;5-TI>%*Z-*03!@SJ&4P5T2 M$K3@W+(YB'8[O8NV^RI;.OX>8%W.T>GS\*K[WOC3WGFK]F"W:FHC(X5,)9%: M8G)080B5L *@*@<==':R%$N<+.N5'B+]1%1_LF;43ZEJS(3 :ONP0?J#TQ;0 MM\]G=T?C[J@Z!L;KQE47DQ ,LVVM*;LZQ%,Z-QX"K8)"=VP'G[.8%T>PDOTN M;,Q>Z]]5BJTW/> [":VN_;K1:2-I=W).U]2IK;=F$U]P$ MM[_[^++>MFN_3JJ_#B\2\A5*RB(-I;3EBOH>@OKP_';/T614H1PIC #Y#20A M8GB2Q%,5#;=6"]0$1+ENEKFI7T=XP+GO2' 7G[Q(;/F^2R@R4R)>7]) EA"P M6/7$';$U=?3 L^5A:^;]E[Q[?9'2;R\P<,6B+[4I'?,RE-YJ3Y.4(@:0''QD M*W)_$'(_ X$!Q'ZKC/:$)T/K P-=4$ET MD_61N"MNB'_PU@JRAKO3R(0U!@ M[.=X*Z*?>_0"Y5WOF?;$Y/./ M$^+Q.RR+G&[QJ0S4.K!XZ!A[DQ/RHM==RH<'H3[8AB6IO7"&&ZV_YPV6<]U= M7VBO7LWFRWP?ITM3=V8F'KSQ6"OK$_VZD=QL$U2^?%A+VNM/FC+YQ/? ?HF7 MBQ^#V(LGMKM7Q\W6;]RL#K)[Z ME?VD,-T^W*3;FWL4!!!6!$<2Q7A?KB1Q4E%2%L$65HK@DEE[T>_%1:'D%_;K M)"KJ\CW0G>Z!942+OR=T)OCE*A/C;<36BYQ[&86\JPES!SJYU.$072-^.EIX M=8I&=1:U+$ HM<)*(KU2!+-\$' W M26V%!_=+ [3]=L\DZG2)BVZ$)[*4!=" 2,0ZX1+S#I1G>04>#..Q':"_T2V! M82D+NADZW(9V5NAP)\J ]D_VA**@ID9-N N)R"@#<:+T)*CD= !<-CI):0IW$+F6Y.N=$Q:="[%:U$WTWCD;93[+E09*M1BA@=ZLX MSCY0DW@'=,S/Z7,F8MK\,\.L4L/>&H!2@_E^W/21EK/=VD7P(';#Q#//V=[G M5F,QK5U6GF16L-NZF,MH3. Q>DP,R!0 DTX"W0BBY*X0YJ:9P=Y%#-+ C*Y%1.^?BKT^\U&9R>QXG\]S>H;IZV]_>DCY:[% B(9AI]RP/1SGA2 MPOJ$(B;FA+Q5EFO--#.V$(4LJ-2EMBY9XXVRUI7.ZEK28XROUO;!UU:5JJ") M <@'HX@,U!);JDA$4HK&5/@@<[0A6Q $K@@_?5)VIYPOK6E/A+7^CS,^4@4VO,R!*YH&23L4%=: MQK4#&;U,\,W?I_W>]%I_V5YCYEL:2;G\5';SW2OR'KK[)Y[I5D/?;W7Z M&ZU"K+?^_>^7K5\:LQ_<-;7T05M-2ZWC_F#B/&XGQL_3G&QQ4 W1.>,;CM5 M#)&!!^>XDH8)K:+G#BO:%=&#WMP$O\=+*$ M:2:T8 5H**8D)A2:&%!;BU"(I+U:>R&*=666I-) /,].?[,'#R ^(\6]M(-N M?WCA/"$'5@TP#'@ 0_:#S0;R-9%TI(S@H.')XCPSZL0PZ.'Z;B5OW8B0]T7[[5ZD1?*%-\1J&8FT!2/:<@9H;$00SEE3%,M3 M4U\(V5QO#**>E8(1J;TD4CE*C(Z*USOXMDAB12E2T#Y)SR3UTJI0.$=+ M::4,S*^0Y'L@B=K>W+-%00&Y%;'!E43Z$K0X443B2R>E!;MNSC'1G"-/,DK4Z^^; M1\0:VM[*"4ID$8/&S'61 M)6!2KJ3$.29!B"F95$F9R"X[.KK\M"A[3_06'2AF LH?"6)F3HI6^+)<:L&H M79BI&"R&9A589D520;2AFK"2L;*,@#6%6')LU)P:3?U,0#?_4J$!#M3[&CKL M[3+9I2BD<,;$J*6+TKB@E?*"EQ'ST[";6I:;K"&G6_7)RTH0N0$9G $9)" " MIY4E(@0/*@U\2 "Y>AMNTLG)RA^GURSI9" M'8X"XNWIY#QO7N?&1B<6X2;SUX0.<[*,R1'?$&LI9GP MBFS]S:4^GMDYZ+QWH6T-#_J#$6F.\K.QHYZ#RTTE,TEF8/GZL!Q-+!'.?Y8% M:@>[:M@T!5)E5;^QM7D\J+K93K^1PS7J($UL+HVQ1&$=@I]/=N9"@*>M56BR MQ]0JW9Q#;>DAP',[GFY2_UXNBZU7Z3K^?+ ML@11YQDIZ^6J,7\0OU0P4SGO1U-")\RV%:U'K\ULU(57-S(!#NP(_4=JS],Z MDK&J \?/*_'X \QBW+QF>JQS:;]S3Y_DR?EM^-\=@^<6^-\F3M2[Z3QM3Z=I MQ0EO(A!U3O9KM4@A+ M:X*A@6NC@O3"@<"GX*/C(AI@_.JF@M>*\+Z-\#;W"LYLR;PCH-.#)&YI24P) MDCA-H)])0WW @H?7VH(N9Z)7GJ3/I2?/ZK.Y,+2O>1)9XVB'K=>0"CJA>DJI7 M[S&8G86X_P=,#)&[@<47=_!@[B?. '$*?,,;J3B5G)0 HZ!(\TBL2HZ$TMJ@ M8DR^"/,9'9Z^(/OOQF0XS F=LY?B\ (F',$-X\$THU83 S.S69=2Z>QVS_XZ MB [=.JG+N?6Z%CCKM%RPV7L376989Q8"%$A]/ H9MG[),- ?PU##\-??)IN@ M.3">.-B *#D@V4OS>!A_FWSX/53#XZX]_:WJY?'GAWY?3',.XO&H F[5N-CD M!:HO-RXIIMPP2J!7RF@ _X7)BQN'E8WLL/*O45B\5H@-S=6EE^D&N^,U8V86[>!C_^BJTL>GW-$VI-H_>-'^:Z%$79/VLGL^5VS99?763+ M4TYUB\E?,NAN3 M[\V&&?#UDYC$W@="SH[MO,KE!&PW:95GF>-3*HE@+!_^\ M" A%CV^9RNNG837).,GL-KMQ<3Z\!P'G2FQZ[1U^[VX?_'+1? MOV4YX?/A)B@F;T6'?ZIV^5]PO7WRZ>C/@]V/GX[@F:^39^!=XT_\0]'Y^.KD MT]:'D_;6A]/VUMO3SI87GX[^.MP]^K."\1WM?OSSX-/1+B@S?Z9V14__O?-J MU'Y/>>=L'ST0F(R46^J(3TD2F6,.-%-$2ZJ$E(6DO%A[P183^RYGA/>S"?!2 MW@PWWP2K7?U]=_6W%B=;[>K[W-5T;E65Z[7I9Z^E%IZ4: MQ6YR.+*"N!M W.F"X!)9HB)Q1DPJ&9&&82U.7Y @A/9%P0O*,$1R78O%(,E; MHMQR/'E0"66UC;^W'++:QM]E&\]+*E9Y;31LXU)Q"I**M41KJTGT+)1)EE89 M+,"\3L5B9=7'V\;?VX22C_L>8R>^/_8N%1OJ!GU:$G2-_$+^W4N+/B1%,8?&X[O7:K*!(ANWBO=\"Z(VWFY(#AI:XP, MDA.GE2=2>4>L\(S0B'6W+"R)2FLOQ&6906^K&SY3N\Z/O4WO76I:MDVOJ MI<:5[G[_K&CQ[+!,2I6::B*+ O]X3JS4AGBM9*1"EEF29.NZ-/>DN]]X;SRR M?6Z%<2N,>VB1>X5Q#X%Q\^*VX:FTVCI2IA(S--A(#%<62QAY3,684JFR?5)] MLXO$]\*X1A*?RVFH,H ]@B_C/;OJ"9B5T,?8X/OS!'R,+N95^E=V5Y\)9KEG MF%,;^EH]@E^E1[";&ET?U/'QDMS&EQBO :*00D9L%.[=@)<_* MR_S2.KL_B\?YQ_PE!F*A5W8_SB3+F*GZA*%L.;G.KP_JCGZ#-NX4W?!D-;#E M::AND7;A*B>0R=)NUBO[;K*P^>*/F(*J4;K>R.V/'U3["-YQ^%?5.7QWV#GL M''0^OCOH[+159^?-:6?G ]V%Y^:5KO;AOOJT\_D4QP/M\L[K-F_S5^S3:^CS MV6=0XMZPSLZ[:O?PKP3*UKQAR0YZA]^@"]H0FC6L+RP&M_$COSZZS/$OOG=*[7.-Y-@V"O>LAO\$\>&K(/SO,,D_7Q#^N4THE^=*.9E/SE<^GP7H(8PA M#QBY^^1F^N8'\+<;_-,63I].M-^D0L;/-$Z9@3^2B>?W.HT'/* M5K#"N17.?:]PR!7./0#.S;L<1<=D+$M% C.12"<7Y73SLI3)ZSD9\5%# "W;L]W3897O;HJVP59I[.Z3&L.U M$M.DS[\^N>F-$ID^04OJRH_EV?FQW,P0L8L'I&@D1"J=EEF9-Q2N?%>^V5!S M:S=>9JZG'&CMD630G&7]EW.?%M.D8W\0/Y9[F]N?3:OY<16;.Y9061(U<84L M.%%O:@\?F.+M]&>%RLQN=N7Y\76>S^K3Q[^.ME__=;C]\0/H)_#,QP[T$W2@ MHP\GV]#?[8^OV.['MPLZS_9.M[M[M"MWCZ ?, Z4-D$'^@HZT.FGG4W5@?]V M=_XY^+1UL,SCQR8;4I*::.TID8$Q8H63A,(*&TU!D>5X%+\.*NU#ZSSWJO9\ MN^/1\^ -8N5D],.@W]8X=N#-.R>Q^R76I\HK[+LW[%L21DM-*JSUA!="$VFB M)E:K0&P2.L9"V(*6:R_*=54^I4QV]W2 ^3S@33YV\O 5O-TGO*$XMW/27Z': MO:':8GY.%1V']61$A^#0N5(26W!!'!621:U+80.B6JF_V;WRZ66I>1ZHIE9" MVP^':N@*N,*U^\*U)>GS7.)*%BZ1Y#TF/6&6:*XYH<$55JC2%]JLO=#KE)8K M:>UQ<*U826L_&J[]V1^O#'#W!VN+!KBR3+JT3I(8N"%2"M3*GI,"@\VC3* Y6TMM31KEE,1$#2!G: 3M- I"F1 <,"Q0)W&KK9?LOC+6/2'A[>F"6YTR M]:CJ54?C2:Z>XT8 >&Q9[MO.FG]J"+RMH+?"OGO#OD5[')>P3B)1$A7Z]C', MJ1"9)M8I4]*"&I#^UEZH;L!AZ_HAUL+P@ M;E_ZR+(@I]G(AD>*EM9F,QY.O%_W4#>,62#LZM:HV(A?:\#($K6@:I"NI*R[AV.HHRP3>_ MM LS$4XSG6+\NP:B79JS9B'RA)^GD'W9/SJJ1A>M75>'A#V5T+J/L95I'E73 M?FLX/C[NGN93"FCO2^5CRPX&MK&E#V)L0O\1N_QAOP;Z#/NIF&,D';7M <5OA)(]#%:&[,PN'H8(P M#\/EKQV.W6'THQ9,TB1>,%.['>401-0%!S'_1 MCO U3GH4\C#J-\1\]:0_^'QM8NXK2/=APW]KHCI?JY\]TO>LO;_'M726BD"2 M#X'(DA?$F+(DCE&NA)"JU'XATOQ. M6^/% .',-6=9YW<.!-8;U)@[IE0LN7Z 0& EU8,$ LN'2*GX8)V]6;+*'R=J M>5Y.:FU.=E9KY_3X)AF.?]38Y?.)V+I9JNSRL:W M-2/HHC1[4=)=PK.>986")S?M_X!D#0Q]9=)>F;0?U*3MG>:!2ED()J0.WA7" MN6@9#ZDLDN W-6F_AT%7"2:@-YI7G*:%+QJ0K8\LZ^NC&'X&JW?[I,W_JCI; M;=HY"X>[AV]I9^>?JG,&"M=16VSO[,KVSI\'G;,_JH5<]6>;9[M';VC[#&L7 M=J"-MZSS\8WH[+PZW3WSJG.X#WU\)=JO_UJ6%$P[(2T/C$2O.9%:2>(*61 1 M;/1<6D9%P@!YQIZ5T?O'==WXT_K:G()[!G1%5/;.F>N#NG#\2-/X%T@I=G#: M^M8LU2N_E^L8B#3):*E\1RKC#4HTA.J;+T ;-*RN*;LTH^/=^79Q#@4?M +U@L M'UL)>\@V5OK+2G^9LA]12*V%!*5%*[%EJ"8[IB5Z_D\,\<0A-IA MP[9\/<(T459_P>/\__D_&I#V][G1YU_9[[_65=,_QB$TU&MM=KM55FW_L+W/ MB.C#:CAJO!#JRNM]&$+KEZ9-K);:VHIN-&UM?(QGHO]U"TZ1I'&*!2.D#)*C M8Y!50D=;>I4*+RAR"E;20M!93O&F\^>"ASY,V7:JASD99=M^1=;P1W\PR$?. M+^TQ7+FI2V?Q/)G#G;T).H=PW]N]8%7PTBNBI0)PI\D34SA!=%$J9H7Q@A7H M6+]!%["]!83?A0_K^4S"AB](3.?TLMG\<$XN^80=#_J_]+M?JW9>3FLU@@$@6^]K;X]!]+'ZDGTK MW&0Q6L[6[FFW*P8K0DS>2:UN['9U\A]EMH16YO[EE:VEBF2$I%$Q8T",0% MHT@(0LE4:).L7'NA%TGEOW'A(\A]%=+$$CJI/>ZRH(B0,K*?8RL,+-8&J+T< MIYP.78BRUQQYWC!.;+/7H!XV>QFX969; M]>P(>C8!S=:1#?$FS[IH!]/H0G1*M(U#((Z]KH2 A:1;\3_X$8<+K>T/HD77 M3VCFE^K76^Z2>X-5G.$WO>%H,$8-[TTS!JR2_'X$?\)J,R"7W@1UK_VU??89 MGGESAAL#)ERH(("I4 8@ZCEQ!?7$TJA "R] _=9K+^0&7XP%AJTQ@!6')4V/VY+&8#N2CBIF)%>8BQ'+(Q0+%*MO)?:3/ S M.WS>@40 (:OA^V,@WK#=^Z>AL%C'%":E-:D@D@G@LBQH M4EA?N+(H2TT=B'0;= EV @)=5G(E2WG+43"K)P?V"SJ(CQKC'R#$<47>2[79QB]'(] MCH-AOP? ?#S C301FU%'AW ./$&1/8N>K>.9VZJ&=C\VVL'5W0#:M6[,TO6 MX^$(IF!P"COU"YYDCFI_>$1:T/"S]VVJ\(2SRG[]DWO.O66/8LQ*X=3M=M / M8S]"*3[VQK'51=^D8>.6!-UMBDQ,_-TGC^4*/,V]68;#">Q&G,NEP_G?X=)^ M3?J='Y]XO3>.[B_[1T >IYG)#6#!4S;'HY=N'-CN.HX)9A1M(+B0T"S2E@-& M@P$,ZZ!>[P.K01?ZHSC8AX5!L+3^/^.J#B^"6]"/&.BU I(,^?(1R@[UDH4* M>^;&S:WY2M7[ OW-AP'KJ.0@MB)-P+YB4__Z71F0?H]GS,0@*"=8Q0R1C/3CH_% MK\!CJR'&!QQ%#(QHV7WH $@2X^$D9=7,'-;4G;VY%U=L?89HL,>^VQ]B[R:D M7A,OON.*5JHF7@.?0)*Y H\RZ)R S(!+EL=?6S.FU'4^ Y. D7DHN@D2/5DS M%Z_CK_=A6?[&6)>(,_\,HY P8,;EO0(2;C9O 8'BJ&J>-(T]ZF-P0(UD\]%' MLZ17]3#294)'Q^&"',)=X#V(=\J') M)JZ#(R906?<%EMOA."SR( ?P,8D="N DYV"+T,^,'UD% M*.&P_7!,5;-ZJX'P/ @P;QEIU\<4U5X;7=F$5PK=$.GWG[<%X;0?>!+F\>PYX M,!)_@.L**#H:=6O_<>"*C79H:*:8&Z])\Y# B_@U!1-)FP3Y(Q!ZXOMCF-=7_'T@CQ\@G4209>,K?%Q M8T"IX'OFQ7A[:W]L01P;Q9A1)>_HJ:!S'F65V3;,/T!A?P"(7G^,D_A-E$%< M'T@*+M9P@0B ;5075Z,.,1MBUS9:;U!H\@C85>3"6ER5B@T4G0934 SF.1=TP8 NZNH]ID/ ?%<]W/T9VXU[H5 MB&L-$EOO!^.8U^-SKW^R.&:<\-BPAX;37& 1V/>KT'XG(W06IFYC8!>&6^&T M0EL<$\98%CEG*;K2)R[I\G/_909VZ/#+<\ZXB<.UW9=V,#B%G_Y!RGN)X#^? M9*F.)CZ+@_[4 $!_,OU_>V?_:V=SCVGKDY2!.*$=D9Q'8@M0_$M><,&U8SR& MV_ET!*,C%AHH:2E+KHP2S%IN/%PHG91Y;1>*4*_6]@'65MO2))\$< ,IB+3< M$JM$)-H*T%\+51IFUE[T^@O6G,53%%O/?JT187QL#P/DLR1;,X)+@ 5O1]P' MIE[U R(+J)B8 &V.FZ\R?5R3Z4-?GND#>Y_)6P01@%0<4]3+Y"E@:V "76T" M8][$O8*M/8/T()=+=@\^^DS@)#X]/JMVO[X MYJ1SUNG. ]JGPP]R=^?@X-/.'T<9N%[_U?WT\0V\%Y[9"I\_;7U6NX>;HLW_ M2>W#5Z?;FWM22NI,Z4G4$9A5+ T"&J;U@]^33M(6Y5JCX8UCV$2.X#30OXJ^ MH#Y*X8)A$4W9Q@GD3][,9SQH%J&55Z$UNPR+3DZSM+LTJ>DR[WXU^ MW+6#UN9P&(] IH\@'[_I^P)5M_CP?^ M /T'SN.SLV[2WGS3.AX/4+/)Y\9UNA=HY;AY(%PN.P\/0.,:SF>R"TJ7VG/K MHY:!4<>243+82+&> Z_%9WJ#4[(W4S/S]DDOAC]L%Y6O]\T[;^*/\LB2U?<' MHIU-M;T#DM?.[EG[\&TN8VL=!NH9XHSR1"8\-9-<$5=&48A2AB)@AM%U6+-U MJI9XJ-1KG(W5FV_^=XAIC- TM8G"4HK9&#?,!(;"U&W\F%A*W&N?=(BEU#98 M0)V@;>(E:%L@ &:61)MCU46"(6J>7B9YNW?ZFS[; '*.AG,JNB'1/+(3TZ,3 M#8CFADJJM2B("D$!__(,%#"@'%'"4I6%+6*D^:CU4H>F;*. Y>[%F@ZFIQ>C M=0("/@_46 M$$"_==@') Q(E>B*Q\K?ARW7MX. I!I@]3W:5# C5FUA[8TF!TGU 6254^6@ ML2C;PB=$L@Q VQ8]2Z&EB9DD)\J"#KX#=0%/<)9AZJS?*GZ?WC)Q'%Q?#KMH MP\(#Q8'=GR0->MD/\54^1IA66+E7/E-LJ!LPFB6:#_ M0 7KD[4&W1/[<2'C!9![MSI;+?^C+?\E2X^-? 6AJ+=?6RWQ>#8"G-4B=6TD MSJVB@?C\0/ZF+#0;12=I[.KSK7?_8X^.?]^:)LQ;*K(M$% MLD'C&H?ZW;FWRNR*7!HW^1TEV8DGSKD#3NWAV,Q'G2WQ%-D, ':_=YZ,\.H) M@7'?1C8IC:)&N")IRF2BWA@C) \Q*@;_2XV9D/&YT*\%D61K'/\<](]F5.?J MIK+KSR:&=,YV50?N;^^\/6GOM&7[9(\QT" B*TDI#!;L+3AQK+#$"L:#@W7*85$64S:R:2]8<9I62KA"^.E5EE>!9JHY=4%XIAW MHUY*&BOEYJ8$ OTXV1,<)AZFGM#D0+FQ.5UDR8BG/#$*!$.5GBHW*[GN>6F]$JIVA( =-(@ MZSS!K"P!#T(T\._FGI..4Z\<*2,MB/11$)O0!SLPRPM?.HHLF&X4E[-@A*4G M*6T"[+V/QZ,Y=P;],V39.V8(L)_I>!W8)\<&NPTY'%MBY:)=@M5IZ[W-&WI<;><.Z+<^-XCI?O_$O 54I53PF MH>49Z/14D,082P+-DM1HRYBR*%!<5O*K+E7)P6IP-F1$L)@3%;& Q#%73 9P M2C3!BW%9,=&:Q6=4NF7PDM2[J93)73Z)KQ8\,;6K%@:C\0D&T,(!CT_R%N85 M&9^KTYI)&_1"([P..S* CHUM7C[6-.Y;&IA2&>J41B'E6B@-G2JSZWN@,U"DTDC-3<2.%>2 M*IT!1PM-%$K!!;T&II8S,,PX.QBAB;'XQ_8T_:_XY'69EG,PVG6&I6EZ\BNL MH&.*M =_J?8P?-+01AM9?G?VPB])8 6E6F$LF"#"*DT2GB98)CEC'#@=G)ZK M;+S.YR8PO>J25:""+:I;A7.1;/JE8U+BQV)8!W=2:C,T'>C@949.(T MDDD2"BDL;%8 BIP*= A"'$]".AL8TM# &M+ K')U?-8Y_@),C$=:":(X!33E M60P4 =)?%BO)N0PR8S*@B*@=!V&;L]O8'Y>31-DOR=U H L,%@%=?6K?R;N8 MRV-]>$GA+;TV5FYE&MZC:U:8NZ.+?(5I&I1W,50^!4 '!(EKMOI,YK<2QL-0 M)3P+DD2$@>!IK!1-@-DE(1,AHT4T\I3+7>]G;6P@=R73\X.C;S\Z9U^HY'%B M4D9 Z*9$F"0E"?8F!Z5:L0C4:JK%[1H;P[FJ.(Q$&!N!Y5--H$"4@?]0EHDL MO4:J;<[Z_L[:A"F781P"&H<<1!.3@LH5,6)X3 ,-IQ4S.&O*MN(;Y.!4BOE/ M%%HI,BBO$):7%(=/0LY4HA1*"4I("6)SFNC8@O(41]$E67J+UPF3N/!U'P'@ M7[FR(G94MD!2N1^7OG9V]\_VS+W&8!0#=*0D,540 ?9-499ID/(HB'EN1 M)/H2;>FVMIP8JRY%"3-9H 6HRBJ \^:2IB!#1&D0W#0ZY_9'WX#)LO/?_@'R M'8]#R4"0(S03H.=0&A(0W!FQH,8R$T:)YN%RPUX%'8\49N&D(1!T3"G4E&:B MGX&R.>6H8%95SGFEB8T*TXN3G2J#T4UB"&=DL4O#5FZ2P'C#M#SQ8LUSW]B] MY[X=VF-?KOUT.$)=8?URWCI5$N^'X//7O[Z!UA5\ZG>ZG[^^ S38%Y_?[,+X MQ[QS\1H^VX6Q/X7S"- Y>M_??_/.H<8G]G>_LW-R\NGBY-NG(T"/'7KB@J[Q]OLFG(65O;4W M\% -]_LGDN&NG]7L*@(&(E)LN%8!%RG('[#4R&BF;:8,#\/[;R(]=R??#GM= M?>[_?,:WDG7>?:&I,(H'EB0I!UX4999@?6Z2@,3+-*=)IA8R*S0>8XN5&0[_H><5NSRJ8L'"- M"A26__:/?\B^1)%@0A2/VQ!(V2IS%1/&,DR@2<@XT"8?D5 MUH.'/EF/G5A+ICG:ZXY69:'.5! 3J=$PQ-(0T)7%Q,0B#&B8\"3,7KP:;=(MT$6WQF"(-WZJ^L*T0%<3\9=G6^UL'JI=NF! MPY(ZW9%C,217I'+4^NW%JX.=_1>_8\D@ET:U/)O0C[4P(Y^;Y;)- /1RQ*/TSF5I<, SR:YKY_JY@(S:Q45,?/<)235 MUN_Z#O2 ?5=CP&^TK15\O$7-L?7"^I&C.*#OT2DF4EI2%FFIJK:XPE:P7:Y8 M8KLL= [[@''J%9>KY6VUZX4*A_FXEJ&'!:?<%V=8#+2H).NT+#R$447]RXX_ M;[UX5<[2C[OU GN+M+ICV_>UK.H#PM^'?=OZ#8M4_>[=<;5:<3@9^Z-XNBHA MO/#630P?JW'OHKXK&@%;8]<\3A>U:Q66N&Z[30,*F%]W&W=[[$J)?1V.BM*W MLW14#.U*$:,F[%PYKBG=X+B'I;X.2JHR0YL711._=V&5[I]<^?L+ I&%I?\1F_>N"-_+5UBM6^L8XHT:7^V_]*.M M#8MOA+>;K>@ZU@8> 9[5:A770=Q75)[^NRH:5V8>_U56H=B95J&HV-/('F-I M(IB[YT]>-IV*'65=X]/3T5"6)3Z-EQQK>X$+K+,IBP[\Z?Q*/E7QK@T,3:^0 M>RH;^JK,Y>'GDU/'9[U=W?/QXEQ]>>1B\;AYI?A>/G=BI7%7IUU9^Q&HRDKW MOD9^,51Q@:LKBACG(T8+NWI>WP%[%)\K(;"8JHS$5BUG_MJJL5::P=7 M"HYY59)5S\JE4WDWMZ<2/^^5=Z4F;$YES*,37T05)^'E+GM5^P>-9=UP2R:BT.>(2RF-85,3RNB9CI\+3$N?$C*VVJ;9X=;7%]/)J MBVM<.'&IU?U:*_J'SFS. M-;?MTN#_6US#>QVCD !#[D?,6ZAPO7W813YS_\5/7;&[%/W63BC'N[ZH^Q"2;&38S7-\9WE5! M*Y"LA?^-O>-D34!MP6CM)9C9_N;W(1K>9NN"UJ.R@NLM_6[3?IG?IELML;ZT M$8ZZ5FN[1;ZE,<:R,!$I8TK(P*1!S*(0UFNQ85]P;0HW7VPEYBXAUK]>EH.Y M^Z/H>KWM0O*L.9(_;I:'R3?3SW;RJ?^C=_!U]WS_XN]>A[T+.A?_]O8OWL.\ M_CK9O]@..E_U1:-?G,/D3[1WL7^_T/_//..][Y^.&B M\V8WV'^S>[&_ _.[V&>?CCK]_8]_=S_W7V?[Y\'Y/T>[X_W# +X[QB9!1L6, M6R&)YEH0$:N$*.RZB;7-66HU4PE]\9('[2A=K,OA\Q_O0BDECMZ"8AK<:G#K M>MP*F<[20.C$1EC(*XW"T%@J,F,SJJZ--KP'W%I2.J"!K!M!5C '64H;*Y7) M,"@5JYFGE$BF+0E"FH7:,$L9P^XS":/LSP:S&LS:$,SB3&7<2LZS1 M+4\4Y M!BEEPEJFPSAN9*T- RXV!UP@0JN0&8"K5&5$4"PRS5).%!QGFH:1"M33E[6> M#CP]313"7AR1,CK #DR1"A.#U71D$H$&&&59=%VUY :%U@R%Q!P*!:&2&:CP M1&>"$K@O*4ED1HF6"8LR$YH(VS_3H,W88FN/*U&H 9L&;&XI\J2!2A7E*8^U MH$Q(:Z2TJ1:!%4D0S%>#;-2T-<:9'_NO@A^(-3"N.#C:_B*9R4+!&*&Q<84& M,Y*FL26A30U+&#XW58+?;UZ4(O]$PF$B@DI 'PL9*<)FE7%NN=8"&*&:N[:O4P.!: MP6#GU8(',$J5S42"72JD)4)*393E$9%1AL<J73&F*:=:L@S^:AOSQ8;1^;P?AT4J2FB2D3 .-/#S$/BY M2"D!.,\HBPT-X@SI/ @6>UPW=/YDZ#Q-N8RUSKB,I."Q2 +@[5%J(IIEBJN@ MH?,-H_,%/XJ-6$JC+"5&Q@+-E-B;/(R(98SIB /-Z^C%2]Y.&D)_RH2.7;ED MPE)4U@30=ZJX,5$0A9)R9E/5$/K&$?J@NVV>\=-#09MAZ[<( MX<\*X'^*,9DR%D5!EIDD;=P1FX6"APONB)!A[[%4$I-E$1$ ?42&44:$DF'( MT;012Y!V>#M([^R/^(FT_<<,-6D@XF8MAA,@>JXR8[D04@G)J:6*VB14$8\4 M:R!BPR!BWI,AC>0LS *B 0L &)@B">."@ I,K>ODAOW$5^+):!#B*2*$I8R' M*8C:@KRK1I(.))040:6YF9U,09-R)11F5*2\7B1#+!(ZL;:\N& M0<2\^\1JT"5,R $B-.@9,8])8C0C5%#*+#5Q0D&(H*+-6*-G-!"Q+'E%R"0S M)M5PC81*4J5U$L9PK[+$@(01-A"Q81"QX'D1-!0@*4BBDS@$C(@U45$JB VC M)(JY%&G*5N1Y:2#B24)$IG@8*1VQ*!,TB9(T-%+*B$>AB)AHI(C-@X@YGTUB MTA TQ9 $6J!S-C$D"94A+-(RBJG)#*4@1B3M@+--P8AG4>KSE>N?Y?K'+G0; M>_3RG\T8S1@;.\9SJZ^)2(*= D_OO\[F;<2NIRU9K=P/C*=XD+T9#DV^/3"' M=O2]JVU^..R91H!:F0"U6'\RC,,L2E-+4I5I(L(TAK]90R)7O(_:)(CC%R^3 M=LA6Y661K&E"FL'XM=P^&/U-J8:,9# M'@=IF&31$R[+V-#RO7E7&];\( 0][T2-:1*&.C4D-/"'"%1&)%)MAOB6B@O(:#VSO0* M[GIG,L(:B'X:BY[T,02JB1*::Q*[YDTP4271$B0$Q3*92JC3!L&W6 MYF*=DN0;DEYW)T-#T@]%TO-^!BII&,992("R*:9S@FHE./:A##D'L8LEQH=0 MPO<-23]=DKZ'E*N&I!^&I!=Z#,51I!56GC00(=50],-0](+[0MN("Q4$A-(45&FE0I(FBA)N9!8F+$XC+!,O MVE$0-B3]A$EZ]1E-#4D_%$G/.38" 30=JXAH(;&"+ ] EU:NN#<>GHV#FT//CQNMX[MP(YDSWDXI.EW!]U\/')>A6?HY&B\ MTX_EY"CNXQM_&P'-MV?N8@/HJP;TQ=)Y,E.A34$PX\"EB0AD2E(=1T0 GH-: M'8>AT)BN'JZL+E83>+*&I+UR;\=-2;NAWMM0[[QG(PREB;1E1"8T)B*-*5'" MIB3*6 A'& ?&RA%VC,$DUX\3PR!!ATH#(S ;$,A!#LT1F/&0NW)$F MJPJ.6INJL@T K*6!OP& ^P2 SIP"$V>!!!G(@N@#0I"(XH D/! D2&0:8!E9 ME8("0WD[B%:5PM P),"@'NIL-0 P+T!P+P$ -@=*JZ)D0IS$4T"JE# B4U3 M$6NK9&10 :)M%M[9V=< P%,$@'LIUM0 P'T!P,&K^:+Q2E,K$Q+8#,0 P1E) MI00]@&HE4I#J,BQZ"A* 2!H : #@H0I"-0!P;S8 _-\A@L G?K#S[>P+S:R1 M5L2$QZ'%5M^Q46R-]##OFW] MUAOF^>^M;#3LE]Z1X>#GO"+7>(-_NAW0]0CX<+M[0P#\966]D&87_V1@?^6^ MGX/2L^?O]3]PJQOD7QWR[RZX?XR X\E40&*6I$08IHFR-B19!JR;4D&U\'U' M4WIGX+\5D3QRT$L#8,P]]IT$[8(N#]_B2Q[C8!?G? O?6#@,?T<36$?]^$/Q_G MERD:62U(I-* ")!5B8K"E"B995&F(\6IQKR7(%U52MM&$'_YN^<@SSP%L>4Q MW7)+,:N!I5O!TKSS+8@$2AT)R1)A$99BDBB9$)-$G"5!!&IT\N)E?.N2)PWV M--CSF"K3"ER"C?=@&@F1&9D2$\>8X\0D2=/0DDR)Q%HF1)@!1M&V M"!;KEE^J,FT"0#U;S>A6E'YWW]]M*+TAYEL2\YRK+XL"K65*21IJ-(#PC$BM M0M"#E!8V9B+%RHE1R-?=^O$(+64>K:7[Z'0(E&"+'*B-+*3&'J);S W&J%U* M#C?/#">J9V=OY5V&?PI3O+>RHA4MK3M/"Z4 Y2H&(<>"(!M'4J=!DHE *!DE M/+J#P;\);+D_;K>W8/1+>$RU"1215%'LSV&)"D'/CA*J8Q&%AF;*U11=%MEV M@>/@H@/%,=W/Y1X M4Q'_PT#V>D,-,CXVACP=P6UW,7R^CG)_"%.]/4L:G"ATZ6E+#!JV^KZ9).Q_''/%;>:,5:;0K7AL1-W7__386'W M9YF>.EE?CX;]5_#2[F ".WA0Y9/]Y6# /W>$(+#?'0Q'W?'Y'DQP9//Q]L#, MCK+[WPE\O6_')T/XYCL\@J7\&A//"OGHNP7!G\:1"ED<$15C01?%))&)D216 MTG(0=Q*1)"]>)FTNXKM;>#8ND;L9H^$M#6]Y8!M_PULVE+)92QE)!E7CQ,EU:+7#]F$NAPI43*2B'.Z1<1Q-.,\:MQ[C< M=7QG[_&:K?0IC?$3I^9H^3]C"0\^.*ME+C5'C?[S\EYB\\*MD-U@"I?%YK&M M-+YAD].53CNYWL;D-JY5=EUVWDXS[;MQX:S:PM-8@N2]'Q]V!EQ]8J:%T!P:NUA\T67VWY!L"Q=&)!2$5 M-N4,>Q@XQ&J=CH;?NP;>D8^'^AO!5_6K_! M$R =3V"N)O_]CYML4^I%'S>EV4P-V)R>/,WM'^5?_C3=_+0GS__H#MP2W8_^ M+,;R8M8?X>*-=6?@O_[SK&O&)W^DR5;"'8 6QO3BQ?Y;NN6^FA,9B^_X%B@C MEWX=;%W^W57#)EL\BG]JU*N_"WFZ\KFF6R)@&S+79 L4RF<^UX2']S#7D/[< MJ,U]?4+W]8:8=8W;\EKI780W%M\++G!U\D]=9=<66?X#>4#G>'6\O ?1R=J,II>\:<<==M9715.89KOZ?HF+J)__C:U3:;Z3:3WN8B M/I3:OIY[.I_BMGQ/W]J1,R*C7K@[N#CO_V2\PXUWI=GSEYTAJ/VMO[I.OY.G M=@(3:W;]OG=]5FEOMON>M]MU-'SL$/XGLI<-2#<@_3QVO0'I1P;IS8[TO5&< MR.$E9N>5N>R?==#0)D4,/6;]]\,3.;)_X25\5;N#SR"DI]_I?_ZZ3SOL?7^? M?1*=HW?\X.BD^_GCA[/.D>E]/C)?/_7_[74N]/E\2 _,NK]_\8%_?O/IXO/7 M8]K9T>'!F[_A-]LP'OR&=7 <>._?V?YY<(ZAHON' >M<'(?[VU^HC#4/4DYT MFBHBM#!$4J-(S++0)/#/,/3%O9+%:-$5=_Y8IWC1!N<:G+N_%L>7X5P#9;>! MLF .RBQ-I(V2A(B49D1D:4RD$0G) I%&*J,B8=&+EX+>>Q?#!L@:(%M/(%MU M.G\CL-T[RK$YE$MY8&.J(Q(&- :48R%1 8ANB9B]>\G;" M%\M5K6ECRL<&O&>-=D\4ZE;>ZZ/14%>!9C_VY]I]\!1$IJEH1+<&R9XEDJV@<4B#9/>!9'-5)H(P%H9&DE#*%!%< M6 )'E1*;2!YRHZT.PQXR6\HL;+;6(A M5]*8HGEA\\)G_<*9VBU%?S"/+IU)'SB7+AE1\<\Y/X^,4A-H3>-0B1CD;,Y- MK+1,(V-2GF5+_3QSO$:?6#/IV?P@>S4<8$RR+Z)PD+WOYM_^.L<_7P/.#4=' M\-J_>D/];3,Y3,_^S_OSSQ_-J6(BZAP!AWGS[OQ@YWWW$_N[W]DY.?ET[O+/])L"*'&_&/[AA8A+XZ"-S5Z#@$1M+- M@*D,QJU7DQSXB1WE-ZR@L2YU1JIYM\8GQINQ>+RK^]0&T"LOCZ$F^S-BB[<-8L]77AT(Y*HW]H13DH>.S)P"2"M M]R4)(*&,3^Q*L_TW=)\>K!K"#:H +-$/UGOS[EKVX);BVI/:N#N6.%BG?*P; M6EY*YMW:OO3.W* KX=WL7Q, QA9;%=94 U0)IGR#5J8GPC93,RAJ"YN3_:]_@3;P^6MGYR_0"-ZQ M_9V]\//1AQ^=H_V+SIO7)Y_[[\X_'6TOV)XZ;/=\_\W?7V%NP?Z;3T%GY]/9 M_M=>#S0'NG^Q'WSZ^+K_>>?OD_T=;WN:CVME4E*A.;$)DT1$64P2&AK").5I M(A,C:/+B973O0:TKL#L]!F7\>I>.+"OC.7=V:JSW)O^_*ZVTLU%LZ*]5E*W8 MP$->=8&.I]F%[79\.=,T2T.J9:*,"!*CE&)1$ED9AZ&QW%[C*FKX\KWQY8WR"N )I91&TL=:)C81E-I:%I0JD"\=_(B#90*NXVNT.@*J^(**66*!3HP3 I-HR0RH";P M3')%8YW)ABL\&E&9_8UBE,9VCRUNG(YM:-U00A-D&( M=R3,#8VZFXU.W"X)Z'U%0 7A/'@;F V(,%ML7[E\CZLPQE83IO?3F[@#-Q*% M]7(?FZB]%4?M/7W%S@IK.(MC+6P*/%-+$4AJTTA%41CI3#4A>XN*G;[X_-5T MX3,.,_G6N7@G.CN=DX,W^ZSS]4.XSS[#=?H?]_:WS5>-\ M>&?G.-AGN^(3S+!S].WB=_3OM\[']UE9 *2FV$612A*!979IS(F(4T$D MBQB1EHHXDS*4%D/VUCXS_O%5OD>P$3UCD(G3Q,9!)",1A2+@6FE+51S'"AW0 M5F5SUB/*&I!Y.)!9B#_*3*8, WQ)$O@CY(PD46R(S#(:4:F /3 &=: S(WL M2E=GV>*_D52Z@XF[S#,6B&)HP;9BE <7&]47FIZGR-H/"RT[F/Y$*MC8R?CR MGRRS=M0%WTT_N?):*I='ENB1E9^@UL*D_U#]L[D>?[B/[-+A/7- M;>EM=F/1]O/R_U,C>,62"!E)DC*LPDUE,$TVYL@:#[9=, MH3A*G$5M4I3A??#T05 H7Z]DWC=V>#R2IR=(EJV]@2\@@OMPAX3>^\U'!]T> M>$JWURVST'TRXNO1L']HC_LPC_QH"&S'P9,<6_.,T]+#_;,O8:"I%, ::,PR M(I2Q)(E90 P-M&$)TQ$/%M+2'P- IE=QFF,M1Q8.#C=10>^[WP$#>WKW[W/'SM?]_N?^_!>,6_VV[_X]V1_Y]^O!T<: MS8.]SLY^T/GZC7Y^\^E\O_]O[Q/;/X=?PAI/EI4#R#+#16(C0A6/B,AL2%2L M(Z)3D5!)C5528..7F-_9\K>::.)5AA(UL/5$82M3-E2Q53&6Q.4L5H$Q)I4L M9K$QH6:W+I+;P-;CPM:\MR*..*5*&!*;."0B2#A)XE01&TCX)@V$B,,7+T4[ M9>D:P=:*](,-$!1W]W?O%)KQE'RC2]I(!:F)A F8U%:PA">RET$];3>@F> 2!*J$9T1HD*H2X$"$2QWHE 764H[P1-FJZGNO4=." MALY+.A]7;[0 MJ7(TT^?A_OJ;/3'K]//M[_9348T-5J\K5B]F\]@HC.!8-9%6QD0P:DD::4HB M8;2D@L*7YL5+'K:YN',!GX=J_K8BRU$#APT$F3 M=G#W"(3'[8497=$+\UZKH%S>)O#.07>/.\O93*OY'*LKDDU<(LV#9YN4W0\/ MLMW!N#L^_]@U=J>;Z]XPGXSLP6":M+ ]LC+_9S@X_J?[W1J$HG&^-]@;P&JZ M9B)[KXR_^R)LF 6Q28@R$69*@UBE9"!) M%@/(!,:H,%ULF_@8^2E[11Z*RQ?I#3&="T^Z)=U18VY*E9>"A9FF17F:S),F M\^2G\A4V*K+^UF5BGNI&-*5>/H!N ,!X.);C%=K/GK6V^$15Q30VF4H2FC&5 M"&E2Q4%F4T$H%=:_I.K+WLT,9IWA0$]&(\ "+W@] _6OO_MC_^LW]NGH$_]T M=,PZ.^]^?/KZ;_?@S3N^_W4O[.R 6O=U[VS_S=_=>?7OT]'N^<'1YY/.5W-R ML(-%2U]W.Q_WQ.<=?0YC!IW^![;_=?OL4__O;'_114EC90R+%(FEP B**"0) MYYIDE@6!"DVD8_GB912U>1*M>^F)M3"%-V#>#(?F MK-OK'>'ZGK.AJO/N2TA3853 2: L!X2( I*D-"!8AS&![4ZS1*V?H>JX.$&T M3XWLZ1# 8G#L&-=Z6JGBK33D/V.E$M%60G_.G'2=X2?Z.7O2=5:JJ)ELE#R( M28V&=R[\4@/Q>Z^X=C,[T[:K"._,;E[T*&UOK@Q2:86:^8K.5O5ZJ/(JFU4B MY*T=.1%[H&UK=W!QWE^T8?W4XI_/#G:&WVVO]5=W.#ZQ(^"&$YA8LX>W+(^$ M08C/SG)/61C?.Y"]J2@'?!WS^$GS_N_=A'<\P%FF;VQ7Y_5WP^ZF"-XO/YOH>61VGD3<2@ M-069(=)P25)M3"2EM&G,;G7Z2L52!JGF5&O!8RH3:448"1/RC"M);^HR:$[_ M 4X_-BHV @O4T$ 2D5%%4BXLH1&+A!(FH2QY\9*U1<07[&D;86!K7 <-?ULU M?XMH$%$1V31+A9!IE"B5&),EHRG*!9>IHE9'01@'.DB-MOSV+*PYX+L< ML!$T2A6G1'%+B="!)5)936BH@Y!&6>12\>(X:7A4D^G19'K4W$\LL5Q*E7(: M"Q#EX:\,V!7GTH29R7X"R!I9?&4HQ^90+I LLC1EA">9Q5[#FB@1PS]YH*@6 M89J9]%:GSY52@8H9*.%2L% D@)=IPL,HY38(N6WT\#4Z?9G$66A%0B))D<=E MDLC *A*9#&F5:X&:&&\SL9ANOMDY/+R)=GA.4[PR(.-AG=G!5IB(G_%EI\E6 M&MS,E[W\SE-QQ:6_:8?MY1VO'/ARPXUB0M$PT"+3@1344*Y-%!E*=6J_1/&+ M:]*Y@@=HS+V\YU%G.+8MRK=:]QQ9\VID37?\SS#/7W<'C"38I M6IM@FO.2G>W3_9UW9_L7[[N=K[T3>,_7SV_P[_#9D3F!=_4[.WOGP-Z"^6": M_8L/9YV=[8O.FSUV\/'UU\Z;SK?/\'?X[$>'[?[89Y^"_:]_?_MT]#[;_[I_ M]D6E::"C,"4VT I$D1!+P>J A,+&$05!A0:Q%S;@[EFSC2*!CF--16A0%1CZ2VT^<&@N(F#XUJ+[/4*[GKX^_CCBXFDT;'.B,X4P_H.ADC*$R(U MCZ-,19G68BU"NXYF.EH5W&S2A_L&@^2^X56)-65BHIPA!.T)H>?NPYK$?#69 MB9N1F9C>7.+;C!B+1VA!=0,Q=Y/#5F[:F.KGMZ'9Y$=K8O6H9LF_9,\Q,3EN M*0LL9H <<)BU3F&XH6D"AAJ'ZN4UO65JTL"P) V- *E=AC2$ORK&;:H$"V]J MJ*R+U:A$8H;$/T-8PU28?N5SM=;'6OESXG118>A8?+KX<-&Y.#DYV'G?@]^' MG:-O(;PS/-C1YY]W]D7GZ)A][K\+YZV5!SLG7SM'^_S@S:[HO$%Q_!L]./H& MZ_LF.A=_?]N_.*8'.UB=J(?6RH6":Z#YQ")D1'%7%"00).4VQO;F+ AC&48I MJ%R"-OFE#:8]3TR+ Y4%+(R",$P%-UJF698D4J4FH*&FJ<.TH,&TQ\.T^>32 MD#,1A E" M7+"@-)T*'JPH;G4*@%2(4-ZDN?OCU YR:V:=QUGWAS7DPHZK=!K6FS2;% M_M>]BPY(8G%L$B,#HE*FB&!11A0V3DFU$MQ2*=/88(ORA%'VYQH5*F\:$JQ[ M5=>&GA^"GB_FZ9EG$6A/*4E3F8%F!=LJ%>5$!8DUB4B%D78=Z?F9F;CLP#3& MK481O$FC&&DM3V)A$YD)'4&+<:3'O&F!:J5$HJ)(^-B&26@KR9!FF4 M::,C&TAOL&\P[?$P;5ZL%"8.9:PUAFL+(C+-2)HH22@U 5>!3'G(GXIQJXQ[ M@678JU'PH9YL)MQ,>/F$;Q$+?Z< BT6Z7&D\^4W;5]_#%#>^P-];F8]W)K:) M_%R,_#S_DH9!G/%4DY0G((M'UEE"8L)LR'0*BE6HUJ.HWY+(SWP:^MF26F,W MD;PUJDX7*_[)8WQ:R[$]'H[.UR3<,]UBT4^%>])D2R3Q/<1E\B1=?5PFW8KI MS>(RF\DVDVTF^U.3O=FPJV_)YM3QB^YT;86YH6F^.&M M=HU3$@6M'7G>5(V\W<9%E*3-QOW$QJ74[9HKG3N$>37;=ZOM\RW3<>. A33W M[V0;GUI:P7M=>?2B):NPI&C[JKCUG!Z%$7?IM2;-*F M.@Q%D 16&)G*)(MA-V(JM; J83?VGA&I<>S,:YIO2K>=./J>_OW7ZN^S@ MZ#4\CY:V=_QSW_F0SC]=?**?/\*_8K<> MT_]T=!Q\/OK[:^?KO[W/;_;./O??G75V9HJ+BOVCO8O]=U\R91(1Q)QH(16! MTU-$!H(1980-4FN58>;%2R;:3-R[W^GG74\5I31(UR#=??K4A:M8(6@L,= D M52)@6D>"!C8(N)5W1KH&S&X#9L$=)&,$E2](&R!H@>]Y %J0JBT3 6212D608 M\BAT*D*39":2-Z^>VP#92H!,S %9D,:&Q2DE-% A$,49+*8$4U-R#)KPICS%R_3<+$)3P-E*TPZ M>2(X]D1!;&6)=(TKX $0KCN+<$*)5 :@9HI(ID0$<424B5(2)99S+3--45AC M89NF]RZOK03A+JGK'3Y6,?NFVGPSQ6:*:SW%)LKUVC";LBMZ:Z$A>A/HV@2Z M-H&N&[-Q3:!K$^C:!+IN[ 8V@:Y-H.LZFK:>KG7+6,,C*M(LR:S(:*(BD43" M<&YCFD0FN7$-],:Z=;_6KQ4$DJ M6)IA;!AK1_=OW'HJ%OP&Z9XJTF6AB4TJ583-'92)E>"4"1II8;/ LKLC70-F MMP&S8 [,*!>*,\$(PQZT(L,V:QD3Q%J9\"2QP*3TBYPR4C9HXV6:*S12;*?Y<17?\%'E>=S"1 M#OGJ-=X+B!%L*\:"UZ?#O(O/_#&R/7CXNRWJ7!=\M?;#HDIV,/V)5("&D_'E M/ZE5CT^7A?8\O+3@JI'7 F?]?M7^Q-D[ULP-!Z% *!H&6F0ZD((:RK6)(D.I M3NV7F+\H?W12 ?BI/+9$C:S\1F0&*_Q#]L[D>?[B/[/[ ILR=PZWV<+9^OM^ M)6H$KUBRJN5#82U_Y# /73H]"?G/E$Z''R:7?_NS)9B3>"ME-QOVAK'5-U00 MX 3N_>8OCU_;.]K=]V(0V[I!Z-;&K&M_N[/]9G=_MW/TOP];.WN'KSX<'NX= M=%K;G1WXW_8_GP[W#EL'KUNO]SK;G5=[V_^T7AV 7'M4/O-^]_##/T?ND8.W MN^^W\8O#Q?B^"G:O(*TKJ/0>=L6-^$=W# >@;X!\LWT8X 4 5WV8Y?_.6T#E M>I*[/M$870M?]<[S;HY]'(>342OS#3AD#[4IX_#?/3>R^:0W]H^=VI'C-WDK M/QE.>J:E+'PO3:L[P%]]G0R\=G;6'9^TQC"5R4!.8"QKW*"N MOC4?PP&F!O+/QD9,=#>)?N30Q\;'NY/<,/6ZYO!"SEW42. M )-[YZWW]G0X&K=@+J]!6_,400/RKAJ[-J\;S&9V!OC)3;?V=MN*#;QQ=N=6 MCK#))LRIS GQ:R@30Z:[ &O'X]L>@"S0FUMW"Y;\?VX^:+LE80K='CQ0G>#A M[BLWFE4CV-SS EL27X>]]1L^@MU86?#GS S<9_3/W[=:1S<\&)1G9-?OP9D< M&=(;#K_A):X=!<[*G;5M]:TP?X?6W;IB:G07/W-3MWHR@AV'D]O]H4_D MX-BVMO48OZ8I%VZUH/&[#7$+>5%_[(6;N\UM?0+%KK=;:C)N2;AY<#%:O6[? M7:7QL-VR/TYA-L5ICNPQ+,3-\-2_W MPV%YEZ 8$_)G H.=+YHE3&X)X,@!1!S[H9EV8GSKW M-)GC=ZTSD :P18L^P7THSK OS]O%T94?G75[O?G/_"KG/U6VUX7YSG\LX?VZ M>PISF_^F"R+BP,Q_JA%9YC_T>+,PCWS<[=<'AIM>C>+$X^E7N)TYG%0/B>#' M*=!?[@X)?O)=CKK^R+9:A[@A5UQ!W-E\HK["^O$<1MW\&YP@ !]P2KB^[K:Y MY 4$BU8F]7@X0N20XY9;6$M+/ #X'(FE1($2E6 YQ:4NQFO!AN)KX56FFV4P M)*X7IML#6LI&PWXKFXPG(UN-5"P-CAL6UNV?]HJ3SZ]>UU;K]653A7%P,T== MN/,6)^*&\K.QL.X;4,7X9 @#%2CI,>LM $)K;Z_=VH,9M.CV'^7!O8<=+2=3 M'6MV-;ZW*FCWP]YXU 7D=* ZQF.X%^.)R#F=TO,+I9\\Q6\N,7<%_G9R#WI MZ/NJ.WD+]@0[;4]#KVM(^-[#EX,@Q:-@",W2C#8&@ MM#UU[\6?@]R'CXY@A=V1IRQY"D2FG:+5DV=;K4_#22$>M;W$ %.$%R)- (*? MXS9>/_5\>E(E_Z@?EAR<^\.J[78QP]N>X:Q.61-Y;Z&)WD*GCEZLDW1]F<[A M9.F_/ASN=78/06GX=_?]OWN['R_=JL>>_W)=X*.'W*$CI8( /1NT0']V<''> MGV%6IR.08* KP%@6F.K3P:PIW DN$G[EI M=U'*\H(4DC@2/JR+!0%K.S0:]OMVA&*9ZV"'7^+,W.L'$Y>F#5,>P!RJS00. M"%N)BX67G,)6C$%D;KT:&ONCFU?+<:N!-YT";0[L*#_IGGIYV^TP["& UBB_ MG##7]K;A\, 9F6S\S)]N,NGA:7?P($-5\ M1PFX$$P.W3GY8RG/M2^-Q[XQLA\8L#OX#L)@C1W:.LLI63V>Q.[W8:^66+K2 MK8JVPAOLU1*3+)XEX5M+K&Q* K5VL7$J8'8L_KR7>=_PB$MRANL.%Q#.V"DC MY5&>HSHS1O7%\3UX&&1SN/Y3\G;W&^Z!'7=QU?ZN=O7"R=SP$7?"D7Z#;2)YV#< !B-M. MDD#M#&AS,L)G@3QG%+%Q(?Q6MA('8>ZY&6PI ;'752-<.3Q=[IA3,=QU]KK: M[.R&DS'\"X3W@1,CID #@\(=Z;I/01PP73VU$PR [ENPY,)XL/ JI"MEJ[/" M/7'CNT.#:T&*!>1C8C/<2"24 O7/2XEPC"M%,;B^(79P4J///> %IK!LH'D& MWCR[.IC8&:! NR'!AR-!1Q+'J,'DU>G 4?2! Z$"[*D0R,7Q3*^_X4BC(3"P MKFZ=P"O)^&0TG!R?P$FV6+37CC;T;$<8'O@$]OO MHE7"/0F(#A/6:.NHP[%GTHY=H"8P'**51'IML2+-[@!X*PJSCL6BE03V=#@B MIQ/0S7);L=--8Y2HS(%^"9P,]@E 22/D>!VB5#X[>Q.=")NXEHF0-$J6 %37/?/52> MNC -[0'!70F$IVD4NK)DN+_?X5@"F9_R<>%^.)\V=';';240/IP0VL_: M#@'<29+JT'[F].= M1I-!X2/Y[DT,B,4SU(D&!0^.LO3>N/VJ7N7PP)'/> 1GF7GUH]"#RDEX+6V. M[@LUHUQ[+Q_Z=^0K?\.&(?%'%+6Z8P^@,^J>:6#C 645SQT*Y;CT[U0WS*D. M>1\EA?ZP9_4$F15HEGVI[<2MO5+[1[;O7$BR4CXJ5TLV!,W:ZQF5BEW^K+!? M>[QRLGV[==P;*F15,R]R;!'$'.NXBS<>3!?4GM7P8=>^=[UY'%?4K#Z@I;KVOMR_,6"VCJKH4+LG+N"'1+ MM]Z6$SV:3OZHQ'*\:?_X&]3:/@8^Z^Z?=WQV0-*&X\F;FW3'FU1M[(O?O4VO MVMFW[L:TMM^T?JNVN_ QMYKM7_7VMWXKK*[_&XEO9 I'=_6U.QMOQKF,E'\O MI:3J= IJ;M#W_M%W"KE3)"L]>%W;,R@3G$S@W:T3*WOC$PVB]U;K4OFSB8E] MR=CE,;$;%]ZZ1DK$-O#\[QAE,[5QEY$^CKFCP]C,28HM9<^'*/3.0L^,$#@5 M^YS&-D&Y;\XNA(Z3PD0R8QAQP01.EIA*I"A3('@YSYT"[1=UYCG/G9O"Z)L= MS]@$<_3%PU<>+4L@@4?*V*%L.#3M5F:]U7V08ZQZ2SOKWL#%U-D9,]+47-Q> M].DM7UU=,$+S-HA.( QGMI6CYJJGD8(U.UIM@O.6\JG=LO5;$;/1>7-8AJQY M;^/IL >O'$FTU9]@( [0A+>.E3]Y^^K]?_X+?Y2_<[-#^WMW/!J6JHHQ:/F,]1>^^'.$,:Y-V^U.5@;Y,SBL4@1H_@X^=7Q.TF/=#[8+?JC4> M(E[Y'=D;Z*VIKS'KCO)Q>5.\T(E5TOC/O 7<[DC MOT3"_FSM=+9A0L>P4V[R?T\&Z*UC@3]=O+LSL\?Q]K?W:JSZ=#+*)](OHG+? MXK7HN9MWW%CQ5FO%FR,R[Q'W1E0\R]K-+^FN,FYIC*=$J'*6(_Q6HJ$9?Y:? M#S"LI9M?P8;7$\$_UH,%/!3Y2]]>J8 M9,G/9@S.+N9B63Q%9>CQC BN+,((ZM3+PC/,:')<&]?;BCQ$PN/'(]EOG,RS.#TQ [.>X"$#]&N[ MB!)8FHN2[,-%]. 0QP <]!= M4TP"BQ@C\_6P>SX:YNY?:'\J3+X.L _T>%@PFW@9LWGC+1X[4Z-5NW5P6@6R M7V)2*/FJS<>]__7_,,[_7'RRXISNM Z',*=Q\:R!B_@6SQK=R?5!#K>VM]HN M!=N%M7T;X'%*_XS5K7_&9FO*U&N_^Q^G)K0.O M3UUL^'77[[KK &?M-KF,GR]8^N4S X$1K= N2A;3 TY+O_I0N7A@N#7V!XAF M>7=J$*R3D/?IUR.7RG5MM;:1&7>O/_%"?D5O+J:(J6$A-\VISVX1=G[^RS;_ M\-5VM>/+N3W,^HH]<:QG.A4? E](![8!Z_N3#2H/K L0G(EU<$ M8 =#%R4,7OQ>@<=4%9@-E9X&&*+VTAJ7 MLW$_+#,$@&%8Z30[,U5]INJ;TQGKD 0ZXC"'*X-)3D-'0"7+\7P2U,,>:'1% M[D+%+/3YC=Q[F'BZ=@&\A[MO,'7P@':P,)H,QS>N+C4V"0 X;4]]91Y=&4Y:A;_FI8G( M.;JMN;%O_5Y%NA5[,N]V=S%F-S:N^D6Y^UP7?@ISJI>-%FVH9:AO\4]G M&NWFC@7/FE1K/ZU95Z<<_%+[:GNI@?7C=%'S)M7B4M1-IWDUOTOLK5,EVIM& M.F\.?:9=8?Z\WNSI\Z6K+\HH_Z7V3Y=_=X;Y*3N=[?^\K]N5W##>VP.C > , MW5G/6$_7#SEOR0V6>1PHLYI] MRFN9OE08*=V-_X^32BN_1UT_7[#A?$2SGDM+]K:3AA\]G+\6S@$YA@?7Z6$N M-^S-G9P_+9W4'9J)FF8"$S".82+2V):]8$Q$'Y41%VZ;"*7 EZ$ M5H@PN!FVPKMY,$.S LY*$SX=68*6 M1D<.5RY_ZKI"&Q#ZG0!=8<:H2G=[\%>?W-V?#(:@&()Z-CY?8ZO[-[K?>[;[;?[^QUWK1>'?R[MT-HNK8+NA+VYHL#.+8U5Q\ (Q1]Z'$9[5_F M()=K;\$"#+)T'R"T\+'+"2@2A-'O.9,,=SI1:$DN>*7S!H/9>?C8<]7S(-7)9'[1?^-QL'XG!HE2&DGT)W2ZWH]0_I_5+IMQ;>NOT MAZW#K>+EY[5,TV(Z,)![]5G7U((WZF=W:5&UATS6R":8+NL3ORNCY7CIJ3C M,MT1[&#/$^F@^A>@AM3C&56^?4D9F$*L6R@WIRZB8%"6?IC)K:]P$:/E M799M:2?R56O.72*ZP@H4<.< :WKG9689RI>S=B,SJ=G2G-#JL,=?V7+19;:? M_2Y[912$RRYQ%5V.G;/>'3VFL(] [8!M+'/4'I6/E1CK')^V-Y;>S %+&@T' M5T[QT:]ENZH84MS+90=47KC!;&)QVXEBW:G]QM\95V(!OC^V/KEGY!)ZRBON M#UD6Z8=C^Q);="_='*7/NQ;!X#/B MAI7EQI?L 2WYO.;8K#)YINI]Q8K;K9.R (NK7U(*\H-AZW@"@BY$/^J[>"0Y>2JNUZ*2"9[W_7[)_^N?.U)(S,U1A:_)H@>+-K,!T MC&K$ /D=YD[7/!=8%:6;CR:G'J;0.#-EJF4"^G3!Z/4Y.QGVG>1?;:M=U!I] MO9;ZT&Z[3Z3!!'(L_#T'MJ/"2EXZ>,8G(XN9D8/Q25Z48/-.K:+T&O-BWC(A MHY(M$*"7R!#S<O.2A-P+PIAHI(@ MBL"+X2#S(9%K:)&Y+IIS7C1?(N45MD/?)1E33B=PEM+5RG*7T17F>IO!>T?N M"G@[WW_1[>WEYVE>716&,ANPV2[<]E&[,C6J\W+(Y;9=.8W.HW/_#+HH'0 / YFM[77XF0F -J"ZGD-/BP5>-RQH1&/@ MZ&[(0KE]N_U__\$-+J,)?ZN_N.7*<8[S/Z<_+#_ZO8K%J&BL[N2L#@WD'*LK M."A#<+QE=O[8*J*>J2QR-\*N0H\NJ^D:Y % MZ+)>J#0 WKFM%")_L0P(2^>YC^(Z]YJ,HY$QGH,O35"U86C)ON]27D11#U"0 M[94_;.'5=\&_CN7YX-TZ=,_HX_#BOO-ZE*)J>=R^QI;W:^&E=H4"BSBPO+(7 M(2:[]&.4B'TPD1FY=,-*>ZMA,KZ]4L!S=+#[Q<_6_7&<8 WA:S-<^=%H!@0>>/HI5CS $ MPY]<(6:,ACU?1.7458.M3[&02XXG@X*INP89L&Q0H:I-_P[**'HQ1EBY=C)V MQ@W[P^&MP9-$=U.)>DO>83Q;LC?;35V2F;![:AZ9W9?T ZU)GRW(3Y/OIB@^F*S[XCC*I M/5O1\A[=5E!$;.2>:; 4W^?W*&-JC;^#;0M H>/^4=IT_-R]RS;L]9WC)9<_+=_6,G/:B M2#05T(KR=BX,^6&-38_DJ'KT YTI[P$3LS[TH?6MZ[0=8#Z_\& KOBF5#*8D MXCX,?D52>4QC%9)IL,5N1J:.OU0KZ XJP;J4=<]D_8X7S/87^.4,CE22<4WW M*=.R"N8\E;>+Q5G(5<,RPFC8\%QLF&68IP9R4@\KP3UBI>8E! M9'2AFNA[*\+U40O*G">MBGPIK%_%QS E"TK P%8Z$#PZ/)>]<;=D$D6%HII3 MIBK,YL<8#\=.O/Y%W!R_6@(0R]@" %PEP!6Z5H0&7)%V@OELHPD. MAHLIJJTE-]''!#UW*'O'DH7SJYAYI#1>T%B\XE\B88:UC=+B 38%]H MNEKC&)/+;50EHRW"*HZD"'KPEQD6IEDT;9GWALL@V\K]O^047Q=RG MW!S$ *RN[8-A9Q[UK2-N^#(L,Y?[U'SG".T5II+NR!"4C.!WW1]5F;R1K_WH M?E1WX9>F@")H%@UBCI,X=&GCJW$39CM6H&OE! TL;K0M3,*K+=> U.R, 'GI ME9GVP9DI$=L')$8AJ^;YJ94AK3N?9YND+#="( S.=NH!/:/K9^?DH&/LS%IM M]%I2>REA.U*+V:^/"HE72P1U4 C37Z_D^^V2>5;!=Z5LVN_^*([3B2?(Z+RD M#@\7,TE]+:PS=BGY& MS5LJ_Y3?YM[!XTJ)Y/E0=V7EV4.?(0R*".&Z([?+3VI@@K_T I!4-=0I'H13 MU=]\D6Y?AGB03\79XAF#O2^T[\E3[EH=HR;C'!&E=![7];1+Q:UJ\VM)=Y6/ MSSEFO'VZF,+X1 X**$9BD-ZQ5;'"@DM M9LBNH>6E2RJDQ"$663\%RO%^['[?MZ@9:CV!VZ]=V'^MI(CK\S4P/E1OJGNZ MV( ,-F?L\=9E19>P/,.&:O*IVQ/O$[E<]VP"9%XRT03(W,>^'F+9?ZR5Y*O[ M^/LI#09EN"1VO*#SJ!O^K&6/)[_.\D9$7[%R]+TB5*\P!%R' MMH6P6#Q6(JICR+:/O:\05 I\;5]AC?. AN)GN<]U-,YOPO4J=O%JK&[ M=0"JF>GKD+?,%5"3 0MM:SDX+%!51>4WL(R5UM\GXT%\)?.3(F(._H*EWEVL M_#BO#L?SDU34?"IPB"Z4:*9'*YMG0%'-/NM[PRWO[?JX]MF9HG]X"=U&E)Z9 MFJ9_=HD][-&/$'E]Y5!;!]W]^LBSF9L2+4HJUXU %P-AO2!1913XG"4LQ-.; MM=@4-90JB_:E]]_%IDXM1/"5"UF8JB'AQ:X M7)-1 2]GP]$W_UK_0-&MT1O17=,1G+3,O5?/58>DK-B(36/KTXJ+RVLY]8:R M3-]QW9#/YZLX?<3"6:-!:QONAC/=_24'WXHT(E__>.)S_X>CT?"L-3GUP!/4 MHD"\'T3Z,#5\H5]KN#OF(,SKH354H'N80/32>VAK=;.2)[E MI1'9;9^Q:CR?1^A-82B13SN9N'N,=.+Z!1S,!MN[:$2S?&R@%M>Y=#A8$H/: MVLXOX3M8CZ\*O'2:E-]S[,YR^4;ZMHUG14];UU3(7[(J9!A3@@>R),PE@]3+ MU 1M.-5AO]\=3UNSOW(&C&/?R^K%^A:A>>#"2+<,A=NW(_VM=0C/'_>ZI["A MK5=E@,RA#Z2M?)N;!Y#UXGML&4AFH$,2ISW>: >J&G?UI^?K-]F];#=M.J/G<\>5"W>>*).'T>HXY= MQZ?Z*6*^#,SZT)Z.ZU;-FT\$Q4S9]S+/99,JWULWG4:;)A[L3ENPY>65*2@A MJM+*_'%7^S&WB\M.$:X9%C\H^EQ5N5U%>>ZBGUQ7EPRYNHEZTI]XHV\+!(") MCS"O7<8J.JJ(KG+\%Z>WECK!MVD9(4Q_[OHNH,8B970';BM]\MC"KI1Q3<7. MH0CCRF.@46HU&_:M/1V\A!OO#6Z-< EYR9QKX21SVGY>*X8L>T5"+C;?=7W7 M/)AAD5HL0CON]KT) 8%A6$KESM/MXF2-K662%TX0!RQ.& *&BF3ODM$KR: : MP'D-MUIO:X5#714CC)T=^VM;IOU<=W>G1?67G5(Q(IZ1"X*X>LN]57)QXU%0 MPJP-WY/NBA.HW# NGZ"H>5X>1ZW_=65]J6Z&R[F0NFB_Z/K&&S_MO&7G*'X. M-C<,OS[6+^A:@@#H0C6' I[H+WQJQ7EL2\'\%2K9=U'9#2_1+7/9/*L%5;O" M_ZU6E6)0 Q,@ATE=R;J2I:!F,'*B1OBK>PM-?BUU*P\G%2;=>;8;1@&O;[K> M=HGF(_RN//"E<>B/3C094LUZF--\8,H2>*^2W6J7VM6OPN;9LUS:^EKX^,HDM^X/?]1E+%XV++N".M8X,.6KECH5C%Z@U7GS>^OK4:[7@K')^"<$V6E[\J63Q3Q:4A.H2];<)0P4A0WGF_Q M6R^+787_51M:_K@63%WV#OEPZD(@W>1QKZ:SOW*Y?>FB>&Y?9YF[OM,"#N[Y7K&&J M.US-N_P]+C+$?NO^OC!AU^[].Q82*S.L'/LI_%-)S4'5AM_# ,[B4$1-+?T- M"X/%+&AY?(S![.,J0[CZH'"58V+ M>8"#XYZWA7J# R]GA_F(O"1&4@LES"2@^,J\-I=KJXAQ6 &3L6G M'H)0">0W@>F0XL-A?5;8T,ASS$U3FVXM$QV^VFYZTVQ,O>%K&HD]2J>:H]+/ MND2TQ=N%54UN&:#VE7POIE7@W!-\-F9')F\*F+D M&;4L1;'I5'SO@4IF\R:%,O[ )YV:81&KA07J*Y?;IEW5#TLE"CRQ2F%==E/; M,WZ2M32H.9M>L:]>/*G907UL7[7MXVG# MF/GFJ,UIW'^OC"J,W_:<:=]WN_"F$&SU4[36[IU7B M-J5+P_!GC^2\>/CM0AGUW2B+T 0S\][E-6GS]LR'2Q<$GPUA2WU4B0\0*>(; MZC_-A]GXS!N'CH>@19WTO1EOFAO@&U9ABFC.TJ+YR]1%?P@4=-^3V,.16-"JHG>'TZ-90GKRZ0.%<9-2"XN*]!C"QR6DV&F*ICL(> MC"EF]?C\_&0XPEXESDGC7 MZ1U0I)8K7*0VP?*J>C[>NY77%G,Y&ZY\:WOUZ1S94;]DT.TIO?A\)^G%JA^N MJ>%@,BU>G?L(DPP9DH]^+CP)WG_@$S1K8=)K:8OXI58A]K'CWZI[6_31*J0? M=[]/BMX_-<__U$M5%.L_)U5[!*R"[PI 5?XKN*I6PNELO]TKG%!Y/43?QRY%<5BD;)7(!R*U'#N.4?;BKD&PR+*TE_<-^K@WMQ] *;X'2)$15PV-4GJI M8?H*"[YD?+',:1F?((H_#_. M,O?&#BS&$QZYV$(7?[$WT%M83??_;^_;G]-&LH7_%54VL^M4R03Q)KEWJCR. M,^O=3)*UG3O[_;0EI,9H(Q"CAQWFK__..=VM%P($QD:"KKIW-@;4ZC[O/L_' M"8!L<>X]HB3&BF''=M#Y =).K/LUV^GNTFMHGT*[$1N2_&>)]GK=2 MQ3X5Z5OR(-6J413.B; ZKL,'-*/C4%['47&D68(SUD=S!(+@ VKT*K#!U M,I5(F#4PI+4>3Y?RQE4SZXC!J.M'-TF53%^O.?6^[J?,/GE(=&:$$WDZD6%9 M/KDT2<,\D!U)9Q>8TZDL5$RD1^+695)H)3%&C5J:!_?&<.I9D;NZ2+@OKJG* M)*!FC0QNI>RNW)R8)?.[ MN@(Q)>\*VRJ^U%90^+92"6!5N<*^!(ZVS;6BWN/\OI8?XU.C4V^ZX\9Y(F6F MU IHR LH_S N%#J"$;8-^6(Q2UZGUK2!:*@9A+XSBK!C5';L;97FW,JBDAB= M07I.W"VD]6[>0# M4@QESWO8_A,I<.W8@6*9U1S[?U\Y;;MMCUJ=D=%M6IVQU30[ MAFVT+;O7LPW#&K+_](>O*M5'9F^Z1F/0;JW\NMDP5GZW;EEL M0FWT=EIV_7?==ONT-SMLM(W5WU9KKX-&O]4OM>I;HEM.NYB>#3STOZ_:KY(@ MDXT-&-ZUYC\THRA$MI2^0]SQ\I**HEE<_<;B59P]/M:P:L<:;M(A32Y_4=7^ MQBV3JZQELO*LRRALXDE?'0]8+B?F[)YE + [,;MLO)R)5F%23@XE5!P9/J 3 M2*HG: VD_;B-5EWX=E,38>KSOR M >5M\8FE[^%=&7I9=>"]$=(FB#YE#;7)PVUR:TX27L0<)VGTO\/*L%2Q"?,U MZX3,,]8V9VYJU9(AQ0=>TC5;'3%]-&K_7:FSM9MZ;]@LMDIWH=XMCKL5:^9> MF6=O171U(CJCJ;=:/45TBNA>\&RMIM[I=6I/=$\P+RKNY6O!?Y_C?E(/J^IF M0ZK:;)^J\S:J^OMYN#$\'OT5U A[V#Q,< XP<*CEUZ M@1@'*K+U9O>4,(ZU8T\*F%4EDJ/6*+'&206OD.13PTV>Y%TIZ^:MGIX:Z-V6 M<3RNT.-$4D=O&3O:$@I)+X>D=K-]/$@Z.IO.:+944&$IJ'!BP01CJ'>;*II0 M=2P9>K>_K56BL/3B,9]A:W@\2#JZD$)O^"P!A7KHNUOFNC2K%3LT^6+\FID: MB/MP:C<]HZOWF]WC,5"/%$N&WAZJNU[%L81WO?[Q(.GH[GKMP3'7MZR+I5MK M'/E/N>L=6WRNT];[6R<>;PN+JIBV)XC?5E\W!MN*:(7?VN#7Z.G=]HZWS]KA M]_BNIL;IY;I]\@+90V>Y3Y#*F/GY;*"W!UMDI]8U6>8443O4C6Y7H?8(4=OO M;:N$ZXKFG%>PUOR-S3V'"]I6FC^4-'+O*^TT]_:"*V, MST4%MM;Y2IN][9LT*-16'[5]0P4LZWJS?+*OM(87RZ\X,S*0LX.>K(OK:R7O M&.*HHI%\G C:L9&&0M"+J;[C0=#173/;W>?IMEAIW?:9A9H+-\V]F6*;N;)R M,"C?XW6[PU=;%.'=>8.7.?F #7%'OT5,ON@>V\*@KZE746YU3]XT=$U!J M0;^GY_Z0^Q _[A(X#F!PI\BC#31@>Q&.",W0QS[L>;7%0V]Q==NRMS3A]>?E MD;N"-CNM1A\'OLZ]@,:ZO_.92V7@8LXK)_3T@V)*;#-YQ!R!X(G"U8\4C?=- M,_7+LV^+%T-E!Q*G_SN)F7ANWK/SD<_,[^?F&#;[SG0?S47PZFWVB'"^'$BW M@4:YL>S5F9M,*[YS0L"BE8'TJFG0N5;&E3G(6@+Y$OG)O'0P4]L:CNE)_ MPW@"S0S$,.E4Y\@U8""FY&Q]CF;:NW:O.H#YZU\&K58O-E=>?@M9T!B=!NG8 MW."M-,IPGCR-W1XYGF4"W2Z",-"U^<3TIZ;%(K(I- >ET939CADR^!91>>G9 M[,>S'+2'FRYQTB7)C.1QWFX4S.D>F0'#!6B,:K]S0 2]^CD-:0W>SUQ>@/W= M"8.&XH#GX8!-0U(P7.5&-M- ;O.\R)!9DQGL^'ZAF6"$!QQ)[ ?\+' >G'"A MC1GR0BS?8+#L2#T9@QPO*#A]O!;;V&ZH8-?>_/0F3I_4ET?K1Q8 M/F,SK+_'YTL10H4T@E1DFNFG);IVYLRT<.)%L+8-IP;P,3 5Y\Q' P<,B.!- M+/3)($N,*;(M8?NN.0_8._F/][83S%US\91ZI]/HMW:;^[YN6<-H# ;=YQ@GW^FIS=9KL_U2RY8< M;GYL8][O)B HM=_@=Y- NP+)9VN_D0!N&_H^AE[7%"R7$W-VS[8)S&USP:[! M(.O!DMFHILKO'W0G.%>^+'349/G=X'9ZV02[#L+>2Z+KRT%CN/DBO^?@5E7B M6V5/OM,0[9IE^2IJ/A5JWFDZ]ZE0)WG5ZV?%*ZNI*=R)=UI+OJI7$D5-=>,FG>: G\JU'S:I%PO.MYEVOVQ MNEAJ9EBNF'6?2Y]O5Z^T(TTBAZY+4+L\:(U'Q7,HP\4-B8JHST[S(UZPH #G!_.!O M&NPM&INPE(\)IH$U87:$>=_H%,2G,1<5OO#&^0PO!LTM&O8!\ ; MTU9U[9%I$_,!DV:G3LALGB8^P[%2YMRT<"NPN^3=3&.S/Q< L89V >_&U-G( M#6D93!NUV9P1$K1H[LUH7W/FCST?5K!X,4&\+NPTG#B^?3X'B"S2[_ #:C^# M3UO>%$YAP<;AR":0;A8,M$:\)RT*Z 0$@5SZ.[YZ#/C2 '!3_"301E$ 'P2U M2]3]G5$Z,R;A1KXU,0,@+>1R#C6;N0YH&X?*.O ? "; @>/90VH=>X"1.V&]G?O$2C=UT%W3YFDN?QN M+ #-B.$-WD&\P-XLI +7A3]&"XY>0:;:HX,IQIA6#+07+AK:)=8WV'S[\,L MT[MM^+6_T.8^X)_2M&GH6<0[X<*)87&B1-O39EX([W8=V"7G#G(FP$;C-^9W M"V\/0E@07WB&DLKU[M]@.,WI"X$MD!QNQG'I1 M7"WE\2;:N96D"L&WI]4>EE?Y)D$CIUGDHW6CE8WU-#9+TTZ[T-D:_Q6=++REGRS7& M^FI>C$<<4'G=Y@'O\H&&=H?\1Q5L9$'RPK0)UK,A,9E38+@PB&]++[8Q(5C@ MG=',C&RZ<@&$;/R._D7.,%*!8(V&0L#@-N,)@O'=2%KU<]SE#!^I;JG>H-$< M#G@K+=5E6;/=AFAZI43Y7JJ5(]5:I7/="I4CU5JJ=* M]9X:[[PL-N]52MFI)N$,]&[+4#DXBIB/@9@[>LO8=R*.(F9%S T:S=42U>V5/O2K*=FI%>\90[S95U5[ET63HW?ZVIK%"TTNCJ:\/6T^W1P'?_ L5[P#%ZR7/3U/CL9DHF!%-M2VQMJ) M5DIN=_JJ"ZVVWM^ZI=I6$#BP&:^(^/B)N-77C<&.(WT5$2LBKL2QC9[>;>_H M-JD%$1^S0\6H:@Z(4;ZS)*L*;U PX^=FOOA<$F (,1ZIA MI4HN!2P05>N^\\!L#?;G^ QK]F61QM=4\?J5*#(/V#T&\!I:7.P?5TY_]AZ8 MJ_WB4.&8.:<*P?@!>I4WD\M;2379 UM=:(*ES@\.#IQ:75^HYEW^W!HZH%3$\]*)-SAC\Q?BUU6O4S6*GR?">E M]DRA__J CNJCV-(BXUZZ^PFJ=[J&H>M4:-UBA=?-/&VHB\ MX95)JS\?-'J=_1MCW4:W52*W?I79TVH,^R7#*<^<"[5B@,^JV)08_4*9]V#[ M3Y+ADGQH93+\<>S\8#9]RH=@NHRW4: !9FZ$* /C%![&"99\YDHTG[L.@U]0 M%8VNC4T+1V)9#=0$X<+"H1*'4%*^CI:36,QG^ M94FI\#KBB*EL)@X<38\3G3(SP-EL-&Z1YC3&@TW-[)A&G]V;/E$1HIP/+1HK+J-E%LE"+)3"#O/-!22#WV2[](>S6!YE)PIYT0^>&[$ M1Y?*S?+!@+$,XD0!2\OOI\X/_H;"BJ3DB/"6?NNGW4[6'99^L&A0'@>,2\<2 MYQ3;BV<7;C.LL-K5JIG.JA]2)9,U':2V@K%S.;A3J&T^.Y@K;Z)) MT\]J9F#=P)O-F!L_&1_S+-'Y0>A9W\]')B_KF^(/B#'?Z/ K>#URJA?!NJ[K M660VR%7R6_ L*P*D6HO\3A-#PF9SGUF<\_%\.8M"P,_S%QK[(W((8'S^&VP% M0?%#3L[&A;$\>!,^L2!8_ $&R83-8H363?!O/NLC@\.^-H:I ;2KIF2B5$3 M)J(\.?=%X&^MHP&KTRBY92$/);$OW%5J.0K&A76ECMJLM/ M4@033T0$JDF1F/CA*K*F)\1O,M0HIP>F+-LHQ/G8&B#L 6=A'\-0S+A_Z*^I M_J$7V3F*-17N)5JC%LKYP\E7N)WA+^BFYIL.#C^7+\?]@0$MO\Z38N&;J$R; MIEH\AQ:067F%9\RN7,,H=P$)A3#VXX?V:_ MJ9M,W8IDA'CM+@]E+BE>4T:YCO*U/?A)SYBF*&8[>Q>SJZ6L62!GTT]Q,L)A MS9O%JB :\3-)KT3:P&"@U4&G2^K5UPP27S8S5%..=4TYAKEP7%V;PPWJ+8:JJV&:JM1>;B=8%N-V')WR')7;35.=O3EMFF:-9M[J2CY5"C9Z.\X MI$>1LB+E:IW\S&AWWQPK&6^S1AVLS-)([??>G. H8NX/9BE_\*D-(3YKE^?E M"G= .%;L# 8*/=5%SV#;,:851M'Q]1 9]D^YA0B?O,@S7[@?13L3BNY-H:;; MV=PY;?.]5K;[UJ.^ZE2HKPCX^ EXH A8$7"="?BLV]R?\Z1*Q+NG:%05#2?BYZK]DL7>G:;!C/ M4NE:4/K)3'_&;%X$F-K/4C6$-X8]CH#AG8"2ZK'L>>;-SGG=!>7=TO\ M;Q?&T!KZ#U8&^1%8HSY5]()5DB6Q[TFGG/DI_X9LBHSAJ@Y/**$OD; MRPPFVLATL:[[&(I3EW.O:T;8R\$"/4?<@VZC&2=T/S=YQS0D*^&L"8 -CNLS MR[N?P<%L)"PQ@C)#[@ [-ATQ&_%^QHT) YX=3B;*"._,'O%-5$:@J M K79.FU651&H*H)Z5!%4Q5U2MQ*"&L+MI>H'Z@8:53R@B@?*MV].&>GB"AZB MD:X"WJ<7;E'A0D6_=:;??1? */I5]/N2Q]YWU4N5Z'-RHBH2K+=8H$EZAJ))HG[OBSD(?E(LB8E2T ;V,'&"T/,=2XMF%H@>$\,+Y@]-]MXZBKZ*GUFH??*"NO5,Q&V[ MV&*Y/%E@K[G7@Z1/';6R,ZGU%:TT9SYU];9X T$'NZK9//)'7?":#:.-[>N< M(!.G3*V OQHF8?T=7M I?1[124^&73'&&+_(23?5DTT4<:NS3)>\7"?N(-/! ME*-]1<<[V2R/-TB?W6<[+/((_\H^PO)U58SD;VHJ+5O#?TE:PP,X;MD]G:PF ML<_JL/B6LNI&$NH(6S(2S \3SP43L-'DO06W#>B"#.D:Y4)NVRP[:+2ZO6>( M.K8'G?U''>'!;K\FF^TUVK4!K"("103ONHU^?]?]K,T_:*]^YZY[[32,7KLV M<&VW6S79*\"U7RY;Y,E1^Z5PH="CE8T85B/OHV4<)]R>(3'$Z!YE1/JIR2&; MG4?'"[B]9(<,:P6=?DGH?$W-0+N:_;F8+H?[]YXR:< M1;"UX*53WFH(MT-0X'%"6BFE5,O SP.TG M15**I)Z3I.J=7U[JP#(6]ZX,P3RI<>P^^JL\>W=;M4FU2;5)M4FUR2TV6>_. MVF6+L-(Y5D_ICWO@_/YE]_Q3\_N+SGB@+/ZRAVLW]=ZP6?M>QXKLZD5V?_W+ MH&6TWBNZ4W2GQ)TBNV,G.Z.IMUH]17:*[)26571W]'2GQ)TBNP,ZVSD>%I9?'4K/95EBJ.);: M^D!AJ?)8Z@.6MG4$*2R]-);.#+T[[&P]O*Z*&*K/B+K2R.DTW^SF-%%4W>VU M%%57E*J-XL&+3_6K$+[ZC7ZWVFX&/L-;=@[;U@56B_ZYS^;IK';_W-(&;%MO M#K?UK&P%@8J'SQ01UY^(=_$[G00-GSP9UXV2VUV]W=DQ,W";NK]:4O-IDW*M MZ-CHZ*V6,BL4$=>9B'=Q[BH:5C1*Y:N!ME51%;D3\>O>FB%>N_4[>L(PJ7J^ M\"0.J5ZXXPN/^1CK1[$)"=-I\1"L'"WVCJ8V.0\L&3B#+?M3#XIV\ZC^8B M>/4V>T0X7PZDVT!C>>C1S_\S\N$5!1NLPORDM7"-IR6-?6]*,\4*FKS*.4KQ M8# ;ARN]-@:-86:,&5K'>OEA:WIF1!H^$IA3AN.H',_&V6/)!+,U$\EH*EJK MV>AFMH)54;I&XZY*30,,RNQ%I_%P2Z,"Q: SN1^"Y-7Q'&P;1Z7D0O^XTFMD52HRS*X9_ M!IB"DC][#PAV@!DLP^DQ_NC2L]G5@^>"F?DLP]AZFRU+X+T",8ZRX;S=*)@N M-@*DX0)80V3T.^^?9=\E189V<0]H(E(!;#PR0JO+:'P@(I%9DQELY7ZAA4"4 MP1C![R70MR,?U)_ M^/;VA\1?(&# L<6&CI8:2%>V%\Z%N-2# @QGN=Q8SLA7E9VKN3; MC4B^,[\SVTRQLO@@18BE)TH*\<""T/WK7UKM]GOM[\QTPXEV:SD,=%X%<4\K MEA^ >.D%(9^Q63!Z4PU%S'^GYN&I>7B*"!01J*&(:BBB&HJHAB*JH8C5AM-3 M1R*6\NP>*^343,25T%$S$=5,Q-.CP..$I!JOIL:K*::M&205TRJF?2'PJ %V M:B:B(JE*P.V(FF&6S2C% !U&N^<[CGW:9I364::%;PV BF>&#_1N:\=.DY4I MD][0=D<1\ZD0\VY]J!4Y*W*N)#DKV:R(^6B(N:.WC($B9D7,QT#,RM!0Y'Q$ MY*QDLR+F(R+F]JZ=Y.M"S-NL40>';?E!A*UG:9VMA,.I"(>3,-Q.53SL9\;9 MYE8A:QF:2K<.I6*SV^BV2FQK5:EIJS'LKZLU/3.2;C6\J'TI&7L[ M'-9ES$%/-UH[MIFK8E.>(\62T=+;G?J/1#YZ- WT3F_;FZU"T\O+O$[GB 8] M'RF6.GJOV558JCB6#$-O=G9L&*[0]&)H.FNWMN_'6$7\'&'7Q>Z. ]I.G*3[ M>G_7X3&*L%]$-?0&ATUY/9QOY):Y\.&]KMVS&?--EWPDICUU9DX0^N27.$$W M28VG0;;UKIJ07GDL]5MJ/GK5<=316SW%257'4DL?[)JBH;#TJI&?8[A0V/2#\<(54W#Y([,G5LVV6'.C0? M72_[,UMK.OBJL?:G-SG*&.C&8,?8;"W&1RDB/@$B;NO-WH[9.K4@XFU"2T]+ M9JX@=MN&WNJJ4>]*2M5?2G4&QSR<51'Q\1-Q5V_MFB16"QH^:4T+EX'>8-_8 MK1B"E9 Z?B'5T?O-8[[3'G$.4[NKAJ KKM\Q/W&P=:*#XOI*H,[H&@?)7(P] M\X?+7+ST_#D.E63<-5_')$7MK+4I2W&[2N4G3,M^J6+J@VSQ6*.FAM[:NCZL MWH'30U-2#;9XI,0.5HK15[1>+5JORAIU!=5))%)\FYFNZUDF3B.WV=QGEB-F M@6.MR=2#K?Y)'SQK<=DQK7&DA7)@SK2/J,6'6N,DJ'9GS[^B6;7&KKQF!'MYAB:K7&P5U?\F%!U6WZ056LYQ->X[D\JA4[YC&MH5"FUMB[[^!M M: (5R?P$^(]<:VKZ]\Y,4IM%$J@KD-Y9:FP#2](0$*8OOY M?T;^VY]7+K+BJ;V!S6AN@IK1 JA]]'S-U&PGL*(@$)PHYVA;8JZVF*>M _B8 M]DH,I'@67">;IA7?.2$0F57B&""X(A>0#KO]PAW(WNQYT@I+PO55*?(9KB:? M%]QP*=$/_*2%$Z9]9?[8\Z#LMO8;O;QMZ%JKV6KIFAD _4WGI@_?A1X] M%9A3I@%V'<_&A>!W\.NY[P! 1Z:'<'"7A'25YI.+P5&3 :"2(T[*60 M@?V;($[ABP70[CA@(8(.=@[2BT")!Q7!D2#P4'\"/!Z=<*)Y41@X(-]@2P^. MA4NYYD@+HOG<=82BGL 6X+439MH6G#ZL&TV6:7"Z!7E*F$KR[&?(L]5[$?HL MA]P\YM+H#$+/^GX^HH/@%N#XW(BBI1I:S9!<5O!\]N K[1?'@S]\<\XBL$)6 MX;:?PRTV"2Z/W-UQ*S!4#J>Z_&1L6HX+!A<+N,I%0*SBY641<@),O0WJFPU# MHIZXNOG3,3#UMF;D!N-3(*33:O31N%ZV]Q\=.YR(,$7Z01XF>-=,'C%'@>=& MX>I'BJ@P791S(#)L&[GJC=1_._;^OG+;=MD>MSLCH-JW.V&J:'<,VVI;= MZ]F&80W9?P:M5_*A2>P.GYOW['P$Q/#]W!S#"=^9[J.Y"%Z]S<(%@)+#PS8@ M+(?S=3+!:+V #.@7 O^3\T?DV$ZX(!:X-.=HZ&N@";S(MU(9'_60:,EIG(!D MQA3D0.0SDDYP(X%#:>8(1?P"9<64@97WZ/G?,?,69S00^_&(.E&G]# MLA!6AP5!N?_.M(D)$G("PM+S\1X.0@A_#W(#W^/%MY^4D +)YT7W$U@RF BQ MBT)I['O3U ,Z%T+P"0D>]H/YEB-]/O-H!#N1 UTD:2.(6I_ >PE: MR0FUC]Q:6' (6RBN <7P'I Z' V(Y2C /Q%=SNR!!:&D19=HE?\&8 ]J!NB* M$ZWI@#CF/CCX81"-QX[EX&-(7D%,N?B*0NIM:%_DV\V9> 6#MSV8+JP"9 0O MFC"7U.BWQFU#&YFS[[4S7^X 5&,/K+!'!$ 039''_H3UO;6''YDN01:_S$// M) XB6X0G R2&*/SZ [/8=,3\S%>&=D96C0=X!N2\>5<2BAB?)>LQUN<4=@+@ MN>8\8._D/][;3C!WS<4[9T8@H(?>B[6$$=!==@82COC70ID-!XWF<(CZ3"0R MBA<+5=<@59=+>N#?]=J-?FNP\FNP\W;\KMOI[O3DNLT:W4:_L_KK"FZV56K9 M#2FH6X2O=OCI@>NXAYM,&;+3LE>($KFJQPH(*:[K](+:O#[DV%[?'/?2QY\B$-.=FR]79G&58J6%2U3-X2>WA_N.Q=V M7\3\0I6^A]-/OV=O)(=H1G7,S%ITQ*KS8U=O]^L_OEI17:VHKC70NULW"MDC MU97.FGQ9AU3Y9!@>8>->='0J7>8$>F6.M/8 US,-D4ENZ- CSQK[X00A5U$K MKE*Z]LC(Q\@ L0[ZN-"_:?HS=..R(/1FW/M&0400+C-<#MV;WY >5_]]YJ_*EY/OF@>QB:_,YY=@L4,87V, MC@"9-+1O!!-\X6_,M[YKEY[-KAX\%WCS65SMO5(IA*NR-=N- D]GDO8(TJK? M>7_0&,&%I*5"'O"9Q3"H'I,,8!1( IZHH((8 WH''IQY 949Y!$RD!0G:77X$ M"7,#23X?G%Z 5BN)>"UDUF0&+[M?-+24 M"%!$6D_'K[3X68%T=,2KIPE8$\ M0BH#\/&W0 LBN(<'P3AR-1,3EJPXI1]Q!G]C*H^=PB])J3@L//="6!M9.B6K M)/:I-<2RTB/&]TWXE >Q7W<;_6Y69L!BK]N#1N[3.5#2W/=0=:])E'N6C.Y# M(M+H,[.-Z.?%>YY /"5,QQ/&_LL_> 2<)@*-[Q9#CZJ]*2<'>,5%,2$EH224AI MF(]!@@O@H"C@5@-<5*2I#)(&S&T6FO[BJ+%532X"Z(<,[AYL!E=<1JE*VER* MN$0;R?30L8.Y*:"U)A&\&K,TW7!B@3'=T+Y&?A"9@'8A*,V,O2UTEHU)H-$< M]%&BJ2B19N+Y(5RW*!60'F?C,;\Z:C;F45%*B$B6BM=*+G[)37).Z:#3NKJ*W_\#%FQU7Q_G=[.'?.G]+GQ_HV>\/ C MV @(;<1CROYX/P\D<$]9< ^8P8VW9=SVWC-U:V!4?+%"#^/^8%CT MBPV+ST!:[E__TFJWWTL;0LOKN-1/_DZLI]UB]IE5P'YKE]/7+ 78=6P0U&E. M)3>29%_'M<.SX00B&+_F B((_MDY)O62_/@ZP5QPP\3'V#D+ M0'IR+@J1YOFA+S_\^[QG&!V> I_U.IG(;L /_"$NE/'M7OP43P#TA>18>^,G M(WD-7)(KUGI4\0NW**P\<]YD_3]XB#GR&9POY702[@:PQP?YF[T.B\ J@0D_ M%LGOA0^VNLT")N2B6# B4-[$0:]4S)GFE)+L@;,Y:"GOS1EK,Q;R-V)M,H-7 MOC;DXJ,4AQ_*HT-LA90&NT61HA-@ 4X J- AQN).1@=KO@ ?("DQ&\B\A]?C MG0C)A!!.69V.?2X6LX% N# &VT5TF#CG'^H(ZP0N20UHW;(S)4?(M-B4SQ6@ M0DPW@S5NNEW*>TIQ4_ W3%E26XJBC&Y3\# MT1^@^PM10=L?1^@$$\JS=KFUAM%9GC*5S$ECGGS3F% M:@#L(_3)LB!84C79<$K,VC$WI]+1BPF%[+TTG8Q <)!ISJC(868Y?RD5=!\$\R+*B+']"KN#5,/FC82.JHF$EO_A>,Z9R@H=*SF2.%0^J #VQU MV$6*"MS1@V/SRK48"CKG!Y=GF4?IZC.J+$O7LF'X:L5;.##Y3Q<:+]-!-;$" MO&C,)]$@T,#T.S)+YM(Z!_R M6=+R">_,\&A(1Y%V\]1$2PP "7PDXCGX [KMP__J] /LW,-]+28OY,YXB>+K M#OO!K"CM'8/#B4ND">O\<*;1%+]ZC1?*I$X0S;\UB M<%[0%$X0H/=LGO-KX%X)3*OJP?3N+/0;)WDK^'O'\KV)DRQ=L4R[03^V1;9^ M(%R")!)X\36N-3*YLW[0_ G_)W8A%CS%K6)*H21Q97YGFNV;8/<+MSP=RV8C MZMOB(*C@BZ6:,%@F<1CSSSJZ@ 8N-TO)J9OXS)]0,6 V(S\[5Q7 0E5DE8W% MPWG"\3&'$:5WQ&NL46"9CHCT<"HB;,I4.MXGT:$KRP/6:\>][NA.$N*/I!-9 M/N.BJO+/N7>6;K?D[*!K,"9'94N_Y5/8D@7U)=U]7+Q=@'"Z86C;\/!5>@.% M3.&+'W.W6A(3 T3!316KRN'M/"'33ME,\)J+U3H0%"QW[096[#%H>5I)GD6&NI7I[ZI67!(:<&76:XM;-R(O"1&D(U>"-@*/BY@H, M8_9E63:^2QCT#MW#!^Q9SAJ::PI_-_U=!;F';!ZAH/ M(* ]E_*^$MV2.DXUNBB742PB@MRM IB'KS"NP-LA()5XLWN/I'IJZ;EKSBA; MN*!]1V'UO^#_) 79#*D'*F>:&E^D'%PYSTSB!TIUOZ#SC;-R0KZ:J(EGT"&1DO6)6:N>3ZX@ M*<%Y?%%RLTBND_9D8G&3I2FS\00-D>M/QA2XP2OS93$HL13Y2'QL25H"Q1YA M9Z8%2W(G#W\[052^GR(3TJF&YK67:6.6OMI-T52 K^6^9+H%12HX*\;G +#@ M)H&6OV.G$0)V-'/"V">:31CD;;:DO!X[O*\8G"H0MT"XF*"0MECL-;;96*8H MS,V0,.R:SA0Q@!$PA+7I8P:J(,B8224MF:1"4A22[HM2Q--ZG.#A4S-:69F M!B4W)Z4&YEH_Y=4.N'K"%I$S=)(26"F^A8O 8TA2(BI,/8/HSIUNH3>&TX>! MN)6E2 $Q' ><)+8DAM"/2?LD[B*RY=F:GN:;3I#)SHQ[PR2.] G+[$%0;B[Y M(Q/M$DDM3"CB9*-Q)FE"J0Z1IRZN77&L,_,*\N("!D4T3' 3=BIR9A3!H1?A M+5R:/(P[;I!N?$%N&1U!%[B)Y]J(AD>Z!"()D-WB$JG1"S$;B"!$AG#\7@[1 M&-]9$YY>)G@E>[WV"TTMPI;K@/60;RR%>4#H*TX+"HI4DN3U0@IPR!0!VF:* MC)=PBG8]&-HIJAN;#T"88H%(X()RX>3AQZ;C%J[.EZ1(JOB)E+;I7\6Q3737 M\'2(6)]F0YVB49:XH:=DL0AJY" 3,T=:4],=AFY:(;5.&FO4?Y#=HQLC*WHD M9\14ZV6I38_MV$<\."!N[LD=)LZ0.7P>D!V0.%.<^YD#QX<]@%%&6&4V09/L MM0E8[&R6H0\29T+0N_ 1[43_2X6Q8SPYG=R0Z?N.BXRHK.K9I M=O8\7?-V[916/3B7;*17ZL"G!KC]=-VK3>.BSRR4_6ZYF[LH.ZM23?:.NN5, M+<;SECSUF6'HQJ#WYGD.7]>^>HI\ZT*^/;W3:5:,>H^^D=Z2/N*U!WO01V4' MAK:V@V8A"U>0FHVFWARTRI-S]5K1'3N&6GJWW3X(@D['RHU+/$8+[4R(F#>I M.-/SVKRE*+@ MG6A8$-O#;;7F!6RZHX<05MWAMPCAO9DN="[^SP&46EQ(T=Y M4KH]H6E6SY3$%\L<8ZL5[&: MFSA8S[-VOL2.\(OE2T$]DH!T$5ER3]>.$;"HR%BD5.?.?N;SWOPFE%, MLWC=228K9R;>SE8$8C EK#R6RL[??32#Y1F\/%T^3.4QRPT&THKE#: (MSAH M&7Z2::>2H%(.5]X6V<7SW)?W$?=Y(UX5FRA%*3430]>Q__,XQ%"1/W<+ L\2 MKAGRDB>94)@IX9.+RM802*V&#D?%_T^5& ?LC]^Q./H6N^0$VB6FF8Z9CRS$ MRTZ=F=B%R&ZJ9$&ZC8>/)WI).9!J?0; MW66E[X>W&%LJ,TK-^<4N2_F"!C'%>4]D73,M]#'V MD.^HA?@5"VU#9[RH"D-G%%-1$& +\HQ+15\;C4Y6!YD_L+D4&DZRJ1%0)#4+ M1!T$)!:&;MRV4M"=^6CZ6$,B3:!*2A[M=3-U(3BDO.'<:-$,>-$00@Y?I[*4 M9"S[EM>)K>CVX BA&X;1:.<[?591(SR1W\JI@V)M '*-CS$H13 DWM,*A%@9 MRV.(L;?EZ0+Z<^S_?>6T[;8]:G5&1K=I=<96T^P8MM&V[%[/-@QKR/XS&+S: MK%.>79(N)4Z*AB4.[P)WP3M?(%J_>BZ6I7'X70$#8=.6NMU=D*/@/@!T%I=Y MI6J+TYT"T"&"_0SB7B:\0 \OLJ9EL3G2B)E 1_1'=(F"1 ,+V*TIN@51(XOO M3/MO9-^+*E@F0;A4URW;KF;W*9HI)"T."C?..R?SYGT+*L;&E@D-U//IYCR\ MX$YTWQ&=>K!>/-X4S5;P127XB#'T^L1M>F(/@&@%:DER20-$D@O6>L9'M;=H M'97>%S;.B@+I2H%77LQF>)[EM@W_C(4.-<3B"\N^*YG6&?#?L>/"MW'/B]NK M2UJ*C?S(]!?\UZT!WXXJ3UM7GM9979Y67B0.C5@D5KNF[<6+GH:-0;>]2]$3 M/#C8K8QHW:J#?F/8*K?L?@M^7B()H+B6X/KNZC_OEU\OKN^ MN[B[_K\K[>+S!PT^^"3__G!]>_GIR^VWFZM;[>*7+]_NM-\N;OYY=:?=7-_^ M<[FR8BELM'ZD0TFAT-E@)SUKH>7*BW:QX?0;[]1QXP3?09M)]5\S(RG7)YK< M(:8_HX819 TG+1G&;H2&!;=;A#F>"@^ *H:%9Z*/C855X?Q;#1L+4)L7;",7 MA/SOU#Q2T0B&S!"A5<^8G#MD9=AKM M2GC_5S9?I4XJZ6;I-%2 C]B5_>BP:9XW8PO)O[RCA!A,@K<+'#&%')AO C:/ M?&!R,5C"]JC31*IC3.+;%3X&W[1%7YE@SJR(V]VI5=:TS\NU>M(FBSF*('ZA M,9H_95+_Q#ER8HLWP*&KDJF]-OIQE3P.3C MDCAFJD\3A=:3Z13Q:G"%Q&G# M,;&2_*U;&SK9+K2X5:AYL$:AKFB:*;H-+3<);= @+/&&J6FG>P33-Q^PB=$( M]42,,3/4'H#^Z3) W7MD>Q>X[F*@8<$G/3/M'D@(R1;] MD+>+-V(^NWBC7<-K?W Y?(8,)I:>1R/7"2:R?2%57@-KW1 )!KQ]I6SS+.%Y M)::&P\?H^OC=Q,!HZ&-_KG^ 8L0XR=R- NWLES=:L]%M_@2L(D&8 \'*]J-+ M$#$3F)A<\=+^L:N,*YU[.7AT&JW5\.#.D 0.S";C\B=^?9U3L M6I,9'Y-G09'H('JC9>;,<,])IG-BGE4W-85U/1KRL:8S;-;F$ ,.LOT]\WUA MEYI[KI;87ZB'%S>?^"28#'C(O.(.T-BW@VQQ1L: M(4CQ2^&.33KQ4MNJAG;K4$]2X8::X8["(#1Y<[SXU^FA\H7;7=U O)+Z?[-* M$D;T,EBY)D)MR;71;)%200B?/*'7SD[]**X4E_)*@7>MFJG(+R7ER7YO6]0H M5$S"0A[E(NG;[0<4=+A)6@2,8UBX(!R36]WA/^>VW"/2HL6%"^6)\8YSXI'S M>$.\(VV<3!;+![X;G%7)@R]D*GR;48-?ZM\+QT6?&EX(+URTKD#% F!0%HCL M,M1LXK8G9L.@J&38A7\FUBQ>48_;(J:A*U0LAX90J@@JE%M\*))42Q9+-[6; MI9J3)MWQ0&IARUQ:)+T'+I&GF'N7ZGQ7A$@ALYT8[YB$">:T)9NJRI^FCXRV M-PW;YD8HP/+CS [^&Y'DN1DC@^4L!MLOVJ"2?-8%MLUXFGK";K MC4R7C%0PQECXQ-M%-$MZ\"5B/ZTDENE=&7UYDTJ,_ L-Q'200GYO/< MQEE1-5.DOP-9/O,T@O*O?*EA#.)"70+ MV>@5UW0L%%]P3837@="2\WW_P*E!SGBA0K3K0K3=O81H^S4)T:Y.J'GQ?I7# M05>%;BL1NNT<5>CV\LOGNYLOGVXI;/OUYLOEU0>,U#XY+OO2J6A;6C17J"_B MM*@///Z'ABO.C/$!GZ28OF(ZH(UAPOK9-/'T SLYG)4^W#P^G+C#H+/7=),? MQ4V^;89&";_%R\DM>.?VN+&#:6<^W67$*/MDA$]ZAL8H%V?%:\&5O*)<6&CM MS&FP@D,SLE"FVCK?)29MZ:+_,*;IZZ)/ OY>1%/%78&&'$K_!(9QP)1*G-VW M5Y=_@\4C.?85-RKZWD_D',7T]FG,O15-(VX\R>D?T4Q86<*]F>3HI6>.\-N[ MF'@LAR@^H(T")@C&%43[_.0W23*>S, 3>7#B$1H-23<>> 8V0(/,3>S13.]@]3[DB&-XMZ".(V?M$H 4D*6%#P5J)B M37BB9I2=Y/< C((\B%;@LS0N^:R53#YZPD9_"Q*(TP)(4Z)JE@3P_8S'_80( MED)T5^> M*>S%N6^1H(CYOLPVBC&#(@#GL%@R4L6540JQ4R?(^,.2_0FE(^=&2B>B'.=% M2JZ1RA"#E\)7%A=<(#(R*X\8.H3S@["2G.]-5199[*9'[F*T5Q;,(::G69*& M?:)")?4)_V>ZB\ )^+ FXGH,R)'S,0?'!%XBA=N)Z97FW9158Y4R.W]+<]]7 M'&0"@+B!#VS4YP!I 8+?!;?73)K]SL0H+\D^2#)<&7UOIL-A%U0AEQ!JSCP$&R4DWRD]2:,3?S;0AE(QD;K"L7#48* M)O'U=I)2R>SM)2F%%:8[""GR(])(49N'/"31<%Y?TA/ >H&')P(6%&ZN>&H: MI3 DP\4\9A)6DT9/HF0)&N@9/&.+ZM^A*JQ\"J5S&7]]>+B:_T$YV42 MH;Z69'.9)IMD5NN-))N:"<\O20B.[@Z!Y3LC5)LC." % 7TF;>%,^Y1MK/OX MTL")(\_ Q*?)32.^.L(-!LO([GUS/M'.;+JQ9.[NZ?L-^M;YW4;0K44VBRT+ MMW##+LYB'0-+P^;^X -T^8_III :Y<[CY,A5)#=3C@<<[?8=+[VAM_R OAU8 M9*6:!&\Z").K4RL/ZE0+'=/FA:.\+]*C1OE'*RH_*\Z)US.$%,#E$P[6DP/J M9MI57KQ+3UK-V/!Z)OQ=4O%(?A!FP&8]E#&!A0;_DTE_VFRQ^CDY2#>V'NST MG9>G\0&I([.@*GMD-/Q6..>29DO(+4"ZL:_.F[F+8H<=^@QH)F1\.E@-634F M;K)-X/4!=_[A#D,^"3%$HR5]QPAR4X3E>O%B3$KY! ,F9B_")&?'F1BD]@9-,'3FKVX_!"BBZQRL?_KA@A'NZ!#>- M*E-$O!VM9S!6()*:YAP<0\6J\NO% MS1WWFUQ?-[0O=W^_NM&N/W_\FP+81DY:'T,8^]/5KQ>?>/SZZL/UYU_+!+"+&*>YLT:JB/DJ7'#H Q&> M8KP340=-NBGQ9"CAP)@S7@6!?3;OA6GBY]VQ+KO'G_+..)C3N5K9;PFYLN*N MMT'<]92T.[2T.[!$NSBJG!QLC*!]O+B\^W*SC1S;J]RJC;0CAU'<:2^NWQ?E M^\:>R_=-X9B+O3FRGS5>SD0VZTQ\1GF]XKZ&B?.BY",]KEY/7?LH[80NY6EW M4GQKT\YPBW_]RZ#5:KZGWA ?>7N#5V_ MDQ\A[@7AIDOL>,]Y6^F*R1OBY# M;,1<[U'?JJU2WAVYU-1)Q.PR[I)XT)*(#^V 'XOE><3]^(T,!JB.3(&$(,) M@9T*@.,"U-1O,8'!\T5;+>[M23?\E+DT2^^D\B#L!KYV=TTVR6 M.(^W3C5)986DTA%2)4YK"A^5EF&3?H:4-.2A:MCH6 MBP!XT6@NM%08UI3Y1+C%A706I7A6_I)Q-]=;SQ='3+V$._&XCS!._$NVNF,* MX&JH"8%FP_DH*QZ6 JG<_[A%L"/CIGU$CKN/ M7-,'1++9O7G/!('9#"\(W(M]CW,=T)-*'02L-#N/'9#C1.ERE^A$S;H[>0<^ M27Q4[99)!IUZE&=*$7E>B)U1XQU=:KX5^;GTK?%>!LL>GR:P5J:7[2>3ZG1R MHXA<15K4AR0S,_>04UEI.?>1)5-0*'0&90&+OVI.K"RSO M1B1ED/!D;UW69*4P!;$J0+BV-_,+50 ". M>2ZU+&85RZ'/J!IX),%YE M.;X533$0;B%$Q@DU%A@PVUHF28VRF#!P+P/56-D_$X&YT4)H/C@B0"P")>5O M&"]4:X[/IM%C?#3D%Q]0[?.@E+&JG(,WBL(4_P/#21>"22B@4]-5)YUT M1]EJHP0 P-?.&/,%_'3ZK8!GNOJ#FR++V7O9MH=/-KF6;4J42+* 7_1'DE9! M9L!&CK'CA.F<\\1W@MA\B,FGR*;SL'4?7:9DFP>>3IR,<\C:PA\2MP>\R>=A M0.V",/)2>.S89Z%L.HIWVJ*$IXS'+^=D:!.)R:('(D45#AO,3LEX+FZ MDY59GC03>0YVD#9T9?N54<<#BM\IH0Q/.\(R#;XK=%A-;FY8$89(R:T/>[,(5C?6PL7!2Z"K,7)IU MHUW,%HF4S9\"]N D$[F$E8S;^6P&MOF'=DL./-[^1<]:U]Q)N]FZUKD7<.*Y M-O5BS1CH-/O1? PB1Z;UK?$U9JXU%+@0/5QY2ZUXX,5TBHU5]NFRWT]@>_@J MLZ2*8)]L!+MU5 'L;Y]OKGZ]OKV[NKGZH-U>?+JZU;Y\U*[^]>WZ[O^A9/IV MK.\\>[UR:D4C;AX34HL<%G;U:45UM2MABM4A,/E,@Y MB,B9.K;MLI66KLC?/*Q(:C];FB"GB0,=\,/5QXMOG^YNM6]?OWP&8?3Y^LM- M2B8I^9.5/W26)UDY1E=)HNI*HBH8/\?54>NWZ\]78/1\O );)S7[Z*4$2_7$ M2,@]^A:>=B\"9=/02R503ER@=(]*H*PN'"I=VY"R-H[>:LF*&^7YWK?G>["7 MLL/6LX[IW,)?#G"PS@&VOFF%[WB+P45. 0R4/CEM?=([*GUR]>^_7_]R?;=# MB5Q-^:$U[.[$#^MYI=OM[9_+>HU^9[@-E^4TDRB%6TN@323/5Z5H>=>?%F^N M7:G-E>'C/JD7K8"E:4#7(7AZ22L33[<;QA8B:@O(;5OSO/+XX_$S'O]_S$)U MSGY,G)$3OG^9;7 8V=BZF(*9[V;>C+W2)CX; PN$X?S=V[>/CX\-V&'CWGMX M>^%;$^RL\I;9]Z;_UC9#\RW86,UVO_L6MSKL-HUVT\!_&NW!6YO]:!N-23A] M]?/%E!=)8=CSAN>\VMHE8H2ZP5+D\WH&^YB+K?!^/#:V ]7QF\;2'%H<4T<3 M=F3)0BC6R?SQ >S<1TPR@24OYK[CBNA5'S.EC2;OEY/+J"[ZW9D3[XYWEP(8 MB5D/H:==<;1I0-0RY>N2SW'X6Z#]BW>+@[LV\W:C$VD'$6DN)M>,2:X8Q;!NMKM%J]S%_]*W=:7:;@VY* MNN4$V0=*CY2)+F,053YF_%W@A%BLW\2L50?[4%/6RE>2)#Y-1\-,E;S@6Y[ MG99\FZ7>+9N'5)B*";(@+%I/D667HI=O3I(-SO^9$D]+;U3BJ3KBJ:W$TW&) MIR*KJ[7&ZOIEX=)LWKQ]M4\KJ*6LH),6,YU*7.X.EDTF6F;S1\#?>!#J_& MY?I5J9WJ,+2Z?=>,H5LE&#IIE:\8^K08NJ4T=,T8NK6;AN:5VCLQ_&@7%N>5 M6L9 ^]:X;5PV-+Q)]M\;[6Y3,7]%F-]H;L/[E;\96<-7BB;ZJ>X!Q=0JHLC;](B"MZO*44#>#UD,S[\X!=97QG/U-$^@1B( ML$78F?/O7VX^O9%M)(-W\,D;D"=F9#NP(,?/I8<9=MAAXC(]N.@7TZ5V [<3 MQK 715C8:PM%RHHVD&>.\X9_%+]06_&NVU03H;'V)6EX(R%T1\TN?_.HV>75 MRHEWN!O> Q1>ON/;;Y.ZU^!OVA7(X'"Q[>2]]#X>4@ OMX-+,YAH'X&\=CX_ M_>/L00#@LQ?RT2 ;]Y$HH61'115&2C&\O&)HW%[^O0*&X2%.+X0>RC+MSOSA MS;SI0HI #+Y9$S8UM0^>%2'%*@_CH2GU\N*3HM0B2KT4O1_QWY^1&3!% MMY7 '-+MAZN/BFZ+Z/8##DEW%-E6DVP_7?RBR+:(;#^9(^8JBJT>Q7Z]N5(4 M6T2Q7WT6 (4J"Z&2A-NI -$>U.O%6W9B!>"2LPL[C1K]]WO*>EKE]R*^D6TV M31J^"E_*+"P4+:6]%8,*<T%;,AA8S.49L8KICV=&1FC[S'XB>P-$,>\;B@J)= MXY\4O>=P?N%ZSUZC/]BIWK/;Z';V7YG9Z31 !^U]V7:C]0S%VL#^W6ZYS18K M,#E ]M :;/]FX3YVTJORW:"XYELFIXMQQ#.K3++L\5)!A?!5;!%_,$/V[ICB M];^9"VW(S>_]'^N%&@H6G^R7Q3,@ZJ G>AN\U?[A36;:/QK:9PI$FZ\(-#NS 6\ M4>F# ]7#I5" XOR640G\_^&T@U@QD!.3U,%RYF]>"20#*<0T+3F99K5.V.10 M3#IP5LR;>'"/5K%CJ--<[3A\._+L!?S/))RZ/_]_4$L#!!0 ( #V$J53Z M>SV\V1$ #?$ 1 8V1XR9MOM4T!)M$R.3+DDE<7_]DI1DRY%$4;;3:FL# M1<>1SH7D=WAX#F_Z\=^O\Q \(\8Q)5M7Z^N6N?=[Z]\?O MOOOQ'^WVK]?#!W!+_6B.B W#$&! O""Q0S\$B#^#4P8G8-?*/N&GV&[_5$S MW=#%DN'I3(".T^F\?[I.?)Z0?L"=GMMSW%/V]!'Y^W>Q?DI.O<]R>3\ M,+V<='N!#R_&[3-_[+<]Z 1M>#:69*>N[P:P=QH$2 M]Y9?Z)> MCR%'*;D?O!$NFPV]8B[_G9^HVCK=KIL2*U'8(!P3+B#Q5\(#P=IBN4"\F$>^ M/E&OE1ZG[;CMSH:F0*S8LFIZ)_'+%H!",#R.!+JC;'Z+)C *)4M$?H]@B"<8 M!=(,0J2 WB#(O!:039'X#.>(+R1BU0WQ\3L %#QXOJ!, )+CG$ ^UB7E3"@V M5]5+M6 ,Z /UH=!6JNAY6K4Y;:UPSJ9SO^N:D9$D*%EJ&>),\6"TPF-'X@'RFS MN4QM9X@FJ6_-#1$%'53_SPH@7,&)ILO6?PH_'M4/T"3NM67+)C@+6JON+_(]P '5ZT;*F/C 9S* MTJGG7X?WI8&.UKJF3X6F8M?E^>C(Z%/^!]KK:+H--"=0K#^>O&5X(RKB*'@B M'_7OMU:>,"Q?/#]2L._CE 6 M-?P ,EG/&1)8EGS_N&Z*-X.L_,6N((/O-S0>/.BKQN1T\B2]O"[C?CIRE6@S MV%W'\>S 7NL!= +6FHY]VQJ+O77R6GK,!N#)+&A_!G#L]^5 C03UO\UH&"#& M/_T>8;'<>_\WJ3";0<]Q3K(NXSO%#2Z.0ZXI@@;HM8,:\!G([KN&Z<]F#NAY1'#*D_ MUG(4#JFD0T?A%@F(PYW 2$68,/$<^9\M)N#[1.0AN;IKR+'T/X-,)2 )1M%\ M#ME2#D-X2O!$!@!$]'T]W8G)=""=C(^1+7H[J3#WN*ZKL]@-=+4ZA6M6(9 : M0:)2#W9KI6"M%:1JCP9@A1AD M-B48] 57>X!N(B[H'+%=L34*-2-[[EFYR#@CC)7$VY=2-4== M^VE.D!F_"T_/SUK@MQ)\1$P+W7SR!PIN(Z9"0\0P#79%T4JX$5G7\?3$JP6R M;YY*;2!6!V)]1\"U4-D8$\KF:D7J:1SB>(3:%6BC4#/ KJ>G5"T SB@!:RU' M6"L1^,U]%V!_8"KK=;CZ3R -PB)G@F]:L-S"5,)N]E.?I99]*+ [0%]V3 M9\2%7NC"Y#,ECY!]DZT@;7*$?!E;"?OY22M19J_5<_.A8$8LP 1(P>VU9+ 6 M?01MHZ5K.;@: LU>[[2;S[)M 3Q$7VC3\%MFW%N)-OO1,\\YWQK=0T_,;?"X MD2VTE/GLSS",$"3!'<1,_Z:3-='^S:"66K.)G'O.Q0XFDI8$:/5ZE4D5)OE3 M+31EW,4!&M$*F4<$5>OJ1K6TA&)>\X!\X>;SNPP@64F'CD*M =00!]3"AJWG,8TBC-ZOXWJN8PW. ;JOC3WY]5 I9#4ZKT['S:=];W;J M)X(.'():KLL@P.RYNMU\ MYQ9L$2I$L1WOFU5!G/Z1T77T?DG]56Q,!&6UXWI+868P>YY;L &P!,R,]"-\ M2?T'\5'5I;1Q9=T+-;03)':'LD*P&=93S\W-PI3"FFK2_72EZP<@M1UA3NK_ M$Z7!"P[#W7%]*\D,Y)GGYH+]4B!3T4?4DOH_B1EB?=]G$0H>,!SC<(OYDRT$ MFS$]]US;,*@-M":0J (970<)LCYCI4[K!S=TOD"$Z_)8 EG";$XA+MS\C*<6 MU-:20%;4P0-1*XTPBC F$EVGFY^4*@/E$%.)XJ:-CR3>2S=#U!S\0'JM=%@])7+ M?&MP_;078 O$F?'T/#>W3&? 4\G7^:'2<(1QTT/F1\17];/F69!E,289W5,WOV:>L,=P'&A+U^M 19SF MGG'F=7)3V1OM?IBV3N=S'._64&L$5)_D1:3&0663!'-/.'?SZZ<9:?%20E;> M$1>_[EZ_:CGF[/NBFU]5-6)TB"FXH9&WW,Y71Z+1[7F.U\DM^I@!//2M>X:V M?T R4KJAO.:23QV)9C1=KY-;ZZE"4ZL 2L<1SLW&U_/MNGGNB3ZNI%3N#5JC M=#/,:N6]+LSQXD$,=D;A$?--5-3>A '$@6P@W5;KTVDU<_/==)CQ[WJ=W*I1 M%?YZTX72"J3:Q XRBH]VL(G1(Q1J:_&R3V"XU%?M)%<[DJENN[T9@ZTBLT5( MGY";/:^RB%0S2%5G+K DT\1$CF:Q#5K6)W#WHNIH&DTP#3W 9M[O-U H$&R& MO>=U:F9F:8R0I3I$C('@CY)(E8[U.4=S&T' MM;+]X2"[WPA-E>_Y"=$I@XN9NC!;^BKMFI++)#+IB^UZ2BV9YHYZ[N:WR2;R M?P!9#=K%QBXUO04CH^6(:''KU]LWM(5DXX2F=]$MV.-5']U#G.:L!<:6$Y^[ MZ3 Z[I[C=?++X%M ?^@3I+4P2HB'2'WC3<:B[V@.9:K,5N%ZW?R*^596D7"! M50&.UE$%F4Q0U/Z^^),:0\QKK@+O1Y?9/M36Q?W8QT8!@"K!T4"J0$N>\/%R M3=]G"+ZCG52I-)M+U^ON(WI[J0+Q@9+I@QR@ Y5RB3_3 M?"PUFZW(\[JY=;[MK$@5IZW+ ^("'H*Q]UPM9913UW.?N>LP^]-SKYE;935"W-U;+C$9Q M=*4K+%:?K+G#1+T>(A_A9]UIQLO^5*;)-U"@*67+_5A'?7UF*[GPNKGE5;.5 M9+Z4DY0!9 JAXB]=#)"6X^]N+C^>O/)+N%A@&7>H)_'?A-"X[/J1?(+"^"M] MRIC4-[]_^X+8_(%"\HCF8\1: (ZY_E3#54NP"+4 @7-TU7I+160LHQHZI5(? M!,>7"WUEO"K352N(6+*VP",I$HM(QU^,1HNK5DR.!9JW@(C)!6NK7_PRH'.( MR;U\IP3%7PLO+'E_RI!^="LAOM5<9<4O)&U"'0:(J=D*.OF9JKFL>R*0-#C! MO\SD/^K3EX(*AJ=3Q&9X*L-+]"H9,$<+AGV4K>T$AGQ5W1VEOF/#+.*26;3, MZE,D9L/,D34!U7['Z3B#T=>^/C^FSM2:*U%.WXC:9#M/7PX/5KTL)MQ#^0-Q M&6 IEX;A(:MQ&Z8W2>V1F!9="DKD3GI5[;R/->8&CQ%A7Z M#R21#+>DH^J8X2@@; (@NAVOWY[Z[#,&R5237B_7) .X5(_Z+Y %@XCY,_EP MH,;&IXG:UI6<(>V/Z3-ZE,':/)JO1M9DZ"T%^4\O1R,&\_Z@?U,Q!&8HFF O M:DCN2!]?/7!GJ9I0\C@;PC#,I$.?J1A +F[5!:RF^MCQ-J&6#TCF@6AS+V]Z ME]/R"[U&:I-^?R(#W_\BR.YHQ$J[Y#:BJIL $RZ@ZH#QJW$\U,K2ZSRVEI.6 M'5V.S6QIX^;\&0JB,'$0R?[3?M&9Q#(3J"-A/]'=;*D<231&.T1WVF?F#O5G MW.IXN2;)NM5/LE!S/=ZNP[R?* S[_@RC9\TZE*_-_OQ=%=4,?HB 5.#5S( P6EYV^THM1$CVP,<4ZF$LN7JGD>S MBS4P-,&OQB/:Z*O-N+>F:D+)AXA+]^RK6WAO90<*Z2+>IZ27X\S5L6)M0AV3 M3S4LGUX("N3 /$0PP.%R_>F'Q_Z]N:IU)#2AQAGON+Y@R3IAS[,TH4YQ3A=[ M.!3I88#&[Y<9]CW'&2!" MN4\K[*"(L@F&,((J*]7#@&YW^5L/0'+(N^<\4FU8[HML>!N;U&_K2#.1D/Y[ MO0#XH,+9(VM";RF:RMMZ M#K"!$X"9'AU_J=ZF[Z>4[V16*9/=J#824$JE;)F]%-B,3157$X!)=N.L[EPJ MQ25/V-2Q4^;$J[5M,T!%E$T 98#5YYTA"4)U"4)%_EQ(VX1:R%S*Z71T<#*V MB&-*J)M0D^*C\16V9>1I0JVDT=Q %E(^6D"_8I@IIFU"+:3=N!=6FW8VR9I0 M]DJTI"DT-XR>2FK0>K(:$)-2[\=AYZ%=>AOEBX9.RIX'K'BHE42[T8 M1R_&<;4'2BW&>CR/&X^]>KA=%GB:R!)PK/CXP;A'T:B*/Q+_33JT DF<:LM>V@6,!?/O-9Z"OVYW6:[V16'\BQ M3]6,+$TP8%E %M^ %_][3S[-%R%=(I3L0,Q\&JV?'*C,?Z"M%.I]B=\A)WS? M6;EX8<=FI=QMV$IY9C;N$_EC.4?V"ZIOZ)M0FWCSO,TRG-.P9;C-T7C0Y'7RO<: %A M$^QDP&@0^4+'7!7C0 %E$VH0?\6PUIIMQ5&,'22^3[!NO=4F/4IF=^"L22@: MMANKC:)*0NG),SO>IAQHZMN-)OTFH?,SE-JB"@?QAJ@)Y2?L^OT/B^3L?8E]1-IKRF4N7$+B^3 M.T\L+ V+$XKTD)27^^NG02W60DD4"4A'J7+1(D6=\S7Z.XWN1J/QS__Z>C#9 M^XSSQ7@V_?D1_Y$]VL-IFN7Q].//CSZ\?PGNT7_]\L,/__P/@'\]??MJ[_DL M'1[@=+GW;(YAB7GORWBYO_=GQL5?>V4^.]C[_]X]=O3KR[&Z[Y(E^6/__7[ MJW=I'P\"C*>+99BF>H/%^*?%ZL-7LQ26JS&_$=?>E=^H[^#D:U _ BY \A^_ M+O*C7W[8VSL:COEL@F^Q[-7_/[S][=PM2=7X=;R@_P\>U]\_?C:;9IPN,-,/ MB]EDG*N6GX9)%>#=/N)R\6$:#O.8/B5Y5M=??ON$/S]:C \^3?#DL_TYEI\? MI?QU 57Q3!ZA^L=M+O_XNP@I3-+A9#5BK^C]\4TJX$[2X-#>,)BLDL MG?O2I"IQ-C_YRTF(.%E].CI+!9TCU'T&+U2BEA>'"B)'*(R]!9M M3%K(P+P]/W)5J 5)M5)X"8NXTOKQ94G[@C_&R7)Q\DD=9 Z,'RO_'^?O?S22 MNTKQ[' ^IR=_Q(W0Q:0 /" ]BTDD",9FB#D8GSBW/)>.PAS#."_3&7X\F:>] MV3SCG,S9H[TO6(W/L64[PA3FZ1)QSC]7Q]]XO#@\.%A=$X@@!R=_7\W MSEH-\9$2"?*N6GZ+B^5\G.A1>!86^T^FJ_]>_-\AV>L)@5K\,9NF8WS!FFRX M=!!E(GS>%O"62V#9A1)-"2:J+A38'.,F_! /AQ^=E-.,/+]-/Q/"ZADL"-SK MY3[.OT,ZEM_K:&G^YH"6(ZBB#$3# \B0K5,N1,5#%]9L &X3NLB'0Y?6ZFC& MD]>?<$YC,/WX"LEG>5M'\W7YL, 5IE$)@F5+.@R*G#NE.;EYL1!U0PKD\R7- M,79AR+6P-N&&>CC<:*>"9JQX.9Y6CVPMH(C%6Z$-)%L$*(M(--46M*0 (;J8 M5)%=.'$-J$T8H1\.(UH-?S,^O)G/B*3+;V_(45^2 :L3W:=JS?X@1,X3#4MF MX)0B24/T$ *OZDO(6=:>_*4NA+@.U2:,, ^'$&$V=5'_"8)-5&T?CJJW&MAV_D!U38ZD../"HA1" MV& @,ZN)8:0/SQ0AX];X+),QL8_-7PMG$X6[AZ/PW8>\F?;?+6?IK_W9A(9P M44W,\MO(LYA1"P=%6HI>HK D5$3 Y!4OY*4Z@UU4?QG+[K,8%J31S:M+_W>8 M'.*H>*F<=!JX< R4HYDT*$7NMTXJ:I^#\[K3Y'4)S)!2*#LRX?+\M=O0-V/X ML]G!P6QZ!H4(%(2[I,%8FC(5$@ OT))GE;W4P2/JW(4 %Y$,*4'26/L[#7HS MU3_)>5QE#Y,W89Q_FSX+G\;+,*FVVSM+4VQ2@2PM"0G>>8J["U?&!>.9Z)0_ M70]H2*F/QD1HH8*&^=5E&$\QOPCS*47?BR]F09 M1 1EA"H%2B$)%7FU)&N)($FEI)#BO#1]+.6UN(;D-^W,D4LFLYU*&CI1T^4\ MI.6?X^7^L\/%Z%TZ1-J M7HUI2+Y8ZIJQA M"U.Y=G7XR?)9F,^_D7-S% ^1KT2.C V0K2=WQDH$EU,!R2+SV@9O.F4A-H(W MI/EU>XY>KN):UU8IDT%ADH)DC(HCAHGIC( M&*(6?4HV-H8XI!FS'4OZ:*AIM<^4OO*M+@F6,\L68S&9S+[4NIJ7L_D5-SN-C#7'4E=RL=3U"9-I6#06L%&6 MF(D;3/1)ZFV.\99..?1]DKK0[-(DW$>!??/#+,@4N))@M5S5:WEP!2E*YY+^ MF8(Q\7O*#]^S"W\GG-E9)\W8\6H\"5F'JI(0N4["T .),H'*)"L]K:0+:9G,RJ=<^B0\;I+N M?K,;33ER\5'840T]'H21U,DGI\A.*PJ9E"*A'#U\P(QB(0?,3O:9:,^ &))1 M[$J ;0>^C^8E]XE'!RQ6ZG%RC -*#UISB<'&D'B?I-:5FM])GI.Y*JG ,5#0 MKP+S]$11 .&839 8#T6B-YSWJ92\C&6@ANU6FK^&PMN,>-<5T!-LW\Y4<6;I M@]"

3^^QO9YRC?AV]DT#@\62:X(6A3R=FEX(3)9VXPH4JOSB:6^ M!6?G\0S4H]J&#U5BLJE3]AX([2!.E0M*-)6+2V7..:':^%@R%'9F* HAU +@\%9$ELR MSDQP6GKL,U->"6F@'E0C ]) #;W][-/%.!F3-JF RYZF\&@SA.K9\1ASE):5 MV"G[<#VN@3I2+?C14"%W$\6?( LF"R^+@1 ]^?^!_+XHM88474I!"4N>Y-V' M\ -<3F],F.;*N4";?SZ^.&:OZ'W++FWOEO2ZZODR*\?TI]^V;]=VTWUZ]6V[ ME7R-&KB=FI'?I@0.7]7E/+0B9)=GG![B2WJZUCT +[ZFR6%M!EEK2^A??A^^DOQ,I\R0$-86,3'6HI6 8$VB M +<$7WR?)>8MP XIA-J52Y=+2?OJKN&\MUCUH3JN5UJ,I#$,,YE1%RVY:-PG M",F3'\\)EI%:A= GDW 1R2W#I[Y5+:WYL=.PMZM2P>59>30S,AB:,;T+H I- MH,%9!YQ9Y6OH;UV?A?AS,':O?SVYTLG#-YX>DN*^STI/L/0]>NYP\>(K M/:#$J/$TS+_]1CQ89?CJ8SN;3%8Z7^(<%^1BJ,PR5P*<$O2$>GI6O?0.;'1% M1%0^FC[5E!V%&I(5WIZ/EZMSA\&"AF7=QT"/+<93G&(9+T?DX3))A@B,L)$F M#>;!>1N 2\>1&93<]%DBN@+0H*QV:S[M-OR-N="'W$)H5ICF4)*D0:H1N LL M0F"2U>+V'#MM,+HS$]TI0X[=.,]0G(J'7.1[ >2/5**T& PX%7M&6]KYS 17.F4HKX* MT9#6+X9*JR;:;%LJ0%+.SI/]>,X:2>&CIB"#"& +J"03!9B^ ),Y*,TH;K$= M6_==B6M(*R%#Y5E#S?9+'93LLY""073UP! 1)/UD)4BIHS;"D-?X/G6P MG62O2^V^N2J]Q?GG<<+%N]DDCT+FO/!4P(1$2G2)(O;" S"3I4\H98Z]E@"N MPC2DZ7\G3JQ+DC100\N]^$B7J:T"GN-GG,Q6;7=/GD%M,3CF--B0>.U<2&$A MIT>RB*),\-JQ3L5ZU\(:TB3>E!SME-&N92JN#/ZO%!O.PX2 /*85901!U0YH6D=Q.,M;H?)1DNU%WJMK;#-^0IN.FC.F@GGM=1ZQ- M*EY.9E\6758/OU_]+M8,KY"ET4IAO?J%YBZ7#FTY_\&9;XX\8R)JFF:\1P^* M&0^>&0:!C$E"EV,1?;H/[03[;KH524-/":LK5:%NGY2J[AW*')*(ABF-UA36 M;6P>5+>BN^/@=MV-;J/).SO7:F1S8"4:3I&2)S\O!@W1E 0L<64Y-R7G/B'K M3<@&Y5?=&[6:ZJ_ELF;%\68^^SRFR>/IMP\T\_PV/)33>D5I>ERM/$!DYQDOM M]@WUEQ2X53-!PU(()>1B^T2WMP Y)*/>B6EKCGSIHL)VK8C"MY4C]W[V M)!&2.5Z-KW L.6H'V9A$Y@;)\-CL0,=2K')6<=5GX61SC$-;P[P3BO718#^& MK3*B9\[2&WG.ZQ)N JD$A8;::G!9!- L61GH:1"YS^%#-T*[943]]^333OIJ ME[/>Q55Z@_/QC,8JS6O=^G,\^I_>']7RO?B:]L/T([ZEL/9%*9B6HQ"LT0(5 M^=.I[H*QOAZF78_O\0%%J,].GW+,NY6SD\-VNF9[AI,B.J-"K&?>Z;H+C?CC M8W00C&/1,>U[]9W?'..0')0!\_U2>Z8^)+B/J,+EZG)E1OBRK)6\ J)FDBCE M'"K.K1O1?H MN0Y]\LO;3O=;%NVLN>[)DLCI,LDHVJBX,P%B,(P&0T?RF)F%**2/)9E25)_L MS,80A^3Z=&+9VLJ/%^<6 M*/@WRB;&@NF3&[\MTB&Y"7=E=7HJL^5&A0L.SX7>,B,F$RNR5G$PED 5CA"" MU.!DR3Y8GBBNZ[7=X'IH0^J_<$>D:JNNYE7-B8;@R(B.E#/:1(Q@$Q*;2V00 M5%(@-(ITGN=O%YMM=(1_MR;:>(D;)6">XYB%AT71'3 M$*U!8,(&Z1(RC]TV-]T&Z":<,G]WV]-.E1WY=OHD'#4A.=MQT+,0I34"--*+ M*IX<_R@5\*(R2D&^GNUCHVZ#)Q%L0E-W-^+)ELKH:.U.3=^Z $8$[!.!^%='W.9EZ/9Z,4(OM[V9H&FNEH=8Y/ M-'N.!6E^7'^RV8C+:+2V";C#NB'+U$)BRP"EE(%GB;TBLNWP;L2R.SLSZ]Y, M4W/5=J3AR8&+=124U$4RFH6%+PJ4\)F>#)J/D3M.'AO-U+:/S;H6UD:DNN_" MP?ZDVE91.W.G[G):@^?J9L6G1+_4L';$K<*D:G5)K&>=)ZYHAHX".!IE978V MF O-L"[OL6J(9R-JW7<-82MJW9<>[Z,*HZ#0ELM"3T0=%<5Y'2D.R?#(A6&L M\&XKRX :$>8_7ZTZJ3PHNO.$]CNNLH!%*$E_40*QXIRM9U?Z?34&+= M?43>3C%]5@%NA/8 %K1W9=6UFPUV5E?S O#7Y53@U>[@$9-6I4!AN6.&@_)% M0ZS;=UUD.J$L 46?[=17(7H(VP>:DZ:%=IISY7BF>#]['[[6-'(]/X^0O9S- MKXBX0D'C@O/U1!\D9A-:1[XQ2"]9%"%)C7VV&VZ+^"%L+>C%M:[:[;FS_[@Y M\%M,LX_3<;W8^4_^C?GYX9Q$.2H;?([+,)YLMWBT;>W][%B MDQ%^L5B.25_XNKR?!YIH4AW8-_-QPI%QSD6C-) U5O5P'!Y )9:QM-"5P7?I//TQGCD(I-A\?\(1&DIPO_-$PJZ'?[B,O%L?-Z)N^] M@\N^X94;N.C;R-#()3^Y#;&A[HM@THF,$+#VB-$FT4]<@S#).&5"$*G78LYW M%"W:.J^N]39\^9TL]7P<)HN13\%$])'N'!FH: (XQRQ8H9(FI?,4^K@ :^$, MR7W=F@'K.C#O-O!-6WNOH/PYF_]5%U=G"6N;<>:*<):#S_7D,^4LA(P2'(OT ML1*BB%ZGAJS#,R37K3T+MA_Z]C1X6;M+[F->=; =91M%+/4(;DQ[2GP?9#?]=>PTF?G7"FQPV#L%:3U" ]7VW9(>[7'(L3W-<>]-Z[3LMCU^(:DB_2C#-KEE);J:;E&=E' MB0?,9TN<)KL9_FL_N'[RZ#1AC3B%95;"953NM$2*%9Y",IJ Q)^%9G\TT MK208U#IM-P[>B[[O>A*]HOJG\21ZPUTZ3:*WD:W1)'KU >Z,!>Y#%E"TCN1) M15_S+Q98L)$;S!([E2M=":F!/:P7)MX7BAA(86'R$D^O3D_ ]XU!(QLD,N44 M*%^C2F<8>&44"$S!I2"B\-U,WJ8@AS2QMN'1&HO616/MRD\.YVD_+,ZD-$>N M2 I>,-1#7>M47R@62:&>+,"<1N:D8YVZGE[",J3XOP]!=AS_MAO7KQ3Q/%&3 M9DDZ)%_0U0-+BI(00[1@BW8\6AWI\RX$N07((:4,^C"GE\;ZGA-R<# ^ZJE* M6$ M2:6;R+#VRD/R.+93W[G5RYT&KE.WIA4.P5+P(GN(-E2)1(8@E()<6 [<\>K- M])DB+F$9D@^QF\H;C7?#3;H4B[_'^<$9_BG/@@X"C->Z9J\Y330.@6O.O=.) M&]5G$?$REB%Y &WTON-XW]/$_GM8'L['RV]/*/;YMA@O9N4\?_O,]YO>M:\; ML)7LS;R#Q0+Q_/U.*UM.ZM*?'^+(1NN4K*=*9RWJPF,B*^(9.)4R!:"9F=2G MH'53A+O:J4WO\S\8YB]GA_-1SBXRRVGNU*JNR*?:!U-FR#GH&&TN@O>Q8K=% M.BQWI@/?+IK KJIL-C'>!N5[(A".C%?*B@I.V-5YRP@Q,@TF" Q)TXP1^^1< M;@UU6.[4P"AW>V7>#^>^S$;6&\PI9S"ZCDMD""&1VUA$U :9L[[QDDB2_(%, M1/'2UI.^9??5A\NDN]#-W5JRMW@0QA23S>N>\06I MKF(>,<4MSY$#%]I5O/74%&D@.)>L""RXTB?)M3WF(75K'8XUVUV]P\ZMC"[L M,[FK[ K==Q#YE8ORWW6&I62=E0\9;+#^J,+?1X.0I1>9"Z7Q[YQA^3#-]%#5 MWNRU:UNM=7]R4-^-2M+,%?(0DA2^-MPRX$RB.,EH%EAF7E];,^'(VH5.E0KK 3W( MY,DN'&JAF WGUN//ZTND>_WRP_\#4$L#!!0 ( #V$J5195Q[HA%P '\5 M! 5 8V1X&UL[+U;LG"R H$B3(!6 5 $**<,@4 M26%]E?FMJLRLO/SW__IT,?KN(TYGP\GXK]_S_V+??X?C-,G#\;N_?O^W/WX& M]_W_^I__^(___K\ _L_S-[]^]^,D75[@>/[=BRF&.>;O_AS.WW_WCXRS?WY7 MII.+[_XQF?YS^#$ _,_B'[V8?/@\';Y[/_].,"'6?SK]"Y/&H=(9?) :%.,& M0D('VCN#+BGZ1^S_?O>7(G5.P4>P*290@64(-M*O&9YX#MKDC(L/'0W'__Q+ M_2.&&7Y'BQO/%G_]Z_?OY_,/?_GAAS___/._/L7IZ+\FTW<_",;D#ZO?_O[J MUS_=^?T_Y>*WN??^A\5/KW]U-KSO%^EC^0__Y[=?WZ;W>!%@.)[-PSA]>0 ] M/L^O_^%--/J'Y0_I5V?#O\P6__[720KSA7H>7<)W&W^C_@U6OP;U6\ %2/Y? MGV;Y^__YC^^^6THN3--T,L(W6+Z[^O)O;U[>13H+% M)\P_?\"_?C\;7GP8X>I[[Z=8-J)?+;F"TA7.?]9/^V%O3.\)R#1=1@3Z+HXK MP7O$>-^G[X_Y^K,@8PF7HWF/B.]^=J]X)Q=AV*> [WQT#V@7'P07>!%QVB?4 M6Y][ ^<*Y#K"^I&TQ^*GX8S^?_'# MV+R3C3BC'3%[/):)CK]OH\C.K.\?8] MXGSVMW&XS$/Z[NLPI2WX/7#-I%"*.%M\=7,[@70@?!F_G])QZ7)*(\"5].1N$ MJ*TWWH'),H*RB0X\;@M$5#*QXK3/YBX/9RM>ES"+"R9>/8(8*?@/.)K/5M^I MFN; ^-7F_I^;L2RUN?OJ7HX_XFQ>/W+V;)Q?D\]KUL-P.X&ZO_PN?GTU7DKC:.7;<6JH] MU"L?YI.V"E@JGM;T_7>3:<;I7[]G^W*$WK?Y-*3Y/\A,?'$YFT\N9;TKH*[-.'[ MTN0U:14)27X[GZ1_TA;\:KJ00OY[&%WB:YR^?4_;\@"%=5GJ"((,_XK2D]^@ M+%- M.@)EJ7L;:1"SDF0GVM3(!MF,Z2S)L(.X[Q)!M2#"J\MY#<'4J-8@,\68RA&( ME*S",^"\SL!CDLQI2^??X=AP ]A94F)7P=_EA=[?$KVXF(P?/MBXT);<14O& MLO&T?*D@H%)0N+!"*JU3:&-?= #WY/G1MP+NIX0ZU,+ID<:E-HN"Y.R)I_Z,#PX$U.B#T'?U;_K7?\WS[(0M,@1!=B@-!F[A4-@18+Q)0O& MO-:R'(8$YV1!]";RNW3P^]+A>JE_A#C"02!#AG,"DC)SH SYP1[)^4&."G,4 M AOM K=Q]*CR&W=XS16]AS#O"SY]M[R1^4L:36:8__K]?'J)7[XY&<_QT_RG MT>*!?_U^AN\N[H3UMN?#&QR%Y6W!_/,?TS">A50%/WO^^>9/GGT:S@;%RH1! M(H@'Q<; M;2=$@[4[X694^?'&A6L_I\FF:^V[A&BEQ0?(LH<*#D..++W#8 /8G LH$>CD M,]Z"=T'2*Z(YO31/FA2W<@=.B1/;2+Y'+LRF\\&S4H:C807TTW@^G'_^;6&* M#9QQTB65H3#Z0V7T$+**Y"5CS%IK54(GNX,><8,']+=U#FS&<'@SK3.@7!8X"" MHEC2B_#QJ61_O,&/.+[$V;,X6UPO#Y2WVGLNP1O&:&U)0Q2204J!:^$+"[:5 MF7L;R4GXP=MH^NY)M(=H&R1Q7.'YF=9]7S+!3Y_2Z++ZZ#7EA/[+?X1/ ^/I MM,U6@-1H:8-F!F)D&K+(/@EZ4:-NRH9MP![C1-M'P_?3I9EZ&EBY5YOM^-V+ MR6R1O/33IP]U=_XB$(&&^U@"9)-3?7\2Q,P*:%3A/?GMI5_A M-V!'Q?6J_#*9Y(KN+4X_#A/.WDY&>9!$X2[J )H; \IE!\Y74Q^UBH7;D%B; M;64SIL/SH6<%WHG"]B+])K[Q#.D#WQ.L'VG/&TT^U)?B:O$#$;QWT5??+W," MAX)L>,. .2&0HR.3KW4A%T^ 7E(7(T8&2T.22%TMLV5G@G?.=&F09::9! MK[T M@3?:<$U>WW(NH&&_ZJ7F9R MFYVKXP@ETYS<8<@$!U1T#()U&ECA)@OID/"VV0$>Q/7DZ="CV!NOYP'*:?%_*I15@U$#-9V#W7?+G>A-LA1_BE,Q[3AS%;Y\\_# M;)@&+%@K2C0@@S*@R$V#B&1?(:WU_(#;*3UT'].!Q= MSC$/K"N>QZA!%/+&E:8E1U5-;$*4,5D3C3^([J\ G9WV=Q%T@W3D?V!MJH3Y MV4M_H;T%X1_&X"O@HF,?0.?.8*5$BV]N!*(&+B&E7V+K0Y5K8$ M>JXTZD4Q]Q!I[VNY]23NP&D+] @YZP J\PA1" 4V&6-HV49@&T/S9$HC]E'^ M'L(\=FE$S:]\/9WDRS1_-;VZ-UYDY9(8E,]"@LY25-N8-CG-.0@9?/961*58 M;TFK]R$XE?*&;90YZ5&H/>SXWJ4 M^*0_^KL_!1E<)EIJ_;1(6:%:/4*[P;Q6)# M)%^,.1M=EB PD"\6T(##H("5[&1.5AC59I$;(9U$?&(;W3]0;["'L!O4J:RY M6[2?*WKY,C@?&="7"6+)"C"GPHMS+&*;#(Z3"43LH^4]A'FR@0@N0NTI0Z@C M^=XJ1P/1E0BN:,5*(M]<=DH1?^J!B*V4^5@@8ANA'LP)[0+JJPM$;*6I3M[H M+F(^& >B8DXP7J!(ID#)H*L5'J#$0KI#7V>'/%7=;QN(Z%_UVTBW[T!$%\]+ M"D&@O 8K%0>E1 &71"U*H>\+QECVY3&_Y:FYLEOI9%M7=AN!-BE"[MP%A*6H MELGD1A@R>^I!%P,#$Q2:XCGGK,T-U)-KN+2+(=!8(0V2_>_I'](%T;>&2WMH M\?'F.KNHX# -EWRIG>V8)#^)T6&)GD/4$L&PX$/.HM8E/6E2]-=PJ6=.;"/Y MPS1TE+:-EQYZW@&BX9V7NQ8(M\5Y&R0W-@K%/?("]H%9GRDF5-5CSY"5[83)MXDCHZ&4(C*WE+ MH"<1+]^&)_>4AS133(LH^IT$PR2-U99V?!16@BJT;=/Q'J$(D5E2IK#4ING* M">1V-E7>>LA]+\DWL(WO+G4@RO*\!^6K'<"BA9"$!IZX2+F>W*%3=L\.&^8Z MEC,GPWZR;]%=I2):-N?_\7)*]'R-T^'D*B%Y\<-7'Q9^PD^?<)J&=,0/E,7, M&!.0620!1*T@IFHU.M2Z6%.":"#^, M7H=A?CE^$3X,YV&T@!O#PNN]J#7BBTRO-TBBFI%C>W6-LUS:&TR3=TL5+EZ9 M@3#..)TS67VUC8 SBS8"&GQ0M&"AC69MVI6U7MEY,_>D>-&@O4#G]3U?7]_- M0^#1M0X\9J^*P($6PM'13ZEL1,@.?LB6/SH@Z2$5+UV97* MFI!I<;5O)9;:!=TEX#XZ5QM[&7N<$/C>%1/6*.>C*&!MKN.S3"0CJGAB$VIK M=+$H&UWTG$K%Q#[W?'L(\]@5$W>6L*17/60FXWHD+9)]4DB(A6QLR70M[Q&: M5J0=T$)%4ID;[5L1_P%8)Y)*N96Z-S%G;[$WN 12,QF];N-9') 0C^1/'IH/ MVXB\R;B>Z['=5]E]G'&C4@E0F"ODC^0$@7L)#)5-G"EALE#1 MYK'H.\BW08;0AC#>JDY$LYRE$N"L"'00)D7&5%3D !3-$JL=4=I3517C+));B[P.:@W)0Q Q I(.HS5>BV:Y]/?A.0<: M]"#IC=E!?:947Y6/W8C2_SBG=8%?0HVDAFW]=/V>XMO?_BKU8=_<9!1NNB4 MSI#$8L*VQ1JU0D"EG0X$6\DVE]&/(3O&D%,1M:A: V=8O0! A&BMAU**""DX M+AM%T9_$D-->N=3'T--MU-7 ;-H@CZM*3%=QW - W5W8)SY!#=_NJZ M,]UR7UDW)X#2(<3D A3E,BA;9^U)5@ M>0::X"G?Q@<[@.*[AN(:ZWT;$??= M#>7%9(I7:*Y<02N]3FKHKQKX$UZ8)U>V>2PJ-4HHYL++&>#@Y'I%I#@YM2CZ'Y'BG>7]/KMM<[T97 M+R+NL2+NX2Y,74!]=;WGMM)4IP9DNXCY8+WG#%-1:!8 D78@)90'EWD!HY4K MC#%ENPW+.47=;]M[KG_5;R/= S3!=ZK8$K6#Q.KD>L$R>*83R*R%)Z")#J1. M)_;I-L'?2N*/-,'?1ES':()O58@FT[F$2.>2BI[L"&-HU261"9%RUNO)BT^_ M<^#.^NU;H#WOT-?^WR\X>4=FX_O:2GVQ*Q7,$H4KH$OU_8)QX&)44(3C7.<0 M$/NSSC;"."L3K1]A]UA+O@"U]!%N0KKB?!=0O=MI&^$RO8 M""X:3F=2ILV/MCGB>RV?H#])?3)(GTP1I5.%X2D2X %C[9#ZWT;$?3?VN\ I M(5E9'Y+5C@)D;B2IZ0@RDC8W+BT9IVA9]"E'T=\PNMO//NQAWY,R)KU(LL%U MZD^__?3L"DF)4M*YY$%XU*"DB> EC\ ]HDF*[)?0II#R"X:GK-L])=JWA_7L M];,75S!8<+(8>FXP9(308TL-T",9DE9'6J;3Z]EC&TSQ+Y_YE!6UCWB.E/+U M&J=E,KT(XX2OXFBXM#=[3?AZ\ DMTKVZ+VDMVT9LR/SWXK%X2GE[6!]&Y_^'#B-AY]5EL$,2RHZ0;N$D-6QL^!C1MHE8U'92\%"J^3.?;'WE"[V!NO+O&Q+E-1ETT 'D M3Y\^D'PP_S&\H%]Y5=[2=V=EV:=[*4L^YTZ.A;)L4 %GLY*2(YES9 ;94_L M6#EHMN1ID/00RCUVQN7FN<[>L&"D :O(ZU5:T?M5A(*"(AHER'4JG0KEG]S5 M_B&5_]CE_S9*.-C%;Q=07]WE_U::ZG0#O(N8#\8!5Y(RPB[2F3(H0@<.=0 I M4M39HE:AOYDA)W[YW[_JMY'N 2[_1:J)95F")&<>5 Z^>@L%LM7%F1P,6Y^B M_.0N_[>2^".7_]N(ZQB7_X$%LH&T %.4K5/N&'CGZ)@J"5T]HZ)(G=3YA"[_ M=]9OWP)MYXKL[E*]G8?I_,0E ,G;,V,,ZS MXP1SKPAD_: M/^[8!>):=-$Q13NJ*\X;KF)$KXQV64GT19A0S&##9^[9C'<\'^;AZ+):?&\Q M74YIK3A;]K_#O.R/=_'A4K"!X&R ) M9IV@G]D0F[A\?:U@[[;&^^%X=C&Y',\'*HD(1F>04NFBM>>, M-YJLU ?\P\=[CL+?.YV5#Z[Z!E'+M^D]YLL1OBI[+F?I*$KK6*RGD3,:07%, MX*/)P(RQ)E@=A&HT\K;7=1PJ)'02/#XB!8X=*.I)#\\_W_\!2T\JZ&!=YF2E M,7K!4R$KS='[CH$LJT+J\KE1:_MVBSK:^)PC4K7?W;\WRC2X!K@?V>_A E=1 MG [XFC8'?0SAA7=>QSHH#Z*("90PA=Y<;@@L1NXS^7?E MD%MI:[X]TJ;TZ=)M"S6VZ'-;A^+<'(7Z>A3&JZY#WBC.2X 0'=E1JO9]CX86 MG\F<2KH$QQK-H-P,ZE3*<)=C_BW^@,]1ET>CG^B%<#=H?CWR?CW\+T MGSBOQL--N4RGB[NS/4)2.SUG_X#5_LM;"V?%&)Q/$4E;06D3G9=1&+*IHG-% M&C'8Z8G[O>_W/>*+Y^2XXPIE ">E Z5%95OM JM%CB+HG'6;,^5!6'L?I1]) M"+G-]-:N" ^_ M^_7'ESLG8PNM- @*O9C06SJ=#PEI!380HJ@Z:0@"M[Q.'XP0G4[@F-:&J9#O M=)?N;33?+2#GQ(5]9-S **H8EI"J[7D%#O/+\6P^O:S;]7)(]LO9[!(S'T@9 MLS9)T5(]&0#%TT&=L(XB,\%9;C*J3MW/MF;$=CC/B3 --=1CE^L5VB_G_'+F M_+.+"9']WU>^R(_#65I$O\FPR\DQ"\JE LI[8GUD";(B0U*XF%VCP:_=\)T3 M?QIHI,>NFXM[Z>78PR\+K\.Y)I?S-QC(&_E,UB!.+X;CQ0$:AM._A]$E+DD_ ML$8&[^F$)(.:U\H: Y$<6(*N:?LL42;3K9ORSA#.@2H'5,)=ZJA^1DMO!7QU M!^>CXBPRD+K4P9HI$>;"(&I?DK>JWLHWV85VAGP.;#NLWNX23N^U5]WR76^; M[UT6,!Y?AM'5,FI:O\D6(=><6A4\([D5 \%PCLK(XKGJM'GUA^D<^'5,-=UE MF]EW>[M/0,MK+"4+TTPQ2"*3<%B2$$3Q(.FO/$JOTWHJ8\,0QD'OS]MM2OU( M^U3NMZ^[-K\8A=GL55G$8!>!?A[)JL-(7(K02<9K F".=8F_K,1 MTK'NEGO2^*:1CWM)OH'#?Q//552_"Z*FU[IW,1UY\.-^2EN/^/0C\<-PP5CM MF-013"N=Z_!#MS7Q5, M6LBO16+G MN+>Z'%Q(M"D2'7>=BJT!].!0;6YIQ29):95K-=-X)ZLDSH6^!- M)OLN#)K/K_X<8_Y]LG)YOE@\BXW-<<%B[=QOR'TF,\<6"'7N6M#*):9,RJ7- M0(1.\,[,+.Q=(PUB^(^"O)$1T@5JXWGAG<$>R:CL7^7;DFI/?1UC9[H!V=J4 MBB*@/-3PLJ^.?70(W%OME75U@SY/:CUFJYX4L[914PM?YO:]^M4!S,E"%ZD> MN\A,G=NM:F.5!%9(9E,QTIEPB R&XTW2;J3 A[,:=I!^W\7#;_%?_\#1Z J) M%EQ:Q 0EZ0!*>5Z;[SE ^E(YH=QOH[L3\K-Y*NF>9M;83A,3N?N8EDO7Q9>1!Y3+%DK72]_,7.=<@A9 MV21SIWS/K="TS 7%%(I.@8-(ABQZS+1/^=KN@ N)NJ2D=:5"[K[_:H7 MR'FPAF"77-.\(SBR%("\X))]D5[&-MDY9W,OO@VC^KL7WT9O#4)/FUWFR(WF MZ J4J%5UF0UXP>O,8.OJH'=$TZ9=P(G?5.Y#DWZD?3(WE9U\&>ZB*<8@2"<% M&9310;2)@4[%.QZ$X:9-PLX3#55MQ82=0E7;:.3(<80N4+^%JGI6^1X!A5WT M=62*9<]M,=:"04D.;R3GRW$C(6;D=#2G$!H5JAZ=6KV$J@[%K&W4U/?=ZV\D MN'0Y"M-GLQF9F"/:JU^.T^KN4-BHA<@@8ZEWS$F"A.R-X*BU7>?/AC#% M0T\Y[:C%5KJ9M!!LVTA4]@FU" ($N="@C-(05$$@VURYDHO.ZRWFGWXD:F>= M[BZZ_E,F'EGN;\]>KKBF<@UO1E#2>E#:<'#9"G"11=32EVBZM23L_LRS57\3 MH1]DQ,JU;_X;AMGE=.$M[1-Q?/#S]H\>=H>[%@FT&&J1A](9;9UQX] 8+223 M3'@O8AH\^,G[F69?XA^TY2\Z9?XZ#'$X6GA 5X_+K\9O*HVFP_$[^H7?)^/I MZJ_/PVQXPQFOV3DL!W*6%)/UML(30^D/+YQSV3,34IN[HEZ7L:^Y^_-P',9I M&$9?"@QGU]]; GP>1G7$P=OWB/-?II/+#[6]R+-(OQ[2?, XLRXP 2SF#,K7 MQG8UEZ84QY@4CG:"-AF$^R(__"9Z//ZN6\\'U7J+RO4P>T_2J?^KX=./8;18 MP4J^MFV'B_:]_Z!?QDDI ZZDR:J0A+2H MDQ14)-,DTE^3L9H,5V-CF\C /JB_YAWQ8-INT5!M#>WMM=#K.YO]C8061L-_ M8Z[ R=PN3G/'05B/9*(S!L%K2?Z5<8JDF%ELDP.Z-=2OF9-M]=H@D[0/T2UO M,IS*F?R[!!IEW?MM I\% GI50@DA&7VZQOE!;QQ/AZ['T?ZIW&A>K_[YY^LO M__<0IX3L_>=?Z_B%1: M1^+.)@;WI\,&Q_V]$9:[>*^B<5W -KT&W0KN<2Y"6^A]$[6:*>WH3,.B# 9F MP4I+;UZ2'()D'CAW.2BA%"MMTNI.@&&/W(>>',&VT55+8KT&L1A..)H\;"5)M6!0^ .J(7TK\Z-Q%G3UTT"//=!TU< M03,NJF"0063.@5()(0:?H/ 2$@_9A$9)JP^ ^MIHLHLN#K2;R!6#A8@J:0': M!E?G[@3P/F@R!V4MZO31K0^,:T@3^7729!==-(A.W!]Y7AR\3/JLK#&0>"ZU MI5U--0@*LBY2Z&)8*Z]L,Z:OVQ/K25<-6/0&9_/IL$YXOQ_C_=^]>@.Z8&_J MC.V#_CB^65],N#,F_3M%!FZCO0;,^VTRQJN\K)\OQWF%2GI,T>D #*4&E2,!@*L%3+QLE? "],!JW) MR1#:W/6<=)7/:=AA_6NPQV;BNR2G=H'ZK2JH9Y7O4;NQB[Z.7!6DG/(\T"ZK M%:?W+5@&3M67WCO#2V%"-AIV<'1J]5(5="AF;:.F@S6PH8-96AX+H!4.E$<& M7A(R@T45QHT/NLU@NB?8P&8K!79J8+.-] \RE^YF&N8JB;X:C^&.#;E'J<'V M#]F__F#/A:T5)1B5>7)*!^Z-HBTB6!F3SEFB3H)K'&S_N!:AQE^OTVPR&B$< M^8W<*4;4=1*B):*1"Z"2,2&P1E'I1X U"K'.;[5^&>149UUQ>G&EL[3Z*,$% M\IJY0Z.U%YA*HRY=7> =H4-ICVSI&$C=0R-'3>=+CY9 MS&W*E!X!=EYTZ5,+C6X !S8)[6IK9L%LG7FM$9RL!>)D1@9C=;:ND8E-3S\O M=6\MSQ;!G_0>\^4(7Y7[5[J,@1G/55%$/%7GJZK 5%VEA,3);Q Z*]NJJ6P7 M>(?*%6_)A?[U<"J9W0_<_^@D91&H(!1R/%4N56#.060ZIR"X2ZI-A_W3RQMH MH/_N.0';Z.'D+F([8/^6$]"$";W>R.Z@QE.C(I.J5H@120P6LMQ=AA!MAJ1Y MLBD4%U*; >"G1\'=XG #ELHZ*DR1TH#^8#&3R"P])\(#&&)X: M54*?14[ 5CKMEA.PC4*.%N1^/9V0[3'_',:Y"N5#M>/&..\YROW(4]J$N;=9 MVEJ<.V?#M(TH;>1*&!M5,0H%4SPRF86[-\[]R//V>^E7'_Z:GCM_=N,)7YR* M4GF6!0-93&UUBW5Z+T^ %A.YC,R+];&W/6T CV/;=\O;^(1%;?:@U!;,4A30 MFMY;%>I@4L59G35E#+W*D=DV4?Z'<1U^"^R9)>L;78]J:!#L&*!5ZD F5"!L>X *'( MLI 8:5]O3,$S-MY#2)!':W,#= M1'%VZM]9Q$TCZAL7O0SFZ9+)"Q&63M)(M"2W%YS1&KR*R7 KBM!M>JMU17BH MN'IC4<$J"MJR^$$6!KQ,TM$#GDB0;3K6) M2W4 =_QX>Y^DZ'HJ[:B<0]HN%>"JH+4#Q*8A]@X@CQ-)[UW!70FTIW:.1"17 M'"&U'&QV$122/^D\(A0,(>; 6&[4XN1H!'HD#GX*_-E&*7WWB?\UQ,FT_L+G M:V178=9BF;(Q.[!<:% AT;9KBX 0BN.J",/EV@RL#6WA-S[BA(S@7;4QZ5V4 M#0(XOV*8X?O)*+^\^#"=?%PV3[B"YF3@B1<-669RW"579-;) #+X*-&@MXUJ M/1X =3Z\Z%L#33!;=U%.5\1T^+_:K/\,T?PD'QLB$ ME!8A*$Y[E5,)HN8!&*N-NI,+2;1)0M\?^][AY5T1_'Y97^-79?'36RWZ?Z%_ M.Q]8U)XK%2#DQ$'Q',!)XZ%XF4UBV<16X>A&*SI"^>UAF7TGT'T*U&A1WS:Y MN)B,%]O4B_!A. ^C)= W.,/I1\R$\^?+:LF\G,TN:P+/P.=LK2$!"J$=*$:' M8!0$6' 3?=*N9-;&K]P:ZE='TK;*;-&[HJ>WZG+^?C*MHR8&:)E#SA@(7Z\4 M BKPY(6#D#8J@3%:T6:^>^]+^>K8>UPR-$A.^'(/]NC29IO6=M4GB?ELZGNI M5*IB3>0Z6J/(DV1:*X-81*-ISGTMX5#WW#N@ M:7OO?0O/D:ZX=];/!D7O(=SV*B])T>EK(C%9TVGL))W&MD3(4@CAM2W:-LK6 M/("J'[N,;J3I;63:]P7S,\&XKWA6988Y*"Q6@D!C0(FZ(AXU*$M&F-(H\OK8 M@PWW!VL??(18\!Y"GO0DH8/4-]T?GEQ\]]6'^F7_X=W[/KQ56/?1A:R%>V# M8_7Z^;0T=!=!7$?P^G*:WM,W7T^'J78+^!).>4VF7ZV&4,D4GU.& MPC'6.1$9(@\%>)3%1&/I;6[DB#5;TY.,,VS#[GOC#,>G1X_!W,5A7%]<"6+U71283+#*0VM0IUEI!2,E *4+IZ'0J675BYX&!?UU\/F56M CO M[GJ._/3IPW"Z++O$Z7"2!PEC]A@%:!EC;:5 "Y%"0L00I?=&1MFH+7=?2_AJ MB'YXR79_.[7*A$RB3WPK1>;*CJGRC\0E<=BI+ M,K**:&1^?(6WRWOQ^"@J/Y7;Y27\5>E>LEEYK'-:N2>SJ:0,/B8'.N4Z_=D7 MS]O,XKX%X^G?+V_%A/4F,SMKY!BY9!L%\649X[QV]=-E36UGI^'LZ['WD_O[$R;N- M@ON.!5^7L=R\!ETU]+1:1TLV<>&63&2E)(1@!!1R"V-A%M7ZS+ -<=L''G*" MWDQS%4X:R+_O^ZC?:P@WS"]KV?P]T+3E$2-9OXE%3W:PU_0VF5PS86+B10SWJ3N"A@3I5CN(?M$"TZ$*>9""Q:8N3,V M:=7FR-H(Z2MF4K_J:G 512\P*\S@I35@J(@KY*1:%51DB7VC3U MO0'BZW8+=]5&.V*L\F([@&GJS=V"W*/909SDBK[/G."UO+HIO2F*/=EAXALK2 7%(IR"50, M"#X%!E&2) -Z+\-!C^6O)T%H&P8W31#:A@*MK('>U MTZUB[EO[B9/@\5%4?IH)0K84S;U68 7GH++VX(5DY+70=YGGL=4TF#-+$-J* M"0\F"&VCD2>36M%A3=\2A'9($-J*+ ?)L=A!TT^%Q;WOFIKX,C?O.*R20JS:,P=0R$; M)4H(M9>E5-QDY:55C?KKGM6=_SZ6WJ[::'[GWP7,UW3GOY5R'KP-WD6RS>_\ MC9$I>@P@,-2:\! @LA+!,R.#S\9%^S7<^?>GY6T$>N0[?Z=BR"@52.=J,V,D MJRN0II(R-A?).#<'O:0YQ3O_K=2YQYW_-KHX\IU_+$8Z9B)(7]ML2H\0@]90 M6&3&:Q]]:1B[?QIW_FUILYLNCGCG__KMWV:!3.WGK_J_ZK_GLUO=\#^VC+6+ M?<H-ESLW_.4H]_GEQRB9Y*H[#/QS-H$'G.I M"2:)*\&%.K5[Z'[O\WN_ZR+7(6@5!009:;^OP0XG= #ODPLZNI)BFSG(WRY M=^'T82Y MR%%W^5'CZXH;EC1+BNA=ZM,IA=U=,OB[U]:!?Z*'W&T M6NCB'\]^([][^&$T)+,J219BC&2T66O)?&.,WD'4X'-*]$+J7#H6VQT:^3>& MGPPO^AY(NO-B?Z+#YB+,\>:J?YF$T;/T?HC+";QOZ,>#:$H4BI94ZKQ-I82& M6!*'K#5+Q?ABUTL(^R9]1Z3?2'XTO;=HJ-??Z \4/'&OR>1U=3H]5Q!$,>"B M48%I%DD'W]*N3L%Z/HK*3S/M2LH0E*]R9$G1VR5-7@'O76W#+IB^+9*JBM M7N@=BQZ\8846J0TG,UG$U.;2Y,PF.NYAV>VLCP9Y5NL'=0><23Q:0U1$TH1:X)26A8 R*1\EL;KLAG,I$QQXUO8U,^[Z7 M>%9CGZ^O$WP9:JN<#Z"C"J!LCC75EPPKM!&+$*S(U"F >OMSCS[/<2L13_J1 M3]_7FTLHSU^MS 0A>$[*0 RVC@K6"5S@!8P1L1C-E13=8MVW/_>IJVHG^;1X MJ_@7UFBO>3%D&_+ ZKP7KL$Q'\$'IU/@.K'4[2[N]N<^;57M*)^^[Z264*Y9 M$XWD# T#H2,9]%YQ\"5;*$XD$UVRR>HM5'4>;]6.\NGQIN46:\@-NPTJE:AR M':V+M39%T4X,7EH)*LNDA+,&S7;OU_H3GKKZ]I19CT-[KD&Q+Z]_2D&CBN1$ M<[0$P'L(AIQH3W\W2OOD<^FL/G8FV^..\NEQZLP-*->L\5*DXEB@]SW2DGQ- M]%(\08[DX!K!E E^"U6=Q_NUHWSNJLKT\E8]6R3>WIA![HP5S)$1)$W".I]+ M0/0\ T8TA0 C]]U&:6YZPE-7WYXRNZM(VV>E8TW4D=8(0&<*<2K1D:NKXRF- MRY@#T:V-RWU6E8[[A.!VU4:#5)/;-1I=P'Q-E8Y;*>?!&KA=)-N\TE%@H MY4'G0)UBI6-;VNRFBQYWF]ET/J@#8196TMN$XS =3A8;*7DF,B@RL(-8M#?UDFQ$<+7:5?VHY$>HS(+0%?< T M+$/,*^^J ZAMK,QN=-D$Y[!69D^JFK22<]_[Q$9P6G.+M?L[1O*%E<.TY+EQ M*6<3F;;K<]V>CO(WV)Z'U/TVXFVD\Y\G4TQA-E]%^IW'A%;0RD*MRS>VWFTC M&-K8DHPJN=+)ATW-[FK>'TX_#JTS# MN^;.:/%!]-6K\@;3Y-UX^.]%T=5P0K\WF\]^O2Z:\2Z9$%F"H@LYWTXAA,3( M]Y&:WA!+SCAO,RZEYX6T<<(&B0X$Y)Y#0:%K\F:$&)6&G$5Q26'6I4V(YGX\ MAW>MCLFW;L[95CIJX+YWDM#OD_%'OYN]Q^L?[,+Y>.!.)"]*%5-6E]U*!0Y1@2Y1*ZQASHYC9T9;\[74Z?:8U M2.?_$@7K1QW+B)A(M>S>DE,3:UV6S8$619N'Y3*[.H!T$^O5JG5=#5J553#,PQ9,9F1F")\\=+ LAH Y<-BI[ M?P#4\>/I1V/,I(WF&E@V&Z!=SU5^'%S3G(X'X1TGQZ,W978CR1Z:.#A=E-.* M#'5+;T8,9$(@@X!HP=LH?5!&)-W&6#T"31[)$3D.2[910)LY&T@?^/[9./]8 M&W]-/E2,5R'$JX SBAR81@X\DP24\1(J,K"RV" #[:FR3>Y(!W"'=SUZ5.?= MX1F]ZJ)%[@B.Z$?O?L$Q3L.(@#[+%R3QV7Q*0OB(5UA7I>A"&WHSLH? 9 :E MO8)HM0165/9*FJ(:$65='!%=\K".V/V;M42ZN3(NXV"6UZD?+G M/JL3/=Z\_=O*]DPE.)6=AE +4E5RA,N$ IF5$I(27*5NI:!W/OHK)D$/LNZ[ ME\7--F77(R%7&>TI641:D]"\+A$EA*@3)!.3)2_(Q6P[<>"!AWSM;.A+_GTW MSKB!:R&'JSO-.O-G54,;"ZFK'@"J1%"&8VTZGZ DET.Q3#L4V[+C_D=]XTB? MNMA8MMIGSNF+\&$X#Z,%I?=()KWO8_;/$GT4W%KZ)UJM9"8U:9Z5$S;$Y(TG MI47K%+V#@_L^<#^K[L4HS&:ORN(3O]SZ!L9Y22'5?I0.%&=D(FAA0/L24&4I M)6LS"_->.'N[6_737LYFEYA_O)P.Q^^6\9%EM\R;N4H_?<)I&A+Q!S8$SI&I M&B%!4$%H\$+XFK1D?#%&9]Y& -MC/?RFM3]G[OA+;35TN.+)#AOWVDIF+\?+ MQ?X#ZQ LS,\^XC2\P]7/7T^'"0>TDTMNTTE"S+.?2;+WOZ@2,7IM$&1,BU%NA0#:#,4F,C)#%BRW MR?1_%-HYL*U?^?<^J2DL:F,KKB65!U%G3;NV!YN)LTHH#"R MR\"LSR*YD+3HYK=W>-@YJ;<7@?;=3>\&/CJX+H:SV<+WNY[)^:K\,IW,9O77 M9LNC)P#F=+>V:A^ 7%0H+MD"4V8!"VL]"9@9XC#EKR[AD? ^N;(/E3,G33!T] M-ACLY._]CG\N?C0;,%&\T(G1_J=YG>FN:S^^#")9%T)4),$VJ='=\#UE(C74 M1(,^AC?ZK%2\SS\O!+',;0D&C4#+@/Y'5!:$+X10B-2Q:&>%PO4!R_W/.EP' M=:AJCP9\Z$G2QZZ\R#@<_(KOPNBG\7PX_[RXT2^!K&>I(AA>VWLBJ30D*P"5 M,D[($/F#E18S3/_U;O+Q!_KH!4G^I>J7L/QRP8Q['GK\/+(]]3CI1YX]AAXJ ME"6*J_N.+C@ZY&]UT^_-)Q\VQVIO%4QZE%]+?8I<,U\E 8@\U)"6 6@!XW9!LU4^,V8NO]=G](>]/;,,XCG+Y8-:HSJB@ODP06K085 D+T M24 ,'KW)/C$=.MG\]WWZX8RO_00]Z5-*/5YDU,9";VI(>D% 9K2V04NPFE:C MF';@:T*X,UY(X[P6OE._D4Y=FJX?>RZ'X^ZR[#'@>@UBE=31 4;O[?9N #A\ M@[T=5;"NQ#WDUW-+M9MPHE4I!4FFO&>EAO%Y[1/+P1B5,;-:P=&I$IR'.?@_39875/KE(6WQ\ M#SE*NRYF+7?)FA28EH%;6U02W$=KBN L99%S=GZPS8/VL$1O/.;9VF.^1$A\ M=BYR+B I.NF5L!E\(7N[R*(S&=Q.KE<[;[!,NSQM[_*X*89:W44>PZR6"KZ> M3LC6F7\>N.B9,(&VQJS(V1H4[.]"='A=IHVJKY3^M:' MY/M.H?\59S/$5P0DU/7^BF&&RTO_/R8_+=[)WR\7^Z8B+$+G"(63"A59KN!\ M39/"F+#P(HSL=CO;]8GGHOYV8FZ0@',?SCE= *4 MUPH\)])&SG)T]4:QF]VX]2;Q"+!S(4L+/30HG'V#L_ETF.:87X19[2SPJNE6-WSG1IH&6FDP M+.HJ1[%FJKRI<(S2UK*8@9RPL%RQ(XL>.#?*8O8,NP6+ML_HNPWDW-BPCYQ[ MS 9Z:$=;_+'L3UC%0:O'_.-PEB:7X_D;LI &+B6FLU107&V04Z?Q!H&Z9C"1 MJU:2%[G-E?TN:,^-0,TUUF-BT;:8ZR'ZJE2A34.:\X&CX]1R+R'JX&AC]!Y\ M#!*X2=IJ-((K=E2BK0'^6KFVC]X:9!YUA7W#="/,Q1EA;T7RO1=M98BWPE)-.M7ACBA\EL.!\$)7,*NJHXD/'/9( H MT(+V5MDD%7+;J'SG-I!SX\8^52A&B)E P+EP9=B"*U"=5M@G1N5.A']G=)X?<^<6AY= !.,0_G M/X O1&R*PP%)4-/3S M-G6GVZ \-^HTT] ]X;X]8[^$=+*&]%E:V/*S-YAP^+'F,%R#KA6&7[+ !R'Y M$*(I8$,A?[)D,KU\\(#(A=,I!8O=!KCO!>-Q$;C1/JBO"\2=239NZAT-Y!YE\GL]F7]==-='H91B_"=/J9OK6H MF'QQ%0YWVIJ8*L>+E*"B].!Q:Q7F=V M/B"29:*G3-')4#((%(G$@;5*1AF0A1MI'**/'2L2.S^S=5G0 0R>1@(^=KG0 M(G/M.L^C]LM.Z?+B4U0DP;0FFRLPUAB?_E]>T$]=-9U4]Y,CJ&_OM-\.P"O[=V^(%XU>NN MN?\4[QW1'B$?_'"$V)*&O6GS5)BHDLN&.5$;#59/5EIPW"<()GFADDG*=3+) MGB #'TIE?UH$W$:)?1>0/1.L&E:O<3R)LS19S3@7,F0N@@:=:W*=U1&_TU6>*+?#<@,-90)]8 6$"'?@Q.%HH M>:*,1YF+0"YLMT35NY]]]@K>3YJ]O\6:\1?O<18^8/CGJ@HDD..'Q=0YV40T MY0.'&"VOT[.05H"L"LX5@R!" MSC4'FM6A1886JKE$AUG$V$G%]WWZN:MX;XDV2/F\DYA:__?3ORZ''\.H>F[W M?W=AMG@A8DDV@RU*@:+3!%QM,A0$G3EHI6:-^K'LCOD(#:_(0*>N=D%^] M/UVP-YWIM _ZX\QN.A13>B'H'FIN,SUS]S6DB%I:):#$(FMO+82@JDENN76J M*%I0FS*^TZ/H(P.:GB)#M]%N V;^B!>ACA%=Y,>M,)GH3;320PZ^YN 6 RX$ M!IX%'YS.9*JT2=*_#\WAN^@=3I]W+F/W5$:#1O8K*[;.$)G3JNN*%_-FGW^^ M'H4F=&1)20>HJS&JF >7HH*077 VZZ)"F_35#N#.V7;K6SL0@.@7^;*.4!KQ9Y'W_;9QK1[5%GE.Z,>HPY\B\IL.TF%3;'),4 M8E09L'#+8PXELC:5J@^A.KS!T[L:[\N][T,'#>R;M=SH?C&&\$5,BL\HB8H M+A1!QY6GXZJ@ 9Z$B-HDE5B;;AV'4OTC-EQKS6\CWR:!0I)$A;.Z DX51_*@ ML2SR8QC4)"CPR&74*6516@4%;P$Y_)&_KV[N!/MV%VP#L^]VR1F=7\\__Q[F MEU-<=A-:5:)5@I-ADY+*'(2SL0X\*F2,Q%H#*WE(.HO(&_6"ZHSQG,V"1IIJ MT?WI=AGC$N5U_M[CT)I:#@^ .XX)T4JO#]>6[JV4%DUV'X 8"KF_G%=/J'9I MS$%"")$0\T"'JTP*U].;GRI?'K$[3H NV^BB 4U>CC->C(=EF!9IPK]<.E-A9-F\C_V((E7 M\_?U-NWZYVWF26QZ2M.Q$IV6MC9=(@4AA.=H2T$E6(K%%^-+=%D6:UEY:+K$ MIN?M]ZZO?^JOU[7UVFD9G1,@E"R@E'(0DQ*0LJ3O>QN,;O.:;X2T=SO#X;OE M6S6>O[W\\&'T^8!T99']%G,-'2.U=< M!,\$UNEFGCL? Z9&G0]WQGSX_; ?+MUICG@8K35P_=;EL711BM(B\R)I\;5J M,2A99RPPR$4E0 MU2^OS+XN )LZ]H]"/(Y[O[\V'Z-'+ZHX"F>"2ZP.J ,I7 6:,OCD#3 7N27_ M5!ALTV+L2%QYQ+4_ E6VT< !*+(B<&;2)%HN9[7ZPY(?&0JWD 7/103MR:L\ M""^.Y;KWK+A':+&#U'OO5_%NBHOE_;BZ3N.&1S22 2NCG[ZET(/(^FY8< O-*B^F Y[[38(NJCQ&S+X/P6_4X1Y2Z[W#R#VX M#-,Y:^0@3+V[RD9 X#X UT60CY0#6G=:6MQPW!Y"B=L(JV_EU0OKR>6J\%%* MII/,"=S"?PT8(5C+@%N?178I9O2=U';K8P_<>75O$4]ZD4_?I][_$\:78?JY MRGJ%QIC$F"8;C]?ZD"*JM5>/]:)JZ(&.8"DZ:>O.1S]EC>TGIXWO5Y^7#&]P MT;_F=9C./_]!QMHL+*IS9K_1#]/E*$QK] M,\9"Y#+7])T48PXI^S99,(\AV_]:=344\]6?8\S/PRB,$[Y]'Z8X&T3MZ%CD M!6S. 53B!H+*$K0UJ$AK!AOE?S^$ZA@]#7IDQ]U[U9X4T*)_P=70S#\FS]*_ M+H=37#@S-^:H#F)A64F728%UA*JO73]24*!58()A<-:VN8][%-J9T:1?5;1H MAG*)/Y-(;@B!-NB!]T(JSSR=T[5A(KH%@36X:%TA=$F*TH0?]\(Y,T[L+_*^ MXP'W(KK:RS(S/!55@#-=:CM% 3$H#RSG:$V248AN?0P?>,B9*+A7639H3/+[ M9'PQ&9/E-;VYYE^FD]GL>I;D&_R(XTLRI=/DW7CX;\R#:#)##,3$4J>@&,P0 MB]'D"$2;G4+!91L;:B>X9T*EPZFLQYKR98+U@NK+05^87XY_^I3>UW#XSY/I M6YQ^'*;ZP]H7 6M-,RM9IT1.?.U 1B<>D#>!H(W!R%%+^J_3WK+%0\^$($UE MW: NC8B5L/KG Z:_#$!>EP:L)4#$[]$DX4,'7:!H=^CZS"$DB M8S*4J%B;C/@NZ,Z,:[TKI,4T[.LRI$UQL^>?;_UD[O%5CE(Z!F4>F+=UBHS91A]]YUOAM5GG])-L0CWCH*8>=W=*G*B8MY-C@_FLQ"WSA-([";/:JO)U/TC\7 MA$9CO*DM[[$V*5=*!7#>TYHK8(7%,M\F4K 1TOG;)/UJI<%0E9MX5IU?.R!J MVP#S#J8C%43TH[1U#[T?B;?H@7D7&?/!.)T-<*$<*.L"'8*ZIL_4#H2>!M[ @%M">WPM-:Y<*G71@A+'$>F'I M^*,_E$7&;5+%LS8UMP^ .A,N["_PGAW+%[4&'*A^#\;<9>9-]C!L5R"N:'RVEZ'V9XG2Z]#G'5 M<:X#R 8SZ#O".WS4:G]-3@ZEAI[WC^Y@R63*Q08%ID2"6/L5>B2P*- Z+HUD MW3HY/ 6N/!"N.A)5MI'^02-27JC"#,]@8]2@F.1 _UP!TX;P(L&R3RTBU4@K MG8-3VXBT2>OV>X_.!=&EXL$41PX5"@7*D,WCN*W=N(1GTI:<4IL2^P= G;^Q MT;=F&DQIV0#MZCWI J[Q8-\'X!UKNXQ6+*- GJW-IZ]O#YV5W,KN$%M+8=B M5:BW-34KG=%7VICBZTP;H[O9&'<^^V0RRW:1_*0_L?5=B_Q;F,UK>XH1_6"R MS(E\@S.D![Q?AUEM'?08:Z5!O>&K\5EE#13N]C4O ]F_.4%P7CL>R=1N-AVH*\:OWN;<5V\-$OAO MXKEZK[H@.IC=>8+&YMY:?( L>ZB@\?:S:E-?BE8E>4 9:=.M$U2]5A*LM#8* M2Z^&:)/Q?BA2[&9:'H 3VTB^YWCGLU*&HV$%]--X_F4RFK;"L%0RY,P2F=)* M061T%+/H,PLZ>:$ZS1SN%-R\'\-Q;9)=-#/I5:P':=[^=IF)_@M.WDW#A_?# M5+LBY$7)^U61XLMQF4POED4\RU]^@Q\FTUK&N$>;E5Z>NW_7E?Z7O]:$15BI M JH24G#*9.Z3#?0?IUV"N$0[?2\(]KTZO_VI-Q[XZW5%1LS"*VAG-62=P9U.5M1CB/IG- M7Y5?)I-MRGW?3D9Y8(5-25KX7@&E!%S$)&KQH-&-B,Z0PY MTY,"FECC5S&*/8^9JR)3FY&CZTC.D!)[";O!;?1UYYF78_)]L(XN&S"E MDI/*TAE7Q^,XR\%GD8"98+-+5IEHFNC_'C!G2(%]1=X@(/PC?IAB&BX6.N4@X^VTXGDP7?5SF.,79G#:QVY]R?U'J;.""]>7_;^_:EMNX MD>C[_@MV<;^\;)5D.WEQ'%?%^ZQ" PU'N[(FJXM3VJ_?AD3*)B52,R0PE.2\ MJ&(YYASVZ0$:C>X^+F:6(M;Q'"*PF&BWB]Z8@#D#NC[GX1F_Y"MTU^?J(CTF MN-091,?Q$O.;X4O=EQ?OJ,1,=K/, *]WS1E82 2M$$!P,DJO1)^ ^5$\K]#' M&AC^H3OX=@-]MAC@^&;QEW<7Q\*EBEG50>@$F6M/SLLUXTF%G$3*T742@IP. M=JYA/OW=IS-1SV&+(5^GJU^74P!O;QE3 K3>1R85 JV7,C+PCE9.%6V2 M&02=*)I=PCV&X/!5'9T8'QI:OO&%[ +/]QG*Y>2'$:":-REMA#-_4]+^3#VD MO9&99_,!YXLO)4=6E/%,0^VR15&8E75F!PB7RZC1OL^1^RU-1C-1/\6ZKXU,[QRA?I0#!P&:LH 7U!HQP+V7F0P@0AUC(T&PI!'W[VO U$C2P^ MM#-7Z_+>Y*;J!S MQ,->/+^M#=J\S?S\1R&V(>[LD@4.M,D:6_6W=,B3F-6%XX^7ETDUOUSV?QE%=TNP;%H,.ALK 1>1I&WY2$OEL96AIM%8GQ2)Q:%M@G/ MKQ83!DXO_S-7+]S&!\_<##?. &O=8G-O&(QY1 M/6MC^BY)C35L=V>P9)/22=7F?U8F-E1G-$@+)W\ MG#9T4)#&LIAJ!E!GJPP!=##7GM/909[(CAS"/Z88OX=?+-KY'T!<'"(5*'#6 M: 92(--1UY2_)'B8E? $U[L^S:Y/ 'L&,>JN)*X[1T,&YHA3CV^.\3S]_B5> MW"G>. /2.XJC8ZQ%8>"0Q:R!*8@F%+328J\NU^W(7G<$LCL)/>3"'N!;HKM_ M09[&-V\LLH;PV00D>_#ZI-,T(&6.T&0=9W0RH_/(T%H@G)+3"N@\"SHD\"&I M[&=*DLSB--.#E!E]9@H7/2[R:C7R(E&YJ(FMF8)E?7(&X;1%9C$0.&T3BRH8 MHA>ER5X5B'W.P5MA/8-092\6UR_ZFE'0(5HY2JGJ9A"^A*=?Z[Z[P"5R\-KY M.E>P9ON0PC2?4F8R:XK4K(LV]8EC-R%Z95[1Q/"-ZT5_B?\>+I;A]=T-MTG: MBQ@\0VX)3?&U(U9*!@ I8\B>BU$KQ*A*T8?/?P4A:0/#-A8AJ^HXOY853 N' M'@.J>6GX1CCSUX;OR]/0R\B-7_3-X(3-)BD3F'<^$3A!!_,"A@4#KL183!*C M0L?GR/R6TO!9B)]BV^8U/@LH1\L*90=< Y?,E9HDL40,6"&8%9@U)N<<7^-Y M4X7/Z@?/6\[;R-9#(T.UKO)98CE>8$$IMM/>+$4]'(\<1/T6FM>!2\B@ I)2)(KN10T;)Y'VYI61MHNA M&J;D5K"\7=;V66XRO=SD,5BJ R7F!?F3S@Y5+3$S?%R?\]H'OQK2=C%4PS!V M!6$R8:;T5 MTZH?GT(R@R: 1>4]'F*AU*1048#$_EB8 !).*,Y'1DA&9 MEI+69R4Y"^"2BL"SS[UT&E^+)L 4GVJA"3"%L@X9X5T:X>K<4!MT8,G0@5E[ M(.M@2"QGM)JV$\BVTVOWPH?0[>-;O8DZ="%G#8;NVZ^^WX'N1BT%M!A1UP]X( M9_X<=B.ZAEZVGLT1+-+A% !8DA4 M%FV=%S_Z>+3,]&8EG0RI,%!<5=5S7[MW*?0%4S4GK ]QG%C\M\]\R43M8YZ- MB?"#I>?>#^>?WY]^Q5S/M%<'R]*-A#%SLFX7XZSE[#"$K#&2EQ6K:=\.7"65 M1$ 5%3CAIN7L1@*:(77GHY!E?V8 M["CK2.9WB1Z,#0W-W:.(>X=L3P"0J5 ,PJVC,!XPT%PO4M737)('CVIH!E)559%><*\U*9.DDG2.DH#!YW M$-]C"UO'])*2M).\8>->MA94+%25*AK,]*F3CM[KA*6=!I"AWV:4N9WD2>:V@[A(5.LWS)[5/MD M+FY._O7;B49O@K&61>N!OEKRS.L4V@=A+3'__/'S]Q^(3[^A? M_.&6^;O,TOWS#AG<[FO_82_C;3S#'"RM]/,PY#]/S\[FRA^M/V_F1-'6K[L^ MP\ZH( 0'';W5]&6CD@9"LBJGS(.?6,6U_N094C\%E=,H#/,F52D^6K&BQL2D M!!\5!J''W=0]S]3/PIXG=!XM5@K!(@HZ77 *[0)]<0;96(B(3'D305@M A\URNX94C]= M":HY\U.L.Z<2E(LZ2>F8@T+!4BJ"!9UI*Z43@\HY*, ^D>CS5H*:Q-98):@) MINX1EVZ5KY V%N"Q"E4"_?!%LUI#0.P!")^\*:F3KL=K40#:)4AHSTV' 76K M<@MCP/S8"D"3Z-JJ!+.+K;LK *%6QD.]A])5Z,9A9IZ'3*!2I$TQ<=WKK/K, M%8#:\3[%Q*UK,S_BQ>T*=Y[PW?G_;K[<"U@+*=-M)6.V0=7K2&1>^L)D2 JC M0&O$."V934\XM)#,)*L/K4W6>F#(A^$KGJU*W"QA.>%=29K"#U=C6^D$B]8F M)N@C/&I(!LU[_^-E?N$FZ./E,4\X;6L<_#Q-RCM'K[_=4HG0ZS=K>0B:&&7 M2NO =0#N2PE%E4 OLG%T0#QI!V.__?KN,?2QWQYT#^VG56C?,JE)6T1+AYV% M6*VUS(M")Q[-M;3!)A?[7+SL@K;]J,N?+^@))])['8/GS$;OR AME- M4 9Y2:C[3,O= &C^9;2[[SP]_'(Z%5UO<298Y.X@J'U. 91B)I1,^T35#];9 MDTERR1%KYT:?@MS=,<]UIS.[=\U$XZ&O>K;8]Y*BT],A?XR75V^OEW(%&C$AYCGO8L8O;]>1IZ&KE#P/Z8$13_-)CP-MY]3'H+[[[W4\^S3\?('Q"B\^_1[/ W\(' 4W M0OC$#/>*:47KJQ>1_JLX%T50D:.:S;U&0?YQG*T]@ZUG(S^V>Z^B(P E53EO MZZ*^W; 9@'>,@P@Y\HAF2W#B6)OI_GH*WNFTFRRQ029 @"50O8Z&M1F:9DJZDK)JRM&MN6$/L M]'"/59H)3PD#!&0>( MQ@+0@NG+4]!N:JV=,6-@*K\\O']]>%$E^-%?\N))W9F0_R$VY%I^V=+/] MB3*YU-K73]L^/S+QNISC]VN=D MH;XG?;>GNGI0KC;WG2\=^S!]YTW=SYH?9'B%#\1B:G>W9VHJU4/ MK[&OUV*]I!JO+;5JZ$;-CRZ-%1 M*?[C#_IOB\<*W%'ZL'A3KC2)EW3Y5M/YIOX(5KN?W5:5W%8OZ-+P_*>ZCJ+^'Y@N*?US1>UD] MT/8&;9=Q-1I3__/3X_T]W3Q%:Q6ISI"HW%L7W4M:/6ZTWT&WD:+E)OI*EX\R M6J\B&FTD?]QLM(&1_AZ6U;__N,=M@N%=SF[(EF'':J=V=&#+3;3_<6/.3=0: M%-4613N3HE\[H_Z_BT.UYD?J+XW7M-X\QW?-O>.[9ZU*0U.#JVC%:G1:61KI M!/XHE]NJ^PDP/P$Q;%VP?_&FU(\G[^_MID.&;OC R]!>\2-?:PD/6W#T7ABG M/0R$VW685[]Y%;11?XC6&R$W>MER!J"3"?[I\4%_E8Q4NGQ)JR]OENO?WZ[4 M>G-?.^*[>9QPFB8QCO57""F %$L 58E>H.1901*690CAQ7;GJ@S.>$NY+A-[ M>\$?\\O$>[4C459\N3;$:YB9:RLBIKL;=56;[>*=?HG>JY_I?ZTW+Q^K M[?I>;EZM[VFY6L0BX:E@%/"D2 %B* 48*0J4H#B'@A4B36R(JE?*W&BITR[Z MM='O\MQP0+*?9+SA$YA2[*&QI@TKT_M(0C_@@"#TOYZ30[^$2:C RLANXMM= M/,Y#>;OZJHEDO7DRNZ1O5Q\V:RZK:B$(E30SZT8NOQ"3S1=PK>U/OIV@N+6B5OS.JJ M!RQG?Z$?"Z_NP051DWH#_>8^__@/7#V.!#Y*[3*4?"N%\2=N5_5_7O_CL?Q* MEV;%=/ZGM]_*:I'"+$4IBT'&4*)7+@(!*B $&>$<*H:PHDY$,5Z5N9')WI+& MUZ:K]B\'>FM_6VMNZ4]X&"T[,IIF# (3E@_XG:GK>N2\TML5ZDQ*@=?#]IPF M/3QQ')6^7&N"WFQ+MI2O)-O^+.^9W"PPD23C*M;^D\H $HEFR23/@90LQFD2 M2ZB$"TN>E3(W CQ0,C):NK'<>2#M".QJ>$*OFIXA$_W:J.B1B7HA\$HRYR5- MRA^]QCZGAOZ+Q\WZGR2MY)?U4KR]UVN'K_7F3-6^LK)0.18%!#Q%>NX3B@!. MJ *XX"J53&*8Q"YSOT?6W!A@IVI4'NCJQ@-]T-JQ@2? G/"'JM#-0,P@P4< M7OFA3]ZD+&%A^'.NL+EE'&.\H>7FK^88^>?F<+DYF>I^^']*N=&/_/+4;A9* M*10LB&8.$6.]RH(,T)AQ$.<84YYPD1"G\R$GZ7-C%:-G5"MZ$QWJ?Q/M?Q/M M;'#.([IWKH345V((_,Y;[1RT;)O:]0",%1DL4B2#&242H X(WKE*"@H8LD(03B5 MM%AT0:(!X.H-<)T;6"J7/,E("O2J.@$(9Q1@@BA(6!PKP:C*.7/Y3(Y_NR;X M#/H S.Z[-1J&P-\E@T"C6/2#4>V/T>UVNRG9XY::E?5V'7V@&TUM_CY-9Y'P M^NDYEC#II^6L<<\_'>94N?N]?"$'H';(? \ IW& K1)@C5 M\2_!(#F2\EU?#FO>ZC.YH2USA>&B)$Y;)CI[SR1$U*=MQT.]UXSS4-\_:']W M6Z[NZM7^1Y,X]E[]4LDZ/'1!)2LHUPMN#+4[@9*L,)$0".0R2V-&1 +=EMZ] MTN9&5+5Z8*W 8R4C6H?+1B#:F1 MC0UZX:W=0SSN2\8AH8)K9@_FI ;-1-CK0UA_- M6,+BE6B&9$Y*-98 /"<;V]O&TAG[ M(%=5[<^[<XIY9]U ,OVVV[/,UA@B4%(F<%0%0(0+)4XYA &&/,KG=>,.&LV-?'$XU*^5R_7]_?EMHYW M,ND?6GJI"73%]<+HLPD:6# ."\9B!;*"08!PR@&E6(($LH*21#"54^MC:'NY MN- ]R:+ZE#[Z-=:?Y?36X?1Z&>V@!B'=H+F :_#N7D8F"QCL\;KJ#>G<;C\[P1]P^L@:3O#//_B@?UAOSY _K M9*FN%,29<%+2153,9 ()X M)$@"&(D1H @6(A=I5E"K@DJ7!,R/8AH=HT[)R&AIQS(70>PG%!_0!.<.)U2L M26+(]#-\4$G^I[OUUQ_UK345_ .9OX+FK_7\O_C02:;ZD$G=K!Z\SGT"O]:> MR?;)[(MO-$74G\=Z>_SE^E&O8I]>KH5!O=A"O",9F!&\ &D$TTX MP#.:-6QD3$8B#@8?'Y^?=L%MD-8<))"D!6F4P52L7$,"&!%BG*% M4D6PTZID_^C9$8?6S#$&9P^3W8)BG/&AY[E6*D"2_ZFM?L-D]H^?-A[FQ*R3 MP)?3*\:&[JZYE*)ZHY7X1,T^A?[)@]QLGS[H =S>KH0I'/1@5@P+AKA0*5<@ MEB0'*"<<$!PS4%"%$A%3GJ2I6QBOM>RYS>-.]:8Q3T6;3;>'5OUZQTUVNKO& M\]H/B!TA!((Y,&,<(_RI1;C3_":J=;^ID7X]B/2(P%]GS#P' =O+GS@@V!F8 MT^!@]T>,+?CX5:X>I1%T]@2NJX2.8<(Q50F00O^!6"( 3AD"628XED66I(53 M*)^EW+F16JMV,^/.'TG;5$Z_:BCL*"T P('IS!.V(THU.B'EN2ZCG>R)BS Z M 7):<='M=L]12IHITFF!P(7FL32E.A%E(E,AK3("<,\ M25R++[KJ,#=".YYGO#7"4X!2SU#8D5A@@ ,3VJ60I=W/N]BE[M\[DQJG[:/D MLOQ:5[!H#O_#G!M= ?(TL4T]>LPCR&D8*.MH)XM'^.H\':Y7/]N.KV]66_>K;?2!!O] MM*:K:O_!W6?)$I(G)BTVIAR@0KN-E&0YR&G&!--+82S$XK"OZ>",M!=N-1<' MF[?ZK4Q;57^.:&>!8QR[ ^Q",DE2@H$R/5D1BBF@6.I/42XQXH@B[%:^S3/H M$WYUNNZ5=!LQ>5>N:KHS^ZAUV]]@ Y SF;,,9@ K1 %2) <,)A*P-,>,YX6 M^KD/1ZV'O],@//2T6O9[#%L7H6C'(QCP=I_U,% &_J"WW38UB'LM;Z*=*9$R MI]G[-(X F>3NL'G]F#N(G_0S[@[+\P_XB">,2-YXKU3)Y6[G6\MX\[A9E=O' M39<**17'M$ <<,%,V4^< 0HUB\DXQPC&*(;,ZOC-3MSWV$W$[=,84)AR%T2+GP"N5$F1;70NJ69F&-4&]V MQ?!3IDNJL+;H*)?"_JZ1NTC;+^U&5?5.&]$Z+3AEO& % YRE9I6DOWZ8Z'_* M+!,BIQQA0=UJ"9V5X_*63U,_J%8S6JU7H%5Q5(+O>5 M-WBN!2HTL]8(-0K> M1'L5/>[3]"'@=S/FK*1I=USZC#W95NF]V+UBQSY1RQ#,]NEGN?VR%J8/954G M;9W^5-:!UG69&IP) HLX!T66:M>,Q&9MJ3E"92(I>,%S:I?><*TBM9.O-758*%T$TF*)Z0.>P+SS')DZ*'/,@O(B3@[K2!]X3;1\ M/(N;I\7B$ R]:\2+-T^W-!S2_VA%.'CQR%SZ'>_6I6M?T$J*EP=55&\W&Y-G M5^?ROWC:7_.!/M4+T]_I1C2E)PJ4,TD34X/61)9BTQ6SP!@4$L=4Q$PFQ"G. MP)MF>O=H/-B6Z:K;K[1<&N9ZL][\ M1=]KPH=H"B6)09RA7/N55 JH !9 44N14;3U&H-'EK1N1%4HZ[Q2]KV*[33 MN [.N#,Z.[)6J"&V)+P9#%QHKK3P('L=R)MH/^QMHYC;HV'_2^^PNW-PX#'Q M2]^AE)V6^0-#?O+1""UO9,H8K;Z8_YD]X:]T:;YB'V6UW91\JS75O[A=B>,? M'%SYH8XS?+OB&Q.&_$HV_]7_7CZ:P,"NL-!'_;E\K93DVT66PSSC@@!9$ 90 M@O7T@ZEQ>+,T5JF ,%8N':ZG5=_IVS11"VW1JAV5JXAK^V[J/^N I];,>KMP MLP.A_KUC,MNT+XG==VR^0Q_XZ_:R'F7S9W1@T4VT-[;Y99,N=_RSHQL:$*(. MA>B'#H<_WD0[*/9%UPP848.&QT2[[S**?G/TIC5AVO2^[S(\)YF!WT>+L37P MWI1+V7RU%[ HE*(BU1\XDNCO79("@E4.8A)C%/.,DMAJ;^?V4FKTBXR" MK?OL6L3N +C^;\"U< 1F: 3.7#,RQ4W\ MUV,3 %%]7M\*41H'G"X_T%*SPTOZ4&J'K7:RV7,O_:/QIJIR*S_)S=>2RX92 M/DJ^OEO53_DK73[*!16,%C2E(&&, Y2Q%- "W+F_,[*_NU[LW>Z:PSG-:5J0R^ ML\EC=M-$P/O-B0JM]+295!,-P4G^U51RQ[3<:4LOO_]])<6[]?:CI*)JUUI-6.6KVCO>*1UGQ,[)T#OBZ-=(+@ M/%4C'5N\??71<0:KOX^._>,F[*/C;.-Q'QWWV\>V?.ZBJZNWJU>2=?4H33'L M:KNI7[^JW:IXMD'QRTI[0LM2\UN]C='\]2^T7%4FY5M6^P)A&'()4RA!SI-4 M+S!$"@@T+D2<,TX0XZK ;KVCPRL]MP_)@@4.)F?[OI2N=3PF&7Z[ MM<;!J#=]5]ZQ8!.YMO]MOBIWOA>]/;??/V'[7UT0^-_7^,?@U2 M;6[*(?/EIW3M9[U58VT6NL+EJJVA=.3F2&&(X!IU*O:5"" 9-9!E(A2%*0E*7"*1;) MBU9S^U =&E77P]R;U22 '!AFXE1VID5[VT;77?8SSG8?K,E'+_ 7::J!<\\* M]PFTWRQR+YI-FW7N$\R3+'6O#Q_9XJ/9MJUV,E9W9I^V6J@TQ@5$N6;OE D MF0",4@RX2E*,)4R$4EW]O\\.;3TNR+.:V<QW^ ML5Z93]38Q.R!(; CNA"PACX!/,!SI_2NB&S0#AJN: 5*B!X0_IWRG>T@N9S. M;'G_R#BYU;84Y?)Q6WZ5^_.0U]],P*P430NC^X?';@7ZFFY, 6X39UN'4]S> M&R)=P%236HXHT"RF5XDYTJM$12@0>IG(3/EXAISZ"GG1:FY[?)]-DDB76"A; M6R)J4C:V)>C,K1MH-! NBY\;/^N14.O-?5V*?\V6 MY5T]4E5DX@0K54K'9A..8V''N^$0#DRPEUK!'71\Z]I?[O4/V^)M&+?@W=UZ M5/CNC=V&X;'IZ6;QE+%]>RNI;S+'XZ_THY?KNM[WZV\FL+>K,$]$DDF>QJ" M60&0R@O3[C('608ED2Q'*71<;5M(G=]"NU.Z/I 4>[5=N_,. VY'8IY!#,Q< M1^@=Z!NU"GNLY#\"(,_->(?E3MR(UQJ(TR:\]K>./#/=K+^6E781WJPWIM=+ M$WS32A +@G F<98!D6G*07H%#$BFN/:U!!9*,.U<.;7PZAJT[;.^>%- M5Z-EK;+CT6@_RI8'I-ZP"TPVYUM$'36%ZFCG!_-%W51T>7F;P/T U0HGO\>H M_2*G/4RU,O_D2-7NKA&90Q\_W5;ZJ_/QTR]5U]^)9H3%# %.-;.@5,6 )#D& M',(8%G&*DH39>33G!=&Z-5&Z6E>'E)53[/JIXGH\0OLA6K<6"(W(B"2> M4T0<Y3S;R*>,H;^>T[WWVZO4_'NGR\_HO&TDU M<7S^0ER+]?J;HOU:JDF5 MT*^W:6SU:GU/R]5"P5047"@0(V):XQ.8KEV&QG]%ZBNPF[8:]1A%YU6)^@JHG:M0 M7R/+O5[F3_H]7'[XLEYU91^I+)3,B@3P'*5Z[4\30!"4H(ACR&+)"116U8[. M/7QNU%KK%]4*.M?+/ &NGQ&OA2,PDSD@X50O\Y+)H^MEGCQPLGJ9ETPYK)=Y M\9J1D6/U$=,;RNM@C?;+FT 4XSA5 D3UHMH"@@O4D!3K&"6%$QD3F&]YX3, M;:*V9VV=DB,=H;-PVCDRUX(4>/HZX^,>J]4#@-^(K'."IHV[ZC'U)+JJ[]J1 MP?]U:_1=!8="%H@3(8'(B@(@:CKW2HJ!-,']B6"$9\JQI.V1@/D=+C;Z.8;9 M'X-F-ZG' Q%Z75$K%J0"Q7F;_<:@'XN8-IC\K'DG4>'GKQH;\[@T%0\^T,WV MZ;/VXBM:5R!P?1F''C.CU[-5-:IUC0Z5#?+*VB+C.>IN0.C$(7=V$)S&VUG> M-_;5K\.'WYJ:O'1Y^_"P+'F]G&WJ];Y\O'_4\LNO;5N'6H.Z?&_3;%?F*<:D MR &A+ %(91(0O<8$DB(J$20XL5MJ^E%G;CYO:XTIU%W;$QT8U#6.V9O4MH6) M]D:-:Z5\Y9#:K9O"2:MMEPU2RFK!"Y+EE%. &,P!@BD")(L%2 5-*,-*3P,G2G81 M/C<"KC6-ENO5'=#B[J/E7E77TK0.(V#'H*%P# M4>/5'3//M5H=%)BXYJH[-*>U4T<\8W1&K:D/LVEZ1935;VW!&'HGX:(029$G M@@!&<@40X@*P3 F@,LYSB62:9JEC_NQ%87.CK"-=HXU6]B9ZV*GKG"I[&63+ M75-/T(7>/3U"[6.-VH=AU,;DNP["X3N[];+ J7-9!TT_D[DZ?,_8+#&II*D: M^!Y*^>L MJ(FW:/K,/=UZZ;W:UY:*9ID'6HI7+=>T>::W*U&O@9KSID61P9RQ# .9)!E MM&" $HX!H3A+)!8%1K0KVSUV>\5&$:OY<5S/.[PC8K2.9*-NFV)0[PK0$:?! M(\=G[-:+-\R_ZR9,-P9=*KL9@F9C9N! WL-&C N"@;=DK%3YSILS+G -;],X M/6T<8?XD]5/D:BQ,VX#[]ZHK6007LFJ58[,IK0;+XX=!CMBG #\^2UCQL9 M_*5Z:=S(?-6FNP?5ID*1&Q_@-D69:;U24!#,,8T$PB%:+9*UJ]-#JVJ3>_^.1;F2DI-RZEN:]A+4=W?E ,#"? M=> 9):-&RZA3TV-(X0 0?H,++PF;-LQPP.23@,.AZ_WEN#UGY,Z-2TZRJ]L(G7T.]:BT MM1 ML*.5 -@&9ID36&_OC.OD/P?!$9K@Z>?G9'_W9/,>0&Q2R_MN'WM8?W]?-CU5 M3==4[2AIB=IU*F5E>KXLU]7CYJ 32(9X)F": @0E!BA7FJOR/ ,QQUCS5%X( M1-V.[UW$SXVR#K1OVB8?ZN]ZGN\T#K8G_*'0#7[FWP-LM-<]4+_I<;AY#@YP M4F'B<($Q\)P&$(QZRHB:D+<:X_C#IU_:PZLLATKE20)XEE. !$. $HR!)%SH MU1K*L; JX7_FV7,C**-'QVRW3U'<_K>E3<\<(EUS:YN[+529._(23EA,09R'-H MLDV5!!AE&>!YC&.>4Y3F3BM%O^K-C?P.F[MY:E8T+FO'\UM@Y_M]O[$-S.K? M8UBOZ.[G$_U /0"]J/B=.@7ZA/=R/T&O4OPF,K]X.OS-[;>R6F2$4TQR F!& M)4"(8,"@2H%@1.8*0B644XR]O>BY?0*.1GQ,\BK?PR++8)YCU/&+F+2!_*+5W6P2FBW#Z:.L%-8I%X\;AM MSF0_T%(LLE@664*1R6 D "6* "+TD$ H2$)316'FE,%H*WANQ-3JW834M8I' M9:MYQ!ZWT:H-9S#!/XY;B;:#8;F)& #BT-N'+;J'.D=O#]'M@D4^]*'KOF_H M")7?'4-;X=/N%3I"N=^9W6T:]& M[ZA6W-''L@#?CJK\0AJ8I#R@.:99E25 OAM6#8F=NFF5)0QG&E?9WGE%86_6 M4X"VK3_+SM:?_:NLS"G*Q_+NR[;:)V0N,IBJ BD,"I0F /$<:1;+&<@@R9-8 M2)E#Y5S9V[>6:&=4FWC3_B5I3H\;6,+GE00?#?[EP[YI.7R\\%-AG"X8'$W;% M-Z0R7O&;]>8S_6::2W]9+TW&M_[!^1+GBX1G6.4Q P64TH0P8\!RD8*$Q)!E MBDDFDB[][;/CE\)1%RN6.1=1;6IMT/VZZCE5Y%UEGW426W MVV7#.VL52>T9;)\B:H:Y&M^&;-18.GPA0@S-]!^ ';'OY]VN&5EMEER*NJNN M-C,ZL#-ZSY;E76V99[(?B:M_+G=59'JJ'@G5628>^ZR P9.[2K.0IU#0/ &% MI#% J:0 RRP#<4H*@B77-.NV]^DB?6[.M7V$WW#-6@]C8[D5&@KQT/NA'L$. M$TP9M%JPFP;S"Z4D8[*Z(#,V[J M-6Q[Q9711_8CYAIB%&0<)HPC\C<$5T0*.8,8*!S(7H_O%//C#-3EP![W1XT] M7RKOY4>]9NQBT N<,I2:(K[F')S$')!8Z,4W8Y@AO0)7$+L=)AT]?VYT5ZL7 M&?U<3X:.8;,]!AH-1O SGPZ' )6F+ICM^23G6,;$QS9G#3P]HSE_V;B9V[0* M>Z]VM09:5J@6"E.%4!&# LL4(,H$P")3&K5$II!+O:AS2OJ_*&ENL[E1U'PW MU[M2'%6KJ]O\O@RNW4SW EG@.;]':U^XY-,06LZ3?Q )KS1P6=JDA#!H]'-J M&+YA'$F\OG]8KI^D_"0W7TLN+W017=;#6$<(?Y1\?;"V:E93 +<-*6JJ MX][>KQ^O"E[Q/?1VQ/<=!_1[;^O[&4MG@@V$N%=:]JWCI&0>".#GGX!08D9^ M.)YEBFA-2K[0W!\G*=:>)1,4H"1E "=4 96S.".")@ETH_]S4N9&XN_D-EJN MJVI?U/PF8D;1^O!4K)=+NCGXI>,YZGF@+\$GOQ?XJ1Z7QYW5&7M&GJBW_TFZ)Y%#(E"2:(2#57%%@!0C/ M8L @%*GDFBF44UBR@^RY,4@*01Y'1LWK2T1=@MN.,0*!&)A'3DI%I;&)<,E( MC>E!(2[O6U/^J2_.]>0VH &)LZ4D./\%A'N&TK]=3Z\I46]G=)-Y_U M^,D%E"EFN2Q S@0"".5:@:W NZ M'84%A3(PD5VN%-P9<&.(C^-G"O%M^_*K -2%;U M@*T>=%5OY2;SORDN;.+-7CY6V_6]W!P4S(,)%T7&0,QX E"FM*.F. 8RA3&D M/,MCXE0PSU;PW(BMU3MJ5].]$9?7(6Y';R%P#,QJ'81M39-&Z>AWK774J1VH M'IXK6"$:% \+_QZMB*TAN=!TV/[^B7O [S>D>2Y32G$&\D1J!L,T!UC&!""] MZDQ@BC%$3D6GKE=IIMQV19_QT:[>"-E&P41!G MTPDEKT1G)WE2+G,"XSE=N=T\MMFB?J8>T*>/]/>?J9[8FABKA5[G)H@B:DK. M<8"0*?/$.025;*W!A'ZQ;==\JYMD0\AZ(=JUR-36 6V>EW M$QF$=BK>1'_9K"NOC0M[@/#]I5L._B$175NR7K[P=+UMUV MVSOY^RW77E!=(U-[1G5$O39JGVO[2?]9J5**EI$.-H46)%>(<58 )C$Q'28D M(% SB79I4@+S/"?8JM%[8#WG1CX'^D?KG0%55'4F--M&*_E[1'=&F\:BVR]U M&WFSY $1[W:5G'RET*]$/P_.:* #,^GY/;^C4PUM:K2WM2YFLGLM]N9&.WMO M=BZ=\\9LZ%%W*+D_C]&?J'S_=W\+W-H#A!^;WE8# <5/U[8@/(9'+1 F$'=M M\O'KU5;K\K=2R'V&\_O57^3Z;D,?OI3GPY,[FDC&D6#0*QR*BG* M&4[RQ5>Y86OWO.7PZKL0UZ$1X7CK,-]VJ4T#2V-;VT'>I-C>[8ZX(']E,.1/B@NH;\X>X.CVF+]U3)O0FUTV\C>^*1[NZ/6\&AG MN7E36MN#;D-]C[$+E- ]@0'?*1-\NJ&YG$(^H0XC#PV:8^:#DN]:RH*G"L:B M4" S?:L1U2MNFJ 8%%)"B@N!),F=#@G.29G;*OE5%S[1%7![:/1T/!,X"ZCE M&<"U,(7>\^\0.FSYT(>0^_Y^'P)^]_//2IIV_[[/V)/]^MZ+1VS3?2@?Y.83 M78FEW+Q<=PD#G,>*'%\DMWV2 M/@QZ=SC.WCC=WD2?WD>["KT7CB"WPK?VHY5>L,IIP*DA8,"(H(0 KG@)B4/Y+'68((0B)F]HN."U+F]J4\ M/'9K%75QJB]A:;/R\(!0Z-7'*3BCEAZ74')9?GA :ZHER!C4'!NFR[_[I&-/"BB/2M+E^#&^6Z^T7N:$/\G%;\K8R8^<_ MID(QKB#(5 X!P@4$E#(%<)'$A>(I*A"S"\88$C6_P(EWZZ\:JF.571S)/EQM M"-,/5J$)\TC+?;EV=X^R#RX7OO0#VU1\.1(^1[H=[-^*_WJLFL8?[:'AY[5MCS!!B)*%7HQ+8MJQ<#5:^##-?I, M&A[A ;CG010^'CF.C8^K#W5%AQ8JRR$V418*%YIH1<$!9I3I,1,R+:CDCH%6 MY\7,;<&_+[W%:?4E4LOU[U436+3O&; T!CB2Y 60[?CO>N@"4]M)P;).1W]< MU8^!5QJZ(&I2ANDW]SEY#%Q]13O>TQ+3)RV"7YP_G7FOFLZ6MX_;+^N-J4.] MP'FA31/>B.Y4'=&. MU^M8VC'7=QVA_TYA#&W3W]OA\1W7US?$&/AO^NM5R^D[ H< ^6R[X"""QO82 M/JT"MTNZVU<6>DFW_,LO#WLO]_.Z3;-[^<5H_G;UNMJ6I@S%>U77'S+9WNO5 MATW)Y2*G(D\RF &JW5" <)H"@ID +,DAD?K_:&:56S^ASG/[DC0:[S+G9:NX MB+9[Q:,'HWE$FR82S7[!PV!^?EG?IU>L33:^HU\\Q>MC]ZF:V4L1^.-ED8U] M4$FN-AH\/D1[L\W+L:M'UYAN7H7.>/--.S _JNWWV9QYLL'RW-(YO-X3-X*> M;"!.VT=/)WIL%=-JJQ^CJ?0EK;Z8'M?Z/Z__\5A^I*[F.2!TXEJ==A"<5N*TO&\< MX?1G[^["9Y1@$J5*@IC7Q=WC') \I4 RS+(\47G"G IMVHF=&_G8)/6[1BXY M#H0=$?F'-S =>4+6F9C<@/)*3Y:B)R4I-SB>4Y7CW2/[R^OWYIU^DVZ_E=4B M(UP42<$!%R:734$!2,I2P#*2%GJ)CPF'3LWE#QX^-_(QND5&.3T1M'J.]'($ MFQV)C 4C,%58X^#>5OZ,P7Y[RA\*F+:A_!G33KK)G[OFFK9^LCY;^EC>?=F^ M5[]4LN:!!=(CC&B> B)C[4I(2 $F"@(J%*=IK)1$3D.9W0+4GQCLTM:I='S^J]#A&MYPW MBWGC/-RO-]ORGY[C8"P "]"V[[R\[]"FK]?P\VWY^F\923.TW/R5+DV?@H?' M;?63_"J7L U@S5(10\$2C23, **" IK$'.1)$6=*4"&Y6[?0R[+F1C.U;A%T M))$>+"U)Q ]"H4E$:QG5:IJF*$91O=9H O1[G,8$[\\T2-O6IX8-OR$)RQN M&<<3[^36[)I\V*R_ED**%T^:?X2I3/;5G&JM[O9E/G?K;-.87*22 A6;XMQ" M>REZ98&!( S!+(OS A=N-3'=E7"9-=,D:.R4/2BM_6 M[33W& ?L"I;?T&!KZ=-&"[N"40Z$ZR 67(:Z^MR5RHMM&KP+WBG.'RNW%M+7W:76U74$ZV MO)T?X$9B0I:+IFKVIWNZ7+YXK,J5K*I%*J@2"=<$10@U5 6U:Z5)2^ $Q9"1 MI,BMJ.K"\^=&2(V*4:UCU"EI1S^7$.PG&0^X!*82-TBLZ6+ \#.D4$G^I[OU MUQ_UG34?_ .9OX+FKS4)7'KF)%-]P*!N0@]=YB//L8L4--U@VGPIS1W['2,4 M\Q1F4J^/3,_P' K 9,8TF^9QRI(LG5V5479>"U9=&R-LVQ2L8UHV5'BU.-P7=9 ME]T>#41C7F3L"[I0\P&IWQ(9UR@T;8T,#]"=%,GP\K6<_MT1=V&;3BJZ69Q^3AG],#3 MO5V)3UM-N*9LD6:BUW5EL46*N<298*!@IO:'A!RP B8@S3CFF> 9B^%BN][2 MI9W#.230B3!W8L.]T9^-C&BYU[I.TJH.]/Y?;1$V-[]R$'@[W]$GG*&7T<\P M?-V/FK//9PN%5[]N4.BDOILM!,_],^O[1OA@;[7F*Y/06S_V_4-=AZ#]#%*4 M,5'D&.2XP #%L L1@7(DAAE/),Y8MC:">L1-#7@C'G";2)O;#1^;OZ8!2B]#EG?_=-Y9!96'+ED-M>/ MW"#D?/,HQ8?-6LFJTH^ERS=25B^;G'I-T.^T.Z*]YD'."]T!\SJ-',1/.HO< M87D^B48\P6T.59OMXO9>;DI..P^5P"2&& X0SA. :"P!-84P>$$Y M3 GE<>94",-!]MSF<:M?I!7T4O'X+-YVKD,@% .3P6#7B0.$ Z3,C@!MBK+" M9^7/H6!P'S"6I8!['Q&DR&^S8&5,.Q&FN5E.M8>!Z>B65U(J9ECMUB,YX%NMD]_]%HMMQD' MA%$J$55 *9F:ZFX%(!S%@'*%*NKT;,T[WNJ\F=UF G[AIT5.K7H#7Y0P-Y+O=',JW789O^&5YM6HA/8Q+0%Q M6F[V&GWUJO/\TR=;?/8:=[@&[;\P4&.?ZE(/B?9TZO4WN>%E):NWJP]UT?^_ M25,)2HI;_66G=[+[?5-^O\ =&/IVN$6V4C62K;=N]P?0*J@]IU^TA;?=[$?U0KB*Q7B[IIC+-&IJ>0HX> MZ,3OSE4K\QF\$1,N[B^U(*H&>A"U$-Q$.Q!,'X<&AIMH][JU2.RN\MW1X?N, MX;0MC/R:,(?MBL##X]S\*(P6(Z+5/LE__$TNE]VY2ZP(@MSLA<0*H#1. *8Q M!H74SC/%1)&86<>G'3UZ;I^GJE'.(:+J&*E^PK_._L!DW)H^)JKL& .'.++1 M6$P4.3;T.K@%B)VUMC*1@]:4Z"7([S1U3':\@*T=I/; UR!9_D!3D9% MLVQ[.8"3>QAE/PI^0R8OR)HV/++?X)-0R('+1Y^WFJ#P3>V=?2RKWWXJ5_*M MJ52Y$$66%4KS0@'36/."AI'1O "YH(SQ6- X<2K<<%G4W#[T1YI&1M7H5Z-L M5&OKV$&E!V'K0ST/N(4_RAL%V9CSNP$T?)_:71(W]5G=@-EG3NB&[@B3@+N+ MDX84RAA2 @@QP67Z%0*TH!F0 A=(H(*F"+HY%K:BY^=I/$\E_724CCN06'K= M,-BQ3 AH W/.^?3<(+'IKNA,FK'[?>+272%QS>#U5+OJ[8J;IG+RE6S^^W9U MV]:V_4"?3-F6!&SFURCG,P6.D+-AHM/V!J:C5:\PQ\3$&#B0T&HN) M&&CH=7!CG;/6]E+.\1W3\%U"798VZ=)IT.CG2Z;A&\9V-7F[TE.N M;@4I7]$M[9*<"BARF# &*,0(H()"0)#V2A!!F$!10+VBIQ MH&QDM!U,?G)#MY\G?&(6FB9&PC6B&TH_%E>V1;GP\(G[H_2;>-HH9>!Z'W%E MMZOZ/V8?^"M=FF#;\S]MW=.4)3%1+-$^!=)D05D!F$ <)%F6J((1P>QB7GTH M,S=JJ3LDFL.1^B\'ZD:_OEK?TW+E>)I]U4#9>2I3P1^8I:Y _LI@N7&0!0RM MFN2#NC_Z8=G'+OU F/ _ M4W=1@")5,4!I'@.6PAPD:1)3&LLL@XZG],XZS.\X;)=[]#S)S3&'S7DT["@R M*,*!>;$I[-HH'S7:[W+ :@-NGM5^W1GA,05L+'Y^L[BY5*,? M-&*?^_9N(^L$+>V29(DJ/ "8L R@K"- .8PK2N)"*9B2GA54_\O./ MGYO#MU/0K(FD4^& "_A9[(!?A4I@OO$/B,-V^%7 3+0E[@:0VP;Y1?M[-\E/ M[YINH_RBQD>;Y9>O&E$Y4ZER69I*3DYA:'=%=%C$[ZMII&35J.I34/(]A/W7Y028T?3T'Q7>MS5X KJ^Y>?[Q MT]7>[#7OJ 9G_Y4C8Z7K1JSG6W4^'33J_+NDF\^_KQ=80I*@A (1(VQ"IB&@ M$$&@$AY+C LA5>:RE>4H?VZ,H%\HY!@5[0BXW7HK((R!Z<.F$_!V'3%9)W;= M1,:"2)O@,71Z''9^(Z@==9@VD'H<0"?QU",?,Z;D!%W*]ZI>NC5+N462B +F MJ009%D*OL8AV5GB6@(Q G- L+;+$ZEC__./G1DM&P=W.T(TYT==*NA1A.,'/ M8HUU%2JA]W0,(.]5LW%STV[G7 6(2V6*:X"9:(WE!I!CK8I+]O?7JSBY:\*: M%9:'5, B&]:=Z6 U)1'O3H[WMW8BW"7Z-2=%1KYKV434R-Y'I"F0*U*Z72_.D#B*O MN3A3CY?OK)[)])\Z/VCJ@3F3:32Y"F,.2K(8OOPB*_H@Z6]=?PI*)%90$) @ MD9B",":4AC) "XQ4&D.%I%4$WD4)78X%S\-D:7I>:.6_%?;DJJ[KRQ5?Y^INIWBD7F9*D4*D"199!@%"* :%*:GIC7/(X MDSQSJF9C)W9N=-=J?1/=-7K7 6KT2'/'"!<[].V\8/^8AM[WZ.#\RP&@U><4/(;L6(G>MHP%21U$?-FV#F'HSH\ZEJ&X?M2^W*?\I MQ0))3#.8Q2!14@&D-"M1&5/ B. $\33-BL2%FOK%S8V2=MIVVZEUL?@JHCN- MZW+RS4\=:\@/ &_'2O[@#,Q&>R3;;<9&UVBOK#\2L@/%*_D,B)R4=.S,?TXV MEG>-S:IZN;Z_7Z\.GOW^<5MM]2=)$]P"Y;F(J?9ZBA@R@(3D@!4)!4AFB,%, M+_)4[I9;U2=N;B33ADXT*C^;'@=JNV9:]2+>SR[^<0S,+M="."+[R@:9*W.P M>D5,G(EE8^YI/I;576,IY58(_<2J[@WT?O-AL_Y::F,67*849XH"F2:F[G>< M P9%!F*%$.$<9:2P"E,9$C13&FF5-8'J)F)RO8DZA5T)Y *^MM1Q/6K3D,8( MP$;013\:5Q+%A8=/3!'])IZ2P\#U5Q< ;;,_=[4F51)SDD,!,.+:RT T!90+ MTP](*8I2G$GN6$O\LK#Y'5.V"D;+O>F.,(G=YJ2VZR:L,@B)3 #'"K;UQI'V++*4 ML5C$C"?_*E2D$%#&ZK,LWCMZ//;,MA1(>PQ0! MP4VJ$S(UXN,< 8BR-"4"XB)A+;*O5V(R7#M9(5=&(A"DEF=M,]YJ:G2[\;NM M-&BX_PZ=TV\F#1IYML^EARVC^G3_1?,R?_HBY;9Z);>T7%;[.G6)8B).B';M MBLQD-2*AEX4I!7F&8*I@(8HLMUL;#@N;W]JP53=J](U:A1WB:OK![9_T?@$+ M//O/(V57"= 5-H>X)&_P312@U,%8-3"*1N,_>8I4LD*C-V2I_PG3Q2Y967(4 MQ&1WQSC?\U59\>6Z>MS(]^JP\_!'N32IJ:8*='72=_C@A99%+),B*P#+2 Z0 M(IID10%!DBJ2YT+@A!]X3 M?M]*.U"15T_X>74+K]5I4B?2$X#/74Y?CQVYN']\>%C6AZ9E'4/?U9"DA"M> M"% 0JMH5?D*UK![WJ_4E^EV:%/WJ0486'X_UEH-:;Z+&AKKEA6MZMB7J=N3B'\O /', W$VTTSG:*QUHN>0& ME-\FRW:BIVVX[ 3'2?-EM[L]%AIC8B>Y#;:F7$3=89$QI+ A<@L<0Q?C6Q(D>]?DLP2 M*JNZ9+;/&D>,;6=74VEZO2RYZ3#=15$*14G&60R$)#% *,8FJ3_JA9$ICE660ZPR!% B- XB(%7"0L9FF2I<*)/.S$ MSHU(C%;U,F^M(MYD@[69NRO]'=<_++L+ZE;05X0VV8V*Y7:S=ZQ#;S_W],GH M J2TWLT5'AJ:C@-JBH88ST7/H0O&!3@L6U][U[-%M=[]5'^;#>;$TO M^T_RKJD^Q[,TH442@YQ@O>3#)E&OR!F >8ZS@B"(,>/Z@%YIL]8'LUHT]#@#G3RS 67BFE1]RD-#)L]G/JL+AC M;!W4KGY<4V/N]EX_O_QG?0;_7G7+L$4FN"RDRD 1TP*@#!) H"813A#."T5Y M7#A1AYW8N=%(5Y&OJS9:%ZFD!ZJ;"2-:Y5VKD%J-@QW%^$:ZX:25ZXF*9+G": MG6(.2,)30"C$"=&.#66.70LO2'*9,M-$DC?[IFNV+._HB)Z$EQ"UXQD/* 4F MELN=+OSQR *7HGCDJQ)F6+ X.?4,'2Y>SF25VW0_.<-755E$RYH_*)%3'G* MF5 @@6D"4$%R0&26 (X(@Y*S(E56;;+ZA,S-*>GTC/:*MDZ[??V1BX#V\X O MF *3P B$G J.#$$PNMC(Q0=/5FADR+3#(B.#UXX,N]F7-*KC>A:*PU01Q4 ! M]3($)12;C=<,$)YS#H5*!,GZB;X:A4W7 MF69;]=\B&,GE1/_+^LI7DM?154>_TG_J!SY(;NIF+BU[]UT<<3MOY)I1#,Q MQW72NKC!&FV/,3L7[/<;G?-G>WD7?M0(8YPI(;!+7208S$3LF6O4*G)T/FR9[.XWKA,WUROW\YBRT]MNJU\ UP29JK9XY"@Y30JT/ >\;I">" M)M\.O63JN.7/4\:E__7FY>&FU7VZ97T,>R^JU-IDEB#/,LS@&"::H] M#J470462@"3'::[_PA"VZK%I*6]N#D>G;G2D;V04=EQK#.!LN?3PAU[HE%,B!SV@6+'0 GZQ?+V\9QRPM:E=5[]2R [JGY"%4$4>TT2FR,W?L!,\/P^DUMNX'Q_T4[MB+?7FQX=-N>+E MPU+6O];#56E;Q(@J$I9C8D='_G$.S$H[@/B0^6K,\CU$E]G;INNKM=EG8^*>?5<-K+9E]RH]>:^J1!FSEC:]RS' MA_P2>-N08N'W^,W52NJ4RUZKH1])UD.G#SR_A\L#8'@_9[XD;_(CYP'#SYT^#]TRM@?7 MZWNYN3,]2C?KW[=?S"$(73TM],60Y4J!#*42H"3%@.%$ J(2Q9(B%4I0MQ9< M9^7,S9UH5(TZ7:-&6=>V6^<(CT %YH?S&$6MHCX[;O4B<67#K?//GKC? M5J^!I^VV^B_W4[#RH'!JZPK+/$X)SDTO3V7JNIC&.7E*0 *S.*&Q(*ET*NDR M*'%NI'!:J?&HNNRK]3TM5XZQ*,.PV[D47L$,3!Q7XGAU]K2?>N$2CQ7NNFRBKC+X1VD^2\+D2K\I*TZ7?Y=T MLXB9@EF6*I!29+H))@+4'8MY#@LL(!946K4HOEZ5N1%<'<;_PZ96U2P/2'2O MUZM?7*NS7#$V=I[3-(@'IM/+U>\Z2VZB[3IB,OI 2W$3[>PQ1^.-19$Q*7 9 M/"=8PQ?#LU/G^Y?$VQ-'.'8OUYNND$3[E2:2YEQ !A)A2N(E* ,D MSPL@DQ@F6&0Q@=*A+]>)@/GM/A^>N;Q>_5,C[=*(ZQ1!"W_O*E2"[R=O=I5> MQGA]IX X.'Y7 3.1[^<&D)O[=]'^7@_P]*[IG,"+&A_Y@9>O&MM(FLORJRF# MXUIK\LR=,YI\!]H%B=_OL=YSW^%3.1,W&+YHZ&DGXNZQ!SDJ9V_*B5C(Z/*/\M=;3 M7>(W"N4]$'@MS[)64G35B?I,_:D-DGOQ2,+3J^VI2B7 MCR;U_9/DCYMR6\KJG7X%FCWS!<>Q=J-5 421<8"8JCL+Q1I+Q/5?6$93Y51V M>D#@W$CA4-]HK_!-9%0>>4(S"+H=6?B$,C!O7(FB>V%J2VC\EJ<>$CIMD6I+ M"$Y*5=O>YQX5\I.\H\OFO/GV6UDMXB0O-(%@D&,. E$;W_"KT="2,\[AUD\/5Z(1?%O1'@BGN(X+)H^.Y7C^O,GB M-RX8D2]RGY/+?I6"L7/= [>;FM^ !6PY-P- +!=\V,\3Z7[!>M'3W[CI\VV=P[:\3A MS#M_P=@HZZH.NGS]S702EM4"*@CU9R\%$%)3\YP2P(2" .:0I))DBB;Q8KO> MTJ6=K_U<@-,LW(D)>#)M9+2]%NHZ7KNC)MEJ[!I&_0Q0PI*,)2G4;Q=C ,54 M JQA!*:=/,P8Q1 Z;6-@4$2"A ;5;F%P#4W#NZ[!Y/83(B+#S\V9[CC5_ M)F3B //S)IY&E5^X;FR7&[JMP\->+FE5O5=UL;3:%5:*RCA-8Y"0U'0_1Z:! M*=; )5S_&!4%9%8>RZ"DN4WU6C]SU-YT6W%94@RC:C?-O6 5>KX[P32BY

.RLR+:FZ$G66=(I-:;Z*!A?/2K ML25JC7%T9$<.G)V7&WXX G^5 HV$LZ]\'9!>'>F1JDSJ95\'UW,7_,JGC?#/ M#T)57VCF%N\?ZI8_'UZ\[PJA""(3%A<2I#$C)@4T!32A#/!WS"D%AZV5Y@"4]=AN'.M;-1J&_U@]/WCF)A?B_?2WE/V M"N9$CO'UH+JYP-88]7J\PT^9SL&UMNC(G[6_*T#*V2^KKM6C%*^_<7WI[7W= MI!'21&&%.C1%_CLK[AT>M:%2V MG30]9IE=' X[GS0XR#/8*#DT(VKLB!I#)LHH&\)QNF2RBYK,)X]L""RG%++! MAXT\;Z?5EX5"E,=("I!P(37?91D@$E(@TS2.$U.]##L=&)F'SHV^C$Z.![T& M&LO#74>#0Q_P]-GJ?H1[8)S?8UOSX&F/:@],.3F>/?S=N,GTRTK/U:44!QDI M+Q\W&^V^+@3.!$I2!;)8<8 2D0*2%MK#2%BJ!)6,*.8RQ2Z+FMO$ZS2--GM5 MW29B#ZQVT],/6($G[0ZG RUOHE9/?[-Y& NO<[Q'W*0S?]CLYWQ@<W?[MYKAE*6YAD!&2>F$AAC0+\_ID)/1G,I&&>\<"LH M:B%UAGM!C=*[2*TF@*O.M^*-SA&M+7"L0FPQ G;,XAG5T%M'+9RMNC6:3?9: MHW$ NG$ R&_=8@NYT]8PM@?BI)ZQPZUCT['K[G=OM-8?Y9+J)<8'NC$I+HM8 MY)! 6@"2Z54!8D@ *BD".&,8*IH+FEH5)AV4-#>WI>O<:$92NRZUJJ9?[[:O M*J\CN'8\#2'C.@;\D;>),^ &C3_/AAVX86[NX MS<1,BPQG%!% ,4< I9GV2PB%0'*!4R'S3-A%D#]_\-PHH$O(<]&,:!Z6$'[E\.P#W6?9=/$J )RBC8 M_$:>.VDP;33Z&'!.(M1'/61DR0W.-X]2=*<=Y7Z'CU*N>"(QX E- ,*P )0A M!%*6(IP53"#;>G:#LN9'8,WBG#8*1\N]QHZU-2ZB"Q&!D)MNY#@QV](Q A2B M!.2$9P6G%&8J<&C#XI.C)XP]6;/::UC4G:_ENY_=*U+'[]C2\?A29^L\&D_U]\IM\6@M&" M<\9 DBJIR4)R0.,B 6E!(::4X 0[U5\>HQ9.3]J M1!SVJW/;8TVOP(5D*LEX'H-4$ $0U^MIK'\&TBS!G.>(Q-QJQWM(T-SX[.=R M*37:*QD]--6JVP-[/;U^*%=152MM655^$.1^,O,)76#&TEI&;\YL>M\XM4<= MQ,LA_-H3;A,%7H_&SRW>V@*4WDCKOONGB[&VL.(HNMKF^A'LN>NP_$H_MMWE M+E@J8TISD-*8 L0H!53A&# NBL+T&BH*;,V:9P3,C2WW?O[A^7Z23C-+UU1"*,TA,C#33;J%2&&!$$\!5EA,2YZ)0T&T?\J*L M^>U#-H5BUDURCMM2]S*B=@M:+RB%/@HQGU3 ZKRQMM7+8:_%FS:9+, IR" Z M7E>DEZ5-NNX<-/KYZG+X!C>VJ#;;A5ZF5NME*>HOQ=NMO*_:CQ5D$FJJ2$"> MF.@(LVF&37T=_3]R6?[_%4C"QG1OX MGG>W?QU55M,2?3M"\(]I8**X!D[WDD).Z/@M(60G>MJ204YPG)0(V4:.H?>#U)33[><431J%/FISA<0K,'@!@=(SVI>=.%JX]8-AA MY/;0I2.["78%'9X7 -_YP52E.&-< EJH'"#]5X#3%($TBPG*!,=9YABX/2AS M?GN,+WLJ]/_9L=O@(.)VCH97% /3P[YLS&DY_R!+%&MP_/8G')0Z;:]"6Q!. M^A9:WSBVC\K]_7I5;WAVV2&%$$0E".202H#B- 9,%75Y*RSB)"Y2A-SZ?CR3 M,#=_HE&P*7+OVN+C.7AV?'$5),&W'_=H!#B(N&BZYT8?SZ5,W.GC@I&GK3XN M73AN-K]=?955W>#T[8JO[^7;MOK:(L4QC/.8@R31:"&(!2!"8)":-CY8*468 M8YV(2Z+FYS!TFD5EK:C;%+^(J-U,]X%2X F_5S%J=+R)W@X5[7.>]D,X>)W] M%X5-2@)#)C_G@L'KQU'"7^FF-$5I/M*MK/?.>*Z(S"D"E)H !9,R10K% 4LQ MCV/$BYP[59AZ+F!NG_=.O^BC1=2,'81V<_\:8 +/>2=,G"?[)<.]3O(3(9-. M[DLF/I_4%Z\;F^=]9PBBV6[0BX)79<67Z^IQ(S_+;]L76L/?%CAA""9%"F(N M.$ \3@!+9 *R6.KW(B\$I=@UNWM0ZOR^^JW2)NUX?;>A#U]*WN8>-\F270K) MVU5=6-B<_;KF> ^/A1U1>,8W,'>TVD8[=:.]OM&O1N.H5MEK#K\HQJ8I$X O;TS MKI#W8#D76$*WVSLC^7MWU[L,AD4SO9Z;KUR)'K=&ZPN2T":$I1R4QLQMVIE;2=N;A34JA75^P#KE7&?ED;O:,V6Y5VSLHK 07NA M^K=C%UOG1\!QW74UKI,MP4Y;,7DOBF6'2IB5V7F1WV>1UFO^Q?5:_UW7+MU, M;QCM79G_& _K*UWJIU?-.D'%>8I5(D#,3+X?HPD@!$G %!0,"J=G-#B.TD)I0F3@.#$)"AG M^F^08D"2A&D'2BD&G6KY.)@IU$ G<9 C7O,^'RJ-V7%Z?+ODF[> MZ)]4"RXYQ##%(,E395I<%IKTA%X@*BX+4@B8"BLOK4?&W(AMES#4Z!D91:-: M4_>$JN=P]I.3)Y "$] (?$9E5%U X.J,JN?/G3RCZH)AYS*J+ETZ,D#HK:'['Z36; MM@6(^(&FCBNM\[!:+JVNABKT6FJH2-,[_>;72ZLF$\?C8V_?_+!C8J1Q3#Y!V=' ;/"-3 M@2,R-P5*VY=@NBE4>LI"3,-J]H5+!RG"U!!X^7USS_7N82NKX-]#JD6YT%][ M1.-$@((Q F!::&. 9?H/S"G1U@ 67"[6\L%4QOUNO^P'![9ZS4G]FE\,/^9N M>Y\-I#?9Z\T:/-+M/^6N6@;:[GS>>O25&9X%7$"N1(&!MLCTMDM!4S4S)_J? MD%.,"AHKI^" ,/!/2,*MP-%N$]%:Y*:!\?(@=&C4[2@Z*)8C,_8QC(VT3;S_ M!PL8W;L6VT(3MF?QX*C3=BRV!>&B7['UC9[-PH18&B.1KK[0I?BP?DN?ECNZ M:E*U(2-$%2D'B">:^*E( >.D C2.$>90(@ZY<'UCC8WNCD(&QEI@>;Z1E[' M7E>]$-OQ2S#@1N:6;LQ&R).W B5L^ZO>$:=M@66C_$4;+*N;/*MD7#V4N]^] MI=OMRW+]4-7[6L!8H"P7"G"2)P!*E&E3,F6F!:$)*X(Q3W(WOY+5N/-S,^V/ MH"L_B3Q([EA>PPKU.)&YC'$&*"?:=!2%_AO*,R!((I52J>3(B<>#8SX-G__O MY]*T13%E8L9 V8[*@V,W,J5WQDK<1707M5+7)1D#UD!Q02EL712KD:>ME>(" MQD7]%*>;_;C_G7S:2KZL?=Q,<1(7!0.:<*@IGE &L,$")G26*2$Y\R1XH\? M/S\F/Y;.C59.8.,RRR"1'.0QTQPM8P0(2B"(:4X$29F*5>'"T;Z@37*<>B1; M6YCN!N@8*U*<EDM3N>OTS5E@WZ$3@:8]%MS3;7S3\K5 M:SR:G_U&M3VV?;M9Z9]LZH3EK[*4IB#POAU1LTUFDG$*N01Q@2& 2"]QC H( M4"+3+-._C+E5#5_'<>=&G+^]_7KOT #, >#^53XB;",30"UT=")U]/_0QZ?_ M-VJ%/^H:-NBDN ECA]YKXV ]44LV)\P#=6=S!ZRW:9O#XZ;KY>:NXTF+-X_; M@[J"VH+!$'.5Y:D"(LTE@)F$IN") H6(N?X7H1FUZNID-]S<*+S:1NO/IY[O MY:K^ACJ69!Z ]R8WQ/R*,??D:HQ0B=D.EBD<#J]2@]E.?4L70YCJRTT1LJ_2 MA#HLUP]?Y+:J1J;U^;S/QC1Q9MSLN9:/^I+/ZIO^::GTX$M3.I9NJZZ658IW MD61)$?/$]*/!FGR0 %0F" B)H2)(:$/3J71S6/'F1E:-=G?17K_H2,'HH.%= MU.H8U4J:-*MC->^B2E&KOJQ3O =V+/EZLSLRJ[[.Q#K3\3CX!Z7OP").2O?C MP'O^>1AI%,]X=_UQ*AN)OFPWXIGO/B[7LMFAQ42P+*:%L4H9@#%2@,F$@41B MP@F'4/'8*0&Y;[29DKUCH'LOGG8L&PREJ4BS$;(R2[_)[<^EILPW.^*T,? VRE^$PEO=Y-L/9%T9MO^YW/UX^USN-H]R6U76^<=V M4Y9M_8YMQ'=M!2KU>;/RF#3_XS>;J58[B)3 M:'&$FBI." ;N5&(S\L3=2QS N.QHXG*S9WDG$R;Z:;/>]_^JBW V^5@+&:=Y MFN?:L"%([X)1ILF)Q A0!3F!$FE3QXF<^H>;&RO5T<[-N?-=M):.X4 #X-HQ M4CC(1J:B&JUC2?=5=!MA0Q;2M4(E;.6F_B&GK=QDI?Y%Y2:[NT*51*G+T\FC MXG0+I*0L<$) F$.H$A30#E/JP##7"K,DB)N(S#L&,5F6(^@C)&9Y5!JL39X M/,C%"F\[B@F&X:M6,6EDCHZ$'K-J23=$(Y M&K$KSX5L9;XQ9ZY[(NQH*C"XKY=%=U8-_.ZT'/B(*76#@(V;6]<]_.LFV0W" M,IAM-_P$-S(KM[O%;_2OY>/S8^,AY9+E!&,"4IXD )*" A93HJE+"D2Y@LRN MU=S%D^>VZ6J$L^.:2YSZJ>0F[4=FBD:N@&[A3FW[EKF^Z6B)ZW^=+^_+ITZR M>CN5:1=G]P6>R0K[KDZ?U7&=E*]R9;[&51/IJI)*5=^FI81]>(UI!XO,P5 6 MFUPJ1"G BF @8D[3#''&F%N<_DWBS&V5#U0&LHG9&6/2[ R1Z:9B9,H), ON M,?%!P L;17^;2-/&W0>![R)2/\Q3_8C6'$087_=2OW9K_O*)[K0<3>4C3M(L M+M(""",)19(Z.:![QIH;15;-[XYDO8MJ:3W+2O6A;$=[ M@; ;F=/\87.F,@M @O)4WWB3DI"%XN<,8W.+)WTT'0B6LEP028JT0"F(B;:\ M(*8"4*P*0)'@INNCTK:72X_,HV<[T<,$O3&_FS&BU4% 1SHX0LUR^?MA,?9R MMP# ?6%?JAIV(1\]?]J%>ZG8Q4*]Y,UEF7[:; MGTLAQ9N7WTLIVL-FO06YY[OESXHE]JX_#).,2(8!X1H[&",)](_TFI:HR%DB MN<*Q6SD:=R%<7O5IBM;LA8WH7EK'-%2/N;!CB7'Q'9E*M/!UIFHK?L1>HE^, M!M%R_;?H@/M!BU'?I'9%E*V=&U\3?CA]'_ M/=L'()$)&<<2Y#G!VL!)%<"%A"!#"$(!,46,NI&AAQ3S8\.S1J[18R.WH^O% M8T(L733C@CRV*Z>2_B[J:P';*C'J=NT&&,.ZB3SDF-:=Y _4A=OIAD>YQ]:\ MW:S+S6HIJD.N#SOY6%:[$YG%.,^YU!.2Y "JC &6Z\U=AG!,&8D39->QK'N( MN6WN3J2,*C&==GD]8/935AB(1F8D#W2<@G/Z ;@Y2J?C\9.%Z_2K=QRW,W"E MI__YHM_A@D+)N!0<%%6[^H+D@&"D0"IPPHLD)2R'+N=#ET/,\YBH/.GP*2M) M'9W(EV#"1!4"$@*H5 K +--&HA IH G,$2\HDHE::$)?;D25F3\%I.?#C0?L M&_FP7%<%,1A=F1#VF_%D*(\)T=\[[9(]UPV$=IOH"PV;NMN-2-CC MB,MAICUVZ%3SXGBA^TK?D@"/CYNZ$6\53E5^*,MG*1:Q($6.*08\R?5^FW(* M*$T44#E*L,BQ-CR=ZHETC#,_Z].(67^=[J*RDO0N6E:R1K\LU\V/NO-&G4"V MHX4 T(UNE5:H?:M1^]:@5HL9,H^_%X? F?O7QYHX5[]7X*_ *M_J=\"P=AV@)WVU@NY2]4KR[:4_.\/FY__IF^I5NQ_0_-74/^U M6J87#YMD47:IT"[!SM_?&N&X/[X[)++OBR[]NMG6)9=,#'03E[2 !4JRO$@ M%#0',#=N%,J8:9B;HXPQ%J/4+^+1592Y+>K#T?=!@;ON$E;-29!C5-(-,V?I M79AD/D9FF-!3<4/@I"^*(P52.HOS2H&5OK!U!UIZ/]'=IGF_WAFN%D*_TZ6A M[<_;[YL_UXL\S8LX8S'@2F( XZSQXBRNF M:?^Q_^HVI3SIR<>7UQ_?E5;",2J[ W$[XR8 CB.SP1["KY<0=MHO :.Y^P$* M&]?=,=:T$=[]"E_$>@]<'NK ?Q]1+*44,<88\*S(33L/"4@B!,A@D;.\R-(D M1FX!C=V#N2R#:>(63T\3Z^-_QRCN'FQ]CUMG&)7M<.PZ2C3V,$@CG\2^3G3U ML-K#)[.!HJ4_:8EI^>/#^JGIU55,(:NHO5F#:I6](_-3(W/TX03<@YNF#5$<(4_$%:VPZ2'6HT^;%>(*RD4RB/,#/-KG M7A9=??_XM-J\2-F4]SE*FM4"5%6B+]-I%UE!]&8L+DQDFMZ,"?T'$9K^$"%< MI46,IVGRJGGZ%7K1[=:18U: M)]4!S+35!>ZOU Z8?MH<.@1//WT3=0^>;AK=.@R'!;RW^W"@H:;K3!P6FY.N MQ8$?[?&=O4_CA)@*P$TIV@2S+$,$ R1I;(XI$,"R4$"86KY)$N=,*NM>]&P$A75;-VX,)SO"R^13>@,/)'90^ 3V_X MQCR_9SKJZY#VA,.ZKO'L[70]F=+L.9J>:#3-D: ) PIR!"")"6 LAT"Q)$:< MQA+F3NHUC 7(4"%E E/&4JO4:X^QYT9*>0)('!DQW0C' M!6X[ZAD)Q)%)Z-!$:(>N=X4OFG*%9O:Z/L*QE6- YABS"'$@ DH 82* %PH!&@BD#:I"@H+ MJT@T]Z'G1EKG9;?W5;<]2@8Z3( =CXT#Z\@TYHGHC57,;< 9L:AY[_"O6./< M!I;^DN=63_ CK*]R1Y=K*=[3K2E(4-YSO;%_KIQ>[Z1:\N5N@0M,%!':LDBU MC04)+ C1$]&@9.$I3P7*'>+?QD>='YQ,$ASMO]"U]DP]5+YAF7P%323A* M39PN$0#FB #"$ 1"IAE.A28?M\K('>/,S?HY^#U:.3U]16=P.GJ(_$&:S"_4 MBCC"[FL AG%<0&=CO8[CY[K"G>Z>CLMO"+H][AEU=([!4UP0J3B0A=)LD#*] M,R*Y! E*.54R1@1*IR3'[K'FQ@C?#B4*JKC1Y[6&--K]D&U4Z0<]Q=H(_"D= MCLUL,+>CC$!(CDP;@_WI@G.(!2[A(W [QIL^!+=?\:LQN .W>.8#&;^=MF&6 MVVJ>/^]/918H89G4ICLH6&8*^,D,T ()P'..LIC+F$FWC*"ND>;&)Y6@T78O MZ=%1E6/F3R>V=LP1!+&1>:,&ZR!D]'D8+/</-RT;"RZC#Q_J^GY;:FJZJZX0(*I13+,"BH+ "$C $2 M*PCBC!.4*$*99C0(#K6ZL0J8B_1 M5>0B,>UM0*)MVTAEEH4"_,N. #^'JQR]UVR7=-7:S? MU\M=^?7;[\VVIN!ICG.5 D)- J=4F=E*)D"2%,F<:(Z.$Q>6[AUM;LRK!7-T M*/6#:>NC#@31Z.[I5LZZPEU421K]8E#[VPA[1"M< CNF^T:4 KNL;$:>V'GE ,:E&\OE9M\J M5K\N5W+[5H_TL-F^+ 3,!"%Y"B05>L_)*=%TE$/ BA@B)!%56>Y6P>KD^7,C MGJ8V4R5CU KI6K;J%,%^+@F R\BLX0:)1YVJJXK?6*/J])D3UZ>ZJM!E;:KK ME_EN28QTR]6RVN5\5E_E3[E^EK]JZ=HSM.^;0^\:DU;<-FQ+"R)S%6> (*0 MK I#Q(F)9XYCA+,4"YJX!MSX"C._0)SC9MS;6H_2^"T>Y.9A2Y]^+#E=17K/ M25UW/=[S9;LEFF(.1M\O'2MAIJ!1(S++[G!"O]M$QZJ,VG+O=F #;[B\Q9EX M-W8K;)=;M9N?Z)$Z^VFS_HUN_RFK&DOO)-M]D]QT_%O*\C^7NQ^;Y]U7;2DM M5R_OI,G66J[-=;_2Y?8_Z.I9WJ_7SW1U_VA*BBT*IG(69Q1D*2( HCP&1$(! M4*Y_'$LX_P^!L.T]]<' &90Y[O6[K6 MQOKW/S?M04R.%%$X!9P3:+H^8I/RA &+4RH(@DFJF/-QN=W8<_N&-O)%6D"/ MHW!+O!T.N\.C..%Q]I7XOKOH".$Q@OW<00M_(FTY_O1GSF[ 7#U5=GR$'WE] M6//-H]Q[G#42HG*I47!8DG M?%V6_ZP[]X@\H:B(,!P"XWI1*ZT!_ M#^04<\&FU]UE]:#I'%DN>IVXJ)QN](V-^2H?EL;N6^\^Z1=@D:6BB&&A@$2) M*06&$2"9(H!*5A 8XXP45B$S'75;PR1.7OHQ#$RUU6Z#)+IN,ZS%H0II;SO9&#V@5TCV3UPDY?^K\)_"P/1SV2;DT%E2K"0H^D_\E_ M5-\Q(7_*U>:I\D <>J/4%U)]:5UCY8EN=Y81M'G$YS+2%(SK5O*@9T7VEMVOFI]SNELV)UP(S+ 65', XQJ9@ M# 5ZWZ4 2@LH8R54*JU:U7<\?V[?^EJ\4EO*=WKELYT)LJK[L3D[8TY@M/;" M^((SOONEE:PZ)0_J=+FFQ&S#%^:78LFW55BC>1/$LSC &"1',.U[L_EL8* M<)3@0A8JDX53L:^>L>;&-FVKJ4K6Z$A8K_+'?2#;\4L@Z$9F%F_4/+(+!O$( MG#[0/=[$^0&#BE\F S?O*_JPH"I3,N4$*)AH(D@5!"3A7*,',<-0F'Q*VX.?DR?/S5[8"Q<9Z>Q/ M>D[A&C[B\09AY.5LJ;_3FT>:V0)OSFX.07H9\ M/\!VW^9@L(V\I)T1\Z]XTH?$.)5.KH[X.A5.^I3OK&S2>Y-OU(:V SX(_;2E M6O(J]N?3]^,-C&)@U?Q#RB/0;0N#'LH^OI$\=_#"AY&0@R=(-G MX\@=@9>7; M##8WBCC*Z3V2UCM%IQ=G._LB%'HC,X4_<.Y-'"T0"=NUL6_ :=LT6JA^T9?1 MYA[/#[&+N[/#N-:--'+%?/IA'/H?K"^[_XZEE(88Y1S:[I M>==40VK[J7V1VSK!^>7Z ZH-OF(40R0Q8 0F $)!]48(Y4 E12RPX#B'3@G( M(\HZ-W([EO2X8(J/%V;,*;9CPYE,W-A.7;\Y<^^[,CZ:83NWC"COM+U?Q@?^ MHGO,!$.Z^[_>-1EOOVJ+EZ[JY@>_ZI^5"YFG.16H #S&5)NDM 4Q@QPE)." M9T6,,V[K^^H<96YDW0H:U9(V;46B2E9[GU3+_UJ!RQ[ZMX8MOZ$M7OGW>;J6I-"FS.",\![0P/06PMN]H)A% -.9, MQ F3$B]VFQU=6=IWQT]W6N3[,<9[?;^;,2)>"Q?12E2/QG-[\"PM)U](QK9U M*KGNHD:RP$WESA4.WTAN/\+TS>/.E;O:,.[B(L_URKFICE=^E5PN?YI]8U-4 M38I4)BC+0081!U#?#*@H]'>:(X2A2'.HG ZWNP::VZ>ZE3,Z".JXB+L0M5S/ M 7 :>VE?0C1"Z;DA(,(N^:[!IEW] RI?$,'0]:%J0^GGO-L\TN5Z@93DE'$( M,,L5@"+'@$!$ "H4)@G-4$J=FHSUC#4W9KA2_\@(&_U1BWMSK:@#R'9,$0BZ MDN(G6A^' IJ:Y0!>4AZ\$G)2572,X9ROE^/[IZMRSIP\-6/IPV\Z@+-^:22J1R MKA$O,@ +P@!%) 82Z@T09DH21%R,G;[!YF;MG,IZW +'JS1F+\YV?!0*O;&] MF-[ .=..#2)!J:9WP$GIQ4;U>JP%7LCU68K[U>KS9_Z M5_+7S?;M5HKE[N.F/$2@25'DJ!F;8*$-/6:8-0+P-L(O8Q!L?YT>7=;:%4R^7LR"[M&"RR'$,8HH+ &., M <.9U!0J5!RGE%+A%")]LT1SH]"W=+M],4N\#@G69LBGS1H\'CHM->E(!Y7= M./;V*;1CVTDG9F3>O8 \^M.RO=68(9?!$ Y*QK=+-2DM!P/QG*##/=BW)(4V MDO4+]/))[A80%9!G!01*<%.Q+"> T2PS";"<91@34A#7.A2'Q[NLU&F*3[32 M.;/C"6J4$,E%B@"+J0 0LAS0F$N@&$4959")1+EX.GTQF\*;&08QNT^#+PXC ML_Q>K+M("Q:R]L:ENH$+;AP-,'&5C4O5+DMK7+G&,VNF20SYK)J&O5_ETV9K MW(P?UMKV?:S\ V]>FE\>+!:5P@P5VM14<99K4Q.G@$G* <<<"YY0R+'3;MU3 MCKF9FB=Y-K6LT;;5Q#&UQG-F[ AC KQ'YI9CJ!LQH[T2T9$6=Z97?'O%J D[ MMV$:-I/'4Y9I4WQN ^PB]^?&Q]W,H*:&XIN7MRM:EK4W7R9I2F-(@4A,OZ"< M)]K<(3G (L\+!K4-B9PJJ_:,-6MW:M('LS/EW0+>E+3FAMLM MA-6%R%BD=#'>:Q%/E^(]Y-)YRXWU#^I@UONU: ]W]<[A-TE-DK3XO/YJ]KU; M36;Z@D^;];;]YQM:+H]Z.]%C3M&N:VI'?M, MYS5FU;]R1$CTQRDU$43"UZE-$1+YL3S?9[4_,?ZR*9=5-=[V4#?! MG%5E<].""0!3:3X+C #%,A)3?5SS\OG/M=3T MUY[6_+8_?:U*(\"<8"1%K$F):&9B>LO,N(I!2A.6)1(B+IVL5JM19T=-C=!1 M);6V1 Z'H0?!_6J+6DV")3N%AG9L>@J!JCM!N: 4EJ&L1IZ6HES N. HIYL] M.G__?W3]3+$(YE06'"KPXWKCY\; M[30"1D9"AT[3E[#U\\?M8(Q,%,([^/3:O,BY;>ZVF9=;(J64IAR5')=UJ643-89YR,B[BG"<=W.V;5FYWIF^H>.:[S]M&P,IYA)*[4]RNWOYHN=R=[\6)MGB MJ8J3.Q3CD2PK$EI(D,>$ PCUWVABHMM8C#AD69:RW+%1^-"8,USVE!81V9+CYNU@_@X_*G-KV^ZY\OC3>^.E ?H2Z2 S*A M.X8/CCMUSW!;(*YT#;>^]=:(VK>T_*&',/\QP_RD*U/JY"QY4G'!\C3E@,>( M 9A""!B,%2A@DA-%LUA ZA=D:S/\W CJ.'Z4:\$KAJK^(@\J^(;>6LV'I7MM M-)3'WDH> ?RV!;CZRY'T$^49N$ W4B2OE0BO%-SK D]WO*_34R8K E"['Q:) M$)KC4 QP;@(G]&X+$)91D"">9&F>)Y)CMS14;UEI(2J2J+;Z&=5%.67Y3H2F]6*;LM([\ZBTLC_-U<'A-5R!?=; M#:Z66;_*42UU4WM&RQU5@H=T2;@ %=@K837TQ(X)%S@N?1-.=\_M.'__I/JF MS[L?6$_0\) M*AC2YO^20 /+29LN^,!6((\0_GOS$GUY\[F)NXX+F6*20, 2EIJR&P(P50B0 MLRQ1@K$DY5:]=*\\>VY?+B-E'9\ILZ.?L2=B9'8:90Y" MM$&P!G'L'@C#@KQV P1KJ"RZ']@_RS/.Z\=FN_LNMX]51RNS9UQ(R2C+50R0 M2+7AQ H&6"$ER&26ZBV=$DBZY35>##$WXJLD!.9\K6EXQ[60CO%9ESC:\=5M MZ(SN>]L#TW2N>]N'C'L45:?R82.E+H>9-AJJ4\V+B*?N*\?M?_E)_K7[_J=< M_92_;=:['^6"Y+G B0GAS(D$,#;^FRPK]!^"HI00DD*G;&%?H5R\;I M@WDQ!78$,@6P(].,6Y_,N^B_)-U&G]"#/+CII=D/EVV.Q\ MGH?/^AO=%Y/5>]+'95D:+_@7N37=B.F#_MT_MMK<,I>57[9++A>2)46B_P\2 M(;1Q1&@&",T54+G^J8 YR:C5OM%O^+F1H9&L*K-?AVOP@Q)W)@2F4<-<\6 4 MB4JC2?1D5''P$KO/DH4_?53LQS;+#.R?51LE\_88]H,&YHI*AZA2(OHR.NP. M_OM1X9_(Q3_&-+B="GBCV'MPX/[4Z48+B:VL;=L!9_XA^=DV":QB M?LK*Z[5L1/=CL$[DW3X5(?"<]N-0!TV:?]=0:J&C#^- Z4?_(2!]'<+W@M:; MX(=PLJ7TSN>\"HD/:=5%VX/W>1#UOOSNP?U:?J'E3F\ZVJ*4&1$I32"(*<4 MPE0S=,(3D%-(29QSHM+$FJ8'AYL;2=>90IN?C66J,3 MLK6_R\-%M%R'!?/2CKPKC5NSHPSIJ!:\,O5;TJ)5])(!=C.IQ@)[*N X&N*.) M[8Y:OZGM\+P)36YW+4]-;X_[/;X+GS9KDRSV;!KK'E?*:^P;BN(\3U,!<&8: MJ^4L 13'"J X$3%2B:*I57U5B[%FQ_Z;-=B+VW0E_.R2\V2#KP6;AT-M9 +O M ,8V M>-V0\6\7=J'\.,W!/KY./&BWFIV-ORZO]%O@']9\:Z(FWLGZOQ_6;S?KJG^8 M*27R]KG<;1[E=A]3L9"HD I#!C!+S>KGA=Y8TQQ(RBFE/(4P+]SJ5CE*X/+V M3U.MZEU;@&(K?\IUCT\IR 38L<:(H(Y,*:WDT2^M['\SOHI6_*K@4=0J;&/[6HT9OH MK+:7:_>P;G MMUYA(!M[#]:!5D WBP,@@5N.=8\W^7*L^?&"E5[3RV=8ZF0 M([ L/-7^$(R\REOM?2NF','@6#'%#X[I*J;TOQ3N%5,N]1VLF')TR[054RYE MO:B82UN%HWU#-B9-V/@.C(+ M5I!^.X+TWAY29VO'%9^@IH_UX)/:0:Z0G!M%SO>[-[G[*I_TV_:#EO+^82LK M7_E;L\>6VR>ZW;U\TF]74YH(9( +(L$)!DC"E,DJ1JE8D(KP-SH2+^+ M^3B5$O:0VQE'8P(Y,AUY548P.DQ?&N$6BNH, >T8!RP)*$2 M([T=S)%;M(#3^/.+%3ATY(F.%'"L0.\V!W9\-QJN(Y/==4"KWG['_ZY5,2=R M>HNQ-9QHKOBT66_W/_ACE)Y_7KB&+8?G),&T=?!\P+DH@.?U$$_7>WPH/)UG M"1<)PB!-6&+2[PO J#;=&.1*Y0(1@>WCRD^?/4.K+/8H5AX[%ROW@V!\UWM\ M2['RV+M8N1\^U\*=]?[I;Z#KO?XM8J57\IZX7J_ISGO^1OQO'38A.&E4=:1^QE^AJLZ*Z*]'QVW/? MO#U['**/]=MSR/']UKP]O_V/>'MHZU[?)(WOV%69S. 5W2J$F MSN-]!;PODX%?0PC?&N<#XK[I$KJ'TWCPW[9>'\T4?T M3LK$S]$FU^[+,Y,I&_G3 M4TL?_6+T_%MD^"8ZJ!H==&UGM+F^4K=J$'RD7M3J%S3+=.Q)")V1.IJ\4V>O MC@W\E4S7T8>\\3B_/C&K=E1IFUO",28QSH$2F?Y2D)SI+P5C(&&%PH@G5''F MU.ZN>ZRY;30JV:+4\UC^"I:.A_"W(339D?O=_ER] 6R$G#,+3,8Y+K\RWNL< MCGMO3IQY*_6Y:[[9(]&]IJHGI9(46".3B#=NS@1B TA0 M!ND=<%(*L5']G$.L[O'TJ?(?4CR;M$OP]+TJBQ+N2OOU^(?FXWX<[E: M?3?I(8?HM2+G"C'( *%I#B#-,&"Q)/J?A$%*).?,*4#:0X:Y44ZK@G&%+?=* M1+32HHIK>VCTDR/I:MS7-#']F$>X7V0/[H_X-VJ$/U1*1&-$DEX XAA M_8T>,.C_#CRRW:C-X6[ER_Z%=SI04SS\Z?:%_E=/_'^KV6Y M2!*1YRE,@,Q-LUTS31AJ=J20$Z8@3@1T.D"R&'-N'-B*?!=50E>K<"_V763$ MCOXP@CL:8#;PVW%>8%!'YKB/F_4#^%C5T/Y^0G!#*#K3F ,N06G+9MQ):2QRR=T2 M/"Q'=ED[KU,&\BY:Z^5CSJAKB:.GS=:]CIKM1-B1T@C@CDQ,@W4?:U=]+7)$":%HN8Y$2$!,6$TISF(O,)6[*>N2Y14'5'3W5OJUB M[7>N=CN.YCDU$0'9E?6IDK!U;3/5&3S$'JNX@J_5&([E>KS9]5YH9I MUO=6[S.7N\A$E-Q%;T-O?IR!#%OYS'KT:4N?N8)R4?O,^0'NQ<]^H_][LVWW M5V7EK<09ST22YT# 7%LYJ*":MR0%"=5TIC=#<:R(;96SR\?/S;9IA7-R_G8@ MU\\ZM^,Q]O;&$@JG4F3=&M]<<^S*HR/JRU[?-<%S%;ETO1!!'6&5"FJ;D4 MR8(0E2$)"Y!G2 !H2K'2C!,@$8J)R 3"N5/TWHBRSHU$IFB:.\4K8&6UNM%!W^A$X;LF3S:J=0YGA4TP+T'M MMC'EG=32FP#X<]MPBB%]2H]0$_I0)3:9'*=E69I8=6V[?I7+1_:LF;BJ7M8D M/=$'??$_MGI/8NXKJ^2HA8")*O*,@FSF7D!ZVJ'>'V1*^[Z&FOF;GIP>@6F:+799T1ZU+MX?:I[?^\ MO,*$C>T+-'/U6;5YIT<*15JCZ.O97!V4,C=5:D657G4BZ[1SY5)K8](YFZIZ MQC1SYU@'(QC2_94M;A]FPEH5P3 YK3X1[K%^6[W?2_W(]^5N^4AWLEPHS&F2 MJ!3D2NG=F:#&KTP*(!)%A,R1E(655^;ZX^?VE=/2F>_57CZW+=(9=':[&G] M1OZ*G&.AR6:S6O*7Z(_FOZ,$#U^'(ZC]?S;$I";[=?7.K>R.J]S=K-\T2=#M MUT['C^9Y[5?O6/OZ\"5MZ8DO7]\6FU> MI/Q6N_2J/?2;B]H@JVJR]-\^JZ^2;Q[6RW])4Z%JN='7E;ORD!F#8Z82D4J MF/X#8D0 C4D&8"(RG,0<%W'B%AD[FJPNBVB:6-KCE)MJ:]R4!N+')83D7^;O MCH%MXTVXG5TRBTD<>Z-\K9C3H:K.7?2^GCE1^3C>TJ?ECJZ,7FT_Y(GRJ$:: M@9&RK4)+^THY62.!WIVY-=: ?A^6;K[E5P@B;)4P@QD><8!S& !B(@I2/5W7< ,DRRV>_CDO[&]MQ]X7NS5Z%;W^17HK)B.O4EZ_Q3 "HHM<7/$\@SE.S)%,*8$P@()3KKVC" M,X$ISK%PJHI:/]9I64X6NE\'[#O&ZM?W=]VOL'B!_HF#8Z/?Z MT=.&MI^HP.EM,QBQT. M-Q^W# PSV;&+G;K'QR^6=WA6/=)3??3:YJDI:L0S0!(5 PCU)QEGF '.\BSE M&"GF%KM^^OBYT8"1SF?]=X!G]XWVAV3D=>Z AGOMH:M*ARTS=#K$M!6%KJIW M43SH^E6^%3?VK0_JJ./[9TT06^,\7T#.,I;F&'"4" "IZ3D02PJHS!!%6'+$ MK/H(6HPUMR7]]J@MS5V;14+WXOJGB_3A;;?P Z$X,@N>E(3[_5J^FW#Z+W*] M827?M-&*DHD,BHP"1'$"8(9S0+ @("YPDF"]2\FI=&G]?F6,N9&.'@VDIN%W M*Z9;$_1K*/;S2B!L1B:1"U@\F\1?P\>M6?R-.$W6--[V-7+N'M\#P% 7^6NW M3MI-OD?V\Z[R?9?Z=INK6PE]H4OQ2>X6$G-1%(4"0I$"0(XI8)!G@*6(*T&2 MK(!.(01GSY\;L[7B14]:/M=6;J?(V5E*-^ QNH^U@<*(9L(T^>I9F/""HQC- M?2NTN[:'FO[]/=\M?RYWRY[4'H\&:5=A"MS4['2,B1N1757PLGG8]LEG&& D(4A9@14C""F"K#-7ND:9V\(_EM#C MZ*4;S>%3ER 8C4P&;O"XY;0,J7][6DOG"--EM@PI>9+<,GBQ>P32N\:D,R7A M%USJ#S=,.=#_H0 R#@'.].<]+^(D4P+*F C;Z*/C!\]M4;>R52T@[..-3K#J M7[^W(##RDK53WBFZZ)JFWI%%)P^;+*KHF@K'$457?^_MQY3Z)N.+>&>:[VVJ MK@Q-NLL"2I93$Y&;4I@#"),48$R9J2.:* X)R1AT2PGK'<_EQ9PFK:L5M_*U MB8/ SF[+'I"MO95A@!O?27E [$C2-H4JJ&=R&)'0#LF>$:?V0PXK?\7]:'&3 MNYG^9;L1S[QJ,=7D+)6-82D)HIG"'&#(4W.BF@":( ZT>2Y3E$K!N'6H5.V#2AX;[<,7 M^UD1[R3;'4J[M?O_KW0GO^WT'^)0I6:!)..,!N9V2, ^;8>P@M]%&QR[N]OR_Z6K5* M:7 ^R![.!'''*Z@]XC#\I,:).RSGEHK'$WRJ19J8$':167U(_&N%8-K.B:%I>8E-*?-8 (IR M!>*TR.(TUCPHL'TMR9&EG1L_[L4V121;N:.'C4D(.4CN0)O3S'D_T\YN)D;P7CN4O)YJG_N*88PLQ8>G,B? \+:PYU: >!DFS/ZMJ>#8Q-3G,TSP1"BAM M2)BZFQ PR7- 8H)1@O(40:N8]([GS^VCWWH%FI:T#H1^!3N+3_%MB$SD(JD+ M^7K$:5W!Q.&S=!LV$WU('#%R(_QN!'HI^LIMTY%JM\PG--ASF9\/Z*,L2RGW M$38?I>;/KW(M_Z2K[W+[N&!(YGD!"Y!P0@%,)=%[(21!KE+*8LD2+*S.JQ'-R_/$+!VKIV <(W,>K6DQ\%:E;!W40OA]SX(G7TXEL $==P, MC3FIM\82@',7C>UMGFRR*4O3@EL_6:[YRSWGVV>Z.JE!U?9:3),,IP5/00P9 M!Y"9VE%QG ,1$\92P;(X=?(HVP\]-XXQDD?\('I$:]D=^<8>>DOJ&070L5G( M8'DD]5W4R#U"^TIW@,*RD?WPTQ*3,RP7'.7^!-^LXG75W/<_E[L?;;^]CTO* MEJOE[N5MU7[MP_K[\E&JK7[GCC:0G]EJ^5#W0-)_EFHIQ==ZZW,HZKF02%)" M"J*M)F1,)P@!*7()(&6T$(CSF$B76C^C2NM$BI.5$&KVDXY%A,:=5COVG,UD MC4RXK9[1GUK1J-7T+MKKJHFW[F.X7$=[?>].G'\'E:.]SL9NK+2.#FJ'S,:> M8'8"YW./*?'$&>$3@'^94S[%H)[- :Z7BC[X-M^\'"XY]FU^7*[EAYU\+!>, M<,DIB@'+"P6@*?](LU2!A!29X 726W:KQ(IP(LW-RK[YZ"+ZP^@65V#\8R&$K^-\NUK2E^H/!>%&3/]R3? MY>U6BN7N5\JKSTSCRR<8"9()!5@F].8 JQQ05%!0Q )FBC#,E%6K4JO1YD;# M>V&C6MJH%=-.'%TOH7RE]'Y-C?Y MU 2!<96 ?U2I >8\2V""0,9X!B"'#!"5$:#-/972(L\@M&K:T?'\N7&%%M"O M#L@E4LR-]^KF9&6T7)NZ&%6R074^5/G95HWT2U/I<1?M?LB( MR8?E>FT,A(VJ?O!4]9/Z=T>OJ=<$6GI#QYZ6L;V<>Q=FE[^STJ+*BMKK$?W1 M:A+00+L)R; >22])IO4TW@+6A0?QIH=Y>@:7#^NE6G*J-ZB<&U;0J[SJWZR7 M_Z$E)$LH-?V8@$2F\RW119^N^"PSZVCZX?RNB/<5IK M.L$4ULMF-_2TGC0G."Z\96YW>WO$ZB,3D[9JGG_M@,6DM)LJF]^7C_J2SZH^ M<-$LJG]7M\A,%G'"A4R0MA"S&)O2O- 4C:- <(1YC*2D6>KH/ LBV-QLR%;D M:%?)7#4X/I+ZKK$1G;UN86;1VD$W^=R,[\LS*IG3[4:ICI/PNGEQ-8/?]S/X M[60&O_3/H(_O+RCPS_=C]T]R9RHC?]EN?B[U?O7- MR^^E%!_6^RC30]G&A6*)2E."@69K!6!!&"!,QB"5VFQ%.5>2%2Y!4?9#SRW" M24M>U5*/GLMZB[_91T[3X3*7M\Z#'0./@^[('&N K2JMMV*;0^)??J]1_MO( MU43=$0M*DP[#3TJ$[K"<4YW'$_S([%>ZW%8QIG5#NJ-=_=+DW-#R>2O%Y_57 MTQ]R:P9>BT^;];;]9[4#_4Z9Z<1:,!)CI@ 2 @&8,02(S"2@G$*1D2PAPNF@ M-YAD>-+,1K)5+]+;^;V"U57'*D;U_O^/2DO'()UP\V[' MK:\RFR-3[_%$]LS2T/PXLVYP+(.24WKX 7QS(&DIWV[*7?6P M@\\.,YA@GBH09] <3HD,,!2;6G@4ITD!)5=.!>H[QID;&U=B1ES+Z9KQ>!U& M.SH, ,[(Y-;D,QH9&P:+1O%N#B 1.*7Q^E@3IS+V*GR9PMA_N>?Y==W:Q_S' MM"#]25>FO<_'?0!NP90VY1 &E*0Y@,AT&4PQ!RJ',H:*2EA8]>*Q'&]NI+!O M757]Y4CB&\*BAR"W/%L.!^38I\BW8>A^5FR'3-A3X8$QISW_M0/@XJ37\C:/ MSABF#-YY ?[[OY;E0J18*%X@('E: &A"8C"2!8@%SX7,*$*)?6>,KE'F1BJG MK1^,A"Y],3JQ3'"6Y))1D&+, $QQ#$BF*$ R9SE%.$\297<<'@S-:4Z_1\*S MGX>#830R^[J X]9E9$CYV[N,=(XP79>1(25/NHP,7NQGHU7[Q-_7^H:WFZK, M:'6&T:95$ @SF*5ZHX9-JU8I ";ZGS*7*($H)HP[G0SW#38W(JVCSYZ-L-&Q MM&[V6"^\=L98*-!&YH(NO$;(J+!!)*@%UCO@I.:7C>KGMI?5/1[9%&_HRIR* M?OLAY:Y\)W=TN2KW0:Q4$T=.$@[R&&< %E "2G,.:*HM"97%#!=6_0X&1YH; M;S2R1K6P42.M3>"J(\+][!$4MY&I8S+('/(S0D$W4:8& .8X0/Y=_QF=#!E) M;2-H4-5F&^U^+,M(KBHSXN\1 (%2.FR@ZDWNZ'W =&D>-GJ<)'Q8W>!GEOVG M7#[\V$EQKWC9D_5E5.;;EY^==N:-KT3CL^4(I K,$F2X2L3;6(-5V M6DXA4 6-4ZC?G;AP*E7@-/K<"+@5/J*U]!'?/#[JA5#N-OR?45GIL \0T;][ M>JXB%];:>EF94E=/VH"IKKJ+F-$O^D5?5]_V-S?CSVT2[:S!T:9F9([?STHC M>%1+7H7@U5-R)/Q==>C,PUF,7J@%-2'=))C4IO0"Y]S(]'N('SF^IUL3F5=^ MD=OJ^>^6JV<]]"*FA,2("5#$-#7G"07 3!6 JX))*& *$Z?"JAWCS(WP/EUA M+E&+6G&7V*Q6='OT:T<:ZX+;CK "@#@R-;42FNC?FHSNHD;*< PT $-0KND: M:U)6&5#XG#^&+O=,]JI[\S;MXCAD*$T3!K)<<0!I%@/"( 2"Y)()+G$.K9K0 M7'WZW%BA$:YT;+AW'3F[I>Z-Q\@+W!X*][2I:RJ'S8XZ&6':)*AKREWD.EV] MR&^YGM50-A;%9_5[60B\5S>ZFEB>M]>*?SW[Y&02FY-.JQ3QTT[R.T( M(1B,(Y/#8(.2B;J*C,(9_2/.IZM'%Y?8W12T*,FOE>OPM!A&P51,2,X *AC6 M6QF4 *I2" C+"=U,Y[;VAFJU2!TB9)KLV+' M0^-@/3(I#90HV0L_98F2'L2F*%%R;?@YE"CI@<6R1$G?$SPBF4U*VN[EF\F" MKYYEN'/SO/LJJ5BN7MY)TZI6C\A6V+#*94;E7+'K2(_VHNLLX!]?= M.&']##C=-(S,AK4.T4&)J-$B:M2(CO6(CHN,U+I,,AD.\=B33,I$P=KC38Y; MX/;-F/9&=?L_?;J0[YL1.(D'O_UIOI5@5W1GVBYM=R_?MW1=UH4(/^ZS_E,) M1<$( T)PKG?\F0)$0@B0WO8C7L@\8TZ!3T,#SNU[U,@;50)'1Q+?4&EA$'0[ M6SLDE"-_4VY$T:-XJATT@8NB#@PZ<;%3.P@NBYA:WC=Q=\WJC^9TM2U$<^2I+ M2R9]RM7DR(S5ELIM*!H7@!,,, 2IR!F!F#$R42CWQ1:HRENBG*FLW MB,6 <^/E5N0JDE8J(CJW]86U9/Y3KOX/VSF M!&4BYCPN@"*%-$FA*6!95H 8"8)RFDFIH-TQWQBS,LU)W]"\!(;;5QP?-<00ZDZ34+)?&TZVN57\S(WOCN^#'/HXVMY#MCW5?(B.*:Z?',5\"2^_43*9V0F_5 MW@MU\"68WA*M5E&E5F697OS0*'O7AM"\C%JS?8J)">O.&E/@:=U;$T!_X>Z: M8DS/&JEU#\]2KQOSV"838\&4B F,&> D3P%,*J*R9:EO]\\_)=/ZDJY&T B= M-]$YWM19$T.*7\F9&+PE2.?#*QVXZI9;^TU+GH@$*LH S4VH5IYHHP(+#&22 MD9A(0C+7Y"Q7$>9G;GQ[?GRDVQ>S(6VR):A&NBIE7==U>FP[&=)=I$RTY$^C MK^EK:,[8VA9YIIJGX_[4>?KLF&K,*1F9OJ[TE;S>1_*X;>0X&T1?%,=L1#@L MQ&OV&[2&:*"MH/US/$Y/O.,>OC1)!5_TIE!O(]]697_KS2+;_)2_+=?+Q^?' M[WKZRQ^;E?@BMX;T%XCSM,CTOBV3<09@PC @4)MSDI)<%IDD!;$_D)E8^+D9 MA*T6T9-1PQ#V2?%E:E2)'FM=HEVKC,,)Q]0OA\5)TXRG?$*?HF<$W/Z%^=*^ M,#4,C;NQ B)JD(CV4-Q%#1@S?G,%EKMW^]"K+,M%1@H(DD(P MO0$MN-Z LAA@% L:QZK TLJ=93WBW&R8(7>M)ZX6ED1HM,;>"N[WXD?R1EK@ MR$@]3@C=Z48_K^"' M-=^:DD_O9/W?#^L/ZY_ZG=IL39$.PB7%)(9Z+TKTAC1GI@ID3(!@"J>4)IAB MN5C+!Q,Z;N<"[!W/ZN4G]8V=WDQQZ_[2MK'%+-*S?KHE!2)8HF M %&, 8P% B05*: P9K%(<<[M8HL'1YJ;S780]+BJ0NU\=CR'[$;7CC^"8#8R M=_C!Y4P;@U $I8SNT2:EBT&ESZEB^ ;?F(7]AO*B"].15QZ!YJ?FRBM^,; M9:H[BF?NF%EJ@:PM;83 :W32J*&JQ*SBRUM!HV]]QX >E#&$1F#"Z!QN8KH8 M4ON2+ ;O\"U)5:V"HW[PG*.TR#5\G&N"0$(!%J<08(D(RR5&2->XN>L"(N_7XAW=R461Q8K$- Z+U)U]=RVJWH;B#[EW00>$9>T\[(6"_L0>VOK.Q2\K\_;'[^ MF[ZW6M3_#*\^K 6\J__ M7[XL>"$ECJD I&J>B04".!40)(*DC.0TPP6Q7IX\7VF MMV&J"J@_S 0DB;9GJ@1XG)G27%!)2I&,7L0#"KA]*;;Y4+LB/^YK(A1("B02"'%7] MNE$,6,(9$"DNA!)L;?1WK=7Q$UVI6%Q \TLVXU5KMC$5>N^1O M*&\=;,KM6/$U)G)D]IQT#MUSR ,#'C;K/)1PT^:I!X;T(K,]]/-O;# M4I>859OM(]48?6:KY<.^T;FIS/%]^:@O^:R^Z9^6JJY"?E:F)\T2J 1-0"Z% M-E41EH @E0(B]$=",((R[G04'5B^N7T:CM2)-GM][JJ*3%6AGEVE4E6]Z4@I M+Q=TL#EV\F"_QLQ-XP W598:W:+C>?Q\-(^M?M'W_3P>JSAJ1NU($S"&)SZ8 MC*_AR \-<,);O!;.C'& G5LCT8EMX%SL(?M M*&>57KB%]7:WQ)$<)RG J9.GED? M(>9&A:^]\V",^7= F-0YO,29%("O 6JWM_-&-&J6E%;N5'A;/D2F@%?8NJL2M4-P+/*J_RAZFH 1B,>RDS&(/ MPSGE.-SIG>FN=U[?=G17U4+Y:*9TN5DW$1-*OUHY9IJ!!-5V N,,F"T02 L* M,TE$JMQHJ'>TN3%0+6RTES9JQ?6,3^F'VHYW@@$X,N7<@)U/\OLP)J&3WWM& MG#KY?5CY*\GO%C=Y%#"Z-U5'OKSYW+;2D@7F4O-%G"2FK3F&VH 1"B"1B(3D MF2#,*NGLRK/G1A9&N$A+YU!(YPRL?@*X$8*1EWNKO4\]H3,8'"H'^<,Q48V@ MP9?"K1+0=7U[:_ZFX)/">ZI/<+?*88@0Q XI@;Z6V]8WG,N+.$V>VY?1]T\5RMB<"TH.TDP9IQ*) K6N\[C>SR["BX?UDNUY/K!WYZ?GE8OQM&]W-7M79MHB*:RYOVCZ1-3_WXG MQ2(3<2%B"D'&"@:@XBD@4!2 \Q1ASB@CJ5,?%W]1YF9\_OJ\>]X>BN'40_CAAK\:_%C_;R!VRY=S.&81OJ^8LS;;N\FV&[ M:(9W^Q/]^//S[L=.?#2M/\_O%IM7F1LJDBTU$7?;5JO(&?U5?)-YKF M_B5%G>=NCCZ;4HMZ1TUS!J:QFRTVAI1S,],& M6_R^KYLVBVHO])8^+?7&U2AVUYH47@4SQWD#+(V^UY[7L>W!T:?TAK;,(T ^ M4C_FD)*^4B/F$<#N[L \QF#N54N^;ZDI6OCMY9%M-!4@2A37EF2J$L>51JY?X''.V@;,OVD/S3 60E(*B#)Q&@(20(02@,5Y@B"+ M8T6LXC2N/7QNRZ\5+WKC<,AX#IC%8>L-,(R\ \(^)RW7KP[]@>N-T RT8FK M"S1NAZ\=NO>>OI[?,]WQ:X>T)^>O7=?X[3//L]GW"6M,;Q%1+%* 4VT-P(P@ MP JL0,:X0CA/*59.,61= \V-IZY5BAC.6'/#UFX3%@*QD2G-#RSGO=$0$D&W M-YV#3;I#&5+Y?),Q>'W@^(Q_;#=EN8""":92# IEXMT1+4S=H1S$/.$DIS*/ M%0P2[UX--S>JN!X]$"APH ;8CBG"P38R7PP$#U3B3A ^< ++- $$]9#S""$X M4=\ZB.#T+M\:-RO3Y^P+U0/H7=6ZK,LB-+'4,%%0*B*!*&*J30Z5 RRS B2% MA)I@$I*IV*UB3<]H"0;@R+1R W8>M5PL, E< MF:5OQ(GKK%@H?UDUQ>8F#W?*-[I^2[>K3?G-O!?-OA@J)G*>*I!FS'1Y%%2; M)$3O6V@AA.(YQ;&5/[-SA+D1AY8QJH6,*BE=>K=? ]#"QW(K+&.?[IPAXN-N MN0J-2^_Y&R&:JD&\[DIDC'X]JD?BL"9>5>'FC@EKT_=RUR\WJL] MK)DO3:+,C4H:94Q!@I^5 M.M&RU#!D'BQ%@-\T1_J[:L NQ-)\0J7/80 M(WM?EG)7+B!CD.>(@%@B_>W*1 (PRC%0-,MSE&0RBZ5;!+S%J"X+K,&CX=^XN9X8?<2E8=Z][_\KR2]*Y*L MQ_;6&]*D#CE9Y<=]NQ,A?BE2?5B$SY"Z.MKT"5)]2E_-C^J]P3,] M2FZU#?3VB\98:OH1WW8;_L_&2Q_+&!<2*Q.O5@"(%-=V24: *(2(92$SECH% MI?2,-3>RJ$6-WD9[8:-*6L?,HQYP[8@B$&1CGQ-UH!4P!M4!D+ Y.CWC39MI M,ZSX1;Z,Q2VW)E5VG$F7;UY.?E.ES#%*"\5C!%B<$ #C0@&2IA#$,B Y M4HJBBR2OE(+H 59WBJ'/P[P;G]<[OZ_R:;,UCD53F?*Y7&"&XIA3"!"5"8 J MRP U5=Q2O5=#2,0$*:MFI$,#S8T2WS?-OAL/QE[:J!;7N1OZ=73[22TD9B/S MEB][&XM5/Z]8=/W3"]5\4K?=/[K[]E5W;?L2O#."=Q#&2>Z%T9R:BI MBH\ Q)2G4D&!4J?@WIZQYD8,S3[C/L2N[#JX+KNRFR&;9E=V@=9HN[)>0$;8 ME5T?[Q5V9;V*7]^5]=]R0TKT??,FRX)"30@Y*#)$M?&@3$JT2(!,%2HXYEPR M]Y3H^WGRPC[K]=XC#_C>/ESW!AA&7NL'!&Y)B;YW#\^] 9*I4Z(MH/%+B;YW MB,L]OV?ZE.C[GFC=21O=/VRE=$][',#8SIX)A]S(--<)V@@V MC1TH@<^X>X><^'C;1OW+DVVKN_SXY)YS4S*L_"JY7/XTGI7#=1 M@XP7*BU@QA)DE0C9-<#X_EBHLU&0PI MW[?\];U'2U__ZWS9=SY\DH4^I%J[M >ONS$7\#_HZKDR2;[*4FY__I_FKJVW M;1U;O\^OT,O!V0.$@"12$CD/ R1-.RC0W01)>P9G]H/!:ZLSCAQ8=KLSO_Z0 MDGRW99*Z5 -,=AI+XEH?S4^+7#=9SHCQH B$0829 @A+"5@4A@"Q.$$B05"X MG:->'FIJ"WPKJ6G/8KR=RT90S_3 4VQMMQU](#;XEF,#UE;*X.D:7OXI@A>A M&"9-\'2X7Y,J>%'MB^F"E^_P8XIWBZ)<+=>5D_=C\;AU4*($D#C& +*L<)1S,/,K:!*VV!38XM]64T^Q6LCK1M9M,)K1Q=]@3:X MF7"(UT;0 8XH;!#IE3=:!QR5.6Q4/^8.JWL\';;&B?.Q+-=2W*^7>?&M+C-= M59 KJ]C=69((02/%09PEL;8W4 PHC15(<(@%(TK)U*G^P/4AI\8D3W)N.L@; MBZ.L')'T)UV*,OA-KY*R$MLQP\H"=3MJZ1?+@0FF=N+6T@:UN$$M[TU=.K*\ MJ=. >O3O6N/3KYOW^K#C>GNM83AQ^MK?Z6F^T/*[^;^I,O>#SF5U.J+9+NE3,&82PB1O5$<&W?Q#$&C*8(R!"GF124$);,7FN15WI[9FGE M=)')9<$=2S;@RUT+>1-P_;-*)&UDK3+OEEM-ZL_I*M#S&C#Y+2^J]FB:]LP? M:F$=K:=.LXOB-)(H2P#D20:0K*JCR]A4!XQ3I$*!4M[,[OM"3')N-W)-:6:E M_NB7S6DD"")*I'I'$G* $IYI:P)Q$"I)B4 0AXJZ-)L=;3['Z$;[Q8Q1S97= MC(XY<99[G;&F8^C-4#4'YF>P)Z!I&KF=@.I#,RG'?]N[H<F*]3L-K+I*AK;/Q^^]&-?OWFS(YV!Y^)@>EV3_[]I*6FHEVPU2%HE AV M6O1'L9U [)5:_209E5([@75,I=T>YAAT;)QUR[?9U^<9E#$BQG7&>4K,R18% MV.0F:!-46Z@4QX)9Y8GO'CDU_BTO]Q^>?_<0[CLB8XMN4+-Q?4R;_Y1K? ZBG;WJ'%B9T]$WT;,GG[BZWIZ MTQ' DHP!*16,8XI2)*!; M:2^+45V^D..4]JJ%KH^/;TQ5KN"'$;@Z0A:+^9PN2[,9KX^3'4^3;:;!UE/5 M*[2#.ZPJ3)]K3+7 ^LM;4YVH?-YRUY2H3]>5-40]>["NCSNR(\L:B%-_EOVM M78L./OPLI+BC/J"<&#&V2OY5\EY$S22;AQ8 M0Y2KNXS(0'7JS@SXBPK475;]=I!A:LRS M7Z6$-^E:9;#Z7M7.U/KD;&U>W%'X7^8U_F+BV8V3HCH1IUUS!'SFT-(#/^S, M#.V2WTAOL#Z0ORHFHV6OR\;H7X):BZ9H3&"T"2IU!J@?XP'F(-5C7.3X);5C M/("Z5#G&YU&>Z5!5H= FZ6';$A7*A%%B]H@D#O6/4 *24@881TDHA8PCY%@# M^NPX$]P:-O5/:"7NWQR3G\YB:4==G?$9F)QJ^;:Y2X,TEFW%H-_LI;,CC9NT MU*;L2:Y2Z\4>A1X^Y85+Y7+Q,R^^W>E-25.WGGZ3 M,X:R2*8I!3"F)ND:1X#&F( 09DJ@&-)(6=7@ZR[*U RK,PF4^J6]D=W4)*_B M/!KI':HK=)NP*X?'HT[#P$1E]*@,J#KC*@($@_3^SL%GE'7W.]@:W/(9J$ M'_%AL?RP7JV7TL35FF.*69*%))7Z;8924V"6<0AP"$.013PD(DP20;!;FHZC M!%-[I_U._\Q?UB]!<7QP'I-YAR&U\QR>38O-0+=TOB_=_KF0A:F?%3"H91A%&F@Y9"! -,4W^ T:\>K&GB^L'S>?FA$%;S,]T+N\E6SUO M.W=6@V *-K(& M.V%O@JTR0._L04F-.V$G?55/L$?_FR]R_?KFG*48UV_G"]*)3\_[0?[)_9I9 MCW+?/N@E7 5[WN' MWRX'@(*(<^,-ZD1)\F3N]@#7:B]YL> M[816[ZG0=J./GO;L!,JY%&>W!_AV$KL5PM2T>ER4*SK_5_[Z;B'D# J2R#"- M E3!A"&"2"4"\##5*80ADA(J\+8[<-,CHKJMEB-J#=!+6R@I0V,N*Y=Q,XB MVTY!_>$U,-_X0N710:P-B8[]P\X^>N3N86WJG?8.:[UZ@$)TU8?U067YOO'W MBIED.(J33(($H1"@C'+ ,-4[:!Q1QEG&:>1H,[H+,3WC\?TE?_A Y>K.SPU" M:9@F26;.+Q1 T#3/I30V"X!AB0F5Q*FGP; S,TK^P\%<;*(6.J1=>4Y M+-8#OQ(J*0&K,MK>+5Y>95$V+5>62WU=W72%O07[USW2M^K/MZ:LX\9#I5\G M&_W*JAQJ>ZFL?DL3MJ(\7JG"\V),IW1A*TQ.I0S;G^3W2ONGS+]]UUO*6TW\ M])NL76L/ZCZ?FTRGIH3B>J7?H870XLQH!%-SS LH3TQYGI@ RB ",-,OM%C$ M6>16:-5Q_*D1YD;\@-;R!WPOAWX3#[8VZU>O3OW9Z[IR,YO2\.9L>)=.?Q.( M6F5_KG6=2CNB'7""!F;9[=PTH@>[\)0F/&Q/[IN@T:@_\O1$KE?F=)5A5-KT M!.B8,WT?XT>8^PW*[Q0$)CR,73CQ M=(BIT5XC85")&/Q1"VGI"F\!THZ1NL$S,.DX(N-,*I>5[Y4WS@PS*C5<5O-X M];=^HZ6>?G\NI14/!3_0Y>Y\4(_:7:)9BP1%"4)!C'A"4 J MXH D#(&,)+&F!12FD5-54MN!I\8)E:1!68D:Z'W.CT;88*FE=64(2^QM6:-_ M1 =G$K8*=C*;0CT&W><@-DE-N&V%ML.9==\8#GU4O2?S?P>UU($1>R]"(OACF$([KG#U M?^9L-?KX1\TNH)P]879Z@+]IM0O;.P[JVW:!UO^N$Z!-)-\_]<5RH=0,$15* MI5+ PR@%B$()B P92/3.*TJR%&?$V=SR%69RA%:7!? )+>XT)_9FV!A(CV&: M70LX;FEEOE&I7Z.M*["]&W+> HUNW'6%[IS!U_F9GD9@/>Q;5412D_>3-C/S M^=OO52BN$<*T=VY.5 F3A*>, 04C9'J/04!)&@))0I$1CB.>.15MX[__D\[60XH-6\UWE5V\*0KZG2],0 ML-P4Z=YMTD*A,.>* <*SJJM;!"A+&(CC)(J@,CD&;N%>O8LX.1F 7\L M:F5,',.>,L:9WCA:@\^RMGXL*MJ/->66+/M+)W)H,MXK:;ROWIYU&VP4K-M( M'4WO1LG=M(Y27K?_R1BD^FZ/8OZ2XKS]PWRI=N\ (_D>HM)5%6+YH$S2R =M MJI?;JK08\Y!&* $"F3H^:1H##*,8T#2)%&0X@RAT.S>]/-CDZ'XC:U5]T&1' M5>+:U+1U!]KVR+0?^ 8_)?5&SN-8]#HD/9^$M@PX\N'G==5/SSLM[O$H(:-9 M22V6+U4'!W.D:KJ8;>(<1()(S.,0""'TKEL0"32GQ( S''(J,&78LDSXM:%< MUL XJ1V/SU]MF[A=@[&=(OJ$9F!ZV).R]D,%E9P^-61:OW;V961ZPFVD2C+> M^+D5E;$ I;6N3-O]XY66L=#BH+J,S?5N_%@N5[,G2>?O2\.]MX6XY?IKLJ[B M].[EZU+RO/K"W,N2+_/7VMI[7"Y>Y7+U=OMG7LX$XE5N%N")B:C-3&L:A12( M42Q5"I'>L5MYKSM+,C43K3HSTS;&1D9M86@I+0FD^[RT,_*H: ],V:Y 6S-- M;R"UV7AZD#W[3O_KV+;K+L4HA-8;6!O&Z^^!GL5FYK0L'U1%M)_R0G[4MFDY MTP9A3&5$ 6)(_XA##G#&$) P48JS!-/8*5CG["A3H[)*R"H9IWJC_V$$#2I) M';>9YS&UVU]V1FI@&O(!R;TN21L(_=8@.3O2N/5&VI0]J2W2>K$G!1S6^S>O M51XGG O" <3&2TM@"+#^'Z 8(D4B$BKHY)DX'6)RB_^PMX63&=,"I.6B[P3/ MT"O>#1GWQ7Y1^7Y7^NDPXR[SBVJ>K/'+5_HM\,>F6^T#F^??ZKTX8YQ&A'/ M8V:B<7FB]S,1!"S$F6^D_.M_G4.BG_)?!T_^-=6_SBEWL?C7V8O]WNJ?YB[NF=%]]N^2K_43FT9U()*A*.@8(Q T@I"*A$&4AE&*:,*)5).JN: M1MN][>V'=J*)K0 #GJ+)5<"-.W13 B7?R!S0K=!NEH'#/-A9#,.@._3QI :V M\C-OQ#;EHG[[6J/\UV K?'!['69G2\,=L5XM$(?A1[5,W&$YME@\GN!'9A\+ MOC1]5>YE_=^/Q;;?2I,OMXW32-(01DHJH/K:JTMMDV#ZJ;854WA>4Z9V4?J*7)LDNTP)7:\-@S, _/: M1NC@MXW8?S58[QHT;=(YAXBL<4>L5UYS&'Y47G.'Y9C7/)[@V=+DDC?G=2[- M+\;A\[)8KO+_5'_?.'8>]7=PI3\S^9"O)IYA%B(FHBB)3!EG A#.*&"1GC(1 MT51!A$.%\:R0W\Q(7QP:GO0DG]6*)?6*/9%RN-5K6G?]35MV6R4#L:=E19!T M3SW'OBA]S:T=?8XZ5>.0ZYY*P;Y.-\%6JVJ.]O6ZV7K ]6]&MYOJDJUZ/799 MZ1GP?INO]"7H;TI%5+W\_W8_U=^M$NJGSKK9ME#").5 KB#"N $)& M(*BI7$&<93+3O.X4T=TZVM3.Z7;"[N=[^/O:VZ&V8];> !R8+CM@YTQ^5ICT MRFCM(XY*4U;*'W./W4V]GO5MC=;=/GR[)TLE2O6VF(,,0N,%D!!@S!G0EB.& MG'%&&'3;)KL+,;WM\F[?MCON<]P7>\Q%IW._GO#]M>=_.]QW6@RR9?8'<8PC MP38QIG T: &3Y1&AS9-\G9[/W^5\;C+S:/$V@]5IH'%TIIG>&,N8 BP$U":5 M4)S#)*'8T=NY__BIF4^-\ZX2,6AD='5M'L!GZ]/T!64<9Z8='AX.S'-J=_1< M'CQR9)?E.75.?95GK_(S7#[MCI_?K9=+<]I!]:+DII26)%@OV#@3 ),P 2%) M1)**D%.4N#@C3X>8FM/QBQDCX+5P^R?R;H;'&2SM#(MN" V\@O>$NPD:\?HS M!RZKWNOK_LPPH[[.+ZMY_+INN;)[ D%32HBI),I2P8#*E 2(Z/U9K.(&FWOKOA,_#Z=H6F4[+ @%64S@SSR]($VFLB MM5SI&3]<=_HJF\X&7Q9?Z)__S%??3=%.;>&;$G.F',:=:0NVWSUL!CE$F#%H MEG\&4))F@%$9 RX3P2(.!8Z)A]/*5YZ).JFT]'HS_$IS$2R;9AVK1=61J>JZ M%)1RM9IOBSG(NN(M-5W77&.8?>?1CH8&G9:1XJ%K%6X"+7JP)_O-^K:N0OBULA^)Z&CA$%(WT#+ ,. MIC>O0\1A_%>0!B9=9WS<"]2U -!O8;IS XU; MD*Y%U9-"=&W7^A[W%_)!'28P_T[_S%_6+W>+Y7+QLPZPU9^LWF84T93&*@*I M@+QF!!(2"5*>)"Q&U*0FNY"!R^!3(XFM@ %O)'3U#3@ ;^LU& ;.P?T)154G MZ:ALP4W0R![LH'YW#6H/=X,[9CT[(AP$&-E%X0[-J?/"XQF>(9R+0C9EY#^L M"[&I:"@A02F)$Y!%F0(HXPF@4*1 1:%4D4P3B5.GV,VSPTR-G2HI@Y=*S$ 9 M.1V#-,^#:<=#W2$:F'%J=&H)@TK$ 5JPMJ/0;R#F^:'&C/'M8U%5I31;HT^[6&XJL@1C89P;F@\DBP'&, (RCD*"&&)2 M.IVEV0PZ-79H9 ZV0@=[4G<([;:: ,LM4,^P#KTEZHZH1Y<:>XAZ;D]C,?#( M?6GLH3AM2.-PKWL 9!.S\2$O.9W_KZ3+]X6XIRLYBT5$.2,4Q#@F !&5 4$+GNO?ZAH'CJD; MY\"TLR"Z0C3P,O]0XZ(MA9V,-P&3^N4C+[<%[3'MH@6>?A,KS@TT;NI$BZHG MR1%MU_H20M%$$M]6*V!&,)%I9%9_RA* ]!X$T%A)P%(%$QA#PHE5 L2E :;V MUO^T*+Z!>?Y#"D\..,+/=OW[HS+TB:NZ]CSJ^I<-Z-*J! C!K*,)B8I(@482@0H02'F@B4B=CI7/'S\U);P MKCM5W;C/MXU7C9WE$8 W(D-O]JW!\._,=:#S,+VXZB%^3?>M _4N]MLZO,HW M$?OG+>>+=6'V]H_+1:%_Y=73R\?%/.=O]<]=P\\,XS!-HE3;YF9A(TX 5@P# MDH4L88BD@E+7-&PW$5R^ZN,D8>_$#P[E=TW$=IP+RS?]@/@.3"5:]. BN#=! M+7CP1_/?0;JE^J+7<_:UHQ CYU[[072:>>WY'(_F@K<&Z+%[E\UWR'4DQ( I$$,N,0()5% $?8%("-I%()RSCEUKQS]/"I$<]&O."= MPYH[!LR">SK ,+CO8H. #_T<0^' /QT@&8F 7*!QXZ(+NK>2T?$]X['1!6D/ MZ.C2-1X]1$T.2!W(KB2/,QF"+!,"((SUMHY$'$!-3R;)/O'\+63D?>8(QP0N.!@UL'SF.]NW?3W#YQO,Z8QTH< M=+D\^=##(-#?^,72P/BVK=6YV9+@4))(&P0R-%N2& FS.0E!JAC)1!@I&%JU MK&P?9FI+="=HE1C>7@'7!4X+PZ$7D(;VC>SPV0KI8TQ?>UALSW*9R_(N?M1PR>52BBH)N7EY)BSE!,ND.5@E+1":V' ]078T-NOBUCY6'*MH#D8 M=:'S">26>CQX%59W5#M\)K'Q;+)U/N4Z4R(T)" M(*-4TZ62"! >,Q!SFL4A3M(TM*++"\^?&DG>%L6:SO/_2%,8S79?>PD[.TNF M R(#L^!&LBJ&]VF0DF-'2@]226PSQB\I$':DX*6Z7\>7>1P42SI_7YK (]-Q MYGQ3FL]ZLA_4I@5-4_"3A!'D%&, 960,(IX DI(4"($8API&4ECU9>\BQ-1H MP,AH,OHW4CJ65^TT'Q8'UB.@/#"UN /L=K3=$:'N)^&^ HQW<-X1HH-S]J[/ M[9RX+NLP77XOR50^A&D=96J$M1'4@Z@N(WF=B7K!9^B]G#4T3A1S5?7.'')YA-%(XJJ2^RQP_6+/ M &BZ6B\U=S3]719%.8L1CQ35<,DD$P#I]0Y(E"A 0RA2BB.H:.H8XGPRR/3. MG^]ER9=Y54O/O#OOUF5>R):4.ELT[?8IW1 :W)XPPAE4=N(%?PP3;GP1AWX# MBD^'&3=D^**:)T'!EZ_LH2JQ*0]9\'PN/\O5QX(O7J1)(_VR<&V(!M.8H2A6 M()*)!(B1#! N.- ;G%A"%K-(A6Z4,828TR.=/2U-C?CE1L^J6OQK&/QFE/RK^7@*+?:& MG)#AB@_W)>BOJS3<,]2M987['LLGY>3Q=A.Z2W#$9,H)(*&>901-M"7F"G A M,<;;)\[M7VCDD^DIQ$SPOUJOODI:KX+;,:=7V_MWWO*!] M9:&@;*[?,3LDQ,9#S-/3C_ND'5RORGZ23!E4,0@AB$W1?[T!E=*J?>[ MBWLZZ@##P)RT0Z!+ULF].SUU@&3LK!,+ M:/RR3NX=".CXGO&S3NY;J.C2-7Z[\*V-][6S@PSZE[KLIK'.Z66*SU[J"Y>7M=Z!1WG%F2212).$0B9 M,B6&A02$F.Q7$?)$14BKZ53:Z\(X4UOG&S%W*2V5K5LNU.HG75J6]KR&K=VZ M[P&QH":#R<6W)7W] MGO/[O%PM<[8V>\+J&QUF6#%!H28-G@ $0[UC$"0#609A1D**E*)..4\7AYH: M:>PD#?9%]:*,%H#M**,?V :F#$_$W+.JKH+1;Y[5Y>'&S;RZJO9)+M;U.WPW M'UKB8E5'"SSEY;_OWNYDP;^;=C_5MYH30PZA %!)")!((H"QWHHH3"1+&)9A M[)1U<&W J9''@;R!$3C8RNMG=%Q#W'9OTA^.@V]2_"'TV*S8X=+SKN7*H"-O M7^P@.-W'6-[G1S5-0_5'NER]?5G2HC3Q*(NBU(S&YPM35V57K#,-PS#+L 1A M(C3K) 0!"G%F*G_)-%11'"*G!&V'L:=&0(WH025[L"^\&^^XP&]'00.!.C ; M7<8SV D^4,"B!V*]\I3+^*-2E@<&FEMI*R\-(Y$=1U> MV\.9'D$;_(QF*VNPQGYC>^,E MAMF?R4_ZM[__9?,7_8/14O[]+_\/4$L#!!0 ( #V$J536\%T_](L .Y+ M!@ 5 8V1X&UL[+U9EUM'DB;X7K]"D_TZ5O)] MJ5-5?4(4E<,S3)%#4I7=\X+CBSF)3@3 A"46+]^S!'[CN4ZKH=Z\BB#043P M7EL^-S=SM^5?__L?I[,?ON%R-5W,_^TO_)_97W[ >5KDZ?SSO_WEMT^_@/O+ M?__W?_JG?_T_ /['3Q_>_O#S(IV=XGS]PZLEAC7F'WZ?KK_\\/>,JW_\4):+ MTQ_^OEC^8_HM /S[YA^]6GS]OIQ^_K+^03 A[OYT^2],&H=*9_!!:E",&P@) M'6CO#+JDZ!^Q__/SOQ2I?_V7'W_\_???__F/N)S]\V+Y^4?!F/SQ\K?_Y]_['S4^O?G4U?>@7Z;'\Q__QM[6O0?T(N #)__F/5?[+O__3#S^_EA__N.K!:'A??A?[._W;]CW^\?OW7):X(,1MVW]('%\^H;]N+%/QC MC?.,YQQ>OF2V2+=^:5;ENUA>_LM9B#C;?#K).)ULGGP25^ME2.N)UIBCD@*\ MH5D;U1QPK3/W]>?/N1'DQJ$?P_5?T6SK_= MB.7>*\_%LQ_MEROP$_WN1%MM=.8<@G&%2/<*0I8%1,P^6BEULOI@TF^^\3;E M-U5[LDP_+)89EV1&+E\9ENF>FF]#^.(W?OP:EO0@2%^FLWSYKZL]&4)GZ\4 MTCM7#9'[EQ^(ZX++)>:WYYIYE+D-9VLRKKCYS2&T_O^3@C&*@ E )C64%)TIF@\&@#LOWPH+HG\L'"+33F#Q'I?317X] MSS_3ICP))M$V&308IFT5B ,7O "A*R?TCL+\]. /%I M&>:K:17\!:A5BD)H1$@B*5 J>PA"9#!<%IU2SCR:X7:*.V_?"A:J?U@<)-61 MD?%ZOIZNO_\RG>&O9Z<1EQ.DW4USIH"V03)N$@NX+"P4*Q@O3@6.[&!$W'WK M5DC0_2+A("EV@8 /^'E:A3!?_QI.<9)"#$K4L,'$2K^BSAOQ5 ?.\ .52N M/8'C%7W[;OEI\?M\$K%DSW@$[HTC0TCA=Y04?I,_Q54R2$'Y4![)O9=O=[S% M7@@R]A1J3[C8;)/OEN^7BV_3><*)$X8EY HB&@[*$M)=Y@R\LYXV272VN&'! M<8>"[1#2\0GH8.+M"2;O%ZMUF/V_TZ\;5RI'1(\:069%7KBSCAC@$G01$9T, MW,F!+;U=G[+XOYY0E-,4;R* 0XA:;:- L^DU^4 M12&?*$74^?!SKKMOW4[]'1]Y'B3&D2'P$=/9DN#+1?PT7<]PHJ7,B<@'ECAM M:YRG>H#/P HA%",@LW+X.<;=MVX'@8[/.@\2X\@0^+0,-8?EX_?3N)A-HA?! M%$D^+],)5+09@K0!@B+G!J/W+JJ#]7_KE=LIO^/CS?T%V,GB?_U'^A+FGW%S M+HO,%25"/2[)"$IR\FL-14.AE%BLR+SXPV]$'WKS=CCH^.CR8'%V$2:\.EM6 M<9W?VE58DP[.5A.5?0U_=;VT(Z&4@N!MEL!M2(PC3UX-%2@\3,%V\.C^J'( M\78!DS=S>AJ)8_H-?P[K<,'6)(JBC7(%##D[H'3*$$T.8*OUBSDRX0Z_.W^* M@NU@TOV!Y0#B[0(F]?IW^2JL\?-B^7T2,L7#%BD0ML*28QQH6Z3-DBRB-XQ+ M[[VU Z'CUHNW2[_J_JQR?V%V@86/IV$V^^EL-9WC:C7Q7!JBD%" M9PY*(>I5DICYX8[F R_>#@O=GTKN+\PNL/#Z%)>?:?O[ZW+Q^_K+J\7IUS#_ M3C]/4G'RDXS@Y#'E4N_KR- )XDHG[Y(*<2!,/$C =MCH_CCR<.%V@9&/7W V MNZ1><:MX8@Q(F9$"ZL@A>AGH2XE<<::X'&KKN/G>[1#1\=GD@:+L @A$^&E- M UFD?WS\0G);O3M;USJ1&G5/F!!\<\3&2G 48-7S5HJMP$GDW#K#O!L*&$_1 ML1U0.C[%'%C4?0"')+<,LS?SC'_\W_A]4I"5Y%2&XKBGB/P\%:20J*RU.9L< M\U"I%'=>O1T\.C[A/%R@(R/BY!3GN68F_S(+GR=988G2.\B(Y#PS K5C,8 . M+AM,B1.D#T;"K5=NAX".CSGW%V GB?Z_3%#12.8# -D=3_R\NW0T/%AYQ!"[0H7YW4LYTRHZ!,Y2!:*R;6& M-A$3W&J0W@A7? QF<&3<>/UVV.CXI',8P8Z=$W%^Y':-[\L2IXQ:FR@B8&"$ M\,1)*D4F8-I+17$4*WAX7M5C;]\.&QT?;PXBUL&@\:\_WI/C6_I@[X)P\HOF M*\STS6HQF^9:]O]3F-6*=HK <+WZ;1[.\I0^O.O7[*\NS/ZVTZQBEL;X:*2^LT@-#W MMDMD6>/BP$WK-OT7=O:*C:*Y<\%Y(-'4T[\DP6N.D$@2EG.7]).A[Z'8N4/. MN! Z1,,/@N4087>!F5=A]>5DGNL?K__S;/HMS(B=U#*;+7ZO_N*JA*?:$^T/ICT)'J<'2#O4'4-O'<#S)*5:C;RZYO*O2V+G M,DG'9C+#=9T981 4>9_@8R[@!3D20@J5W5.G1P>X6D_2->[^>!1HW'7.AM-3 M!ZBC*'PCDK]/UU]>G:W6BU-<;I;P+:948BH)YB$%;VOD@^ 3!4(%@\[&9,UY M&Q.X%7GC;K-C8'!XK74 Q=_F<3J;8;Z6XQ4GWD:,C!-"G.443!E!ZXD65:%P MO)"KFN1UML2@^'N,MD86D($S4%QHB,;4 M$KLB,>=$?[:Q<0]1,T[#KC'1=;!.]L?58AUFP[AP-\2SX8+,+_!U^6* MR=)M/\/4KKB]9C.1PGHM(9*!IUA-&ZD2"T=G%#437NU/MW ;!T8&;@(RNMB MGJJVWQ]73Y+5@UL^"**&$WX'=NH\%L8'67':JQ05J7E3S*&8@" S@VPU<83. M^"?[?AUZ;_X@43VXXX.@:"C!=X"A]\L%+8GU]_>S0"9UGNL&_K5:W!JPNDT& M=TT!5YYT]\HZ0(ABSRP3)&%(2%HKF]H<"%Q2,$Z__ 8 V4ND78#AQKG$C3# MBA1<5K2?>DG;JV0D"X?$E<<24#!3=)O8_D%RQNF3W\*G.5C876#FPI\OADG& MO:%=L_8]<3J \X94ZKASFLR?8"T/@,9ICM\LC7TG<79PUO-V&N)T-EU/-Q&K\/WV_F+A@L)FL4M/2J+R>+!:?(H1,4'[+@1'ZZ M&>OA%_RWZ>D&5 ?I^Y$+^P-$WP6$7I]^G2V^(W[ V285Y9ZT)B(9YJ66P++B MM+U[8LX&!5))65"QF'@;-#U+VKCW'(V -:Q"NL 8K97EV<.L>$XB(D.>K4\D MJ$#+I5;S!T*$]@69Q38YF8^2-.[%1CMC-8 "NL#2[=/U2XXN&R1/LDR2U?8Q MM;,EJ&P\22E:\!*S$RK6"^XCW&WE!G2!\V1U<:J-R[X-=>/>?30"V>!JZ0!J#]CAK(USAC9QD:*K M;9DY1&$+%"5JYF@VF1TK%ASW\J,1C X4>0?'5D\NA!N'LM&C9:S.#TF<(I!$ M4O*FUG#GH%70)3/[U,B%1B:JE^2DHQPQM%!5S\[7#99TDJ96P4)2WH,2NIX* MDP]@(DKZR-%:?:JO[N#^UXZX.X9CWPYWPZJG@XUR<^UT0W0W.#%"DI$6"0P2 M$ZK4,FRC$Z04/9?%%-KVVUWT/4A3-TY^0X0-HY NC-D--B;6&IF5)0\@%"0' M,DB(*A/Q6L:82HX4O;1VO[IQWX]R]KZ3R+MPOTY/IU=YHG6')SN+\U19*0G1 M\E*[6+,Z^[EP($N*@)Z["GO)=9L3TB>(ZL:+;^EF#:.2+JS1$S)"+X2S1@'7 MH4Z%) \QR"A(1DDX9;/!1O>$!]X\-\M_.@JZ!E)(%^!Z?_GF#5/G+>!",#%S M49E0=>*PTN Q&L@N>8VB-N1MDP7^ #%C]P8=1M/W*^D.$GH'_O>-N1[G]-O" MA?!9DFZ=!L6$(;/J#/C(!=G8Q&ULDQ)SEY)Q3Q$:(>8@<7=A:$YRWK34#;/W M89K?S%^%KU/RP":2 .[0"I!:T7;,K(,00@8O'?=!:VYYHQ[$#Q,T[F% (_@, M(?PN4/0!UV$ZQ_PZ+.?DTJU.4CH[/=M33[.,M+-+J:M_ M5YN_"V=4L$XVJCUYGK9QCP$:86M@E70!L_NBFA0LBM>6N"Z)2$NESB?03$$J M1(M>K*D\FUP7R^'QP M1?E4LE1MMKKG*!NW&.'8YTN'*V3DU+(?ZP,O-Y,KOT;GD9<3IQQTJ4ZL):I MVA<+/82L(@3$F+76JH2M-CMZQ0T T=_N@N=Q&OH!SSY:70PJX@XLS94Y)I<6 MW]"WJTF(VGKC'9@L*9"UR4#@MD!$)1,K3OOH1"29168I!,D4?=@@(*,3UGO)?:,Q?H.5+;0W5L,@;'!U='%2?OLJF[R M=\N-W/+FFO(]+C]^(6%/4%B7I8X@-!EYXLN##]J2]++3(J$.C28L;$??V)=^ M@P*M@4HZL&:WN=JPL#HY6W]9+*?_A7GB,S/&5+,LM*# )&7P/!OP+ 49,!>= MVR3]/DW7V#=^#8%UD HZ!=2;U>J,.-%%B1*8!)X"TD8O2[7"I'W,2I9D;&KD M=3U.T]AW?LV!M(?H.P71N[/U:AWF>3K_/,E,,8I:(] "8)4= \[K##PFR9RV MM,L?#TDW"!LW!_@(<-I7"1U@ZD:NUZ.;-Q?:"D$N(DNF-E&7"@(J!84+*Z32 M.C4:3+H%<>-F _NM0^KC"Z<]AM,W=O%D]-,H@X3?EZ6ZM8FC5B:7K(&94A-WO 2'%,H*Y;TP*==1#\?! MT [.4[.VBJWQLX?0>\3.S1T[!"UR1 $V*%VOF3@$5B087W*=D::U;%6I_CA5 M(_=4; VC?>7? Y8>' %RLGX5ELOOQ,]YRGS11614'#C7%*2&HL%[66N=*5;U M6KJ)V>=K=)5AE?18+@[0A+>E7A7BW)1BD\_O4I2&RP![[GW-$N^ MVXG!@1+OWLR))KQZ\Q5,4\H4T-D W.0,BEL&0>@ F1!;"II(0&IT9_8@04.G MUP6N=?8(.1-3*O-("U H(.MOC(_&"&RS-_:47C>$[I_+J-M!SB/GIKQ?+O)9 M6E-TBLMOTX2;5!U41ODL).@L13W?+W5B&PBJC45G4P6V6F/$1!)_?# M>VAS,:!H^X#&)NG]G(/5199."KP$:1-P5IM<>15JEP4&O.XQ=31:D%N-5]D% M'_?)& .X )\VPZYY M<@H%"4P\YZH\\NS157^HMA;#B6YLS7\@X=/;OU#\]S-^P]EB,PKH WT[/\,+ M?K1.!4,B+C 46AM.0DB8P=*GW@5M=?);06&+EXT3#37"QM#"[2#B?N PPA&- M67$#A.MZ_N04!&(&"HIB"0."=MG_+9,<]_ \!A)S!T"Y0/GU+!#EK?:>2_"& M,:(_:1*'9)!H>6GA"PNV53G';4HZ<4_WU.R]W/H#Q-S%G=0%![^0I![*E'O] M1YJ=U;/)FHM)_^5/X8^)\0)YWK0OJ-,.!3,0ZX:;1?9)*&UCH^Y:>Q [=I;^ M(?AX&&S-5-6!V;KJE_EJL=KX A=3[Z\%*+#.E"X!LLFIKM8$,;,"&A6WG DE M&^4(/4M:)[O?,(9M6$5T8>DJ)^]*':]XT\G\N)CE21*%NTAN@N9F,ZK<@?.U MT JUBH7;D%BK=H&/T32NW1I8_??NP ;11 ?VZC+$.+D58EP(:R*"]R[Z6K67 MZU@8%!"R8,D7IQ"X]I."5 1M\D%YB!P-&!EM#DFA]&U:?&]'W[A9_FT! MUT!#'9BUNZ*:>%/'4M/*D8Z%.NAAT_9.@8@1E0[T0];&Z[I+R;B)_>VWQ;VE MWD$CIBOIG-\2OEVL5A,;2\XV1= I$@O%*W Z1I!83"*N1*LZMP>(Z:[::! ' M?4]A=X"7Z]K/S,F"T2<3CRFCS!:<3 @DFPAA,[;*VD(?\ZP:38-^C*+N MRHD.0>_]RG\@:O7?]#&3TJ; MSL/R^T:>M7Z]'L\M-I[AU>JR,13O*>0063-0RB+$4BQP'87!P#.S;9*S&S+5 M73G387:Q#^5WL3-?L'BQCG^B\*9,UY-)"@[DJ>#L??84+O8EO^%= M)F_R%AG=E3(=@I3]!=R!;;GL5WU9QO=36$W3A 5K18D&9% &%(70$)$<4)62 MC")HK7V;./%!]I_UAYE;#):%;J$-=-"C1]":;4)#(IK#>1N?222^LXB\IPEBEN MVKA+@(M=<"$1PY MF?=,T4MT)=+FKQ4K26=*ZW81;1_0>*!2)-*.+Q@O4"2C M+5F&.LLQT/8?"^D7/8EHJ\[R?ZK2NITTNU5IW2YB?@D%5E((8L)KL%)Q4$J4 M.OFJ)HC1YT01R[X\Y]4,6F!UY.*[G?2Y:X'5+L+MXO1ZAZD,+$5UGF!A!.W/ M&UL< P,3%)KB.>>LS='VP"-2CE62M<^.U5@M'1P//##)P9?:7XB1DQ<9V6ST M'**6"(8%'W(6-0&L.;!>V(B4G;3^_(B47530YXB48)WC$0/([!.H&")$I@V9 M]5B,,5:PN)5U^C.-2-E)J\^/2-E%Q!U8F@=.S(RTQ7B9ZZH1M&ITG>_B/HD)M]3UX^7>!X@^)=ZW'Q_/&S;5FU/O>\HA\Q;,SS\ MS-0GYOU&HX3UF"%S@00U EU04H'CTN7 .(^N\2#1I\@;^.S9&D4FGJ)2:W.= MK&SI['EX7#QS$KV+U#O8#Z^H/Y?(J\7IU\6\+N%- MY)%"0BS,@&2ZFF:AB1GM@'@4265NM-^JH]?^$'J(K$X0M8>^'X/.P<+O $EW M>+@(2TQBF9%O "+2HE("ZQDM$Q"SYY(S&;W>JF?@[EE,#Y'3"7(.5_?=;*:# M9=\!@&[TC[X(0CGC1J42H#!70)$S"(%["0R539R1S<8VZ2+W2!D7. .H]_%> MW7O(N@.PG.2\:24=9N_#-+^9OPI?I^LPNSR:URQGJ00X*T(='$5;>8D*/"N: M)59;,K8YOGZ2K'%/K(<'T7 ZZ !0'W!-\L!\F1AZ.2I8,;2AEK;8""F5 MY'4LN MT"I%2F99@W(A@!>VMB%/4D> PM8I'!@@*(Q0A,@L*5-8:G10M%_>=<,\Q7:*OVO+#M+"WC#ZBLOIHA[4 M+M<#[7QW!301Y?S"$92O%Y&TC4-(%,SRQ$7*]>HPM#HSNDO+N#O?4>%TF![Z MPM/Y^+&?SY:T+-Z?OV"S6C8_?/=UDR;Q^@]:,J+@TK49 /4?;N$V%.H#BOGKJ(-8XR?_K[+PAU^K3XI'CP@U[ M,6QR"4YK>Y"-;C\@B78U7>-%1O>Y*#Y@6GR>;YYR/MY/&&>E8Z$X_9*)(#([;0ZG+-71$Q'2P_9SOG%4*).1/X8\Z M4Z+*G[96^N!A@4P,"I0L><@>3:VTM^ M.7IHM+":YZA2F];F^U [;O.GXQ^8 M-=3E[GCUYWB=X^>:_?BIA==TD2K[:;$MQ]E[B08Y6)4$K5#,X#@)6](V1_QS M[62;?)L#B!ZW)]5(=KJI9OO!\NV&;BQ($2Q)S)2Z'D-FX%.V==ZWT*H$+=U6 M9883L0K*T M%+R3;7J%['E/]2>]J-I%#0=>++R>YU;75-QR94W(Q$5M"8ZECN-Q";B/SM7N MH\9V=4W5KMO4R/=4NRAB4#@=N03H55A]^66V^'W5I.#G^NE'*>]YA)GABWFN M7G15JX&H$R9)NQ8KM="U-@U.MG9?CX05,DT)&Y>U/$#5 &Y2?>;[Y>+;E.3W MT_??2/AOYE>C,$[2>OIM6LOEKKLG&9^3B@Q,-K[.-) 0=&UUX1)ZH;(NHLWI MS>ZT=I(>="B:'G"N6BJMB[/(.PV91 MPW]O!:?66G^Z(_8."NC@ .[6N60]2)RGZ0QOL?1IL:LT@T="2;+ 5>T=5S.$ M8PZUB7P)TCCNLCK"G<] W(R;HG1D+(\.ARY,ZL]([T[3\U,=HM?(P@.$XNID M(LEH_\D&4LFHK @NLS86]285XQK4\5&Q&$A!7<#K2BIO:S#WH;;^?5=(8'5V M]OKD=+%<3_]KP]KE)".O#$G%)I!2U<%^+%(H9@R8PE'R3>^8-I'PKI2.:RN[ M@VE317?@/#QR#HZ%5AZ3"3BK>=+:*'+6N08=27+%!4W^4;M3P/TN+YKE='8' MR@&4UH<5O9C^EDAVY[*<*&M-CMI U%G5:30DD>@*L"ASX$6KX-KDR-VG9=ST MS.Y =Z"R^KDMVS#R@)0NSRVNCC(F)6 ,(A0P:&A!U4;]GHPYN>%**&<\.M/F M)FUK$L?-V^P3HX.KMH-M^O[UP?4LZ?/,HROY*>&0;#^'M#F]$(F!C]% +HHK M;Q13KMF0O2UI'#?OLCO4-E)N%UO\?=Y^F<[#/"$)'J??:KGR:A)MD<(Z#R5Q M#LJ'1#YSL&"89CY9IX5L-MOT6>IZ*Y</:=_5%LB M:YA_)>\F2%>M"UN58==\WR.JMG/)(<-M7,9WB[/T2OX9I M_OF"HHO#@9-YWG@HF\,#6D^>2542>"9F#J[)3R)ZDM#@CG^A]^+YI(I)2B4(K"3&86M$1$0*O">G6),=#](DU M&QKU-&F]U4T>"8B'*&A47W S[.,^/Z]/O\X6WQ$ODG3?3D.V>*?S?,9D)[>ZB8'A>)8>NOGJ.@! M 5^>@ITMEYMF.-XO&3P^\0QS*A%AF*-H5V"PK=H:.&AYMDR MG[7-=)K4MG6-1@/2^EMK$!#%+!5R((H3D M1;HVS?NVIW'_R5S0JFL)RGKDL'I$D#%Q]+6OJK(D/L5\(D$& M#]PZGP13++(V%7Z[T]I)Y\DCY?T.I;0NK"5%\9IM6$=$JZ$<. $;4(D18IKK#!&M3FLW)[&+C.&!\/+ MXBBJZ^)LB%A)B'E5QPA]##-\5QYGC@<>N9:<;#]SM>^'!U>S3UQ #(+"NMPH M46@'(KM,_VT&S$;*ZR#TN;?F-E'=N2 W/YBPX NKN2A">@9*RTR"(X9B#EY+ MS;PV;=I*/$M:EZ[DT8SC08KJYSAH>S%.2'1,26*0EE*]PXH%O&$9C DF.++\ M3HSM0(Y[C'YD2#927;_1S?G]_<."+#E[1=8=BLRU10'3$&3TD'4*!3TF^N:8 MX'R"UDZF>AXINAE*:7U$-S<]D0>;?$JFJSN):W+6&8P=#SE,AZLJ#ZP=^&!O"M70GNU6)'C48J+VOL":#PM6E\;L_"4 MB9-8M'9(C+8IZ'Z,HBZ#DV9(&T(M_?B#E^SLW&;*D-1*I%W#N3H>.C(+#KFD M$"P[6:2M4^J:HK!)][!CAR^M4=I4K?V@>'OI3BSGS&15( <6B$'!((:4"&@I M%I\Q>A-'=AR[C&I:(;61ZCJ(:BI;]?_UL.I;F)TO1Y+8-!'VZP].YOGV!S=^ M\[RGZOW+UC0[JPOX]1_I2YA_Q@^TCEZ7@O7B3'#%-*U7FR+%?+($J&TK096L MN4<6F&Q3GGMQ@B%%^UCY#R8-FULVJ.W M69)>I^C=196]=,0\^_IUMA%EF%V*\LV\+):GY\J\%"I+"2WJ#$)C[A8MH]K&G0*$BN;_D.P#.57.'RSNQ>;Z*)#<3 M7Z^$9+,-0E(P*0064-IIB%%8( '5@F>**UNUQ=R6Q'%G-K2[-VJBH@ZP=Y%E MO:FNR]/U&2GLS7FV?O[I;/WK8OT_<;.L)L4&3>L*02M!:RH3;URL^(J*0'(:=$JBIH@J)@A M2EF,UQ1 -;H\>IJN<4=[- T7!E)&O]!:OPK+Y7=:G.=CU+)&8945X#BC16DH M6*>5R(#T Y71Q"WXONKX;4W/&HW?)0.0F MT_),"-%&23)3T6=4Q<0V66K/43;NK7A#I VJDD[,V@%G.E9;QU.$[)6NLRTX M1.$=9,.L#4@_+&W&#+0_GFMV&=[8#!Y'F8-=BPP[7^1G7*7E=)/]M"@_G:VF M^8#*!8)%2EPVC1#MLI8%D6;-B*#D'_PD4JHP=&[+>/Z<\?'U[W3E,.T,Z"/=P0S]C.N MPW0VG#6[?%XSH_8@P5W9MDC>/\=BP-@DZ[3(.JZ->_!,F"Q1YV@;-2ONPK:= MG49'9Z&I;?%^7C]/-\6J:I M%D">=]&BH/X]*2'5C,$]+.)![QO"8@['\$ 6]?YKKF KG8_,;=HLUS+3P"(X MR0QHF9T,T8I2VK2@>9RF@V_VGY+O)Q+I3_3;_Y@X(Z17M$(E5Q:4L[1@ T7T MQ@;GO D^YS9YWMO1-_)(FF$0<^]6?WC5=.OH'6(%QC)_W9C!LCM9.<"*3EIB(W MX- [D-&H8(/) MO8.1 MDG8+D%:2#ZNC )<+!^2,"_)B15!M?(S;=(P\/:L-A X0=0([(DZ^Y@7LA.;>9 X^;$GU3P'LK M@)881LL+<=&FO?6V%([KOK? T_WDD0:Z>C$VZM/Y.*9!+-6G&Z.=!K=7#Q%Z M9*OE"TLY<0W6DMJ5H'#.%Q=!.(DE)NYC:5-1="2K]?-T%3Y_7M96")M;DXO7 M;B1_O0Q"9(SK4L 43.01<'(&DK.0,+I:1>83MKEJWXJ\EV&O=D'2O1G?@VNI M@WCR06EMID'/KR9>?+_+8L$22C @@B77U"0&SG)/+B1'DW5"I]N48.U![+A' M&,> 96L-=@#2JTWI-$SG-93!Y:;4C4+I=W$V_7PULKPF\GV:GM*OO"L?Z=-5 M(<%<[F$W' ICM:G=#IP4EL3M:^EX3I!,$@*%TCDWW4^&8F3<(Y-C@'M,S;\8 M5_+VQK2XW)@.2)':^1UM7,]=&#NR2ZI*D$$R!!<4KYEU%J),A*OL*.@)W*%I MU \F"IZP-4Y[3\OJL,P43J$F%R HERFU>95S;PI@%;PJ(D-=7>^ MXK#7#N=DC-PJ8CCU/GS#L(>L1P3*9@SDJ\7R,F'T;U@S22=6>N>\2*!UKBW9 MI8. +((J/&A'$5$,_CFOZ>%'CZS]_76T&$Q@X\]K_6FZJ$,;PE<\6T_3;4[0 M":V\W@AEDRRBP4N*C:OIS 5M"-)MI?HG7C+R6*MA0#"4$$>%PVJYKBW"\UE: MOUM^Q.6W:<*-)51HE%+,@959@N*NEOEK\LS0IN1S2&Z[^>7T@AO[!/WM[A[Q M& 7C8F1P]V(008^X4=R@OXX"ON!@=;&(#%-1:!8 D5"NA/+DPO,"1BM7&&/* MAJT\U%W0?R:S.5M\/<^\V5C0 M2W])A6@R&4Y$,IPJ>MH@31V#6Q+MC2EG+>564-CB9>/L)(VP,;1P1_<^K@*R MO^+B,WE37Z8IS#;VLV"6*%P!76HP%HP#%Z."(ASG.H> .)P+\B@9X]XJ-/%# MAA'YR,[(A<-]DX6+M14-)W.9:6W1*B*Q8 9'7TGK,DB?3!%EJ\R [7#S&!GC M[4@#J79*$M-$E=+WUE[3(@+3EK:%GT*3]R>O+LAFP'M]YYCC^Q/!*/D14':S\1QRKM],Y;EJI3E"ZZ)0F;TH$#TI9!"_H"]9N MJ@%]4K)-5LQSE(U;GM'LWFU0A70 L&>NP%__<3&#IB:GT7_Y4_AC(J(6RC@+ MSC#:/1G6_H DSE**""DX+N4H]0@/$=OE]>^>:-DM%?]@U;V85*I+[E>_WV!_ MT$2J)]_0)HUJ>Z:.G$1E=5*U,$92/MP@4%^!9$>""*,AXD=&T27;9BKR7D5:U M"Y*V3J#>6TL=;,:_S>-T-L-,9@"GWS8E/)><\&(*WUS5^L! A3H1GO8(L%J$ M;$LN6;=)BGF1I7\(R ;21P?(NIB6,/VO.B[V7%IUZG$=WGG!$$6\&((N M0+3[VED\D)R"!7*49>%(3D)J-:;L&=)>1L+\0<9L4.WT +<')'55UC+!'&16 M+@'7==RL)SY<[9?JG]V0B;W71^>(<_U>$ M[NGZ+?F5FVE#*YP(440*.8,Q-6?&274^70:M*C*A]Z;1"-OYH^NMIL5R]=MHID5O'!:TB%3>"1=@2A$ M!AW(S4@B1=NH==1>Y+X,6[D+TN[9RN9:[#WJN&=()JEHX1VWD)%AG3X8(&9F M0&@NBS2)\48K=S'!F)!MCJR-R[T3F2_C(+"5^3Q,:SU \BFF7IV=GLTV(>BKL$Y??OMZDO\7 M_4[-T/BTN!#]I70N^[.^*Y^68;XZ[^7P?CE-.)%%%.6S "M2)@<\9O!<)<@\ M9#08B]*-1N:V9ZY? WT@-'R%"&U1Q%BHYG#+=EZ M&1=7!_E%W:"BTVF>]Q?^@T(8]+3NR3>T.:7;GJDCG\X59USMS@Y1!4G18980 MN$[@$B+72FE;VG0]/&[KY#=5#6%V\O7K;)K"A4:FBWSME;TN!=-ZXV]=-XBE M32[96#" 8X8V1H,*O(\:DF-9,^1&-9H#0R]]E&M?[LF M';UAP4@#5LE$HJ,(P!6AH"#Y;DI(O^50[K9M'5HC["C:?Z[QPRZJZ -*#]0Q MNY*4$7;3+H7"2N("'&IR>42*.EO4*FR5:?RPB^C&UOPVO0D" M"SP6+<"4.II1"0;>.;*C):&K1C2*M!447FCCA[VQ,;1PNQB7='!#XX_KL%S_ M'-;GAM>B(6/K/22M:UR+Y!@F;B BYZ9PPY)L<]HQ+!]=7/LYA/)$BL!'5CK2:;H4_5\$)AT(25EF6A;#O2\TCMT3,_O8Z9T4^%)0 M^=3F19+DHPN>-"B>*/S348(WQ2;+M/6-VBP/Q<$+]3^.B.VA8?!B M4J.?NH^8W)D,W.*:9<)'N&BYR]C55\KU5]PDT7_%Y<F0;S^0WJZ=>S M]45[G,<7@Y#:!5E'7*02*'+E#J*NTV2]D3$)LB@A*)]KQ@/6ADO@AKE$QMDL/[ M-X";8SMI'8OU'L893?+AF"A.-!F8,=8$JX-0;?HE#,M'IX9O%_2U,WP[*[J# MHZ@#>?[I^\,/.$]."#I81YXT6D;V/Q4%SC$/&$Q1);'HNWNLK%&6L\$$EL&DSQC K((8#),&L M$_0S&]KD]P_%P<@S!O\T/L%^D'CY2^'D='$V7T]4$CE0P (Y)]JRB$N(1F>0 M4NFBM>>,MVE(-0CY/1KMUL@;%OY[P*#34[,W\V]X7C>^FLY_7<,;:OG#G&BMCL# YVOW7CQSQAK8Y;7_WDV77^_X=U>GGGP'+,F>-.;^:UWO9G3&\XV/WD55E_H\_I' M_=FW,*N?_C9?XGDW5OK9AXMO_TKNVZH>E>+J^I1:*G0^,0&1EC:Y95TJ%4-K,8CB8]!=C8G?! MX;T4EZ,J^ 7;SR%:5>_UGF/9U*.TL]X!U2B%,9[")4)VK=#G%+!ESL PI:10 MWO'8)FH^GG5]=&N;*%F89HI1>)H=*)8D!%$\2/HKC]+K=+?:=2#F'R7IQ5C# M77!SUQH.HY .#JZNYO>^FH75ZEW9'$]O[D]XC%Q@+N Q$2.<9XC<2M!)!FN" MH.VB4;+68R2-BZR!5'[O.F (^7< I)OT7\Z=M]HQJ& M%:M8=FU2(N_3,O*E_3!*OMNVZS")CUW _Q&7M()^$N\O7[YAY.(FS$>A"G<1 MLDH)5!8: CFM4*SQTA>M>''/.5'/OF7DEI\'JF_10I8=&))S7EX]R$I,O"@4 M&7(=KZD*?7&*0AEKAO?&&#'!8MU3+C1OM#>;0L$[BP$K5QBRJ1L3:DH8H@'SD%Y&9BQQ%T#GK-HG-3Y(U M;G^?-G[3<'KH %0GW\)TMKDL6BQK!\)KEJJEO/[;1#@,BM-R,\(37T$6B#DD M2!Y5<=&(D-N<0FY+87^'DGN"XFXJ6PL-=8"\.YMR'2JIR%ETY#M:,NI!1(BN M]G=F6ANF0@ZRT7"FVX3T%^H-@Z-#Y-T!7"K-YRRL2!47S&"^3BO:)&ZNWJQ6 M9YCY1,J8M4F*1.,3J.+K^&44M"),<):;C*K-D?=N=/:W/PX#MH;:Z@"+UW>; M;^9I<5K3A6EA_==%,O'/TU7:I ^['')RS *%P107>T\K++($66'DPL7L=.O[ M\*?H&W=">SOL-=#.V.'?'CD_YPML8HT,WI,70'$?K]U032W'=L2J)C-?HDQF MN_N;O4G8"F;ZY<#LB KIP-3MP>AE\82/BK/(0.HB:R. 1#P6!E'[DKQ5Z%6; MMLQ[D[P54LW+0>IQ=3AJ:_'-HKR5)G<[.-J&Y?G\+,PN&*]]&DVV"+DV]%6A M=@O3Q4 PG*,RLGBNMC*;P]&T%3KMRT'GF"I[P5FMK\)R^7TZ_[P10)CG*V$L MRLV3@:89KSO1<*QLV/T%<_Q,646;O8I2@V18.X<33-VF3Y@Q@B6>"N>\<60P M7J9LY$9S= 5*U*J>O1KP@GM(Y 99F26B:5.$\?(S97?!S?:9LKLHI .7=+M+ M:>XBB<=@K6H0H&PD%]LF!CH5[W@0AILV[N=P^20C9-#N!(6]\DEVT(]$*T^] MI7/D[*O710LACXV6VWD.V2?4(@@0PM-Z,DK7@FX$+Z-R)1>=[\Y4^7.EB^R- MA_W%.#X GA'/WT[>7.):Y9KO%$%)ZREV-YQB=RO 11912U^BV6XVW_;O'/?6 MZTC0::* #CRBIT^",(6B$YE%D0Q92W5RS]#A)JY)UKBRZ R)Q<]'K!&&,M%3%>%&E3]JI-5^:CF*MZ MT+%>7<@YOYM_J+OW.3\).&U#X"IR0./J*!9O M((HLH)2BK$E,1=&F9..(INMDGM].0YS.-B'' ^N"?N'7Q7QY>YEL@F^G F)AVQ"H\N' M)X@:]ZYK7(CMHY=.(28O5XL0424M@#QJ5V>0!/ ^:/)"9&U@X*,3;?IB/4'4 MN/?WXT)L'[UT +&'9RYLG LF?::8S$#BN=2*M)K7$A1D7:30Q;!6X<3C-'5B MPT8-(0;26 ?8^X"K]7*:UI@?YNGA3Z^:] 21"P^0'*]->AP'9^H@N2&I@,A9S&2&CN [-\6<[Q(UOKE;)XON9 >4W0Z ,,Z.2%'8L I M!5A$/#](P+L^/AX6[FT^'*Z0!BV^7"^\#(R7 %6*I-ZLAW!2], M!JW)BY6>R1#:'%(/5\;2WA$<=9\>7H\O 9PW)YIV*M MPW6&E\*$;-3FY$]6]K(31 XH>]E%7QU \>'FG634I>6Q %I!X9>G6-]+XL10 MO%<8-Q2*M4G+>.%M5'=2_E9M5'?11 =P&F+3>'N5+UO[]K,<"A3%9.TAZR%F M^N*%YFD:9C>F=%Y]=BZ0G\*, M_HH?OR"N_[IX=2 MWLF%S/%!=Q?^QT3 J*V"GCXE>2"I95+("].^-@JGK8[,BD;PQADH/HD4O"F6 MM1GMMC6)(Z/XJ-C9ZICT4#5V@=#;_9#N]@$^FATM]?$7G3=9V3_'?Z M95R4,N%*FJP*R52+VBI$17 QTE^3L5KG:&QLTXS@$*I?_KG_,-;X:)KOP/>X MR]UMWLE8K&Z,!J^,3E(N3G/'05B/H")C$+R6$)1QBJ2>66QS);HSJ2__?&P8 M/+?5<:&"6^J82_J&W7!=RI5B8IITX%E5 R2 A M&N,AJ6@M<\(E'YZ3S[-O.:B3PD,/OBZSD*:4+',"J5&!4M)"=$BV(W!"F8S. MR^WZ1#[YFG'^)IK2Q!@X*[YQ&%@;S_$AUH M7\LMF8\09%3@:GU4YJYDM*/9@ZOSUO0%\]D,WY6'@X^-Y*[AK(N*SA4/HK@ M*CO:,[,B=$N1=IIJ@//^9J[VD)R3K_\_16Y M;O3=';ZDT$9)CL!-[:^ F2)?S $2.6T\":_9W2&^@R/P:0K'B?N.A;T!M=/% MN<3[Y>(K+M??WY/D+MN5?JVG/C=64HP87$D0:\,L6CL&HHT6/# 7>"9U-4 M-G?;VPUNW9ZC<9P+MF/9MT$U](*"^>I,A'L^Q<"1_M,O:>7\[\#:0)7LCR2M M7B+5!)1H#4)F)=(F28;,N:S!&R^2H9\8V2C?XTFZCA)*3(SGJBB*KE6=YZ<" M4V2[K83$5;!"9V5;#:K>AKPNDYWWPT<-.RNE@8WTB.5PG*8M !:%$)':* M)$Z<@\AT3D%PEU2;SEP'%H*T2ZP:'@#;%WGLHHT.<'50-CB3JA[H$S8,DH- M*Q1"M!F2YLFF0-%X:A.@_BF+/'9"SI!%'KNHL0/(/E)'H&A_B(KB<:4#?6$R M@'?"0Q(\H#&&IT8WYW^Z(H^=\+!=D<X MNE0M RV"2L:$P!I5]SY#V,C-W4?:=_?32[$2CM1>82IMDY:W(ZW$[W1,0VSEY!VBG6\@]E'<7LO*6%B0)C*"A&"U1 MGQ49;\=YR8$X*VTJ>(=-GVQF[8X/O4.UU '\[KH'=U=3DL'P$FJ?I)1!R5J5 MXK0%[:+3Q2>+N4U"^C.$C9L1UA)J0VJD X!5&4UL$MJ5VIN(V0 J:00GZ^ ? MK7@P5F?KVITZCEN5T]HJ[23;%W0I<'G9>]@4UBV?W.KX_SDFFN:TNGT?. KN[U?\7U]96:I3BTT,;I-86[JG!#L-8> MLHO:>8I-HFOC[3Q$3:\Y/;NH]Z[Q.%CJ7>107''Q(?S^MT!F:AIF9%2+,XB9 M09#D^:N-.425:T4XELA+;9#7%CPWR1E_+.YA>GX,.'N+O .WY(J)OR^6_W@S M?[]<)%RM)IYY'DU*8+RGS=22<*(N$A)F9RV6+!M-%'F8GG$#JG;(V5_H/4'G ME^E\NOJ"^:^+15Y-' O&IUS V\3H$SBCN?3>VI@:VY9[ M-/6::CR(2WR8!EY0E'V9\!INY+K.<3UPQ/W,6UI%W[LPUSP29]X9FQP#7S:C MUHH&)Y!PB=:*;*)3,CXGVR-6Y#R>";VY,]0E\V2%!2^B(&]?EKH2-'@5D^%6 M%*%;YPH_36&O$?LN,'@\CVY [73@%3W*S4_?/]$C-KDXF+D2)!S0EM7+E*+ MU]&J6J!S23J759O,IBV(ZR6Y;DA4;%L8L:>*>D9=9>BBRYLKCCBR'&RN'@62 M/^H\(A0,(>; 6&XT>F4+XL9%W>" V+H29S_MC BXS:9 3U@LZR]\O^+D(A.K M6*9LS(Y"6$$A;$BT+&T1$$)Q7!5A^):.P:.OZ!0I^VIR,;A8.[!&;S&L\,MB MEM^ MV1I00VAA["WL72G3A%<->VS9=$L;5LQ=6*!-.\-4M;.Y]/E,ZKJTID%EG7RI'-3C MNA04.*4*<)8S\Z$$61HE;C]!U5;HTB\-78/KHP-L/2JKMU<)5J56.&3!0!9C M07%,M%_S!&@Q"6:9%_S(+13>]E8=,,;!P7X*ZAERF_9[DU*DEU(4T)O;JR#J M N*,9&>-H9 W,MO&H#U-5ZC8+:\P_(Q&1IAL] MT?=!IG#@'84->\.;W\.[SE^KI1^:F]&Z\T]>\FA)N-20!-NN=&F,$@Q,E":=M20 M*,[67-!62K&U*VVBQ4L*.DE<.$2)=PW$7L)]0<;AW?H++N\W;QO85CSSEE:F M8Q?FFB=1.66BH0T&$HHZVD^Z"D!?MQ@>DU5<^/&3J-Z?+=.7L,)W<3;]?+XK M!F]X4-F#T#+7#'+9W8EX-4>\]Y/4SB?<3\=8&1 MIU9PM2(&PNP7Q-5%H]OS@1+I_"\3K8*TF1@2RO":UJS(+T\.6 K"%R[(MK8I MR=Z!R%ZS@P]!62L==0"_1XS\@ZR%;+-G/$.LN3Q*>@H+!7GX142%2@;N8QL/ M:0^U-? C\6NFH _@]RM7$>\.PL !9UD[R6D4(14M:3%*(K#Q:UR;/^%&2 M>FU!/(!E.U#^@YW\#.NQ?UPOTC\B>0>Y)F'@?'7N!NWAE3_RI"$\[VV('*A! M\'6OFG?EYLL^X.8L^M5BM5Y]_$)HW)#S/GS?)#]=-X(M.JG($"*KCI7R'GST M"%X9X8S7AH+!-N=I!]%]\)GBMF__Z>;;;PXG\"H&+: H"J(5)@T1);D&TB5C MBDB\44_8 PD?]][PB%B]=ZIY1(5W>M;QL%':?_C2D\]K9T4;#& :")^TB3KO M2@#TM1C((SELBH*&$BROHR1089L([XD=V+-UXRPW,U;N)(%ZMF M9*B\*)>F7HBOO[^AV'I.C&.])S_D]F;WE[1S?K9FK0^/*+J"V24'06 ")T2.[VW(9YI_/RY!^^GXO[#CY/2SS>:ZN8SX;86AY M;L(.1YN;LT:!RG7LHD$LHK4'=" ++]KCV06_S]CN(X&@@^/?:I1^#:?G1<-9 MU>2 S(&3CU:[)EL@^BEFS\P$J4(QC9JKWZ2BEXK^HP+A[J7JOEKI"%$7U3(E M*4\N?NT!I>O,1DDNC"T1LA1">$UA@&V43GJ+CI%S\/?6YR/ V$.X8Y1"$FWZEA].>R^U96-N84=& MP$O&_*]G=8E?J&MU\HT"Q"K^7Q;+O]*_74\L:L^5"A!RXJ!X#N D::5XF4UB M=?)LHX9?C3@:V<4[,C*'6AA#PJ2#Y4++QAK(VK:FYPG 3I1()K:ACH[E:5,IH@V[L?_ M?[R_*W[;'>_O H(.7)5SRB^;@B9;TX9% ,]]!%52!A^3 YTR:BR^>"Z:(/@6 M&7^6 _Z=H' WZWMOO70 JOT%=\WV/-\Y*;6IE)REK=GNY.EXP\%9\G1\+M(K MY;GQ;?+Q6G S+L0/ ->N#FUK38]]:7&5O''3R;L0 M?2(!)>(AYD("$IAYG8VA&TW8>Y2DSH^+CH7"85771>+T?^!J/9U_/L]XD,BE MY@5XB++VL!(0!7WW_[7WILUQY3C:Z/?[7_ .]^7+C9!=K@K?<-D.VST3\TG! M!;3SMISISI1KJC0R4IY7- X"$(@%A246B5$=*E-F7+ MMXCX5>YD#_$Z]I5)!TIM3?IZCTGN16!& ^>.-'+!0$RH)FY!1&VEE8TZ!=TA M8USC;&]A/@Z*/3C; 2R>V$W+[4([BG;=N^FF=;=%:1,GUF#2Q"3-&00O-3') M&1>\-[91&>@.1'8!J7V@L)WC>+!<3@)RG_Z:K9?&58H*70%1.SBJX PX(3D( MJZ11)B45CWJO]QB1XQZ,QX35V9 3T@OD'=ZT/5QSOKWC3D.S]?))6-TV;;)3W M.*\1I'/RGD@,*4/A&,E:$B02'LAXBK*8:,C;UXWJ=)JMJ?,XX<#H?&QSC ^5 ML>.*:YIGY3]G]4A]/:7G8JV^)@POZD"MR]GE?/+Y,\Z_3#Y_H<_^IG\P6>"W MNOISZT(,&@FVQ210==RR<\S3T1T7E4L@V.CRR]L7&Z M-Y>?WJYG\\-MIP+_2,D%,VC5[]_6TR7_[QJCG'>2*3U&,4H&6DX\TY6K@4$B*& M*,GSEE$V2FD::@GC=O<_567G-(ZL8=VQ>#_M@##CTLA7VT0&WU_Z!3,K+Q?HX#)_Q M7 J',<8,MH0,JG@'/ML(S(80LE0NRS9]KILL9ZO-87[ES3$J0$ZJ,.&QGDR# M%R@\]Y)VA0I;+ZV3@@7#-$NA0$9+/JTK'%P6".B54<:C-]@F9/VK%"SPP(SR MEM:'P8"*=5IZ\@I$]B:$XA1S_^Y'U+!@80?\MBM8V 4$'9@S=W.7;2F:>W+' MK>#DF&?MP0O)@'/Z+?,\MAH@]TL6+.P$A6<+%G:12P>@:I+GQWS(##T#8FEM MS^\LA$1\94XE##YBB2/U)SGQ@H6=P'6,@H5=)-T!VA\S\SY\_,?7/J%W"YW"4Z+Q,@Z "R>S :9 CB&$;(JB"44A?JH MRN]_82;P(9;;D1%PRIA_['979&N%306*WN]K_V4+ZN-&76JFDF"+7 MKJC:5#Q#,)J#D;%$)(:&1E:UN>PCHY0$$2AW1B-"DRS6'*; M 2W_OM'?%;\-)PSM ((.;):[EWM2AJ!\G<7+4F6AE!!586!1Q!!KW;=HDUCX M2][H[P2%9V_T=Y%+!Z!J1= =H)U.\S.9?:Z_\Y5(WC7B9]43Q;!;4;&>WGZ,$;5H@IVG A MDXBI3?QLYQ&!)W"#?\CQO;=4.D+4>H\I[USBR0*R6KP<:G@A*0F%S'#%HV0V MM\54#R?F_O)\?D3@+LP=NS+\K(95WE_G.3'45CD?0$<50-D<:\83&1!H(Q8A M6)'I9[&91Y[;AYSW$<]L&%[U(>87[S;'H1 \)V4@!EM'S>D$+O "QHA8R+U6 M4N0=Q+QY[KB'Q+!BWHM7/8B9WR!4>\V+(?N)!U9+C+D&QWP$'YQ.@>O$TG9] MC>\^=]P[X2'%O">O^A#S-4*CD9RA82!T)(/9*PZ^9 O%B62B2S99O8.8=]K- MS>K\AQ7S7KSJ0\P?_T$NTMU%I!)5KO-HL:8D*SIMP$LK0669E'#6H-EM7]]_ MP[BE[4/O\(/XUP,(V(V:2BEH5)&<8XZ6"/8>@B'GV-//1FF??"Y;BY[MIM*; ME6L/*? ]>=6'F*\1ZJ5(Q;% >BD2"^HD.EIZ@AS)?36"*1/\#F+>:5_;TQ#S M7KSJ0\Q+E40+N#5LW!DKF",#4YJ$M06&@.AY!HQH"BT0N=^N8]93;]A*].XT M1'\@_SH(Q]RN'XC66FF- '2F$'X3F22Z!B*D<1ES(&BWB<7L6J!S FF>AX3W M]I5)/W!:[RZ!R=DZBYIEK4'9$(@).0.7WA1FN):B:<57#[&]O87Y;('.+ISM M !:[%()HBU:B"Y!*=F03IT1,Q9N>4 M://K7+:O_J[?XN#]![9Z6[N.!+LOMH\>!??)^O*M8>JYF+Y2/KN7?F :?9Y.OF?Y<:>S%:4KB(3 M(M5-2\=:C%73V!S 84*P7&:7L[0ABS9><8OEG'3O@EUP_73O@K' T4'7SB\62]Q>>&0I;2*:0:F> TJ,V*S*QDL"R&@#EPVZFKP#%&]]#@8#3*S M-O+K%XJ;?$:GE=+1$FOJ3O?(R"-'"]Y&Z8,R(NDVF0S/DC4N' <3_G:@VD,2 M'<#J \F$"/AR-LV_59=U]JVN:6VRK2^X4.3 ZJ!AGHECRG@)=25@9;%!!MJ- MLLUUSQ;$=0FQ?:#PU# E>JV@ O=1UO@P'KQ*A*N2HD@ZNZ#;C$7_U;E4[@>L8W:IVD70' M:+]6&34"^.Y;9<#Z9+ R!68Q062.C!1=Z(PH$D$+CCPXZ9-H,\[O29(Z3W1H MCI99"]&->J@O[R@^?#RK[7 _?/S'XKK*.CB5G890*V]5"U32%"2A:1N" TKTQ!"2'J!,G$9,FX M=C';K1#TS$LZOW8_*I:&DD57J%IR;J58%[59]Z9@.):,I1Y=JD3RWCG6;( $ M);D2\E[UL^AT7EYC7:82SRW!Q^_/*U[>S MR__&RQN.WW+8%N=6Z>B%9Y R9N(TZ82@_;)Q<>#*:!54FS[F1UG>N/Y63[NB M/S1UH-K;,>7Z2:M_].[R"\X_?0G3:T8QD;@@V4E5R["\5'0>DV=B2Y1*ZQAS MHPX"HRUY7*OJ?\=6'!)UG6;+O@S?)L2*I=;9)__USK\?(J/U:8(&RE%]]:^K MR>6/Z]R\7% Q$2UH*Q.HVM["NXQ0O"S2:JQ2;:,Y[M!QL%5=^54+'@@MJR<3 MFO$F;_$3<>\%_8-_GD>O''/6@&>\-D&JNZQH3T>,8N3+VY!4HVK);4D M'Q\/3.5K;4>_X2R*J3*H+AM>\G MDG!#L@)0*>.$#)$_F[2]P/1_/L^^_P<]>@F7?ZGZ+:R^76+DD9?VDI1]H"!G MPW!U9$"LJ-[T,\LU04X2H>38@JKY'\Y:<@%8EF1>T__-. X6# M138;@']CE[&^GWS#^<,>W UV159[R0QGDM M_%8Q_JWZ8%V_MI=TSF'T_OX<[0$&FU9=5J44)-E!GI7:D(77-J8V5?!A*\'?>?7(HM]'<+,AN-C!M;?KN:3Z>?5#<*J MF]TZDN[?RQ>OIBCG_A;5C'>:S[S@/GW'S^?OY).$Y>O)P3 Z0 M2]+5;Q#@F;!D-$BT-@IG=*,^#D==Y[A6>H-]T"]*.MA#[^2Q.-* M02)&KPV") .I6DJ%%F0S%)M"U"$+EMMD/_Z4M'%-A>&1.JPLQHXO?0S79M1J MVYQ'G36=+AYLIOVAA-+@O+5@2Q$J(C&.;5=^\N#1XR9T#X>$ 1C7D=C_,UQ< M;3H[+WZ?S:LQ4O/,S\F]DK+. O,H&2A"+KCL,C#KLT@N)"VVJR+9XF7C]K=N M!XU!F-L16.AP_CI9+):U!]<-@]^5/^:SQ:+^V6)UO.; I6*H@2>?B76HP/&( MX*+FQ7NKLMZRF>BNKQYW(&<[(#5@?)^P.IOF#SCY&J_H'4N[[[GE%A4*"[9 ME)F,'X&P76L8=$7H4X#4330<6]K-^^%O\:_G1XIR) MXH5.C/2TYN0W>%T'<&80R;H0HB*.M^F>MAU]XPXK/7)T9#^I])H.5K?9Y7)7 MA2GYP-/:F1^G:8+[I84]\[A!TL.V)7>@-+%;[SN[][Z;_,#K#"(3ZH@_&Z%$ M61N])PY.U("9C5F:B%ZPU"96O@N9!]\3;/.RFYQ)K4M,-NA:?DP6)T,/,1<- M4A=17$Y*\39-6':C<^0 ;S.]TU-QRZN;H17=^J&-U=UCI(^B]*)' M89+QD&2=Y^5J<_XZ[S)FE-)FJURCS/RC*KTW&!98JT^6?+_9'UP7ZU628(J5 M*RO#I6#)#RHYUQ%3*;5)TW^"H%-28[L@Y[X:&T(>'9C_;W"Q0'SW#6N;P.GG MY:K>3$*<7$PN?_P9+LGXO/QQ;XDV25FD8&"Q%B&04B*V108R<2ZR#MR+-B'W M/8@=^;KHB'!L*\^!C@;! :5S>H;7\XH9AY+(0A> MN]6J&D[1*" JYL"(;&0,R*OIXG=[US#M7V5XR12=#R2!0)-+= M6(-+RH LW$CC$'W<,@"\]3M/R;+;!2QW \!M1#!V3C6&BU>+VG6Z-H9.Z>KK MU7(@R6](U*3)J@,TBE ;0F M&^LPENWFIFZ7A7T(J>- M"EP9F-(\03@6IO+W:QPTT ]N6R8$[6Y7 !5R-!P MW"<()GFADDG*;>69#(;4QZ@<, #:$;8'2W/L.]TS>B(=K>]Q.HN+--O, MFA?W#:7#A3H;EL.C@T2Q)?VW MR.8BD N[7:[1PV>/$_H8"1R'<79T8&C&7W[! M1?B&X9^;&J!@?*W9J)WS"-3*!PXQ6EZG'SFK0PHB; F-1YX^3E!B)' "QV-/'R=C M=1QX',S=#L+X'Y 4>6Y\DB=U/@&E%+JP246&3-?T(( MJEJ EENGBJ*%MVGG> C5X\;1CH6L00"]AY@[@/1O^#74,8#?9HN;<0@F>A.M M])"#=Z#H; $7 @//@@].9SJ>VEQ./4;-*4)P'RS,!A9,!^#:6#UUP,(E<:ER M:#EK\L6/Z^E80D>6E'2 NAHO:IF#$!6$[(*S61<5VI2";D'<.([',<_NH274 M,^CJ@M;V-R;)N*H7+;K0/C*8P-=.E3H(+Y4.3NHVN:=;$#>NOAL<$-L";D_I M= "XL\4"+_\QS;63U91.BZMT:\Y9SI%Y32JZF%0K+(AK,:H,6+CE,8<269L1 M$,]1U2G$]H7 _=&>0\FC VR]I%=.+G\/:9D;M1HGR1+CM7FOS]95R[9.DO2* MY%^L=3%Y%]OX$0]I&2?R@S8BK)+DMJ &%(PV>HH 0$X(FXI4E M#RG)-A,]'J-FY%R- R7\+&#V8/?8\=M/./_Z9A8V^C+Y@I)K!J9D3[P0!3Q/ M$8S1CM?1>(C;!?;O/K\CI-DP'.M /WS [[.+[Z0R[S)EE0Y& - M67E*L@3.908B:V)0($/0MPI:/4/6R(G20Z%G>!%T@*?_#/-)/78_U%N193=@ MB4J&9,'&.K$UVD#:-#E(M?J@!#3Z_JWQ0!"Z3\DX[2N.::T5U9X M1$TDNU $:5-/VK2@ 9Z$B-HDE9ALCIX>[)3#9/L,4/9@= =0>3^??%V2O]:2 M/E6ZDP>-97GSR:!>C8-'+J-.*8O2*J)SAY!^0+*/7!\$:_9G<@<8>3-;+.YH MV!<_WM;JHJ4:WOQZ9?+3@9V2RAR$L[%6PA4Z9*.!Z"4/26<1.6L"G^UI'*=I MSC&/KT;RZ@Z)ZU6M-V@HY!!P7NT[%T#E("&$2"OC@=2X3 KOITXU@=X=HL;5 M8JUP\"S<]A=*!_AZ/YSWV>KIY0=H#X9\UD,78LZ!EM_^9FS&6F'<>Y@*0LHP793 :& M%5!DT=D)Z:2^%R)X(D*TS=O&:>!UC$.P#<,[T$UGOQM04[QH2%%V'D=E'K;=\X8I9G,^BT M8WD'6NFQ=7W *?X5+FH\_UR8S)DJ=.Y+1VZSUPH\IPU"]F2.KG;OW&Z:SR!] M0VX1-F)*4G,=-:1,.H#8@]3!U\MQW4L&OIU-T]6\LOQ<^X783ZG8/C=XE9,3[E^9(.H3G'4#FT8Y,]5_XV5E'W$+ M<^U>,;N:7M:8\+E+B>DL%13GR7(TRD$0J&MW=!Y225[D-E&%?:@=,7HZRKDY MJ/1."*'54%B%"6MO%7[NR&2PW$N(.M2,>>_!QR"!FZ2M1B.X:A38WX_@$0,< MW>#T$!F>$%1OF;:TQN*,L#7=C"?BJZZ!;+2>?BR^%G.&D-O<<^]#[3@=S/L" MZ=[2ZP"A'S$M>RRNJXO.@Y(Y!5WA$ZMLD@JY;32.[2XA6^'* MGR:N#N%Y!Y!9)M5_P,O)?#E5XEV\F'Q>2N;<&ZV%< Y8'="F7(H0+6T AH5+ M@RY$T2;SXDF2MHOCLM/$T3""Z !1E1UTRM]->5R-!'XQF\]G?]6$R/"-/JE1 M:BN1NV3 >E]#/]Y"]*;>FF$I*AKZO$W?[%VHW YW)WJ!T$QG<3M0GNA=12-1=0="VE"3Q4>B)>1WT]OI MI?Q:*;%L*MP/@B=Y=-!%3!_"[EY9% MNGY^%2Y>AOG\!_UJ.:KSY?I>QFEK8JK;J=3)/E'Z6ADC 8U7-GMI5:-QRMO3 MN!T$3_32HY&H3J^A_O5\E38-]1\\OG%#_>>7,TI#?:4YAA@82*78>H@7)Y/. M^9B\3LY(RYML]7'F)EVOVUHNB_0*!#>.'"EN2&\K":Y8*0)CGORK1F'A>Z2< M4D?]7=#RY*RDO60PMC/[^V1:)U=?+^*\V(!2H 1ZZSA0L3'F /('(V/(6?R MQ[?R3^\_>>3D[<.D-!N*91T83'>O*I8KB)'[+"R"RQQ!!4OX1U=["FN1DLDB M8&FB-1[2,FZI]C P&8C3'6#EXY?9_'+9K^!Z!2DR':V:"-8#=]B[??%(#H6 ;46=+@Z M4>YG4P]MA(R3A-@&&?OQ=7] S"[#Q1A.T;O++SA?+O;UM,SF7]<3.UHX2,^^ MJK&SM/TR1W&/#?M5XY[2>/TKGTVH\K/IN'BQV*RF)6[ M;&BC!;=]:V-5N-?BQQG&S$6)A1>(I6;:EN@@AJA!BA0-3Y$EVZ;^;41]^&82 M8LV5HE=M-N-O5SN7;I&[L0N4IZHH\@::VY\I+.C M$',#*O"6)\F"3B&UN?+=G^9Q$=L.1]N4R POU%.!+['U+1ULG_["B^_X)RF* M+XMS'9+B.7E(J0[T)'L'R'XBTTICD"9%X1HUO=V7XG&]^+Z@>ZA 3PBX=5-^ M^FMVKGPQQK@(7&8&BI.-OJP&%HC21NF4XHWJ*W8C=-PKPNY@NH_X3@V=!#<\ M9Q)-09.A9%ZCO" M=2Z1 :?K"2$X!U_'3D9F4@GD!41UQ KN9R@=IP]+UPC=68!CY_D]N[A/LQ=8 MH]1GA=YVO3SCK=:1"8B( 90T:G7WP>N02L,,*KQ7I[M#3[SGWSU.\Y6C(>X8 M$CDAC7BN8@J:S([JU4G2]-9"5$J"R(C"%*5-H\*@;2D\TZN+.\SX/K2\C^&E\DR>_36YPWS8Q]Y MRS%28W^VN%&NA*5-C#O.@,R> BK(!$$E#8D)QGU$DT6;<.=QKX3O\7\UG(#, M.9%YD9!R;=0=R,[S&!GDHE+1S">3&MW]/D;.*5WR[H*:!X?.P;+HP)#Y>/7M MV\6/FU6LYM!%M[S[KF,#ZKS38"$(&\ %%D.2BM;GFN#I,6I&OH$]7,CWRX@. MY7B/J)G/ ^VR^NUZ)DYPB66F#4CAZH)2!I^\ >8BMSH+81H9PC\E;5P\'2[] MG\'I(%%TB*WU*DIF]5*6/$)&^TY9IB 4;B$+3NYAT%Z)1D6-C]+3&8H.$_I/ M(+6'!,8.II]]GN.2';]M9JMRP^DXEPQ8J0&Q&I0-F@2N?98REA*WG1_SX-$C MYUD,=D -P+BNQ+X>_&:8SEDC!V'JY*Y<+]*Y#\!U$4[+'-"ZW04_YE#%(03U MI,SWX-K84J_-L697B[6:DI+I)',"IV0UZ3%"L)8!MSZ+[%+,Z+>2]YW']B+I M?<0S&X178TOY_PO3JS#_4>6TH=Z8Q)BV-:;G0!51S:9ZQA5%_W-T'DFQE:0? M/'K$V5^#2OLPGG5@#-X_W=Y<=SG3M/#HG "QA"[1#C$I00<>*3OG;3"ZS:B2 M)TD:.9%M<$=U&-YW **/D\^KX:W3R_NF[749\I_T]>O5U]5MU.KS2\SG1ED? MT6"S M=5!2;5S)$[.QS8W SR@[? KAX\^_B6]_(AZ_H'_RSW-1G.0L*H@^UNH,2^>] M=@6,S 53%DDWJEK8@E!7@@B/CCY&M'YU2Y$4@';>.#D9[F@KP9F[[ M4V]Z\>/.)TM;V)LZ"K0?6 M7'/QC>AT+.:7MQ;XZE]7=:@*7GZ9W9I$^_"WB&_#UU48SW,3HW!8QT:5V@6) M0[#109:,9VMT3G*KH@,BY!9$Z:?[\#R4TI&O0-J#:#:"1$=&[E/K6 >B4A N M.T,0"IQ,H9#(F>)90V2YFBXL2KO5K>Y6V'R>EG'0=UPLS)H(9NQ [N.6TCH^ M*8R/DGL-*8EZKAB$$$.![)B*WF:5[VN_)V*ZS[UE/.P,*<99"Y[V$*ZKTW;J M1GIY$1:+=^7C)7E'R\V#QGB3; :4M=VN4K7_NR<>U0628V:9;Q/S?9*D<>]^ MCW<&#BN;#D!VF_[UYF,^&*>S 2Z4 V7)V0^6TPIO=^\?KF437),,BRHFKVE.:MCZ4KM'Y]J[U)G,2MI3)O^ M_,\0-7(B[H'R?C!L=QCF=X.C%X\N16N7"JE@,,)8VF'D5WM)7Y1%QFU2Q;,V MJ=S/$#5R.]@6.#J<^2,[:B^7-73S;_58OW8N;'!$?2+@!V>J%9]*6G%*;*I)GB!JW&]3Q7?ZAY-,OU-:[42 /65A1NP#6(7&6#$K/ M.20MR;]0L@X@@%#";\[4"UAR1&/^G.7E^K^;4"SMR@MI9#L2K4>*N M&!A]I\D/]9(7:_1VY]N#9W>)AGVD-AN.A:,C("PN:\[C!7TPFR^%\8'D0@1] MN;^L>BZCQTB+J]%6+:L+S?(^K>J;[4 MOYELQR:3T;;H?;4_CN'T)N[&5#I5>9[A<[UY5 MBE8E>4"Y;-A3W&IBHI761F&)6Z)]:FG'1M+!4G\&7'N(8.1PTUDIDXM)7<"K MZ>7R#GP53\[L5I,\MHHM/4Y#/^#91ZJS M05G7!>2,%FL\P'!9,UI/<9"Y#*#QI+J5.^4?9O&T3^C;-R>J-V< M=OM)J@/DW:1PO?MKBOE%N*A3Y#]^(?8OSJ-VK'!>P-9! 2IQ T%E"=H:5"S1 MUT;6UG-4]:.Z#I?_K)$P.@#6IMWAI]E9^M?59([+*KF;%=*""LM*NDS"I\VG M?*8%I:! J\ $P^"L;9-[\E/2NO0?AX'8L&+I &>_7>'OQ,);3)O09O%>2.69 MAR!J$W1TR\VB@5Q?5V@U28HVJ2F/DC/N%7%3/!W._K%#68^N8*US,S,\%56 M,UTSEVN3\Z \L)RC-4E&(>[=Q3P1NWKF)>/>K30!QZ!\[4#'O)U-O\ZF>!GF MMWGTQWRV6%RW7OV WW%ZA1\PS3Y/)_^#^3R:S! #H;ZHRCG,$(O1P'6TV2D4 M7+:QV?67;^H>ER;B85.:M?_/[9$HNRB13Q>7\ZM5_L=T,KU8G&%F9_3Z>]9E!YDT@:45DB;K+KBT7B.@?0_;V/Y-US4N,,X6NO/+J#0 MP:ZHO95K+?!_32Z_O+Q:7,Z^XORZ]?[+JWF5U7G,#GT2KMZ\I=6(,)]9A"21 M2 HE*M;FDF ;ZL:=R-$4IX,+I]OQ"!_Q<]U7?^#L\SQ\^S))-5*4EZ[\VI!Y M/2VS^=?E>^ZN9KM>$[N]8(@>$P$FL*/N"WV;R:A-=U_T5JQD1QD(/( MH'RPM:&8 F%K,R43?&2-FB@\0='AQ1AWG_M89Q97./*2#93@:@^IC."=$> E MSZ'./I2\C?>R!7$CEXH-@9.')1K#BN374%W+^YJ]FN7L\YJCJ[''EM=:F2DK M9$JUXQ)7!-(8.$1)7X0.6B46O7"-NONU4F;7=X#WWW"+TR]^K#^\M9NB3"8) M.OD+V0#*6 9.&5E;!VME,],ZI#:,V(_@3I7>+GAZNBE..]%UX#1LEKEX5\A$ M35BMU+JR=^7#9/'/%S_JU]^)E[/YS1(Q2)>\S\!,(3NX:$=^$7W1G'2]#-+K M5L?O[L2.W!"@)3);B:P#5-90)_GK-7EFM;#5\51C]FN6+C[-JN<^NYCDZK3= M6FE.27@O(3%./A339(@(5*!I]_ED& ;!FX!S?YI'KM)L@=$C"7! 2W*(0WZ5 MYO5?DXPW)O*[Z8V]=3;'L'@SFWY^4T.RM5;LMII0I%&T<0O#U]I*LZ]HOW(',P1V MDNW%@?N2@]?66=6H^=#NQ(Z<=]\6T&U$UFE'W9U\Z+=A7DVS[WA 9]W#7GCT ML,'S2VX>#&\05"@, EH-7(IBTCHW M!!&O703I<@25'8?@6(&$M*&1194:57L\25*G08!=,/'@=G$0]G?@4&T6LF)/ MUNL\:<]MGH-LWH.XFU M+ZMMN$V88Y%UW!89P$RYJL45L"1]3CSE8!M=..Q.;*?'ZRXX.C#&OK/(1BZQ M?#^?Y:MT^6Z3;[>L."5_"XUS 83$:CB( -'9ZJ4'DT2.O)BMW-:M"BP?HZ"7 M-O&-1#X;D/]]X*K^!@N<#--U$E7A(TQ+*P M@4$TTH#B-H(S',$PB<*6Q/W]M,\GH+#%R\;QWAIA8VCFCAIN7S7+W%RZD4"6 M>:U+Y1DM*IDQ0';+UC\Q@D?)K*ZUE@4\^9-0F'3<*YVC:I/G]@1!/0%G'TG?GQ@] M -L[0,_+V?Q;[2J';Z]C9^N%)(Q.!(F@K2JTFDC'>LP&I$G:QF@5FC:QZR=) M&L_X:8*@85C? 8:N9ZB\N%I,IKA8;+;$4C^[G!.=U0A>UML<4\B6XT% ]+G8 M8A@OC>Y GB6KE^[];0VBX274 ]Q6M&^\CR"EEX$4;&$6E(@98L8,7ELD]X!+ M*1JE<]\FHY,A1H>+]_'RE#UX/;;G3MH5[VI5':1BA72IU)8V4$)B@8L&=- N M,=I=WMTKYWK"3W_PZ"ZN#_:1T6PPAHWJ>R_I?S&9U2O!\ VO+B?I[DHB8Q%- MB(#&UZ%)1D HOLX<1Z^R-B*RLI7HGWE)%Q?KAX)@*";VD?GX]-GZYKKP.&;A ME3.1+*RB@"PK!DY$!4$515QBIN!Q[FH?HZZ7^0M'LE*&EE<'QLJMY/S'RM1? M_9TNKG*]\UTLZ-S&_"G\?2KO)!W8(H,E;\!;XF 26_6)W:/, M8F=BNSCZ!D3,@UJ+MN+K *$O9XO+=Z5F%=^.[7^<7>1S*VQ*2J;:KHN.D5IT MYXK2@"IB%C)ZE=JD<#Q-4Q>G;#N\#22,#F!U/:/@SN7.J[^_X72!YY)%$Z3C M8%S2H%QVX.O, EE2T0R#%P(;J;AGR.JK6*R!,AM*))V8=Q?TT><_<$H&ZP4M MZBQ_G4PGB\M5DOQF74+%[+.+P)PG=1S(GPF9V*9IW_!LCKJQYK M<,PU$%('RJVJZ:J@U^0OSH7DOA@?@':* V5H!\7:W=*CYS%S561J$X6Z3TE? MU5!-SL>]&=\!<*YOC5Y/$QF0;V:+Q3E3*CFI+)WDEOCA+ >?10)F@LTN666B M:8*=1X@9N:U_:_@BB).J%@QB,@:RBDD%9 M@[Q-J=)M*L;M@=@<-7LS?'>X^!5D6\6F^(.C # MB6NX^COR8G'QYV0ZFR_;.9+ZP\4E:=V[3UEU>_P3+[_,\NU&\BY87VS(D +6 M3GO<0TATM >GM<><(]HVX8LC+G+<;HK-$=\K7+K0O\M&IB_" O/+V==JAJP5 M@ZB!3V5 1U;SD'($GV@QA984K0C"R4;WW(_2LQ5"_\[<="UH7_6G/@_>> Y9:K&4RV9$\!BC",D?N:]&VS4CE5D5_ M#]BZNN%))DF55/6XZCRBC!I,3_=-E2HI/V3J-#*1W'I3.")$[ O>LLI&:%F+CL?31-5&=86E? MP?]4+^TGA1X M;[ ?;"D=:Z+C#):HQ5$P6L["E4S<&MS9\R2.UJ>LVTN#7Y" M6&? VA< ]X$UH#1Z -?#_?<"I^G+US#_YW(36AV%LR5#"+4",EJ$D%4$&8/V M!8TPV.JVX'G*QKU=/\X9N+\HNH369C7K;1BLR&@= AIRK%44;#E\#[SR*3J? M9':MJC:>IZPSS740#GX*L@.$T@'(EL7::S=[7?9;@S:;\NT/9. M65HJBSLW!(1 TBA)&KI/\,__]LOC$< M5X4N.BG'@W> S!#UQ=7@KQ 08TP9?7:,;Z69MJJ/?OC^<;/'!C2>!F#OR.!X M&[[BNW)G#>MMPTW626H/SKI$BZC3U$O4X'6T)82B$]_*/MH*(T^2,5XM]*%R MG0W-Y-'KQ-:DGVWJMVUD*C(!ME1?TY!$H^$<#,>L,%EKV3V /%4E=O?!XXE\ M(#G-!F):+P)_L:8=A5 FNP*IU/X1*09P]#NP*OH8/(_"IIT$_F+L:O6& M^' M:;T(_.6:]F)98)'752M6,W@08EV $#R1NC/1<@N)1DG;2$N@D2CDQJ:4/.PG\U0X"'SRYNK' ]V%:!X&$!_[. MF^N\(I08T9.NLKQ6LBA=P.<0H20>M0X\.GZD&\$W?13R'B.POA_[>P32>YS7 M7X3/R,\MAF)ER=(,7)-5E%1D9/>+ Y\4@FR,C(R M^D0W*E[MJ;U_+74P7GE(VCMR"**'@)Z8D-$H,A9B-HWZ9OPR[?UWP=$0[?UW M$=G( =SKCE:WU<.J$[E'@P%E]4L$*/H>HA9D[PHOK+:9I0';LS])QNDU^M]) M^+.A)3%Z:^9'3IM-"TJ(P!V1'J6*YG[SN -0]S0 M,-X%P["X.)"[8P.=ZEPK!"/H15'>S\K>H9#4KGZLC*X&OK[SHI)S!-=I92I0BAL!QI[-O> MK02[F@"QC\7:3%X=8'"?7G31ZU2L#F!="J"$2."D8."C33)$EEUNU\K/#GEF0NP-$7HVQ@/O[ZP5 ?HTB%C"%F+/DQ$3U$6P3DQ+C!J!V7_YYU M.AR.A@B&[B*R#@[_FYW^6VV>-XE72XG5, VG8T"7:*"DVD;#V@).2%V;76 P;L>TN*> M!W5M?5IN56U] 3PY0ZNR=6P%>??1UM"DE%*5-E[,=O3U9;,?CHLGS[O!A-0! M]-[.INEJ7AF\6L>YD<[DO.Q5S$J-YG#P@GG(V1D?R??A>:O4A9U!=I^27D[( MX:0]&Y#UOT(@K4Z0^&MR<7&LB-G]]QT]-/;L@EO'P&32:(LIP(4@J)I(9CY9 M>F27T?GK%?.B'.?B9\P86*3-:@S69G>"OFA6!PZ: (F;.[ @G]RQKL-*@EAP<9"#D\J9$VJK$#)G"29F:2NV]RJ/T%03\#91])/ M3>DX@.T=H.?YJBWQ0R.^4S$IT!:.S'5RAH_E;'H.XGWV;'HN_!Z M[&S5]SA?[J1IPE?3__GQ%3?*E5R.M,SGS,;+&CA&<,(5$#Y)#!R-YMN-R'[J M#5WX7/M(;#8T^\;&P-O9=[RX.^E[LPS+G2U)T<%JJ\4G+(=@3 ).CW"H(CFH MVZ'@Z7=T,<'U4!P,Q,)^CHWG@_L%I57(-3B=ZJ066R H3"!$=$&BYVJ[&JGQ M+NG:36T]MLTRM+PZP. F>'MNE2A&<-HQR,G"9^C!TU(@,B<]T]R91E4U&PJZ M.*0&E.W]B[9]&-WI?$DF3RSII#/>ZZWCR64/<8VQ'Z$!W M%#>CN0D6F4E;T?? MN&KF4(P\:-TRO$Q.3.@=,/]]ZZY+1-_O :L9,4@**XL8.A4=A&,B=V=)Y-P\6/Q60Q*T_]Q0$Y M3(>_M.4!O.?2&Y[1&C$;ZQBPP!*AF;S,D--R$H0Q7*BH2YMVAPW.Z$>VU5-J M_\/LXH)^]5>8YW.+V7D?.*W>U G" B%$FL>R\M5]NJY9ID9J:JZKPUR7*1%V:C M.U9*+I(;;%,=L3V-XR+P&(AYQG@<4'P= //]?/9]LB#)T_5WG:^. M^1Q5T(KQ##[6:U.,-<6?1ZCW)%XJKGQNTK,YD!4-/1S&8S8L M:<(@JW,^R9/V+#F(*2&W2:ALRZEX.#=7SSOL^]4-M'(Y^2@E:%]HQXO"(:KL MP/%<R"I:?+-9K*KH/S_;'PUONEDE['O]9SZ2,3S :0 M16E0J8XQM=J!T>@9LUF7T*:)R5;D]5+CT18K/W?&#Q3<*:!QTZDA)D?KBK4_ M92T8Y1Z"#@C%>&XBK\-7VS0[V9+ [KSN0Z&Q*_CVD-/8>9?7M^.WUD0F\WI! MZ_1!(PPO213:HFIYH:#)2):5?=*@CH*S(G]F)&[]MLY1M(^,9RT9WJD"D^S3 M3/O?PH_%W:6I%(609*#XXFLH5B'0GI10HG"U@(MS=CPE]@21W45O!H-@:XEU M"D9#2W./+"UQ;K*Q' S3->E5U7H+:T%FFZ*2Z$5I$[S9@,0$NL4 MC*_^=14N/LW^F&.@%WWZ$J:>/5PH<)C@74X:79HTEX=S5$<$EU])VQ02V-$HC166"1^QQ80":WFU;\TU>- M,]UT5&-P?U;WJ>^>"@:\N:X>2,H@DE:'4E-O%3.&-D=!D(HI8;Q)-K3)PMR' MVEZJD<<.NPPKU@Z@>Y:672UOW1'],:<5G0OG5/".@0FT[Q1CJO;'%&1[>*F1 ME82J3?[1$P1UYQ\/C(3[=WD#B*5]^N'Z@_HEA@7^O__/_P502P,$% @ M/82I5,?Z"(?8!P LR4 !D !C9'AS7S(P,C(P,S,Q>&5X,S$Q_+-^?NS\6\?+ECJ\HQ]^/6[GR[/ M6*/5Z7P@0NIR\<2V>J4DQ\H-L!&6+#K'.M!GM=/V_8VII)3Q7V7ST[5CE MTK)WPR/]3Y& *3Y*NX'-X2,M>$$S%%5"&E(JG%Z=G$UOOS^\NSM^/+] MN\>/[!\?Q_#>,%PVV8\Z+=B/;?9.P:AMLE@:IY(YH_DT;62F@ N;(9,A@EPYER*09H2QE[ M!TEO"=>TP#"GZ"98-%^?AI<#PL&_!X22):I F DQJ[ V@4"(H]FLM:LB 8/X M1(7O<58)Z 1TUF+8!.P4L4Z)R!-H"G]B;E.69'IF%S@U@";RY=&&DEN&$ABB<=[% M-"0HMS^K>MH?;A%.=_G>M@#U=?NH1_-P+BUV 8B73VU_#:8F9=V85_;Q72C] M11+ J"V%A*HK P7@J*FRGOD@)0NOATKF%6>N\ZZ1&?=(JS/J"BW-FI.I48$_ MX8O5F1)^?VJKR"JAN%$T !7ROL\$!6FJ+.5BOS:M3]R>)[$!AD/8F?I.)0I* M%5<9)WK'L+P3JYR.'J%"6"]L\"V2) @&1G\IGL6XVX7D:(N0/!AN(OG1I+4! MZ,?3W:-QC;4P58+@RJTN./$ZMX Z%9B$86[$ D] N.*1RI2;4YJ_SRRM+@\] MCZJP,&Z)KA6H/GW59YQJ+XRB1!K:BFB(R]I^9;%A6/8.#P>'\9 MZ!&+CF!/&XK-2%?N80\>DR/X4EI2)9W\]?:'18L:W2]"&68"_GC D8&7 3JQ M1:"K>3/$&HK^60N_1FFOK\#N=34*7C:'H M]W"DPW8?Z)( QN"Q.]*UX]@[27^"0(<+1;7T:R]XE7*[K#>( 3WLI?"IP<]' M3=MSEJEKF=7'"7?DF\^>HF=#?:LV9?LO9U/F3QC%8ITT5UQ%U+F.U15M$=J> M4(-LU+-+[SAJ6J>-7:9]_P-4YKER3LI/)(9(H["@=J'@GU>R"T2#ARWQ//Y2 M9;U8AO+W2L%]O^2J(O8'#WO_WWO]@^G^;89:#;6C MQHPTM;YUA)@*-.VKPA8!%%6"K' C!)/G!U%GEW@.U%Y;DMV]S]!:Y/#&@CB8"+SWA 3K^S+K& M6#.D0E5,=3:5E \+/JF/WDW-D3(O,SV7:)VE.K BOX5@(.ZS% OMOXN#M:C? M'YYA^3[+L9SY_M=-[W3T^:OH;\X7KSN\7:[M73&BN;\>/CMH'W0.Z('>8/2<6 MANN[\[:_.^\XL=DV/&P?=1]N[K9[#[9])K4=[W)PFRYA2UZ\:0P:BPXU4$9= MYMEWJ>\3HOWRAH37[\L)9AO3J,LO#Q\_*:]VAEA8_O/.#?02^9]W9FH 8L0C MR#)_QL86X_S73-L7F:HGSD98AE]I0CY@VZXH@Y;]1\FL;OO.%3ZO"*TR@<%$_EQCL_*QQ[ MP]U5%QX!S)5[N,M#+\T\^ )1_1E>9_(O5IW^"5!+ P04 " ]A*E4#Q&> M:> ' "S)0 &0 &-D>'-?,C R,C S,S%X97@S,3)S<"YH=&WM6MMN&SD2 M?=^OX,C8C WH+ODF.P8RMH,Q,)-DO-H-]FE!-=D287:SAV1+UG[]GB);%UMV MQH:3B<;8/#CJ9K%8K#H\523[](>+C^?#?W^Z9!.?:?;IGS_]__L+ZS7:'#2W/G?+*Y%RW6I& MURU2U6]I8YQL"B]J9Z?T!G\E%V=_._VAT6 7)BDSF7N66,F]%*QT*A^SST*Z M&]9H5%+GIIA;-9YXUFUWN^RSL3=JRF.[5U[+LX6>TU9\/FV%04Y'1LS/3H6: M,B7>UM2HVVMWV^+P*!%I_U >'/7;_.C@8'2<)ESV.T?_Z<#(%L1C'^?G6KZM M92IO3"2-/^AWFX?[A3^9*>$G@TZ[_?=:$#T[34WN,9Y%__@SJME4QNT8^D;& M>Y,-CJ#+RUO?X%J-\T&89"TJ6W1(C#9VL-,._TZHI9'R3.GYX,>ARJ1C'^2, M79N,YS_6'0+3<-*J- HZ]5\)*S%(>)S%21Q"CU:Y7$RJTZ5I7-Y.U$AYUNLT MNW?G\%3K$P1 VN]B?C1#R,183L 7U\.K]U?G[X97'S\\?6;? M?![]!\-P58<6Y]B0SS%@G272>I7.F9]P_V9G_^CD&;$IN!!83@TM4S_H'2RB MI>";W \:G>\WRTYS,8T_?_2[;NFTF_ODABLVX5/)K)PJ.0,1^8ER[+>26T!: MS]FU+(SUS.3LO;$9Z[0;OS&3@IF$O%6NSJ[RI(GP'+^.\'2W+CP_<8>@P/W9 MG-WD9J:E&,MZC)*-L1$&)N0&N00C<)4SGL]9F7M;2LP V24D&@2-LPQ/5G'- M4I[@E64F _-Y$^4V!'*92.>XG9-(QF\DQEW3Z?!.P!@,J4.6PA@DD"B+K 2Q M'-U98"0VFZADPEQ)?U;]9]+*2@E-(%-.(WU1)IPI/\$$72&38"#I+6":$9CF M%-T$&\W7W?!Z0-C[ZX!0LE3E"#,A9A76.A (<33;M7:5IV"0D*7P.]&E@$Y M9RV&=L4B#R!EL"L]0J5%2#)A.>CR5[!VJZ+C4D.CW>Z.SO MRFA%9U_$I_BHJ#K,(TQ)/R/^6D-O1!/9\N2!TCL#I1B(YGD?TY"@W/ZBZFF_ MOT4XW>5[VP+4@^9QA_QP(1VV (A72&U_#*8Z9=V$E^[I72C]C22 48T4$ZHI M+12 HZ;*!>:#E,R#'BJ95YRYSKM6:AZ05F74%5KJ%2=3HP)_PA9GM!)A<^K* MD5-"<:MH BKF_9 )0GD]8&H)].=T_&-=;" M5 F"*WGCMII04=H"J':A+$FPY1;!@%"JCF6.:D,#W&B1!:T:$D$9'@&,U:4*,/@K M@G"R11".9'PYY;H,C$7QE6F*6E%-$1GW0,VW+"J>P,#Q\>$R," 6'<&>+A:; M(U/ZQRUX2H[@2VE)E73ZQ]L?-EK4Z&$1RN@)V!, 1P.\#M")+0)=Q9LQGINX MH&UX5<"%E@?!]PRVI*QNDJ2T%/VU%/J ULPXC_=T, E=+H&BW^.1#MM]I$L* M&(/'[DE7AF/O),,) ATNY.72KKUHU82[9;U!#!A@+T5(#<$?%6W/F58W4E?' M"??DZR]VT8NAOE6;LOW7LRD+)XQBL4[J*ZXBZES'ZHJV"&W/J$$VZMFE=1PU MK3?6+=-^> &56::\E_(+B6%D4%A0NU"P+RC9!:+!PXYX'O]39;U8AO+W4L'\ ML.3*/ D'#WO_WWM]PW3_3J-60^VH #?:\-+6.5$2X*A2]G(/-)/\AG)PK-U" M%@Y59S@"71P3/0MRU78E'C<\0&]!0!;@R M T+@I#"9*JL\>*#VRI+\]FV.WB&7IQ;444?@92 \0"><65<8J\=4J/*IT5-) M^3#GX^KHW58<*;-"F[E$ZVQB(BOR.P@&XKY*L=!\]G7? U>X6WA)> %G!TIE MO_+YFYW.0?ODN!XNQQ>F^[ [K,P:83U)VX!UFA=.#A8_3I"+"LWG Y6',4*G MD[N3I-ON*>4TE$/5/6]8'[&YN@@_/FX>M@_I+MS#>UXL!JZNR9OAFKSEQ69; M_ZAYW'Z\N=WL/-KVE=2V@LG1;#C&%3Q_6^O5%AVJ93!HL\"U2WU?$.T6MR2\ M?C5.BVC#C:;X\^$3G/)FIX]E%/ZN7S8O8?]UW5*A#],=0):%XS2VF.0S?191 M]YW?0#HNIO_)PI?%AU]C]02P,$% @ /82I5.2W MRD 6!0 Q< !D !C9'AS7S(P,C(P,S,Q>&5X,S(QKI]NA"UB38WDRB*$_OI;R38A+W2: M-DW:N>.#!WM7J]UG=Q^]=)\,QOW@X\D08K5(X.3#J[>C/E0LQSFM]QUG$ S@ M=?#N+31LUX- $IXQQ00GB>,,CRM0B95*?<=9K5;VJFX+>>8$$T>;:CB)$!FU M(Q55#KOZ"SXIB0[_Z#ZQ+!B(<+F@7$$H*5$T@F7&^!F<1C3[!)95:/5%NI;L M+%90MB="ZYP/HGC\[^YF9O&B#Q#>S.AE%CX+;2EZ(6R2,+. MN&^"K.3&R@&A2(3TG[KFU]$2:TX6+%G[SP.VH!D"#_;4[MLP'?:-]UY]WZW^\G[W MIM ;C$^"X>";X/YJF3]J("7L;?< QD<0O!["M#=YU3L>3JWQWV^''Z'7#[2D MYKJUN\;'>(2Q^1Y^J.SDA.\Q\_-0:MR*THA#*#BGH:9Y6#$5@XHIO%\2B:E+ MUC"AJ9 *Q!S9.:(7+*O"B(&/#,4-8,8 323.FD3?6 M^C&C<[2)[J4V9*@:25@BU7RE.78 M&6K1N)%(I'IYW1YS15-W0^'&E,@9X32SQA<)74,O-%G6W5!%.4'\]EN=.U1T M2J((%W4KH7/EUP^NU;CUB$5N*N%@$\O#NW 5&Z]A[VLL DQ"T5[S98*]%F)A M)+K(-X4OZ>3*=G6M9WR/8;!*\_;WHQ2:ME[VRZ9,BMUZ[WL"LMCNZ M2O_/[,_-+./(? MB>)5QDYHRV81I9DVQ_75>JUI,D@10&5U OBAX(:L6Q%GR M"#)U9/;CAF50:YGD92%2*LU,V36.L;\]R]^WCOW0J(>NE@$";%@-UYUUP8?Y MHE.ZKL@LH:5;,R$C*BWT+B%I1OWR3R=B69J0M<^XF<,,ZEP-4A\>SC6#XYI7 M[(9,S^3BXES1;MM-MZF/%@K14U$Y<7'JL,VIPU'135FC9;?=W6+7]G;*[LFL M8US.W=:K*E;;RTJ]4@XHVL)WP3/I+NU]1;667FCE[0VD;JH;,(KTXQDYGEM2[&I_/M%IBA C-A'7 K:/ ;]#]CUKOVU!A5=_Y MW/1K4,;CE=T6#5SN!35>) S%DBM]D[J;%1RS/?F1&\JO;^ZNW9BF(K\R]B5- MB":L&W>HE_5M)G8OAY 9%OE2[1ZRZVYIYX5L\&_4$L! A0#% M @ /82I5'1%Z#IFX0$ O_H4 !$ ( ! &-D>',M,C R M,C S,S$N:'1M4$L! A0#% @ /82I5/I[/;S9$0 -\0 !$ M ( !E>$! &-D>',M,C R,C S,S$N>'-D4$L! A0#% @ /82I5/AJ MO:/-& E? !4 ( !G?,! &-D>',M,C R,C S,S%?8V%L M+GAM;%!+ 0(4 Q0 ( #V$J5195Q[HA%P '\5! 5 " M 9T, @!C9'AS+3(P,C(P,S,Q7V1E9BYX;6Q02P$"% ,4 " ]A*E4EOH. M#=O< !9)@D %0 @ %4:0( 8V1X&UL4$L! A0#% @ /82I5-;P73_TBP [DL& !4 ( ! M8D8# &-D>',M,C R,C S,S%?<')E+GAM;%!+ 0(4 Q0 ( #V$J53'^@B' MV < +,E 9 " 8G2 P!C9'AS7S(P,C(P,S,Q>&5X,S$Q M'-?,C R,C S,S%X97@S,3)S<"YH=&U02P$"% ,4 " ] MA*E4Y+?*0!8% #%P &0 @ &OX@, 8V1X#,R,7-P+FAT;5!+!08 "0 ) %\" #\YP, ! end