0001092699-22-000015.txt : 20221027 0001092699-22-000015.hdr.sgml : 20221027 20221027161058 ACCESSION NUMBER: 0001092699-22-000015 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 88 CONFORMED PERIOD OF REPORT: 20220930 FILED AS OF DATE: 20221027 DATE AS OF CHANGE: 20221027 FILER: COMPANY DATA: COMPANY CONFORMED NAME: SPS COMMERCE INC CENTRAL INDEX KEY: 0001092699 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] IRS NUMBER: 411593154 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-34702 FILM NUMBER: 221337441 BUSINESS ADDRESS: STREET 1: 333 SOUTH SEVENTH STREET STREET 2: SUITE 1000 CITY: MINNEAPOLIS STATE: MN ZIP: 55402 BUSINESS PHONE: 612-435-9400 MAIL ADDRESS: STREET 1: 333 SOUTH SEVENTH STREET STREET 2: SUITE 1000 CITY: MINNEAPOLIS STATE: MN ZIP: 55402 10-Q 1 spsc-20220930.htm 10-Q spsc-20220930
000109269912-312022Q3false00010926992022-01-012022-09-3000010926992022-10-20xbrli:shares00010926992022-09-30iso4217:USD00010926992021-12-31iso4217:USDxbrli:shares00010926992022-07-012022-09-3000010926992021-07-012021-09-3000010926992021-01-012021-09-300001092699us-gaap:CommonStockMember2021-06-300001092699us-gaap:TreasuryStockMember2021-06-300001092699us-gaap:AdditionalPaidInCapitalMember2021-06-300001092699us-gaap:RetainedEarningsMember2021-06-300001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-06-3000010926992021-06-300001092699us-gaap:AdditionalPaidInCapitalMember2021-07-012021-09-300001092699us-gaap:CommonStockMember2021-07-012021-09-300001092699us-gaap:TreasuryStockMember2021-07-012021-09-300001092699us-gaap:RetainedEarningsMember2021-07-012021-09-300001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-07-012021-09-300001092699us-gaap:CommonStockMember2021-09-300001092699us-gaap:TreasuryStockMember2021-09-300001092699us-gaap:AdditionalPaidInCapitalMember2021-09-300001092699us-gaap:RetainedEarningsMember2021-09-300001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-09-3000010926992021-09-300001092699us-gaap:CommonStockMember2022-06-300001092699us-gaap:TreasuryStockMember2022-06-300001092699us-gaap:AdditionalPaidInCapitalMember2022-06-300001092699us-gaap:RetainedEarningsMember2022-06-300001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-06-3000010926992022-06-300001092699us-gaap:AdditionalPaidInCapitalMember2022-07-012022-09-300001092699us-gaap:CommonStockMember2022-07-012022-09-300001092699us-gaap:EmployeeStockMember2022-07-012022-09-300001092699us-gaap:TreasuryStockMember2022-07-012022-09-300001092699us-gaap:RetainedEarningsMember2022-07-012022-09-300001092699us-gaap:CommonStockMember2022-09-300001092699us-gaap:TreasuryStockMember2022-09-300001092699us-gaap:AdditionalPaidInCapitalMember2022-09-300001092699us-gaap:RetainedEarningsMember2022-09-300001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-09-300001092699us-gaap:CommonStockMember2020-12-310001092699us-gaap:TreasuryStockMember2020-12-310001092699us-gaap:AdditionalPaidInCapitalMember2020-12-310001092699us-gaap:RetainedEarningsMember2020-12-310001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-12-3100010926992020-12-310001092699us-gaap:AdditionalPaidInCapitalMember2021-01-012021-09-300001092699us-gaap:CommonStockMember2021-01-012021-09-300001092699us-gaap:TreasuryStockMember2021-01-012021-09-300001092699us-gaap:RetainedEarningsMember2021-01-012021-09-300001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-01-012021-09-300001092699us-gaap:CommonStockMember2021-12-310001092699us-gaap:TreasuryStockMember2021-12-310001092699us-gaap:AdditionalPaidInCapitalMember2021-12-310001092699us-gaap:RetainedEarningsMember2021-12-310001092699us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-12-310001092699us-gaap:AdditionalPaidInCapitalMember2022-01-012022-09-300001092699us-gaap:CommonStockMember2022-01-012022-09-300001092699us-gaap:EmployeeStockMember2022-01-012022-09-300001092699us-gaap:TreasuryStockMember2022-01-012022-09-300001092699us-gaap:RetainedEarningsMember2022-01-012022-09-300001092699spsc:GCommerceIncMember2022-07-192022-07-190001092699spsc:GCommerceIncMember2022-07-190001092699spsc:GCommerceIncMemberus-gaap:CustomerRelationshipsMember2022-07-190001092699spsc:GCommerceIncMemberus-gaap:CustomerRelationshipsMember2022-07-192022-07-190001092699spsc:GCommerceIncMemberus-gaap:TechnologyBasedIntangibleAssetsMember2022-07-190001092699spsc:GCommerceIncMemberus-gaap:TechnologyBasedIntangibleAssetsMember2022-07-192022-07-190001092699spsc:InterTradeSystemsIncMemberus-gaap:SubsequentEventMember2022-10-042022-10-040001092699spsc:RecurringRevenuesMemberspsc:FulfillmentMember2022-07-012022-09-300001092699spsc:RecurringRevenuesMemberspsc:FulfillmentMember2021-07-012021-09-300001092699spsc:RecurringRevenuesMemberspsc:FulfillmentMember2022-01-012022-09-300001092699spsc:RecurringRevenuesMemberspsc:FulfillmentMember2021-01-012021-09-300001092699spsc:AnalyticsMemberspsc:RecurringRevenuesMember2022-07-012022-09-300001092699spsc:AnalyticsMemberspsc:RecurringRevenuesMember2021-07-012021-09-300001092699spsc:AnalyticsMemberspsc:RecurringRevenuesMember2022-01-012022-09-300001092699spsc:AnalyticsMemberspsc:RecurringRevenuesMember2021-01-012021-09-300001092699spsc:RecurringRevenuesMemberspsc:OtherMember2022-07-012022-09-300001092699spsc:RecurringRevenuesMemberspsc:OtherMember2021-07-012021-09-300001092699spsc:RecurringRevenuesMemberspsc:OtherMember2022-01-012022-09-300001092699spsc:RecurringRevenuesMemberspsc:OtherMember2021-01-012021-09-300001092699spsc:RecurringRevenuesMember2022-07-012022-09-300001092699spsc:RecurringRevenuesMember2021-07-012021-09-300001092699spsc:RecurringRevenuesMember2022-01-012022-09-300001092699spsc:RecurringRevenuesMember2021-01-012021-09-300001092699spsc:OneTimeRevenuesMember2022-07-012022-09-300001092699spsc:OneTimeRevenuesMember2021-07-012021-09-300001092699spsc:OneTimeRevenuesMember2022-01-012022-09-300001092699spsc:OneTimeRevenuesMember2021-01-012021-09-300001092699srt:MinimumMember2022-01-012022-09-300001092699srt:MaximumMember2022-01-012022-09-300001092699spsc:SetUpFeesMember2022-06-300001092699spsc:SetUpFeesMember2021-06-300001092699spsc:SetUpFeesMember2021-12-310001092699spsc:SetUpFeesMember2020-12-310001092699spsc:SetUpFeesMember2022-07-012022-09-300001092699spsc:SetUpFeesMember2021-07-012021-09-300001092699spsc:SetUpFeesMember2022-01-012022-09-300001092699spsc:SetUpFeesMember2021-01-012021-09-300001092699spsc:SetUpFeesMember2022-09-300001092699spsc:SetUpFeesMember2021-09-300001092699us-gaap:CashEquivalentsMemberus-gaap:MoneyMarketFundsMember2022-09-300001092699us-gaap:CashEquivalentsMemberus-gaap:MoneyMarketFundsMember2021-12-310001092699us-gaap:CertificatesOfDepositMember2022-09-300001092699us-gaap:CertificatesOfDepositMember2021-12-310001092699spsc:MarketableSecuritiesMemberus-gaap:CommercialPaperMember2022-09-300001092699spsc:MarketableSecuritiesMemberus-gaap:CommercialPaperMember2021-12-310001092699spsc:MarketableSecuritiesMemberus-gaap:USTreasurySecuritiesMember2022-09-300001092699spsc:MarketableSecuritiesMemberus-gaap:USTreasurySecuritiesMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:MoneyMarketFundsMember2022-09-300001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:MoneyMarketFundsMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:MoneyMarketFundsMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:MoneyMarketFundsMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:MoneyMarketFundsMember2021-12-310001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:MoneyMarketFundsMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:MoneyMarketFundsMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:MoneyMarketFundsMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:CertificatesOfDepositMember2022-09-300001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:CertificatesOfDepositMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:CertificatesOfDepositMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:CertificatesOfDepositMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:CertificatesOfDepositMember2021-12-310001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:CertificatesOfDepositMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:CertificatesOfDepositMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:CertificatesOfDepositMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:CommercialPaperMember2022-09-300001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:CommercialPaperMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:CommercialPaperMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:CommercialPaperMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:CommercialPaperMember2021-12-310001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:CommercialPaperMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:CommercialPaperMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:CommercialPaperMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:USTreasurySecuritiesMember2022-09-300001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:USTreasurySecuritiesMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:USTreasurySecuritiesMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:USTreasurySecuritiesMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Memberus-gaap:USTreasurySecuritiesMember2021-12-310001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:USTreasurySecuritiesMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Memberus-gaap:USTreasurySecuritiesMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:USTreasurySecuritiesMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2022-09-300001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMember2022-09-300001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2021-12-310001092699us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2021-12-310001092699us-gaap:FairValueMeasurementsRecurringMember2021-12-310001092699spsc:InternallyDevelopedSoftwareMember2022-09-300001092699spsc:InternallyDevelopedSoftwareMember2021-12-310001092699us-gaap:ComputerEquipmentMember2022-09-300001092699us-gaap:ComputerEquipmentMember2021-12-310001092699us-gaap:LeaseholdImprovementsMember2022-09-300001092699us-gaap:LeaseholdImprovementsMember2021-12-310001092699spsc:OfficeEquipmentAndFurnitureMember2022-09-300001092699spsc:OfficeEquipmentAndFurnitureMember2021-12-310001092699us-gaap:CustomerRelationshipsMember2022-09-300001092699us-gaap:CustomerRelationshipsMember2021-01-012021-09-300001092699us-gaap:TechnologyBasedIntangibleAssetsMember2022-09-300001092699us-gaap:TechnologyBasedIntangibleAssetsMember2021-01-012021-09-300001092699us-gaap:CustomerRelationshipsMember2021-12-310001092699us-gaap:CustomerRelationshipsMember2021-01-012021-12-310001092699us-gaap:TechnologyBasedIntangibleAssetsMember2021-12-310001092699us-gaap:TechnologyBasedIntangibleAssetsMember2021-01-012021-12-3100010926992021-01-012021-12-31xbrli:pure0001092699spsc:A2019StockRepurchaseProgramMemberus-gaap:CommonStockMember2022-09-300001092699spsc:A2019StockRepurchaseProgramMemberus-gaap:CommonStockMember2022-01-012022-09-300001092699us-gaap:CommonStockMemberspsc:A2021StockRepurchaseProgramMember2022-09-300001092699us-gaap:CommonStockMemberspsc:A2021StockRepurchaseProgramMember2022-01-012022-09-300001092699us-gaap:CommonStockMemberspsc:A2022StockRepurchaseProgramMember2022-09-300001092699us-gaap:CostOfSalesMember2022-07-012022-09-300001092699us-gaap:CostOfSalesMember2021-07-012021-09-300001092699us-gaap:CostOfSalesMember2022-01-012022-09-300001092699us-gaap:CostOfSalesMember2021-01-012021-09-300001092699us-gaap:SellingAndMarketingExpenseMember2022-07-012022-09-300001092699us-gaap:SellingAndMarketingExpenseMember2021-07-012021-09-300001092699us-gaap:SellingAndMarketingExpenseMember2022-01-012022-09-300001092699us-gaap:SellingAndMarketingExpenseMember2021-01-012021-09-300001092699us-gaap:ResearchAndDevelopmentExpenseMember2022-07-012022-09-300001092699us-gaap:ResearchAndDevelopmentExpenseMember2021-07-012021-09-300001092699us-gaap:ResearchAndDevelopmentExpenseMember2022-01-012022-09-300001092699us-gaap:ResearchAndDevelopmentExpenseMember2021-01-012021-09-300001092699us-gaap:GeneralAndAdministrativeExpenseMember2022-07-012022-09-300001092699us-gaap:GeneralAndAdministrativeExpenseMember2021-07-012021-09-300001092699us-gaap:GeneralAndAdministrativeExpenseMember2022-01-012022-09-300001092699us-gaap:GeneralAndAdministrativeExpenseMember2021-01-012021-09-300001092699us-gaap:EmployeeStockOptionMember2022-07-012022-09-300001092699us-gaap:EmployeeStockOptionMember2021-07-012021-09-300001092699us-gaap:EmployeeStockOptionMember2022-01-012022-09-300001092699us-gaap:EmployeeStockOptionMember2021-01-012021-09-300001092699us-gaap:PerformanceSharesMember2022-07-012022-09-300001092699us-gaap:PerformanceSharesMember2021-07-012021-09-300001092699us-gaap:PerformanceSharesMember2022-01-012022-09-300001092699us-gaap:PerformanceSharesMember2021-01-012021-09-300001092699us-gaap:RestrictedStockUnitsRSUMember2022-07-012022-09-300001092699us-gaap:RestrictedStockUnitsRSUMember2021-07-012021-09-300001092699us-gaap:RestrictedStockUnitsRSUMember2022-01-012022-09-300001092699us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-09-300001092699spsc:RestrictedStockUnitsAndDeferredStockUnitsMember2022-07-012022-09-300001092699spsc:RestrictedStockUnitsAndDeferredStockUnitsMember2021-07-012021-09-300001092699spsc:RestrictedStockUnitsAndDeferredStockUnitsMember2022-01-012022-09-300001092699spsc:RestrictedStockUnitsAndDeferredStockUnitsMember2021-01-012021-09-300001092699spsc:EmployeeStockPurchasePlanMember2022-07-012022-09-300001092699spsc:EmployeeStockPurchasePlanMember2021-07-012021-09-300001092699spsc:EmployeeStockPurchasePlanMember2022-01-012022-09-300001092699spsc:EmployeeStockPurchasePlanMember2021-01-012021-09-300001092699spsc:FourZeroOneKStockMatchMember2022-07-012022-09-300001092699spsc:FourZeroOneKStockMatchMember2021-07-012021-09-300001092699spsc:FourZeroOneKStockMatchMember2022-01-012022-09-300001092699spsc:FourZeroOneKStockMatchMember2021-01-012021-09-300001092699us-gaap:EmployeeStockOptionMember2022-09-300001092699us-gaap:PerformanceSharesMember2021-01-012021-03-310001092699us-gaap:PerformanceSharesMember2019-01-012019-03-310001092699us-gaap:PerformanceSharesMember2020-01-012020-03-310001092699us-gaap:PerformanceSharesMember2022-01-012022-03-310001092699srt:MaximumMemberus-gaap:PerformanceSharesMember2022-01-012022-03-310001092699spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember2021-12-310001092699spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember2022-01-012022-09-300001092699spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember2022-09-300001092699spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMembersrt:MaximumMember2022-09-300001092699us-gaap:EmployeeStockMember2021-07-012021-09-300001092699us-gaap:EmployeeStockMember2021-01-012021-09-300001092699us-gaap:EmployeeStockMember2022-09-300001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionDomesticMember2022-07-012022-09-300001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionDomesticMember2021-07-012021-09-300001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionDomesticMember2022-01-012022-09-300001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionDomesticMember2021-01-012021-09-30spsc:jurisdiction0001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionForeignMembersrt:MaximumMember2022-01-012022-09-300001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionForeignMember2022-01-012022-09-300001092699us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMemberus-gaap:GeographicDistributionForeignMember2021-01-012021-12-31
UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
WASHINGTON, D.C. 20549
FORM 10-Q
(Mark One)
xQUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
For the Quarterly Period Ended: September 30, 2022
oTRANSITION 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-34702
SPS COMMERCE, INC.
spsc-20220930_g1.jpg
(Exact Name of Registrant as Specified in its Charter)
Delaware41-2015127
(State or other jurisdiction of
incorporation or organization)
(I.R.S. Employer
Identification No.)
333 South Seventh Street, Suite 1000, Minneapolis, MN 55402
(Address of principal executive offices, including Zip Code)
(612) 435-9400
(Registrant’s telephone number, including area code)
Securities registered pursuant to Section 12(b) of the Act:
Title of each classTrading SymbolName of exchange on which registered
Common Stock, par value $0.001 per shareSPSC
The Nasdaq Stock Market LLC (Nasdaq Global 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 x No o
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 x No o
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 filerxAccelerated filero
Non-accelerated fileroSmaller reporting companyo
Emerging growth companyo
If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. o
Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes o No x
The number of shares of the registrant’s common stock, par value $0.001 per share, outstanding at October 20, 2022 was 36,041,714 shares.


SPS COMMERCE, INC.
QUARTERLY REPORT ON FORM 10-Q
TABLE OF CONTENTS
Unless the context otherwise requires, for purposes of the Quarterly Report on Form 10-Q, the words “we,” “us,” “our,” the “Company,” “SPS,” and “SPS Commerce” refer to SPS Commerce, Inc.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
2
Form 10-Q for the Quarterly Period ended September 30, 2022

PART I. – FINANCIAL INFORMATION
Item 1. Financial Statements
SPS COMMERCE, INC. AND SUBSIDIARIES
CONDENSED CONSOLIDATED BALANCE SHEETS
(in thousands, except shares)September 30,
2022
December 31,
2021
ASSETS(unaudited)
Current assets
Cash and cash equivalents$186,230 $207,552 
Short-term investments50,928 49,758 
Accounts receivable40,445 38,811 
Allowance for credit losses(3,658)(4,249)
Accounts receivable, net36,787 34,562 
Deferred costs50,082 44,529 
Other assets15,246 16,042 
Total current assets339,273 352,443 
Property and equipment, net32,923 31,901 
Operating lease right-of-use assets9,760 10,851 
Goodwill165,908 143,663 
Intangible assets, net70,742 58,587 
Other assets 
Deferred costs, non-current16,474 15,191 
Deferred income tax assets223 182 
Other assets, non-current1,787 3,028 
Total assets$637,090 $615,846 
LIABILITIES AND STOCKHOLDERS’ EQUITY 
Current liabilities  
Accounts payable$8,200 $8,330 
Accrued compensation28,779 31,661 
Accrued expenses5,202 8,345 
Deferred revenue58,949 50,428 
Operating lease liabilities4,336 4,108 
Total current liabilities105,466 102,872 
Other liabilities  
Deferred revenue, non-current5,146 5,144 
Operating lease liabilities, non-current13,974 16,426 
Deferred income tax liabilities4,841 7,145 
Total liabilities129,427 131,587 
Commitments and contingencies
Stockholders' equity  
Preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding
  
Common stock, $0.001 par value; 110,000,000 shares authorized; 38,184,747 and 37,798,610 shares issued; and 36,037,964 and 36,009,257 shares outstanding, respectively
38 38 
Treasury Stock, at cost; 2,146,783 and 1,789,353 shares, respectively
(128,377)(85,677)
Additional paid-in capital463,356 433,258 
Retained earnings177,306 138,087 
Accumulated other comprehensive loss(4,660)(1,447)
Total stockholders’ equity507,663 484,259 
Total liabilities and stockholders’ equity$637,090 $615,846 
See accompanying notes to these condensed consolidated financial statements.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
3
Form 10-Q for the Quarterly Period ended September 30, 2022

SPS COMMERCE, INC. AND SUBSIDIARIES
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except per share amounts) (unaudited)2022202120222021
Revenues$114,486 $97,887 $328,857 $282,520 
Cost of revenues38,605 34,343 111,524 96,043 
Gross profit75,881 63,544 217,333 186,477 
Operating expenses
Sales and marketing25,334 22,079 74,571 65,386 
Research and development11,135 10,854 33,268 28,459 
General and administrative16,724 14,691 49,390 45,186 
Amortization of intangible assets2,998 2,399 7,936 7,734 
Total operating expenses56,191 50,023 165,165 146,765 
Income from operations19,690 13,521 52,168 39,712 
Other expense, net(695)(716)(1,610)(1,424)
Income before income taxes18,995 12,805 50,558 38,288 
Income tax expense3,132 1,356 11,339 6,456 
Net income$15,863 $11,449 $39,219 $31,832 
Other comprehensive income (expense)
Foreign currency translation adjustments(2,296)(968)(3,309)(604)
Unrealized gain (loss) on investments, net of tax of $53, ($9), $49 and ($36), respectively
158 (27)147 (107)
Reclassification of (gain) loss on investments into earnings, net of tax of ($13), $16, ($17) and $46, respectively
(39)48 (51)138 
Total other comprehensive expense(2,177)(947)(3,213)(573)
Comprehensive income$13,686 $10,502 $36,006 $31,259 
Net income per share
Basic$0.44 $0.32 $1.09 $0.89 
Diluted$0.43 $0.31 $1.06 $0.86 
Weighted average common shares used to compute net income per share
Basic36,093 35,961 36,104 35,873 
Diluted36,915 37,015 36,942 36,898 
See accompanying notes to these condensed consolidated financial statements.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
4
Form 10-Q for the Quarterly Period ended September 30, 2022

SPS COMMERCE, INC. AND SUBSIDIARIES
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY
Common StockTreasury Stock Additional
Paid-in
Capital
Retained
Earnings
Accumulated Other Comprehensive LossTotal
Stockholders'
Equity
(in thousands, except shares) (unaudited)Shares AmountSharesAmount
Balances, June 30, 202135,859,353 $38 1,676,765 $(71,697)$413,182 $113,873 $(647)$454,749 
Stock-based compensation— — — — 6,361 — — 6,361 
Shares issued pursuant to stock awards145,658  — — 2,997 — — 2,997 
Employee stock purchase plan activity1,526 — — — 130 — — 130 
Repurchases of common stock(42,299)— 42,299 (4,211)— — — (4,211)
Net income— — — — — 11,449 — 11,449 
Foreign currency translation adjustments— — — — — — (968)(968)
Unrealized loss on investments, net of tax— — — — — — (27)(27)
Reclassification of loss on investments into earnings, net of tax— — — — — — 48 48 
Balances, September 30, 202135,964,238 $38 1,719,064 $(75,908)$422,670 $125,322 $(1,594)$470,528 
Balances, June 30, 202236,029,477 $38 2,044,549 $(115,900)$453,922 $161,443 $(2,483)$497,020 
Stock-based compensation— — — — 7,429 — — 7,429 
Shares issued pursuant to stock awards108,240 — — — 1,767 — — 1,767 
Employee stock purchase plan activity2,481 — — — 238 — — 238 
Repurchases of common stock(102,234)— 102,234 (12,477)— — — (12,477)
Net income— — — — — 15,863 — 15,863 
Foreign currency translation adjustments— — — — — — (2,296)(2,296)
Unrealized gain on investments, net of tax— — — — — — 158 158 
Reclassification of gain on investments into earnings, net of tax— — — — — — (39)(39)
Balances, September 30, 202236,037,964 $38 2,146,783 $(128,377)$463,356 $177,306 $(4,660)$507,663 
Common StockTreasury Stock Additional
Paid-in
Capital
Retained
Earnings
Accumulated Other Comprehensive LossTotal
Stockholders'
Equity
Shares AmountSharesAmount
Balances, December 31, 202035,487,217 $37 1,613,250 $(65,247)$393,462 $93,490 $(1,021)$420,721 
Stock-based compensation— — — — 19,866 — — 19,866 
Shares issued pursuant to stock awards555,160 1 — — 7,026 — — 7,027 
Employee stock purchase plan activity27,675 — — — 2,316 — — 2,316 
Repurchases of common stock(105,814)— 105,814 (10,661)— — — (10,661)
Net income— — — — — 31,832 — 31,832 
Foreign currency translation adjustments— — — — — — (604)(604)
Unrealized loss on investments, net of tax— — — — — — (107)(107)
Reclassification of loss on investments into earnings, net of tax— — — — — — 138 138 
Balances, September 30, 202135,964,238 $38 1,719,064 $(75,908)$422,670 $125,322 $(1,594)$470,528 
        
Balances, December 31, 202136,009,257 $38 1,789,353 $(85,677)$433,258 $138,087 $(1,447)$484,259 
Stock-based compensation— — — — 24,053 — — 24,053 
Shares issued pursuant to stock awards348,621 — — — 2,457 — — 2,457 
Employee stock purchase plan activity37,516 — — — 3,588 — — 3,588 
Repurchases of common stock(357,430)— 357,430 (42,700)— — — (42,700)
Net income— — — — — 39,219 — 39,219 
Foreign currency translation adjustments— — — — — — (3,309)(3,309)
Unrealized gain on investments, net of tax— — — — — — 147 147 
Reclassification of gain on investments into earnings, net of tax— — — — — — (51)(51)
Balances, September 30, 202236,037,964 $38 2,146,783 $(128,377)$463,356 $177,306 $(4,660)$507,663 
See accompanying notes to these condensed consolidated financial statements..
spsc-20220930_g2.jpgSPS COMMERCE, INC.
5
Form 10-Q for the Quarterly Period ended September 30, 2022

SPS COMMERCE, INC. AND SUBSIDIARIES
CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS
Nine Months Ended
September 30,
(in thousands) (unaudited)20222021
Cash flows from operating activities
Net income$39,219 $31,832 
Reconciliation of net income to net cash provided by operating activities
Deferred income taxes(2,092)1,013 
Depreciation and amortization of property and equipment11,983 10,989 
Amortization of intangible assets7,936 7,734 
Provision for credit losses2,889 4,037 
Stock-based compensation25,636 21,273 
Other, net43 234 
Changes in assets and liabilities, net of effects of acquisition
Accounts receivable(3,999)(5,327)
Deferred costs(7,174)(5,686)
Other current and non-current assets2,202 (3,893)
Accounts payable129 (1,518)
Accrued compensation(4,388)6,617 
Accrued expenses(3,035)(174)
Deferred revenue8,261 13,401 
Operating leases(1,127)1,036 
Net cash provided by operating activities76,483 81,568 
Cash flows from investing activities
Purchases of property and equipment(13,894)(15,567)
Purchases of investments(134,276)(84,020)
Maturities of investments132,500 67,500 
Acquisition of business, net(44,923) 
Net cash used in investing activities(60,593)(32,087)
Cash flows from financing activities
Repurchases of common stock(42,700)(10,661)
Net proceeds from exercise of options to purchase common stock2,457 7,027 
Net proceeds from employee stock purchase plan activity3,588 2,316 
Payments for contingent consideration (2,042)
Net cash used in financing activities(36,655)(3,360)
Effect of foreign currency exchange rate changes(557)(10)
Net increase (decrease) in cash and cash equivalents(21,322)46,111 
Cash and cash equivalents at beginning of period207,552 149,692 
Cash and cash equivalents at end of period$186,230 $195,803 
See accompanying notes to these condensed consolidated financial statements.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
6
Form 10-Q for the Quarterly Period ended September 30, 2022

SPS COMMERCE, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS
(UNAUDITED)
NOTE A – General
Business Description
SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf.
The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services we provide enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, to help ensure that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements.
Basis of Presentation
The accompanying unaudited condensed consolidated financial statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements.
This interim financial information has been prepared under the instructions to Form 10-Q and Rule 10-01 of Regulation S-X. Accordingly, these condensed consolidated financial statements do not include all of the information and notes required by GAAP. Therefore, these condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and notes included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the Securities and Exchange Commission (“SEC”). We have included all normal recurring adjustments considered necessary to provide a fair presentation of our financial position, results of operations, stockholders’ equity, and cash flows for the interim periods presented. Operating results for these interim periods are not necessarily indicative of the results to be expected for the full year.
Use of Estimates
Preparing financial statements in conformity with GAAP requires management to make estimates, judgments and assumptions that affect the reported amounts of assets and liabilities, disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the reporting periods. Actual results could differ from those estimates.
Significant Accounting Policies
There were no material changes in our significant accounting policies during the nine months ended September 30, 2022. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, for additional information regarding our significant accounting policies.
Accounting Pronouncements Not Yet Adopted
StandardDate of IssuanceDescriptionDate of Required AdoptionEffect on the Financial Statements
ASU 2021-08, Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers
October 2021This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter.
January 2023The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
7
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE B – Business Acquisitions
GCommerce
Effective July 19, 2022, we acquired all of the outstanding equity ownership interests of GCommerce, Inc. ("GCommerce"), a leading EDI provider within the automotive aftermarket industry. Pursuant to the definitive agreement, the purchase price of $45 million was paid in cash at closing, and is subject to customary post-closing adjustments. The purchase accounting for the acquisition has not been finalized as of September 30, 2022. Provisional amounts are primarily related to intangible assets, net working capital, and tax positions. We expect to finalize the allocation of the purchase price within the one-year measurement period following the acquisition.
Purchase Price Allocation
We accounted for the acquisition as a business combination. We allocated the purchase price to the tangible and identifiable intangible assets acquired and liabilities assumed based on their estimated fair values as of the acquisition date. The excess of the purchase price over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. Goodwill is attributed to a trained workforce and other buyer-specific value resulting from expected synergies, including long-term cost savings, which are not included in the fair values of identifiable assets.
The following table summarizes the estimated fair values of the assets acquired and liabilities assumed at the acquisition date:
(in thousands)Estimated Fair Value
Cash$230 
Accounts receivable467 
Other current assets288 
Operating lease right-of-use asset934 
Goodwill24,556 
Intangible assets20,250 
Deferred income tax assets5,291 
Accounts payable(266)
Accrued compensation(321)
Deferred revenue(262)
Operating lease liability(934)
Deferred income tax liabilities(5,144)
$45,089 
Purchased Intangible Assets
The following table summarizes the estimated fair value of the purchased intangible assets and their estimated useful lives, each of which are subject to finalization:
($ in thousands)Estimated
Fair Value
Weighted Average
Estimated
Useful Life
Subscriber relationships$18,225 8.0 years
Acquired technology2,025 5.0 years
Total$20,250 
InterTrade
Effective October 4, 2022, we acquired all of the outstanding equity ownership interests of Canadian based InterTrade Systems Inc. ("InterTrade"), a leading EDI provider within the apparel and general merchandising markets. Pursuant to the definitive agreement, the purchase price of $49 million was paid in cash at closing, and is subject to customary post-closing adjustments.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
8
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE C – Revenue
We derive our revenues from the following revenue streams:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Recurring revenues:
Fulfillment$92,952 $78,106 $265,570 $224,738 
Analytics11,902 10,858 34,846 31,383 
Other1,699 1,435 4,867 4,019 
Recurring revenues106,553 90,399 305,283 260,140 
One-time revenues7,933 7,488 23,574 22,380 
Total revenue$114,486 $97,887 $328,857 $282,520 
Revenues are the amount that reflects the consideration we are contractually and legally entitled to, as well as the amount we expect to collect, in exchange for those services.
Recurring Revenues
Recurring revenues consist of recurring subscriptions from customers that utilize our Fulfillment, Analytics, and Other supply chain management products. Revenue for these products is generally recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Our contracts with our recurring revenue customers are recurring in nature, generally ranging from monthly to annual, and generally allow the customer to cancel the contract for any reason with 30 to 90 days’ notice. Timing of billings varies by customer and by contract type and generally are either in advance or within 30 days of the service being performed.
Given that the recurring revenue contracts are for one year or less, we have applied the optional exemption to not disclose information about the remaining performance obligations for recurring revenue contracts.
One-time Revenues
One-time revenues consist of set-up fees and miscellaneous fees from customers.
Set-up revenues
Set-up fees are specific for each connection a customer has with a trading partner. These nonrefundable fees are necessary for our customers to utilize our services and do not provide any standalone value. Many of our customers have connections with numerous trading partners.
Set-up fees constitute a material renewal option right that provide customers a significant future incentive that would not be otherwise available to that customer unless they entered into the contract, as the set-up fees will not be incurred again upon contract renewal. As such, set-up fees and related costs are deferred and recognized ratably over two years which is the estimated period for which a material right is present for our customers.
The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Balance, beginning of period$15,309 $13,344 $14,459 $11,118 
Invoiced set-up fees3,715 3,622 11,776 11,832 
Recognized set-up fees(3,805)(3,245)(11,016)(9,229)
Balance, end of period$15,219 $13,721 $15,219 $13,721 
The entire balance of deferred set-up fees will be recognized within two years. Those that will be recognized within the next year are classified as current, whereas the remainder are classified as non-current.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
9
Form 10-Q for the Quarterly Period ended September 30, 2022

Miscellaneous one-time revenues
Miscellaneous one-time fees consist of professional services and testing and certification.
The contract period for these one-time fees is for one year or less and recognized at the time service is provided. We have applied the optional exemption to not disclose information about the remaining performance obligations for miscellaneous one-time fee contracts since they have original durations of one year or less.
NOTE D – Deferred Costs
The deferred costs activity was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Balance, beginning of period$64,665 $53,841 $59,720 $50,595 
Incurred deferred costs17,442 16,459 52,860 45,922 
Amortized deferred costs(15,551)(14,207)(46,024)(40,424)
Balance, end of period$66,556 $56,093 $66,556 $56,093 
NOTE E – Financial Instruments
Cash Equivalents and Investments
Cash equivalents and investments consisted of the following:
September 30, 2022December 31, 2021
(in thousands)Amortized CostUnrealized Gains, netFair ValueAmortized CostUnrealized Gains (Losses), netFair Value
Cash equivalents:
Money market funds$111,498 $ $111,498 $138,205 $ $138,205 
Certificates of deposit6,437  6,437 7,268  7,268 
Marketable securities:
Commercial paper44,358 133 44,491 34,984 7 34,991 
U.S. treasury securities   7,500 (1)7,499 
$162,293 $133 $162,426 $187,957 $6 $187,963 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
10
Form 10-Q for the Quarterly Period ended September 30, 2022

Recurring Fair Value Measurements
The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis:
September 30, 2022December 31, 2021
(in thousands)Level 1Level 2Level 3TotalLevel 1Level 2Level 3Total
Assets:
Cash equivalents:
Money market funds$111,498 $ $ $111,498 $138,205 $ $ $138,205 
Certificates of deposit6,437   6,437 7,268   7,268 
Marketable securities:
Commercial paper 44,491  44,491  34,991  34,991 
U.S. treasury securities     7,499  7,499 
$117,935 $44,491 $ $162,426 $145,473 $42,490 $ $187,963 
See Note E to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, for additional information regarding the three levels of inputs that may be used to measure fair value.
NOTE F – Allowance for Credit Losses
The allowance for credit losses activity, included in accounts receivable, net, was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Balance, beginning of period$4,249 $4,233 
Provision for credit losses2,889 4,037 
Write-offs, net of recoveries(3,480)(3,666)
Balance, end of period$3,658 $4,604 
NOTE G – Property and Equipment, Net
Property and equipment, net consisted of the following:
(in thousands)September 30,
2022
December 31, 2021
Internally developed software$50,311 $44,981 
Computer equipment32,520 29,329 
Leasehold improvements16,871 16,685 
Office equipment and furniture11,157 10,972 
Property and equipment, cost110,859 101,967 
Less: accumulated depreciation and amortization(77,936)(70,066)
Total property and equipment, net$32,923 $31,901 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
11
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE H – Goodwill and Intangible Assets, Net
Goodwill
The activity in goodwill was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Balance, beginning of period$143,663 $134,853 
Addition from business acquisition24,556  
Foreign currency translation(2,311)(441)
Remeasurement from provisional purchase accounting amount 268 
Balance, end of period$165,908 $134,680 
Intangible Assets
Intangible assets, net consisted of the following:
September 30, 2022
($ in thousands)Gross
Carrying
Amount
Accumulated
Amortization
Foreign
Currency
Translation
NetWeighted Average Remaining Amortization Period
Subscriber relationships$79,365 $(35,823)$(159)$43,383 6.6 years
Acquired technology37,351 (9,992) 27,359 6.0 years
$116,716 $(45,815)$(159)$70,742 6.4 years
December 31, 2021
($ in thousands)Gross
Carrying
Amount
Accumulated
Amortization
Foreign
Currency
Translation
NetWeighted Average Remaining Amortization Period
Subscriber relationships$61,270 $(29,866)$(1,395)$30,009 6.4 years
Acquired technology35,316 (6,738) 28,578 6.8 years
$96,586 $(36,604)$(1,395)$58,587 6.6 years
The estimated future annual amortization expense related to intangible assets is as follows:
(in thousands) 
Remainder of 2022$3,112 
202312,379 
202411,217 
202511,079 
202610,075 
Thereafter22,880 
Total future amortization$70,742 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
12
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE I – Commitments and Contingencies
Leases
The components of lease expense were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Operating lease cost$788 $873 $2,287 $2,309 
Variable lease cost963 976 2,612 2,694 
$1,751 $1,849 $4,899 $5,003 
Supplemental cash flow information related to leases was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Cash paid for amounts included in the measurement of lease liabilities  
Operating cash flows from operating leases$3,399 $2,488 
Right-of-use assets obtained in exchange for operating lease liabilities934  
Supplemental balance sheet information related to operating leases was as follows:
September 30,
2022
December 31, 2021
Weighted-average remaining lease term4.2 years4.8 years
Weighted-average discount rate4.0 %4.0 %
At September 30, 2022, our future minimum payments under operating leases were as follows:
(in thousands)
Remainder of 2022$1,515 
20234,871 
20244,474 
20254,088 
20263,760 
Thereafter1,266 
Total future gross payments$19,974 
Less: imputed interest(1,664)
Total operating lease liabilities$18,310 
Purchase Commitments
We have entered into separate noncancelable agreements with computing infrastructure, customer relationship management, and performance and security data analytics vendors for services through 2025. At September 30, 2022, the total remaining purchase commitments were $7.4 million.


spsc-20220930_g2.jpgSPS COMMERCE, INC.
13
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE J – Stockholders’ Equity
Share Repurchase Programs
Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the programs and activity thereunder through September 30, 2022 were as follows:
(in thousands)Effective DateExpiration DateShare Value Authorized for RepurchaseShare Value RepurchasedUnused & Expired Share Repurchase ValueShare Value Available for Future Repurchase
2019 ProgramNovember 2019November 2021$50,000$29,611 $20,389  N/A
2021 ProgramNovember 2021August 202250,00049,992 8 N/A
2022 ProgramAugust 2022July 202450,0002,477 N/A$47,523 
The share repurchase activity by period was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except shares and per share amounts)2022202120222021
Number of shares repurchased102,234 42,299 357,430 105,814 
Shares repurchased cost$12,477 $4,211 $42,700 $10,661 
Average price per repurchased share$122.04 $99.55 $119.46 $100.75 
NOTE K – Stock-Based Compensation
Our equity compensation plans provide for the grant of incentive and nonqualified stock options, as well as other stock-based awards including performance share units (“PSUs”), restricted stock awards (“RSAs”), restricted stock units (“RSUs”), and deferred stock units (“DSUs”), to employees, non-employee directors and other consultants who provide services to us. We also provide an employee stock purchase plan (“ESPP”) and 401(k) match to eligible participants.
We recognize stock-based compensation expense based on grant date award fair value. This cost is recognized over the period for which the employee is required to provide service in exchange for the award or the award performance period, except for expenses relating to retirement-eligible employees that have not given their required notice, which is recognized on a pro-rata basis over the notice period prior to retirement. At September 30, 2022, there were 13.2 million shares available for grant under approved equity compensation plans.
Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Cost of revenues$2,146 $1,696 $6,477 $4,945 
Operating expenses   
Sales and marketing1,845 1,634 5,835 4,854 
Research and development1,396 1,195 4,250 3,212 
General and administrative2,573 2,324 9,074 8,262 
$7,960 $6,849 $25,636 $21,273 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
14
Form 10-Q for the Quarterly Period ended September 30, 2022

Stock-based compensation expense by grant type or plan was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Stock options$461 $496 $1,401 $1,569 
PSUs1,541 1,342 6,244 5,357 
RSUs4,735 4,039 14,467 11,577 
RSAs & DSUs110 109 328 325 
ESPP577 376 1,609 1,038 
401(k) stock match536 487 1,587 1,407 
$7,960 $6,849 $25,636 $21,273 
As of September 30, 2022, there was $42.1 million of unrecognized stock-based compensation expense under our equity compensation plans, which is expected to be recognized on a primarily straight-line basis over a weighted average period of 2.5 years.
Stock Options
Our stock option activity was as follows:
Nine Months Ended
September 30, 2022
Options (#) Weighted Average
Exercise Price
($/share)
Outstanding, beginning of period678,650 $44.76 
Granted49,085 122.64 
Exercised(79,089)31.07 
Forfeited(6,711)89.21 
Outstanding, end of period641,935 $51.94 
Of the total outstanding options at September 30, 2022, 0.5 million were exercisable. The outstanding and exercisable options had a weighted average exercise price of $43.96 per share and a weighted average remaining contractual life of 2.9 years.
The weighted average grant date fair value of options granted during the nine months ended September 30, 2022 was $40.95 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions:
Life (in years)4.3
Volatility37.5 %
Dividend yield 
Risk-free interest rate2.2 %
Performance Share Units, Restricted Stock Units and Awards, and Deferred Stock Units
In each of the quarters ended March 31, 2022, 2021, 2020, and 2019 we granted PSU awards with a target performance level. These awards are earned based upon our Company’s total shareholder return as compared to an indexed total shareholder return over the course of a fiscal based three-year performance period, starting in the year of grant. Earned awards vest in the quarter following the conclusion of the performance period. In the three months ended March 31, 2022, PSU awards granted in 2019 vested at the maximum performance level and less than 0.1 million shares of common stock were issued.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
15
Form 10-Q for the Quarterly Period ended September 30, 2022

Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows:
Nine Months Ended
September 30, 2022
#Weighted Average Grant
Date Fair Value
($/share)
Outstanding, beginning of period702,160 $78.03 
Granted284,739 126.88 
Vested and common stock issued(268,607)63.04 
Forfeited(21,114)96.81 
Outstanding, end of period697,178 $103.19 
The number of PSUs, RSUs, RSAs, and DSUs outstanding at September 30, 2022 included less than 0.1 million units that have vested, but the shares of common stock have not yet been issued, pursuant to the terms of the underlying agreements.
Employee Stock Purchase Plan
Our ESPP activity was as follows:

Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except shares)2022202120222021
Amounts for shares purchased$238 $130 $3,588 $2,316 
Shares purchased2,481 1,526 37,516 27,675 
A total of 1.8 million shares of common stock are reserved for issuance under the ESPP as of September 30, 2022.
The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the following assumptions:
Life (in years)0.5
Volatility37.4 %
Dividend yield 
Risk-free interest rate0.2 %
NOTE L – Income Taxes
We record our interim provision for income taxes by applying our estimated annual effective tax rate to our year-to-date pre-tax income and adjust the provision for discrete tax items recorded in the period. Differences between our effective tax rate and statutory tax rates are primarily due to the impact of permanently non-deductible expenses partially offset by the federal research and development credits and tax benefits associated with foreign-derived intangible income. Additionally, excess tax benefits generated upon settlement or exercise of stock awards are recognized as a reduction to income tax expense as a discrete tax item in the quarter that the event occurs, creating potentially significant fluctuation in tax expense by quarter and by year. Our provisions for income taxes includes current federal, state, and foreign income tax expense, as well as deferred tax expense.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
16
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE M – Other Income and Expense
Other expense, net included the following:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Investment income$586 $66 $806 $242 
Realized loss from foreign currency on cash and investments held(1,151)(854)(2,010)(1,492)
Other income (expense), net(130)72 (406)(174)
Total other expense, net$(695)$(716)$(1,610)$(1,424)
NOTE N – Net Income Per Share
The components and computation of basic and diluted net income per share were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except per share amounts)2022202120222021
Numerator
Net income$15,863 $11,449 $39,219 $31,832 
Denominator    
Weighted average common shares outstanding, basic36,093 35,961 36,104 35,873 
Options to purchase common stock379 520 396 533 
PSUs, RSUs, RSAs, and DSUs443 534 442 492 
Weighted average common shares outstanding, diluted36,915 37,015 36,942 36,898 
Net income per share    
Basic$0.44 $0.32 $1.09 $0.89 
Diluted$0.43 $0.31 $1.06 $0.86 
The number of outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Anti-dilutive shares107 34 222 46 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
17
Form 10-Q for the Quarterly Period ended September 30, 2022

NOTE O – Geographic Information
Revenue
The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S., was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
2022202120222021
Domestic revenue85 %84 %84 %84 %
No single jurisdiction outside of the U.S. had revenues in excess of 10%.
Property and Equipment
The percentage of property and equipment, net located at subsidiary and office locations outside of the U.S. was as follows:
September 30,
2022
December 31, 2021
International property and equipment13 %12 %
spsc-20220930_g2.jpgSPS COMMERCE, INC.
18
Form 10-Q for the Quarterly Period ended September 30, 2022

Item 2.    Management’s Discussion and Analysis of Financial Condition and Results of Operations
This Quarterly Report on Form 10-Q contains forward-looking statements within the meaning of the U.S. Private Securities Litigation Reform Act of 1995. Forward looking statements regarding us, our business prospects and our results of operations are subject to certain risks and uncertainties posed by many factors and events that could cause our actual business, prospects and results of operations to differ materially from those that may be anticipated by such forward-looking statements. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of the date of this report. In some cases, you can identify forward-looking statements by the following words: “anticipate,” “assume,” “believe,” “continue,” “could,” “estimate,” “expect,” “intend,” “may,” “ongoing,” “plan,” “potential,” “predict,” “project,” “should,” “will,” “would,” or the negative of these terms or other comparable terminology, although not all forward-looking statements contain these words. Similarly, statements that describe our future plans, objectives or goals are also forward-looking. Forward-looking statements may also be made from time to time in oral presentations, including telephone conferences and/or webcasts open to the public. Shareholders, potential investors, and others are cautioned that all forward-looking statements involve risks and uncertainties that could cause results in future periods to differ materially from those anticipated by some of the statements made in this report, including the risks and uncertainties described under the heading “Risk Factors” appearing in our Annual Report on Form 10-K for the year ended December 31, 2021, as may be updated in our subsequent Quarterly Reports on Form 10-Q from time to time. We expressly disclaim any intent or obligation to update or revise any forward-looking statements, whether as a result of new information, future events or otherwise. Readers are urged to carefully review and consider the various disclosures made by us in this report and in our other reports filed with the Securities and Exchange Commission (“SEC”) that advise interested parties of the risks and factors that may affect our business.
Overview
SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf.
The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services we provide enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, to help ensure that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements.
We plan to continue to grow our business by further penetrating the supply chain management market, increasing revenues from our customers as their businesses grow, expanding our distribution channels, expanding our international presence and, from time to time, developing new products and applications. We also intend to selectively pursue acquisitions that will add customers, allow us to expand into new regions, or allow us to offer new functionalities.
Key Financial Terms, Metrics and Non-GAAP Measures
We have several key financial terms and metrics, as discussed in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, under the heading “Management’s Discussion and Analysis of Financial Condition and Results of Operations.
To supplement our financial statements, we provide investors with Adjusted EBITDA, Adjusted EBITDA Margin, and non-GAAP income per share, all of which are non-GAAP financial measures. We believe that these non-GAAP measures provide useful information to our management, board of directors, and investors regarding certain financial and business trends relating to our financial condition and results of operations.
Our management uses these non-GAAP measures to compare our performance to that of prior periods for trend analyses and planning purposes. Adjusted EBITDA is also used for purposes of determining executive and senior management incentive compensation. We believe these non-GAAP financial measures are useful to an investor as they are widely used in evaluating operating performance. Adjusted EBITDA and Adjusted EBITDA Margin are used to measure operating performance without regard to items such as depreciation and amortization, which can vary depending upon accounting methods and the book value of assets, and to present a meaningful measure of corporate performance exclusive of capital structure and the method by which assets were acquired.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
19
Form 10-Q for the Quarterly Period ended September 30, 2022

These non-GAAP measures should not be considered a substitute for, or superior to, financial measures calculated in accordance with GAAP. These non-GAAP financial measures exclude significant expenses and income that are required by GAAP to be recorded in our financial statements and are subject to inherent limitations. Investors should review the reconciliations of non-GAAP financial measures to the comparable GAAP financial measures that are included in this “Management’s Discussion and Analysis of Financial Condition and Results of Operations.
Results of Operations
Three Months Ended September 30, 2022 Compared to Three Months Ended September 30, 2021
The following table presents our results of operations for the periods indicated:
Three Months Ended September 30,
20222021Change
($ in thousands)$
% of revenue(1)
$
% of revenue(1)
$%
Revenues$114,486 100.0 %$97,887 100.0 %$16,599 17.0 %
Cost of revenues38,605 33.7 34,343 35.1 4,262 12.4 
Gross profit75,881 66.3 63,544 64.9 12,337 19.4 
Operating expenses
Sales and marketing25,334 22.1 22,079 22.5 3,255 14.7 
Research and development11,135 9.7 10,854 11.1 281 2.6 
General and administrative16,724 14.6 14,691 15.0 2,033 13.8 
Amortization of intangible assets2,998 2.6 2,399 2.5 599 25.0 
Total operating expenses56,191 49.1 50,023 51.1 6,168 12.3 
Income from operations19,690 17.2 13,521 13.8 6,169 45.6 
Other expense, net(695)(0.6)(716)(0.7)21 (2.9)
Income before income taxes18,995 16.6 12,805 13.1 6,190 48.3 
Income tax expense3,132 2.7 1,356 1.4 1,776 131.0 
Net income$15,863 13.9 %$11,449 11.7 %$4,414 38.6 %
(1) Amounts in column may not foot due to rounding
Revenues - Revenues increased for the 87th consecutive quarter. The increase in revenue resulted from two primary factors: the increase in recurring revenue customers, which is driven primarily by continued business growth and by business acquisitions, and the increase in average recurring revenues per recurring revenue customer, which we also refer to as wallet share.
The number of recurring revenue customers increased 12% to 39,550 at September 30, 2022 from 35,400 at September 30, 2021 primarily due to sales and marketing efforts to acquire new customers and due to recent acquisitions.
Wallet share increased 5% to $10,900 for the three months ended September 30, 2022 from $10,350 for the same period in 2021. This was primarily attributable to increased usage of our products by our recurring revenue customers.
Recurring revenues increased 18% to $106.6 million for the three months ended September 30, 2022 compared to the three months ended September 30, 2021. Recurring revenues from recurring revenue customers accounted for 93% and 92% of our total revenues for the three months ended September 30, 2022 and 2021, respectively. We anticipate that the number of recurring revenue customers and wallet share will continue to increase as we execute our growth strategy focused on further penetrations of our market.
Cost of Revenues - The increase in cost of revenues was primarily due to increased headcount, which resulted in an increase of $2.8 million in personnel-related costs, and an increase of $0.6 million in software subscriptions.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
20
Form 10-Q for the Quarterly Period ended September 30, 2022

Sales and Marketing Expenses - The increase in sales and marketing expense was primarily due to increased headcount, which resulted in an increase of $2.6 million in personnel-related costs.
Research and Development Expenses - No significant changes.
General and Administrative Expenses - The increase in general and administrative expense was primarily due to an increase in professional fees of $0.7 million and an increase of $1.0 million in charitable contributions. This was partially offset by a decrease of $1.0 million in bad debt expense given favorable accounts receivable collection rates.
Amortization of Intangible Assets - The increase in amortization of intangible assets was driven by acquired intangible assets related to recent business combinations.
Other Expense, Net - The decrease in net other expenses consisted of increased investment income partially offset by unfavorable currency exchange rates.
Income Tax Expense - The increase in income tax expense was primarily driven by an increase in pre-tax income and a decrease in the excess tax deductions due to the current period equity award settlements. This was partially offset by a decrease in nondeductible executive compensation. Excess tax benefits generated upon the settlement or exercise of stock awards are recognized as a reduction to income tax expense and, as a result, we expect that our annual effective income tax rate will fluctuate.
Adjusted EBITDA - Adjusted EBITDA consists of net income adjusted for income tax expense, depreciation and amortization expense, stock-based compensation expense, realized gain or loss from foreign currency on cash and investments held, investment income or loss, and other adjustments as necessary for a fair presentation.
The following table provides a reconciliation of net income to Adjusted EBITDA:
Three Months Ended
September 30,
(in thousands)20222021
Net income$15,863 $11,449 
Income tax expense3,132 1,356 
Depreciation and amortization of property and equipment4,169 3,695 
Amortization of intangible assets2,998 2,399 
Stock-based compensation expense7,960 6,849 
Realized loss from foreign currency on cash and investments held1,151 854 
Investment income(586)(66)
Adjusted EBITDA$34,687 $26,536 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
21
Form 10-Q for the Quarterly Period ended September 30, 2022

Adjusted EBITDA Margin - Adjusted EBITDA Margin consists of Adjusted EBITDA divided by revenue. Margin, the comparable GAAP measure of financial performance, consists of net income divided by revenue.
The following table provides a comparison of Margin to Adjusted EBITDA Margin:
Three Months Ended
September 30,
(in thousands, except Margin and Adjusted EBITDA Margin)20222021
Revenue$114,486$97,887
Net income15,86311,449
Margin14 %12 %
Adjusted EBITDA34,68726,536
Adjusted EBITDA Margin30 %27 %
Non-GAAP Income per Share - Non-GAAP income per share consists of net income adjusted for stock-based compensation expense, amortization expense related to intangible assets, realized gain or loss from foreign currency on cash and investments held, other adjustments as necessary for a fair presentation, and the corresponding tax impacts of the adjustments to net income, divided by the weighted average number of shares of common and diluted stock outstanding during each period.
To quantify the tax effects, we recalculated income tax expense excluding the direct book and tax effects of the specific items constituting the non-GAAP adjustments. The difference between this recalculated income tax expense and GAAP income tax expense is presented as the income tax effect of the non-GAAP adjustments.
The following table provides a reconciliation of net income to non-GAAP income per share:
Three Months Ended
September 30,
(in thousands, except per share amounts)20222021
Net income$15,863 $11,449 
Stock-based compensation expense7,960 6,849 
Amortization of intangible assets2,998 2,399 
Realized loss from foreign currency on cash and investments held1,151 854 
Income tax effects of adjustments(4,866)(4,178)
Non-GAAP income$23,106 $17,373 
Shares used to compute non-GAAP income per share
Basic36,093 35,961 
Diluted36,915 37,015 
Non-GAAP income per share
Basic$0.64 $0.48 
Diluted$0.63 $0.47 

spsc-20220930_g2.jpgSPS COMMERCE, INC.
22
Form 10-Q for the Quarterly Period ended September 30, 2022

Nine Months Ended September 30, 2022 Compared to Nine Months Ended September 30, 2021
The following table presents our results of operations for the periods indicated:
Nine Months Ended September 30,
20222021Change
($ in thousands)$
% of revenue(1)
$
% of revenue(1)
$%
Revenues$328,857 100.0 %$282,520 100.0 %$46,337 16.4 %
Cost of revenues111,524 33.9 96,043 34.0 15,481 16.1 
Gross profit217,333 66.1 186,477 66.0 30,856 16.5 
Operating expenses
Sales and marketing74,571 22.7 65,386 23.1 9,185 14.0 
Research and development33,268 10.1 28,459 10.1 4,809 16.9 
General and administrative49,390 15.0 45,186 16.0 4,204 9.3 
Amortization of intangible assets7,936 2.4 7,734 2.7 202 2.6 
Total operating expenses165,165 50.2 146,765 51.9 18,400 12.5 
Income from operations52,168 15.9 39,712 14.1 12,456 31.4 
Other expense, net(1,610)(0.5)(1,424)(0.5)(186)13.1 
Income before income taxes50,558 15.4 38,288 13.6 12,270 32.0 
Income tax expense11,339 3.4 6,456 2.3 4,883 75.6 
Net income$39,219 11.9 %$31,832 11.3 %$7,387 23.2 %
(1) Amounts in column may not foot due to rounding
Revenues - The increase in revenue resulted from two primary factors: the increase in recurring revenue customers, which is driven primarily by continued business growth and by business acquisitions, and the increase in average recurring revenues per recurring revenue customer, which we also refer to as wallet share.
The number of recurring revenue customers increased 12% to 39,550 at September 30, 2022 from 35,400 at September 30, 2021 primarily due to sales and marketing efforts to acquire new customers and due to recent acquisitions.
Wallet share increased 4% to $10,550 for the nine months ended September 30, 2022 from $10,100 for the same period in 2021. The increase was primarily attributable to increased usage of our solutions by our recurring revenue customers.
Recurring revenues increased 17% to $305.3 million for the nine months ended September 30, 2022 compared to the nine months ended September 30, 2021. Recurring revenues from recurring revenue customers accounted for 93% and 92% of our total revenues for the nine months ended September 30, 2022 and 2021, respectively. We anticipate that the number of recurring revenue customers and wallet share will continue to increase as we execute our growth strategy focused on further penetrations of our market.
Cost of Revenues - The increase in cost of revenues was primarily due to increased headcount, which resulted in an increase of $11.2 million in personnel-related costs, an increase of $1.6 million of software subscriptions, and an increase of $1.5 million in stock-based compensation. Additionally, as we continued to invest in the infrastructure supporting our platform, depreciation expense increased by $1.1 million.
Sales and Marketing Expenses - The increase in sales and marketing expense was primarily due to increased headcount, which resulted in an increase of $6.3 million in personnel-related costs, an increase of $1.0 million in stock-based compensation, and an increase of $0.9 million in variable compensation earned by sales personnel and referral partners.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
23
Form 10-Q for the Quarterly Period ended September 30, 2022

Research and Development Expenses - The increase in research and development expense was primarily due to increased headcount, which resulted in an increase of $3.0 million in personnel-related costs, an increase of $1.0 million in stock-based compensation, and an increase of $0.9 million in software subscriptions.
General and Administrative Expenses - The increase in general and administrative expense was primarily related to supporting continued business growth, including an increase in headcount. The increase in headcount resulted in an increase in personnel-related costs of $2.0 million, an increase of $0.8 million of software subscriptions, and an increase of $0.8 million in stock-based compensation. Additionally, there was an increase in professional fees of $1.3 million partially offset by a decrease of $1.1 million in bad debt expense.
Amortization of Intangible Assets - The increase in amortization of intangible assets was driven by acquired intangible assets related to recent business combinations.
Other Expense, Net - The increase in net other expenses was primarily due to unfavorable foreign currency exchange rate changes.
Income Tax Expense - The increase in income tax expense was primarily driven by an increase in pre-tax income and a decrease in the excess tax deductions due to the current period equity award settlements. This was partially offset by a decrease in nondeductible executive compensation. Excess tax benefits generated upon the settlement or exercise of stock awards are recognized as a reduction to income tax expense and, as a result, we expect that our annual effective income tax rate will fluctuate.
Adjusted EBITDA - Adjusted EBITDA consists of net income adjusted for income tax expense, depreciation and amortization expense, stock-based compensation expense, realized gain or loss from foreign currency on cash and investments held, investment income or loss, and other adjustments as necessary for a fair presentation.
For the nine months ended September 30, 2021, other adjustments included disposals of cloud hosting arrangement implementation costs and accelerated tenant improvement benefit, which was incurred as part of executing a lease agreement. This tenant improvement adjustment was partially offset by accelerated depreciation, which is included within Depreciation and amortization of property and equipment and was also incurred as part of executing a lease agreement.
The following table provides a reconciliation of net income to Adjusted EBITDA:
Nine Months Ended
September 30,
(in thousands)20222021
Net income$39,219 $31,832 
Income tax expense11,339 6,456 
Depreciation and amortization of property and equipment11,983 10,989 
Amortization of intangible assets7,936 7,734 
Stock-based compensation expense25,636 21,273 
Realized loss from foreign currency on cash and investments held2,010 1,492 
Investment income(806)(242)
Other— (213)
Adjusted EBITDA$97,317 $79,321 
Adjusted EBITDA Margin - Adjusted EBITDA Margin consists of Adjusted EBITDA divided by revenue. Margin, the comparable GAAP measure of financial performance, consists of net income divided by revenue.





spsc-20220930_g2.jpgSPS COMMERCE, INC.
24
Form 10-Q for the Quarterly Period ended September 30, 2022

The following table provides a comparison of Margin to Adjusted EBITDA Margin:
Nine Months Ended
September 30,
(in thousands, except Margin and Adjusted EBITDA Margin)20222021
Revenue$328,857$282,520
Net income39,21931,832
Margin12 %11 %
Adjusted EBITDA97,31779,321
Adjusted EBITDA Margin30 %28 %
Non-GAAP Income per Share - Non-GAAP income per share consists of net income adjusted for stock-based compensation expense, amortization expense related to intangible assets, realized gain or loss from foreign currency on cash and investments held, other adjustments as necessary for a fair presentation, and the corresponding tax impacts of the adjustments to net income, divided by the weighted average number of shares of common and diluted stock outstanding during each period.
For the nine months ended September 30, 2021, other adjustments included disposals of cloud hosting arrangement implementation costs and accelerated tenant improvement benefit, which was incurred as part of executing a lease agreement. This tenant improvement adjustment was partially offset by accelerated depreciation, which is included within Depreciation and amortization of property and equipment and was also incurred as part of executing a lease agreement.
To quantify the tax effects, we recalculated income tax expense excluding the direct book and tax effects of the specific items constituting the non-GAAP adjustments. The difference between this recalculated income tax expense and GAAP income tax expense is presented as the income tax effect of the non-GAAP adjustments.
The following table provides a reconciliation of net income to non-GAAP income per share:
Nine Months Ended
September 30,
(in thousands, except per share amounts)20222021
Net income$39,219 $31,832 
Stock-based compensation expense25,636 21,273 
Amortization of intangible assets7,936 7,734 
Realized loss from foreign currency on cash and investments held2,010 1,492 
Other— (213)
Income tax effects of adjustments(11,576)(12,152)
Non-GAAP income$63,225 $49,966 
Shares used to compute non-GAAP income per share
Basic36,104 35,873 
Diluted36,942 36,898 
Non-GAAP income per share
Basic$1.75 $1.39 
Diluted$1.71 $1.35 
spsc-20220930_g2.jpgSPS COMMERCE, INC.
25
Form 10-Q for the Quarterly Period ended September 30, 2022

Critical Accounting Policies and Estimates
This discussion of our financial condition and results of operations is based upon our condensed consolidated financial statements, which are prepared in accordance with GAAP and with the instructions to Form 10-Q and Rule 10-01 of Regulation S-X. The preparation of these financial statements requires us to make estimates, judgments and assumptions that affect the reported amounts of assets, liabilities, revenues, and expenses and related disclosures. On an ongoing basis, we evaluate our estimates, judgments and assumptions. We base our estimates of the carrying value of certain assets and liabilities on historical experience and on various other assumptions that we believe to be reasonable. Our actual results may differ from these estimates under different assumptions or conditions.
A critical accounting policy or estimate is one that is both material to the presentation of our financial statements and requires us to make difficult, subjective, or complex judgments relating to uncertain matters that could have a material effect on our financial condition and results of operations. Accordingly, we believe that our policies for revenue recognition, internal-use software, and business combinations are the most critical to fully understand and evaluate our financial condition and results of operations.
During the nine months ended September 30, 2022, there were no changes in our critical accounting policies or estimates. For additional information regarding our critical accounting policies and estimates, see the discussion under "Critical Accounting Policies and Estimates" in "Management's Discussion and Analysis of Financial Condition and Results of Operations" included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC.
Liquidity and Capital Resources
As of September 30, 2022, our principal sources of liquidity were cash and cash equivalents and short-term investments totaling $237.2 million and net accounts receivable of $36.8 million. Our investments are selected in accordance with our investment policy, with a goal of maintaining liquidity and capital preservation. Our cash equivalents and short-term investments are held in highly liquid money market funds, certificates of deposits, and commercial paper.
The summary of activity within the condensed consolidated statements of cash flows was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Net cash provided by operating activities$76,483 $81,568 
Net cash used in investing activities(60,593)(32,087)
Net cash used in financing activities(36,655)(3,360)
Net Cash Flows from Operating Activities
The decrease in cash provided by operating activities was primarily driven by changes in the amount and timing of settlement of operating assets and liabilities, primarily the change in accrued compensation.
Net Cash Flows from Investing Activities
The increase in cash used in investing activities was primarily due to an acquisition of a business along with the net investment activity.
Net Cash Flows from Financing Activities
The increase in cash used in financing activities was primarily due to the increase in cash used for share repurchases.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
26
Form 10-Q for the Quarterly Period ended September 30, 2022

Contractual and Commercial Commitment Summary
Our contractual obligations and commercial commitments as of September 30, 2022 are summarized below:
Payments Due by Period
(in thousands)Less Than
1 Year
1-3 Years3-5 YearsMore Than
5 Years
Total
Operating lease obligations, including imputed interest$4,990 $8,701 $6,283 $— $19,974 
Purchase commitments5,528 1,918 — — 7,446 
Total$10,518 $10,619 $6,283 $— $27,420 
Future Capital Requirements
Our future capital requirements may vary significantly from those now planned and will depend on many factors, including:
costs to develop and implement new products and applications, if any;
sales and marketing resources needed to further penetrate our market and gain acceptance of new products and applications that we may develop;
expansion of our operations in the U.S. and internationally;
response of competitors to our products and applications; and
use of capital for acquisitions, including the $49 million InterTrade acquisition in October 2022.
Historically, we have experienced increases in our expenditures consistent with the growth in our operations and personnel, and we anticipate that our expenditures will continue to increase as we expand our business.
We believe our cash, cash equivalents, investments, and cash flows from our operations will be sufficient to meet our working capital and capital expenditure requirements for at least the next twelve months.
Off-Balance Sheet Arrangements
We do not have any off-balance sheet arrangements, investments in special purpose entities or undisclosed borrowings or debt. Additionally, we are not a party to any derivative contracts or synthetic leases.
Foreign Currency Exchange and Inflation Rate Changes
For information regarding the effect of foreign currency exchange rate changes, refer to the section entitled “Foreign Currency Exchange Risk,” included in Part I, Item 3, “Quantitative and Qualitative Disclosures About Market Risk” of this Quarterly Report on Form 10-Q.
Inflation and changing prices did not have a material effect on our business during the nine months ended September 30, 2022 and we do not expect that inflation or changing prices will materially affect our business in the foreseeable future.
Item 3.    Quantitative and Qualitative Disclosures About Market Risk
Interest Rate Sensitivity Risk
The principal objectives of our investment activities are to preserve principal, provide liquidity, and maximize income consistent with minimizing risk of material loss. We are exposed to market risk related to changes in interest rates. However, based on the nature and current level of our cash, cash equivalents, and investments, we believe there is no material risk exposure. We do not enter into investments for trading or speculative purposes.
We did not have any variable interest rate outstanding debt as of September 30, 2022. Therefore, we do not have any material risk to interest rate fluctuations.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
27
Form 10-Q for the Quarterly Period ended September 30, 2022

Foreign Currency Exchange Risk
Due to international operations, we have revenue, expenses, assets, and liabilities that are denominated in currencies other than the U.S. dollar, primarily the Australian and Canadian dollars. Our consolidated balance sheet, results of operations, and cash flows are, therefore, subject to fluctuations due to changes in foreign currency exchange rates and may be adversely affected in the future due to changes in foreign exchange rates.
Our sales are primarily denominated in U.S. dollars. Our expenses are generally denominated in the local currencies in which our operations are located. As of September 30, 2022, we maintained 8% of our total cash and cash equivalents and investments in foreign currencies.
We believe that a hypothetical 10% change in foreign currency exchange rates or an inability to access foreign funds would not materially affect our ability to meet our operational needs, result in a material foreign currency loss or have a material impact on our consolidated financials.
We have not used any forward contracts or currency borrowings to hedge our exposure to foreign currency exchange risk, although we may do so in the future.
Item 4.    Controls and Procedures
Evaluation of Disclosure Controls and Procedures
As of the end of the period covered by this Quarterly Report on Form 10-Q, our management has evaluated, under the supervision and with the participation of our Chief Executive Officer and Chief Financial Officer, the effectiveness of our disclosure controls and procedures (as defined in Rules 13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934). Disclosure controls and procedures are designed to ensure that information required to be disclosed in our reports filed under the Securities Exchange Act of 1934 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 Chief Executive Officer and Chief Financial Officer, to allow timely decisions regarding required disclosure. Based on this evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective as of September 30, 2022.
Changes in Internal Control over Financial Reporting
There were no changes in our internal control over financial reporting during the quarter ended September 30, 2022 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.
In November 2021, we acquired the Genius Central business and in July 2022, we acquired the GCommerce business. Pursuant to the SEC’s general guidance that the assessment of a recently acquired business' internal control over financial reporting may be omitted in the year of acquisition, the scope of our most recent assessment did not include Genius Central or GCommerce. We are currently in the process of incorporating internal controls specific to Genius Central and GCommerce that we believe are appropriate and necessary to consolidate and report upon our financial results.
As of September 30, 2022, excluding net intangible assets and goodwill, Genius Central and GCommerce combined represented 2.7% of our consolidated assets. For the three and nine months ended September 30, 2022, Genius Central and GCommerce combined represented 2.2% and 1.4% of our consolidated revenues, respectively.

spsc-20220930_g2.jpgSPS COMMERCE, INC.
28
Form 10-Q for the Quarterly Period ended September 30, 2022

PART II. – OTHER INFORMATION
Item 1.    Legal Proceedings
We are not currently subject to any material legal proceedings. From time to time, we may be named as a defendant in legal actions or otherwise be subject to claims arising from our normal business activities. Any such actions, even those that lack merit, could result in the expenditure of significant financial and managerial resources. We believe that we have obtained adequate insurance coverage or rights to indemnification in connection with potential legal proceedings that may arise.
Item 1A.    Risk Factors
There have been no material changes in our risk factors from those disclosed under the heading “Risk Factors” in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC.
Item 2.    Unregistered Sales of Equity Securities and Use of Proceeds
(c) Share Repurchases
PeriodTotal Number
of Shares
Purchased
Average Price
Paid per Share
Total Number
of Shares
Purchased as
Part of Publicly
Announced
Program(1)(2)
Approximate
Dollar Value of
Shares that
May Yet be
Purchased
Under the
Program (1)(2)
July 1 - 31, 202229,988 $113.35 29,988 $6,609,000 
August 1 - 31, 202251,299 128.68 51,299 50,000,000 
September 1 - 30, 202220,947 118.25 20,947 47,523,000 
Total102,234 $122.04 102,234 $47,523,000 
For more information regarding our share repurchase programs, refer to Note J to our condensed consolidated financial statements, included in Part I of this Quarterly Report on Form 10-Q.
(1)On October 28, 2021, our board of directors announced and authorized a program to repurchase up to $50.0 million of our common stock. Under the program, purchases could be made from time to time in the open market or in privately negotiated purchases, or both. At the program's expiration, August 26, 2022, less than $0.1 million of unused share repurchase value expired from the program.
(2)On July 26, 2022 (announced July 27, 2022), our board of directors authorized a program to repurchase up to $50.0 million of our common stock. Under the program, purchases may be made from time to time in the open market or in privately negotiated purchases, or both. The new share repurchase program became effective August 26, 2022 and expires on July 26, 2024.
Item 3.    Defaults Upon Senior Securities
Not Applicable.
Item 4.    Mine Safety Disclosures
Not Applicable.
Item 5.    Other Information
Not Applicable.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
29
Form 10-Q for the Quarterly Period ended September 30, 2022

Item 6.    Exhibits
NumberDescription
3.1
3.2
31.1
31.2
32.1
101
Interactive Data Files Pursuant to Rule 405 of Regulation S-T (filed herewith). The XBRL instance document does not appear in the Interactive Data File because its tags are embedded within the Inline XBRL document.
104
The cover page from the Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, formatted in Inline XBRL.
spsc-20220930_g2.jpgSPS COMMERCE, INC.
30
Form 10-Q for the Quarterly Period ended September 30, 2022

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.
Dated: October 27, 2022
SPS COMMERCE, INC.
/s/ KIMBERLY NELSON
Kimberly Nelson
Executive Vice President and Chief Financial Officer
(principal financial and accounting officer)
spsc-20220930_g2.jpgSPS COMMERCE, INC.
31
Form 10-Q for the Quarterly Period ended September 30, 2022
EX-31.1 2 q3_2022exhibitex311.htm EX-31.1 Document

EXHIBIT 31.1
CERTIFICATION PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT
I, Archie Black, certify that:
1.I have reviewed this Quarterly Report on Form 10-Q of SPS Commerce, 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 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 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.
/s/ ARCHIE BLACK
Archie Black
Chief Executive Officer
(principal executive officer)
October 27, 2022

EX-31.2 3 q3_2022exhibitex312.htm EX-31.2 Document

EXHIBIT 31.2
CERTIFICATION PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT
I, Kimberly Nelson, certify that:
1.I have reviewed this Quarterly Report on Form 10-Q of SPS Commerce, 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 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 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.
/s/ KIMBERLY NELSON
Kimberly Nelson
Executive Vice President and Chief Financial Officer
(principal financial and accounting officer)
October 27, 2022

EX-32.1 4 q3_2022exhibitex321.htm EX-32.1 Document

EXHIBIT 32.1
CERTIFICATION PURSUANT TO
18 U.S.C. §1350
AS ADOPTED PURSUANT TO
SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
In connection with the Quarterly Report on Form 10-Q of SPS Commerce, Inc. (the “Company”) for the period ended September 30, 2022, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), the undersigned, the Chief Executive Officer and the Chief Financial Officer of the Company, hereby certify, pursuant to and for purposes of 18 U.S.C. §1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:
1.The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
2.The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.
/s/ ARCHIE BLACK
Archie Black
Chief Executive Officer
(principal executive officer)
/s/ KIMBERLY NELSON
Kimberly Nelson
Executive Vice President and Chief Financial Officer
(principal financial and accounting officer)
October 27, 2022

EX-101.SCH 5 spsc-20220930.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 0001001 - Document - Cover link:presentationLink link:calculationLink link:definitionLink 1001002 - Statement - Condensed Consolidated Balance Sheets link:presentationLink link:calculationLink link:definitionLink 1002003 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1003004 - Statement - Condensed Consolidated Statements of Comprehensive Income link:presentationLink link:calculationLink link:definitionLink 1004005 - Statement - Condensed Consolidated Statements of Comprehensive Income (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 1005006 - Statement - Condensed Consolidated Statements of Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 1006007 - Statement - Condensed Consolidated Statements of Cash Flows link:presentationLink link:calculationLink link:definitionLink 2101101 - Disclosure - General link:presentationLink link:calculationLink link:definitionLink 2104102 - Disclosure - Business Acquisitions link:presentationLink link:calculationLink link:definitionLink 2109103 - Disclosure - Revenue link:presentationLink link:calculationLink link:definitionLink 2114104 - Disclosure - Deferred Costs link:presentationLink link:calculationLink link:definitionLink 2117105 - Disclosure - Financial Instruments link:presentationLink link:calculationLink link:definitionLink 2121106 - Disclosure - Allowance for Credit Losses link:presentationLink link:calculationLink link:definitionLink 2124107 - Disclosure - Property and Equipment, Net link:presentationLink link:calculationLink link:definitionLink 2127108 - Disclosure - Goodwill and Intangible Assets, Net link:presentationLink link:calculationLink link:definitionLink 2132109 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 2139110 - Disclosure - Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 2143111 - Disclosure - Stock-Based Compensation link:presentationLink link:calculationLink link:definitionLink 2152112 - Disclosure - Income Taxes link:presentationLink link:calculationLink link:definitionLink 2153113 - Disclosure - Other Income and Expense link:presentationLink link:calculationLink link:definitionLink 2156114 - Disclosure - Net Income Per Share link:presentationLink link:calculationLink link:definitionLink 2160115 - Disclosure - Geographic Information link:presentationLink link:calculationLink link:definitionLink 2202201 - Disclosure - General (Policies) link:presentationLink link:calculationLink link:definitionLink 2303301 - Disclosure - General (Tables) link:presentationLink link:calculationLink link:definitionLink 2305302 - Disclosure - Business Acquisitions (Tables) link:presentationLink link:calculationLink link:definitionLink 2310303 - Disclosure - Revenue (Tables) link:presentationLink link:calculationLink link:definitionLink 2315304 - Disclosure - Deferred Costs (Tables) link:presentationLink link:calculationLink link:definitionLink 2318305 - Disclosure - Financial Instruments (Tables) link:presentationLink link:calculationLink link:definitionLink 2322306 - Disclosure - Allowance for Credit Losses (Tables) link:presentationLink link:calculationLink link:definitionLink 2325307 - Disclosure - Property and Equipment, Net (Tables) link:presentationLink link:calculationLink link:definitionLink 2328308 - Disclosure - Goodwill and Intangible Assets, Net (Tables) link:presentationLink link:calculationLink link:definitionLink 2333309 - Disclosure - Commitments and Contingencies (Tables) link:presentationLink link:calculationLink link:definitionLink 2340310 - Disclosure - Stockholders' Equity (Tables) link:presentationLink link:calculationLink link:definitionLink 2344311 - Disclosure - Stock-Based Compensation (Tables) link:presentationLink link:calculationLink link:definitionLink 2354312 - Disclosure - Other Income and Expense (Tables) link:presentationLink link:calculationLink link:definitionLink 2357313 - Disclosure - Net Income Per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 2361314 - Disclosure - Geographic Information (Tables) link:presentationLink link:calculationLink link:definitionLink 2406401 - Disclosure - Business Acquisitions - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 2407402 - Disclosure - Business Acquisitions - Fair Value of Assets Acquired and Liabilities Assumed (Details) link:presentationLink link:calculationLink link:definitionLink 2408403 - Disclosure - Business Acquisitions - Intangible Assets Acquired (Details) link:presentationLink link:calculationLink link:definitionLink 2411404 - Disclosure - Revenue - Summary of Revenues by Revenue Stream (Detail) link:presentationLink link:calculationLink link:definitionLink 2412405 - Disclosure - Revenue - Narrative (Detail) link:presentationLink link:calculationLink link:definitionLink 2413406 - Disclosure - Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail) link:presentationLink link:calculationLink link:definitionLink 2416407 - Disclosure - Deferred Costs (Detail) link:presentationLink link:calculationLink link:definitionLink 2419408 - Disclosure - Financial Instruments - Summary of Cash Equivalents and Investments (Detail) link:presentationLink link:calculationLink link:definitionLink 2420409 - Disclosure - Financial Instruments - Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) link:presentationLink link:calculationLink link:definitionLink 2423410 - Disclosure - Allowance for Credit Losses (Detail) link:presentationLink link:calculationLink link:definitionLink 2426411 - Disclosure - Property and Equipment, Net (Details) link:presentationLink link:calculationLink link:definitionLink 2429412 - Disclosure - Goodwill and Intangible Assets, Net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail) link:presentationLink link:calculationLink link:definitionLink 2430413 - Disclosure - Goodwill and Intangible Assets, Net - Intangible Assets (Detail) link:presentationLink link:calculationLink link:definitionLink 2431414 - Disclosure - Goodwill and Intangible Assets, Net - Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail) link:presentationLink link:calculationLink link:definitionLink 2434415 - Disclosure - Commitments and Contingencies - Components of Lease Expense (Detail) link:presentationLink link:calculationLink link:definitionLink 2435416 - Disclosure - Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail) link:presentationLink link:calculationLink link:definitionLink 2436417 - Disclosure - Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail) link:presentationLink link:calculationLink link:definitionLink 2437418 - Disclosure - Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail) link:presentationLink link:calculationLink link:definitionLink 2437418 - Disclosure - Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail) link:presentationLink link:calculationLink link:definitionLink 2438419 - Disclosure - Commitments and Contingencies - Narrative (Detail) link:presentationLink link:calculationLink link:definitionLink 2441420 - Disclosure - Stockholders' Equity - Share Repurchase Plan (Details) link:presentationLink link:calculationLink link:definitionLink 2442421 - Disclosure - Stockholders' Equity - Stock Repurchase Activity (Details) link:presentationLink link:calculationLink link:definitionLink 2445422 - Disclosure - Stock-Based Compensation - Narrative (Detail) link:presentationLink link:calculationLink link:definitionLink 2446423 - Disclosure - Stock-Based Compensation - Stock-Based Compensation Expense (Detail) link:presentationLink link:calculationLink link:definitionLink 2447424 - Disclosure - Stock-Based Compensation - Stock Option Activity (Detail) link:presentationLink link:calculationLink link:definitionLink 2448425 - Disclosure - Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail) link:presentationLink link:calculationLink link:definitionLink 2449426 - Disclosure - Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail) link:presentationLink link:calculationLink link:definitionLink 2450427 - Disclosure - Stock-Based Compensation - Summary of ESPP Activity (Detail) link:presentationLink link:calculationLink link:definitionLink 2451428 - Disclosure - Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail) link:presentationLink link:calculationLink link:definitionLink 2455429 - Disclosure - Other Income and Expense (Detail) link:presentationLink link:calculationLink link:definitionLink 2458430 - Disclosure - Net Income Per Share - Components and Computation of Basic and Diluted Net Income Per Share (Detail) link:presentationLink link:calculationLink link:definitionLink 2459431 - Disclosure - Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail) link:presentationLink link:calculationLink link:definitionLink 2462432 - Disclosure - Geographic Information - Narrative (Detail) link:presentationLink link:calculationLink link:definitionLink 2463433 - Disclosure - Geographic Information - Summary of Domestic Revenue (Detail) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 6 spsc-20220930_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT EX-101.DEF 7 spsc-20220930_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT EX-101.LAB 8 spsc-20220930_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Geographic Concentration Risk Geographic Concentration Risk [Member] Deferred costs, non-current Deferred Costs, Noncurrent Business Acquisition Business Acquisition [Axis] Increase (Decrease) in Stockholders' Equity [Roll Forward] Increase (Decrease) in Stockholders' Equity [Roll Forward] Total future gross payments Lessee, Operating Lease, Liability, to be Paid Provision for credit losses Accounts Receivable, Credit Loss Expense (Reversal) Deferred income tax assets Deferred Income Tax Assets, Net Entity Address, Postal Zip Code Entity Address, Postal Zip Code Net income per share Earnings Per Share, Basic And Diluted EPS [Abstract] Earnings Per Share, Basic And Diluted EPS Property, Plant and Equipment [Abstract] Preferred stock, shares outstanding (in shares) Preferred Stock, Shares Outstanding Property and equipment, cost Property, Plant and Equipment, Gross RSAs & DSUs Restricted Stock Units And Deferred Stock Units [Member] Restricted stock units and deferred stock units member. Income Tax Disclosure [Abstract] Income Tax Disclosure [Abstract] 2019 Share Repurchase Program 2019 Stock Repurchase Program [Member] 2019 Stock Repurchase Program Deferred revenue Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue Summary of Cash Equivalents and Investments Cash, Cash Equivalents and Investments [Table Text Block] Other Income and Expenses [Abstract] Other Income and Expenses [Abstract] GCommerce Inc GCommerce Inc [Member] GCommerce Inc Summary of Other Income (Expense), Net Schedule of Other Nonoperating Income (Expense) [Table Text Block] Financial Instruments [Domain] Financial Instruments [Domain] Statistical Measurement Statistical Measurement [Domain] Exercised (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period Latest timing of billings Recurring Revenues Timing Of Billings Latest Period Recurring revenues timing of billings latest period. Cash paid for amounts included in the measurement of lease liabilities Cash Paid For Amounts Included In Measurement Of Lease Liabilities [Abstract] Cash paid for amounts included in the measurement of lease liabilities. Weighted-average discount rate Operating Lease, Weighted Average Discount Rate, Percent Share-based Payment Arrangement [Abstract] Share-Based Payment Arrangement [Abstract] Additional paid-in capital Additional Paid in Capital, Common Stock Other, net Other Noncash Income (Expense) Effect of foreign currency exchange rate changes Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations Repurchases of common stock Shares repurchased cost Treasury Stock, Value, Acquired, Cost Method Net income Net income Net income Net Income (Loss) Attributable to Parent Volatility Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Weighted Average Volatility Rate Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block] Antidilutive shares (in shares) Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Subsequent Event Type [Axis] Subsequent Event Type [Axis] Reclassification of (gain) loss on investments into earnings, net of tax of ($13), $16, ($17) and $46, respectively Reclassification of (gain) loss on investments into earnings, net of tax Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax Share Repurchase Program Share Repurchase Program [Domain] Accounts receivable Accounts Receivable, before Allowance for Credit Loss, Current Equity Component Equity Component [Domain] Subsequent Event Type [Domain] Subsequent Event Type [Domain] Assets fair value Assets, Fair Value Disclosure Treasury Stock, at cost; 2,146,783 and 1,789,353 shares, respectively Share Value Repurchased Treasury Stock, Common, Value Fair Value Debt Securities, Available-for-Sale Forfeited (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price Amortized deferred costs Deferred Costs Amortized Deferred costs amortized. Remainder of 2022 Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year Set-Up Fees Set Up Fees [Member] Set up fees. Statement of Cash Flows [Abstract] Statement of Cash Flows [Abstract] Entity Address, State or Province Entity Address, State or Province Level 1 Fair Value, Inputs, Level 1 [Member] Employee Stock Purchase Plan Employee Stock [Member] Weighted average remaining contractual life Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term Deferred Revenue Arrangement By Type [Table] Deferred Revenue Arrangement, by Type [Table] Award Type Award Type [Axis] Unused & Expired Share Repurchase Value Treasury Stock, Unused and Expired Repurchase Value Treasury Stock, Unused and Expired Repurchase Value Net cash provided by operating activities Net Cash Provided by (Used in) Operating Activities Operating lease liabilities Operating Lease, Liability, Current Schedule Of Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Table] Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table] PSU, RSU, RSA, and DSU Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block] Schedule Of Stockholders Equity [Table] Schedule Of Stockholders Equity [Table] Schedule of stockholders equity. Forfeited (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period Accounts receivable Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables Certificates of deposit Certificates of Deposit [Member] Measurement period Business Combination, Measurement Period Business Combination, Measurement Period Total liabilities Liabilities Significant Accounting Policies Significant Accounting Policies Policy [Policy Text Block] Significant accounting policies. Weighted-average remaining lease term Operating Lease, Weighted Average Remaining Lease Term Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items] Remeasurement from provisional purchase accounting amount Goodwill, Purchase Accounting Adjustments Finite-Lived and Indefinite-Lived Intangible Assets Acquired as Part of Business Combination Finite-Lived and Indefinite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block] Cash flows from investing activities Net Cash Provided by (Used in) Investing Activities [Abstract] Recognized set-up fees Deferred Revenue Amortized Set Up Fees Deferred revenue amortized set up fees. Cash Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents Acquired technology Technology-Based Intangible Assets [Member] Vested at period end (in shares) Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Vested At Period End Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Vested At Period End Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Fair Value Hierarchy and NAV Fair Value Hierarchy and NAV [Domain] Property, Plant and Equipment Property, Plant and Equipment [Table Text Block] Preferred stock, shares issued (in shares) Preferred Stock, Shares Issued Document Type Document Type Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract] Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract] Concentration Risk Benchmark Concentration Risk Benchmark [Domain] # Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward] Finite Lived Intangible Assets, Major Class Name [Domain] Finite-Lived Intangible Assets, Major Class Name [Domain] Outstanding, beginning of period (in dollars per share) Outstanding, end of period (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value Schedule of Supplemental Balance Sheet Information Related to Leases Schedule Of Supplemental Balance Sheet Information Related To Leases Table [Table Text Block] Schedule of supplemental balance sheet information related to leases. Product and Service Product and Service [Domain] Entity Shell Company Entity Shell Company Deferred income taxes Deferred Income Tax Expense (Benefit) Accrued expenses Increase (Decrease) in Accrued Liabilities 2023 Lessee, Operating Lease, Liability, to be Paid, Year One Financial Instrument [Axis] Financial Instrument [Axis] Financial Instruments Financial Instruments Disclosure [Text Block] Revenue Benchmark Revenue Benchmark [Member] Subsequent Event Subsequent Event [Member] Summary of Deferred Revenue Liability Relating to Set-Up Fees Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block] Document Period End Date Document Period End Date Schedule Of Financial Instruments [Table] Debt Securities, Available-for-Sale [Table] Deferred Costs [Abstract] Deferred Costs [Abstract] Total assets Assets Write-offs, net of recoveries Accounts Receivable, Allowance for Credit Loss, Writeoff Net income per share Earnings Per Share [Abstract] Income Statement Location Income Statement Location [Axis] Performance Share Unit PSUs Performance Shares [Member] Accrued expenses Accrued Liabilities, Current Geographic Information Geographic Information [Text Block] The entire disclosure of geographic information. Exercised (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price Net cash used in financing activities Net Cash Provided by (Used in) Financing Activities Share Value Authorized for Repurchase Stock Repurchase Program, Authorized Amount Domestic Revenue Geographic Distribution, Domestic [Member] Accrued compensation Employee-related Liabilities, Current Variable lease cost Variable Lease, Cost Schedule of Allowance for Credit Losses Activity Included in Accounts Receivable Net Financing Receivable, Allowance for Credit Loss [Table Text Block] Income before income taxes Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Stockholders' equity Stockholders' Equity Attributable to Parent [Abstract] Net Income Per Share Earnings Per Share [Text Block] Weighted Average Grant Date Fair Value of Options Granted, Assumptions Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] Unrealized gain (loss) on investments, tax OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax Award Type Award Type [Domain] Unrecognized stock-based compensation, expected to be recognized, weighted average period Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition Intangible Assets Schedule of Finite-Lived Intangible Assets [Table Text Block] Net proceeds from employee stock purchase plan activity Proceeds from Stock Plans Computer equipment Computer Equipment [Member] Customer contract cancellation period Customer Contract Cancellation Period Customer contract cancellation period. Purchases of investments Payments to Acquire Other Investments Gross profit Gross Profit Entity Registrant Name Entity Registrant Name Dividend yield Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate Foreign currency translation Goodwill, Foreign Currency Translation Gain (Loss) Operating lease right-of-use asset Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Operating Lease, Right-Of-Use Asset Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Operating Lease, Right-Of-Use Asset Subscriber relationships Customer Relationships [Member] Entity Address, City or Town Entity Address, City or Town PSU, RSU, RSA, and DSU PSU, RSU, RSA, and DSU Performance Share Units Restricted Stock Units Restricted Stock Awards And Deferred Stock Units [Member] Performance share units, restricted stock units, restricted stock awards, and deferred stock units. Operating expenses Operating Expenses [Abstract] Geographic Distribution Geographic Distribution [Domain] Revenue Recognition [Table] Revenue Recognition [Table] Revenue Recognition. Analytics Analytics [Member] Analytics. Summary of Domestic Revenue Schedule of Product Information [Table Text Block] Minimum Minimum [Member] Statement of Financial Position [Abstract] Statement of Financial Position [Abstract] Entity Emerging Growth Company Entity Emerging Growth Company Common stock, par value (in dollars per share) Common Stock, Par or Stated Value Per Share InterTrade Systems Inc. InterTrade Systems Inc. [Member] InterTrade Systems Inc. Intangible assets Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill Commitments and Contingencies Disclosure [Abstract] Commitments and Contingencies Disclosure [Abstract] Foreign Geographic Distribution, Foreign [Member] Operating lease liability Business Combination, Recognized Identifiable Asset Acquired and Liability Assumed, Lease Obligation Trading Symbol Trading Symbol Entity File Number Entity File Number Average price per repurchased share (in dollars per share) Treasury Stock Acquired, Average Cost Per Share Treasury stock, shares (in shares) Beginning balance (in shares) Ending balance (in shares) Treasury Stock, Common, Shares 2026 Finite-Lived Intangible Asset, Expected Amortization, Year Four Deferred revenue, non-current Contract with Customer, Liability, Noncurrent Allowance for Credit Losses Allowance for Credit Losses [Text Block] Research and development Research and Development Expense Granted (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period RSUs Restricted Stock Units (RSUs) [Member] Concentration Risk Benchmark Concentration Risk Benchmark [Axis] Use of Estimates Use of Estimates, Policy [Policy Text Block] Business Acquisitions Business Combination Disclosure [Text Block] Other comprehensive income (expense) Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract] Accounts payable Increase (Decrease) in Accounts Payable Assets acquired and liabilities assumed, net Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net Concentration risk, percentage Concentration Risk, Percentage Investment income Investment Income, Net Income Taxes Income Tax Disclosure [Text Block] Amortization of intangible assets Amortization of Intangible Assets Schedule of Changes in Net Carrying Amount of Goodwill Schedule of Goodwill [Table Text Block] Basic (in dollars per share) Earnings Per Share, Basic 2025 Lessee, Operating Lease, Liability, to be Paid, Year Three 401(k) stock match Four Zero One K Stock Match [Member] Four zero one (k) stock match. Accounts payable Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable Concentration Risk Type Concentration Risk Type [Domain] Treasury Stock Treasury Stock [Member] Sales and marketing Selling and Marketing Expense Total stockholders’ equity Beginning balance Ending balance Stockholders' Equity Attributable to Parent Cash and cash equivalents at beginning of period Cash and cash equivalents at end of period Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations Forfeited (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value Entity Interactive Data Current Entity Interactive Data Current Accumulated Amortization Finite-Lived Intangible Assets, Accumulated Amortization Fair Value By Balance Sheet Grouping [Table] Fair Value, by Balance Sheet Grouping [Table] Property, Plant and Equipment [Table] Property, Plant and Equipment [Table] Allowance for Credit Loss [Abstract] Allowance for Credit Loss [Abstract] Changes in assets and liabilities, net of effects of acquisition Increase (Decrease) in Operating Capital [Abstract] Numerator Net Income (Loss) Attributable to Parent [Abstract] 2025 Finite-Lived Intangible Asset, Expected Amortization, Year Three PSUs, RSUs, RSAs, and DSUs (in shares) Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares Money market funds Money Market Funds [Member] Thereafter Finite Lived Intangible Assets Amortization Expense After Year Four Finite lived intangible assets, amortization expense after year four. Retained Earnings Retained Earnings [Member] Lease expense Lease, Cost Common Stock Common Stock [Member] Stock-Based Compensation Expense Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] Total other comprehensive expense Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent Shares issued pursuant to stock awards Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture Components of Lease Expense Lease, Cost [Table Text Block] Repurchases of common stock Payments for Repurchase of Common Stock Deferred costs Increase (Decrease) in Deferred Charges Shares available for grant (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant Statement [Table] Statement [Table] Vested and common stock issued (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value Document Quarterly Report Document Quarterly Report Current assets Assets, Current [Abstract] Operating lease liabilities, non-current Operating Lease, Liability, Noncurrent Stock Repurchase Activity Class of Treasury Stock [Table Text Block] Statistical Measurement Statistical Measurement [Axis] Repurchases of common stock (in shares) Number of shares repurchased (in shares) Treasury Stock, Shares, Acquired Deferred Revenue Arrangement [Line Items] Deferred Revenue Arrangement [Line Items] Payments for contingent consideration Payment for Contingent Consideration Liability, Financing Activities Leasehold improvements Leasehold Improvements [Member] Retained earnings Retained Earnings (Accumulated Deficit) Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Purchased for Award Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Purchased for Award Accounts receivable, net Accounts Receivable, after Allowance for Credit Loss, Current Schedule of Finite Lived Intangible Assets [Table] Schedule of Finite-Lived Intangible Assets [Table] Equity Components [Axis] Equity Components [Axis] Fair Value, Measurements, Recurring Fair Value, Recurring [Member] Weighted average exercise price (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price Reclassification of (gain) loss on investments into earnings, tax Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Tax Document Fiscal Year Focus Document Fiscal Year Focus 2021 Share Repurchase Program 2021 Stock Repurchase Program [Member] 2021 Stock Repurchase Program Cash flows from operating activities Net Cash Provided by (Used in) Operating Activities [Abstract] Statement [Line Items] Statement [Line Items] Outstanding, beginning of period (in shares) Outstanding, end of period (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number Other expense, net Total other income (expense), net Nonoperating Income (Expense) Deferred costs Deferred Costs, Current Gross Carrying Amount Finite-Lived Intangible Assets, Gross Fair Value Hierarchy and NAV Fair Value Hierarchy and NAV [Axis] Operating lease right-of-use assets Operating Lease, Right-of-Use Asset Accumulated Other Comprehensive Loss AOCI Attributable to Parent [Member] Document Transition Report Document Transition Report Local Phone Number Local Phone Number Stock Option Activity Share-Based Payment Arrangement, Option, Activity [Table Text Block] Income from operations Operating Income (Loss) Fulfillment Fulfillment [Member] Fulfillment. Maximum recognition period for miscellaneous one-time fee Maximum Recognition Period For Miscellaneous One Time Fee Maximum recognition period for miscellaneous one-time fee. Common stock, shares outstanding (in shares) Beginning balance (in shares) Ending balance (in shares) Common Stock, Shares, Outstanding Goodwill Balance, beginning of period Balance, end of period Goodwill Long-Lived Tangible Asset [Axis] Long-Lived Tangible Asset [Axis] Reconciliation of net income to net cash provided by operating activities Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] Goodwill and Intangible Assets, Net Goodwill and Intangible Assets Disclosure [Text Block] Income tax expense Income Tax Expense (Benefit) Deferred income tax liabilities Deferred Income Tax Liabilities, Net Preferred stock, par value (in dollars per share) Preferred Stock, Par or Stated Value Per Share 2026 Lessee, Operating Lease, Liability, to be Paid, Year Four Deferred Revenue Arrangement [Roll Forward] Deferred Revenue Arrangement [Roll Forward] Deferred Revenue Arrangement Income Statement [Abstract] Income Statement [Abstract] Granted (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross Additional Paid-in Capital Additional Paid-in Capital [Member] Balance Sheet Location [Domain] Balance Sheet Location [Domain] Document Fiscal Period Focus Document Fiscal Period Focus Other Other [Member] Other. Diluted (in shares) Weighted average common shares outstanding, diluted (in shares) Weighted Average Number of Shares Outstanding, Diluted Less: accumulated depreciation and amortization Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment Life (in years) Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term Accounting Pronouncements Note Yet Adopted Accounting Standards Update and Change in Accounting Principle [Table Text Block] Collaborative Arrangement and Arrangement Other than Collaborative Collaborative Arrangement and Arrangement Other than Collaborative [Domain] Schedule of Financial Instruments [Line Items] Debt Securities, Available-for-Sale [Line Items] Accounts Receivable, Allowance for Credit Loss [Roll Forward] Accounts Receivable, Allowance for Credit Loss [Roll Forward] Common stock, $0.001 par value; 110,000,000 shares authorized; 38,184,747 and 37,798,610 shares issued; and 36,037,964 and 36,009,257 shares outstanding, respectively Common Stock, Value, Issued Operating leases Increase (Decrease) In Operating Leases Increase decrease in operating leases. Business Acquisition, Acquiree Business Acquisition, Acquiree [Domain] Granted (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block] Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block] Accrued compensation Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Accrued Liabilities Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Accrued Liabilities Deferred income tax assets Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets Preferred stock, shares authorized (in shares) Preferred Stock, Shares Authorized Commitments and Contingencies Commitments and Contingencies Disclosure [Text Block] Current liabilities Liabilities, Current [Abstract] Net proceeds from exercise of options to purchase common stock Proceeds from Stock Options Exercised Common stock, shares issued (in shares) Common Stock, Shares, Issued Office equipment and furniture Office Equipment And Furniture [Member] Office Equipment And Furniture Deferred revenue Contract with Customer, Liability, Current Cash Equivalents Cash Equivalents [Member] Realized loss from foreign currency on cash and investments held Foreign Currency Transaction Gain (Loss), before Tax Income Statement Location Income Statement Location [Domain] ESPP Employee Stock Purchase Plan [Member] Employee stock purchase plan. Amendment Flag Amendment Flag Net cash used in investing activities Net Cash Provided by (Used in) Investing Activities Operating lease cost Operating Lease, Cost Weighted Average Remaining Amortization Period Finite-Lived Intangible Assets, Remaining Amortization Period Investment Type Investment Type [Axis] Employee stock purchase plan activity Stock Issued During Period, Value, Employee Stock Purchase Plan Comprehensive income Comprehensive Income (Loss), Net of Tax, Attributable to Parent Addition from business acquisition Goodwill, Acquired During Period Entity Current Reporting Status Entity Current Reporting Status Goodwill and Intangible Assets Disclosure [Abstract] Goodwill and Intangible Assets Disclosure [Abstract] Deferred income tax liabilities Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities Other assets, non-current Other Assets, Noncurrent Invoiced set-up fees Deferred Revenue Invoiced Set Up Fees Deferred revenue Invoiced set up fees. Accrued compensation Increase (Decrease) in Employee Related Liabilities Outstanding and exercisable options (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number Depreciation and amortization of property and equipment Depreciation, Depletion and Amortization Disaggregation Of Revenue [Table] Disaggregation of Revenue [Table] Contract with Customer, Duration Contract with Customer, Duration [Axis] Business Description Business Description Policy [Policy Text Block] Business description policy. Deferred Costs [Roll Forward] Deferred Costs [Roll Forward] Deferred Costs Foreign Currency Translation Finite Lived Intangible Assets Accumulated Foreign Currency Translation Gain Loss Finite lived intangible assets accumulated foreign currency translation gain (loss). Employee stock purchase plan activity (in shares) Stock Issued During Period, Shares, Employee Stock Purchase Plans Schedule of Recognized Identified Assets Acquired and Liabilities Assumed Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block] Outstanding, beginning of period (in shares) Outstanding, end of period (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number Estimated Fair Value Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Basis of Presentation Basis of Accounting, Policy [Policy Text Block] Property and equipment, net Property and equipment, net Property, Plant and Equipment, Net Operating cash flows from operating leases Operating Lease, Payments Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block] Sales and marketing Selling and Marketing Expense [Member] Stock options Share-Based Payment Arrangement, Option [Member] Volatility Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate Allowance for credit losses Balance, beginning of period Balance, end of period Accounts Receivable, Allowance for Credit Loss, Current Other income (expense), net Other Nonoperating Income (Expense) Forfeited (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period Balance Sheet Location [Axis] Balance Sheet Location [Axis] One-time revenues One Time Revenues [Member] One time revenues. Common stock, shares authorized (in shares) Common Stock, Shares Authorized Total operating expenses Operating Expenses Maximum Maximum [Member] Accumulated other comprehensive loss Accumulated Other Comprehensive Income (Loss), Net of Tax Schedule of Business Acquisitions, by Acquisition [Table] Schedule of Business Acquisitions, by Acquisition [Table] Cash and cash equivalents Cash and Cash Equivalents, at Carrying Value Deferred revenue Increase (Decrease) in Contract with Customer, Liability Total current assets Assets, Current Business Acquisition [Line Items] Business Acquisition [Line Items] Entity Small Business Entity Small Business Measurement Frequency Measurement Frequency [Domain] Stockholders' Equity Stockholders' Equity Note Disclosure [Text Block] Shares issued (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period Contract with Customer, Duration Contract with Customer, Duration [Domain] Intangible assets, net Net Finite-Lived Intangible Assets, Net Unrealized Gains (Losses), net Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain (Loss), before Tax Unrecognized stock-based compensation expense Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount Deferred Costs Deferred Costs Disclosure [Text Block] Deferred costs. Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward] Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward] Property and Equipment, Net Property, Plant and Equipment Disclosure [Text Block] Long-Lived Tangible Asset [Domain] Long-Lived Tangible Asset [Domain] Accounts receivable Increase (Decrease) in Accounts Receivable Title of 12(b) Security Title of 12(b) Security General Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block] Contract term maximum Contract Term Maximum Contract Term Maximum Short-term investments Short-Term Investments Schedule of Supplemental Cash Flow Information Related to Leases Schedule Of Supplemental Cash Flow Information Related To Leases Table [Table Text Block] Schedule of supplemental cash flow information related to leases. Business Combination and Asset Acquisition [Abstract] Shares issued pursuant to stock awards (in shares) Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture Total operating lease liabilities Operating Lease, Liability 2024 Finite-Lived Intangible Asset, Expected Amortization, Year Two LIABILITIES AND STOCKHOLDERS’ EQUITY Liabilities and Equity [Abstract] U.S. treasury securities US Treasury Securities [Member] Granted (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price Amortized Cost Debt Securities, Available-for-Sale, Amortized Cost Weighted average common shares used to compute net income per share Denominator Weighted Average Number of Shares Outstanding, Diluted [Abstract] Summary of ESPP Activity Schedule of Share-Based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block] Accounts payable Accounts Payable, Current Other current and non-current assets Increase (Decrease) in Other Operating Assets Internally developed software Internally Developed Software [Member] Internally Developed Software Entity Filer Category Entity Filer Category Basic (in shares) Weighted average common shares outstanding, basic (in shares) Weighted Average Number of Shares Outstanding, Basic Stock-based compensation expense Share-Based Payment Arrangement, Expense Commitments and contingencies Commitments and Contingencies Security Exchange Name Security Exchange Name Outstanding, beginning of period (in dollars per share) Outstanding, end of period (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price Weighted Average Estimated Useful Life Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items] Preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding Preferred Stock, Value, Issued Balance, beginning of period Balance, end of period Deferred Costs Property, Plant and Equipment [Line Items] Property, Plant and Equipment [Line Items] General and administrative General and Administrative Expense [Member] Revenues Revenue from Contract with Customer, Excluding Assessed Tax Cover [Abstract] Cover [Abstract] Level 3 Fair Value, Inputs, Level 3 [Member] Geographic Distribution Geographic Distribution [Axis] Stock-Based Compensation Share-Based Payment Arrangement [Text Block] Revenue Revenue from Contract with Customer [Text Block] Recurring revenues Recurring Revenues [Member] Recurring revenues. Investments Investments [Domain] Risk-free interest rate Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate Total liabilities and stockholders’ equity Liabilities and Equity Collaborative Arrangement and Arrangement Other than Collaborative Collaborative Arrangement and Arrangement Other than Collaborative [Axis] Goodwill [Roll Forward] Goodwill [Roll Forward] Share Value Available for Future Repurchase Stock Repurchase Program, Remaining Authorized Repurchase Amount Options to purchase common stock (in shares) Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements Organization, Consolidation and Presentation of Financial Statements [Abstract] Organization, Consolidation and Presentation of Financial Statements [Abstract] Acquisition of business, net Payments to Acquire Businesses, Net of Cash Acquired Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items] Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Level 2 Fair Value, Inputs, Level 2 [Member] Current Fiscal Year End Date Current Fiscal Year End Date Less: imputed interest Lessee, Operating Lease, Liability, Undiscounted Excess Amount Finite-Lived Intangible Assets [Line Items] Finite-Lived Intangible Assets [Line Items] Other current assets Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other Diluted (in dollars per share) Earnings Per Share, Diluted Sale of Stock Sale of Stock [Domain] Other Income and Expense Other Nonoperating Income and Expense [Text Block] Vesting period Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period Stock-based compensation APIC, Share-Based Payment Arrangement, Increase for Cost Recognition Concentration Risk Type Concentration Risk Type [Axis] Total current liabilities Liabilities, Current Set up fees recognized period Set Up Fees Recognized Period Set up fees recognized period. 2024 Lessee, Operating Lease, Liability, to be Paid, Year Two Other assets Other Assets, Current Number of jurisdiction outside US had excess revenue of 10% Number Of Jurisdiction Outside U.S. Had Excess Revenue Of Ten Percentage Number of jurisdiction outside US had excess revenue of 10%. Schedule Of Percentage Of Property And Equipment Net Schedule Of Percentage Of Property And Equipment Net [Table Text Block] Schedule Of Percentage Of Property And Equipment Net Revenue Recognition [Line Items] Revenue Recognition [Line Items] Revenue recognition. Share Repurchase Program Share Repurchase Program [Axis] Other liabilities Other Liabilities, Noncurrent [Abstract] Schedule of Future Minimum Payments Under Operating Leases Lessee, Operating Lease, Liability, Maturity [Table Text Block] Entity Address, Address Line Two Entity Address, Address Line Two Entity Address, Address Line One Entity Address, Address Line One Schedule Of Stockholders Equity [Line Items] Schedule Of Stockholders Equity [Line Items] Schedule of stockholders equity. Cost of revenues Cost of Revenue Balance, beginning of period Balance, end of period Contract with Customer, Liability Other assets Other Assets, Noncurrent [Abstract] Product and Service Product and Service [Axis] Fair Value Disclosures [Abstract] Fair Value Disclosures [Abstract] 2022 Stock Repurchase Program 2022 Stock Repurchase Program [Member] 2022 Stock Repurchase Program Unrealized gain (loss) on investments, net of tax of $53, ($9), $49 and ($36), respectively Unrealized gain (loss) on investments, net of tax OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax Maturities of investments Proceeds from Sale and Maturity of Debt Securities, Available-for-Sale Marketable Securities Marketable Securities [Member] Marketable Securities Equity [Abstract] Equity [Abstract] Vested and common stock issued (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period Entity Tax Identification Number Entity Tax Identification Number Summary of Revenues by Revenue Stream Disaggregation of Revenue [Table Text Block] Revenue from Contract with Customer [Abstract] Revenue from Contract with Customer [Abstract] Remainder of 2022 Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year Summary of Deferred Costs and Amortization of Deferred Costs Deferred Costs And Amortization [Table Text Block] Deferred costs and amortization. Net increase (decrease) in cash and cash equivalents Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Commercial paper Commercial Paper [Member] Entity Central Index Key Entity Central Index Key Measurement Frequency Measurement Frequency [Axis] Weighted Average Grant Date Fair Value ($/share) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract] Finite Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets by Major Class [Axis] Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table] Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table] Purchase price Business Combination, Consideration Transferred City Area Code City Area Code General and administrative General and Administrative Expense ASSETS Assets [Abstract] Thereafter Lessee Operating Lease Liability Payments Due After Year Four Lessee, operating lease liability, payments due after year four. Statement of Stockholders' Equity [Abstract] Statement of Stockholders' Equity [Abstract] Sale of Stock Sale of Stock [Axis] Cash flows from financing activities Net Cash Provided by (Used in) Financing Activities [Abstract] Foreign currency translation adjustments Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax Stock-based compensation Share-Based Payment Arrangement, Noncash Expense Weighted average fair value per share of options granted (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value Incurred deferred costs Deferred Costs Incurred Deferred costs incurred. Common stock reserved for future issuance (in shares) Deferred Compensation Arrangement with Individual, Common Stock Reserved for Future Issuance Purchases of property and equipment Payments to Acquire Property, Plant, and Equipment Share Based Compensation Arrangement By Share Based Payment Award Value Purchased For Award Share Based Compensation Arrangement By Share Based Payment Award Value Purchased For Award Share-based compensation arrangement by share-based payment award value purchased for award. Research and development Research and Development Expense [Member] Disaggregation Of Revenue [Line Items] Disaggregation of Revenue [Line Items] Remaining purchase commitment Purchase Commitment, Remaining Minimum Amount Committed 2023 Finite-Lived Intangible Asset, Expected Amortization, Year One Components and Computation of Basic and Diluted Net Income Per Share Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Right-of-use assets obtained in exchange for operating lease liabilities Right-of-Use Asset Obtained in Exchange for Operating Lease Liability Cost of revenues Cost of Sales [Member] EX-101.PRE 9 spsc-20220930_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT GRAPHIC 10 spsc-20220930_g1.jpg begin 644 spsc-20220930_g1.jpg M_]C_X 02D9)1@ ! 0$ 8 !@ #_VP!# @&!@<&!0@'!P<)"0@*#!0-# L+ M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#W^BBD) &3 MP!0 M9>J:]IFC)F]NDC;&1&.7/X#FN8UGQ?=7U]_9'AM/-G8E6N!R!Z[>V!_ M>-7M$\$6MF_VS4V^W7S?,QD^9%/MGK]376L/&G'FKNWEU_X!Y[Q Q"5^7\CECF^#D[<_P"#.\HJ MI8ZA::E;BXLYTFC/=3T^H[?C5NN1IIV9Z,9*2NG=!1112&%>>^-/$,]S=KX? MTK+2.P28IU8G^ ?U_+UKJ?$NK#1-#N+H?ZTC9$/5ST_+K^%IY6/JSJU(X2F[.6[[+_ ()U'AGPY!X? MT\)P]W( 9I?4^@]A4FN>)=/T"/\ TF0O,PRD* *\KT72KOQ=KDIGN"/^6D\IY('H!_*G0H^WW]!6#<>(]=U1O+>_N7W?\LXOE!_!<5Z/ M9> M"L\%X)+EAWF%AK.\OZ\CDH/AWH<:;9!<2M_>:0C^6*S=3^&L#(7 MTNZ>.0=(I_F4_CU'ZUW]%81QN(B[\QU3RS"2CR\B/#K:ZU7PKK!PK07"$"2) MONN/?U'O7KNAZS;ZYIJ7=O\ *?NR1D\HW<&J'BWP['KNFL8T O806A;H3_LG MV/\ .O/O!NLMH^O(DC%;>X(BF4\!3G@_@?TS7=-1QM%U(JTX_P!?\,>52<\L MQ*I2=Z>)E M[]KC*]5]';^ON.5\?V5Q>>&\VZL_D2B5U7DE0"#^6-X=TZ4S78TZ&7KEE0/G^=&$QGLX>R<>8>89;[6JJ\:G*>.3 MWM_,XFN+FY=FY5G=LGW%=-I7C^^T[3OLTT7VR13^[DD?!5?0]S^=+XV\366L MK!9V W10L7,Q7&3C&!WQ7/:'9)J.N65I(I,,]Q3;!IUNO&"63<3^)R:\G\5V]I:>)KR"R4+"C#Y5 MZ*V!D#\:Y\-5P]=NG&%D=F-H8S"Q5:=6[OW9['87D6H6$%Y#_JYD#@'MGM5J MO+K'QXNDZ):6%I9&62&,!I)6P,]3P.?U%9E[XYUV[R!="W0]H%VG\^3^M<*R MVM*3MHO,]-YWAX05]96UMW/8BP& 2 3T]Z\<\;:<-.\33^6NV.X F7'&">OZ M@UN>!M(U&[U0:SJ!F,4:GRFF))D8\9&>P&>?>I?B?;C_ (EUR.OSQG]"/ZUK MA(JABO9IWNM3#'S>+P#K./+9Z>FQV'AZ^.H^'[&Z9LN\0#GU8<']1161\/7+ M^%(U/\$KJ/SS_6BO/Q$%&K**[GL82I[2A";W:1P'B=C;^,[US_!G]?<>3EK=/%UZ+W;O^/\ P3SO6O%6J:W?.EK+-%;9 M(CA@)!(]3CDDU#9>#M=O_G6R>)3SON"$_0\_I7K]K8VEC'LM+:&!1QB- M6J M7]I6C!(K^Q75ESXBHY/R/,KCP3#H?AZ^U#4)Q/%K^TTO7X;V]8B&)7(VJ222,#^=>@_$2;RO"QC''FSHG\S_ $K@?#OAFY\1 M2S+#+'"D.-[L">O8?E79AJOM,/*==Z/\CSL;05'&0I86.J2?J]]3I-6^))DA M>+2K5XV;($TV,K]%&?U-<%EYI>'NX4/^',_1=/T/0=,^ M'%E'#')J4TLLQ&6C1MJ ^GJ?SKI[/P_I.GX-KI]NC#HQ3+?F>:\>N-;UB_3; M-?W4J(.0&( 'OC^M7O"^O7NF:Q;()Y'MI9%CDB9B00>,CW%<];"8F<7*52_E MT.S#9C@ZSUP7Q.8#3]/7N96/X8_^O7>UY?\2KOS=6M;-.?) MB+$#U8_X"N'+XN6(CY'JYQ-1P?/5E)=6=F$@Z="$'T2,;QYHYU/0O/B7,]F3( M.I3^(?R/X5R/@37UTO46LKEPMK=$88\!'['Z'I^5>L$9X->3^,O"CZ5.]_91 MDV$ARP _U)ST_P!WT->A@JL*E-X:IUV/(S.A4HU8XVBM5O\ U^#/6:*\N\-^ M/9+")+/5%>>!>$F7EU'H?4?K]:[>#Q7H,\>]-4MU'H[;#^1KEK8.M2E9JZ[G MH8;,71+6WW'HU4;^'370/J,=J57HUP%P/Q->37GC77KU ML?;3 I_A@4)^O7]:J0Z-KFL/YB6MW<$_\M),X_[Z:KAELH^]4FE_7R,ZF=PJ M>Y2IN7]?,]"U/Q=H.E6,L-AY,TK*56*! $S[GIBN-\$Z-)J>O0SE/]&M&$LC M8XS_ C\_P!*T=,^'&H3.&U&>.VC[K&=[G^@_6O1-.TZUTJS2TLXA'"GYL?4 M^IISK46,=D3W$\5K;23S.$BC4NS'L!7EF@6\GB MOQK)?S!O(CD\]P>P'W%_0?D:T_&>O2:K=IX>TG,I9PLQ3^-L_=^@ZD_X&NL\ M-Z'%H&E):J0TS_/,_P#>;_ =!64/]FH.3^*6WDC>K_MV)4(_!#5^;[&U1117 MG'LA4;(KH490RL,$$9!J2B@#B-8^'5E=N9M.E^QN>3&1N0G^8KFY?AWKB/A/ MLT@_O"3'\Q7K=%=M/,*\%:]_4\NMD^%JRYK6]#R^U^&FHR;3=7EO .X0%S_0 M5OV?PYT> W#W%RW^TVT?D/\:[&BE/'XB?VK>A5+*<)3^Q?UU_X!G6>B:9I_ M_'I86\1'\00;OS/-:-9^IWL]A;K);V$]Z[-MV1$ CCJ<]JQ)+_Q=>Y6UTFVL M%/1[B8.1^ _PK&-.=3WF_O?],Z)5:='W(Q?HD_\ ACI+BX@M86FN)4BB7J[M M@"N%U;Q3>Z_.VD^&HI&#<27(!''M_='N:OKX)GU"83^(-6FO&!R(H_E0?Y]@ M*Z>RT^TTZW$%G;QP1C^%!C/U]?QK:+HT=5[TOP_X)A..)Q/NOW(_^3/]$8WA MCPI;^'X/,7'"CT7V_G6A?Z3'?3>8VP$Q^63MYQN!Z]>@(_&M2BL)5 MIRGSMZG5##4H4U2BM"C8V8L$E02M())#)N=OFY SG\J*O45FW=W9M&*BK(** =**0PHHHH **** "BBB@ HHHH **** "BBB@#_]D! end GRAPHIC 11 spsc-20220930_g2.jpg begin 644 spsc-20220930_g2.jpg M_]C_X 02D9)1@ ! 0$ 8 !@ #_X1#T17AI9@ 34T *@ @ ! $[ ( M . (2H=I 0 ! (6)R= $ < 0T.H< < @, /@ M FMC.60G/SX-"CQX.GAM M<&UE=&$@>&UL;G,Z>#TB861O8F4Z;G,Z;65T82\B/CQR9&8Z4D1&('AM;&YS M.G)D9CTB:'1T<#HO+W=W=RYW,RYO&UL;G,Z M#IX;7!M971A/@T*(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @( H@(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @"B @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" *(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @( H@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @"B @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" *(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M( H@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @"B @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" *(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @( H@(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M"B @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" *(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @( H@(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @"B @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" * M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @( H@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @"B @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" *(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @( H@ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @"B @(" @(" @(" @(" @(" @(" @(" @(" @(" \/WAP86-K M970@96YD/2=W)S\^_]L 0P '!04&!00'!@4&" <'" H1"PH)"0H5#Q ,$1@5 M&AD8%1@7&QXG(1L=)1T7&"(N(B4H*2LL*QH@+S,O*C(G*BLJ_]L 0P$'" @* M"0H4"PL4*AP8'"HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ_\ $0@ )0 H P$B (1 0,1 ?_$ !\ $% 0$! M 0$! ! @,$!08'" D*"__$ +40 (! P,"! ,%!00$ !?0$" M P $$042(3%!!A-180'EZ@X2% MAH>(B8J2DY25EI>8F9JBHZ2EIJ>HJ:JRL[2UMK>XN;K"P\3%QL?(R;GZ.GJ\?+S]/7V]_CY^O_$ !\! ,! 0$! 0$! 0$ M ! @,$!08'" D*"__$ +41 (! @0$ P0'!00$ $"=P ! @,1! 4A,082 M05$'87$3(C*!"!1"D:&QP0DC,U+P%6)RT0H6)#3A)?$7&!D:)BH*#A(6&AXB)BI*3 ME)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&Q\C)RM+3U-76U]C9VN+C MY.7FY^CIZO+S]/7V]_CY^O_: P# 0 "$0,1 #\ ^D20!DG %8PU:XU!9&TH M0QVJ$C[=<9*,1UVJ"-P_VL@>F:B\5RR26]EI<3%#J5R()&!P5CP6?'N0,?C7 M,^,K.]34FDN-(%[H=I; Q1"Z$$49'4D#!)XP!^5=E"BIVYGO_7=79YN+Q,J: M?*M%:^_7T3:26[2ZHZ2Y\8Z)ID:1WFK07$YXQ;*7)/T7./QJ73/%NE:K>?9+ M>9HKG&1#/&8V8>V>OX5RMCXNM+"SM+ZQ\)BVTZ1UB>[38I#'@@ #+8(/)(SC MM6IXCNM%\0VKVVG7L4VJVZ-/:R6Y+-&R#/WEX /3D]QWQ6TL-%.SB_6Z=O5+ M_,YH8V-'>R&E:NJ%HK"\#3X_AC8%2?U'YU7U7PKIDUAJ&K3-/J M=PT4D\!EE+JORDJ$4<$=,#FNLGACN8'AG19(Y%*NC#(8'J#7,+X*EM2(=+U[ M4;*RS_Q[(X;;ST5CRH_.NNC62BESVFIYN(P[IQ^$]/%UJ43K ZR_8+H^3"@.2RL1R6R>O'>M70=76W\-ZS<26.GPQ6 MA,44FGH1'.V.@)Y;D@9[YK0?P7I$$_VBYL[S6;DC[]S-O/\ X\0M7;?1'N9( M'OHH;:VM2&M;&W'R1-_?8XP6&>!C ]SS734Q,*D+2=];[6^Y7_%G'1P52E4O M!6=K;WZ6U;6ENR?EL7/#MA)IGANPLY@!+# JN XML 12 R1.htm IDEA: XBRL DOCUMENT v3.22.2.2
Cover - shares
9 Months Ended
Sep. 30, 2022
Oct. 20, 2022
Cover [Abstract]    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Sep. 30, 2022  
Document Transition Report false  
Entity File Number 001-34702  
Entity Registrant Name SPS COMMERCE, INC.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 41-2015127  
Entity Address, Address Line One 333 South Seventh Street  
Entity Address, Address Line Two Suite 1000  
Entity Address, City or Town Minneapolis  
Entity Address, State or Province MN  
Entity Address, Postal Zip Code 55402  
City Area Code 612  
Local Phone Number 435-9400  
Title of 12(b) Security Common Stock, par value $0.001 per share  
Trading Symbol SPSC  
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 Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   36,041,714
Entity Central Index Key 0001092699  
Current Fiscal Year End Date --12-31  
Document Fiscal Year Focus 2022  
Document Fiscal Period Focus Q3  
Amendment Flag false  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.22.2.2
Condensed Consolidated Balance Sheets - USD ($)
$ in Thousands
Sep. 30, 2022
Dec. 31, 2021
Current assets    
Cash and cash equivalents $ 186,230 $ 207,552
Short-term investments 50,928 49,758
Accounts receivable 40,445 38,811
Allowance for credit losses (3,658) (4,249)
Accounts receivable, net 36,787 34,562
Deferred costs 50,082 44,529
Other assets 15,246 16,042
Total current assets 339,273 352,443
Property and equipment, net 32,923 31,901
Operating lease right-of-use assets 9,760 10,851
Goodwill 165,908 143,663
Intangible assets, net 70,742 58,587
Other assets    
Deferred costs, non-current 16,474 15,191
Deferred income tax assets 223 182
Other assets, non-current 1,787 3,028
Total assets 637,090 615,846
Current liabilities    
Accounts payable 8,200 8,330
Accrued compensation 28,779 31,661
Accrued expenses 5,202 8,345
Deferred revenue 58,949 50,428
Operating lease liabilities 4,336 4,108
Total current liabilities 105,466 102,872
Other liabilities    
Deferred revenue, non-current 5,146 5,144
Operating lease liabilities, non-current 13,974 16,426
Deferred income tax liabilities 4,841 7,145
Total liabilities 129,427 131,587
Commitments and contingencies
Stockholders' equity    
Preferred stock, $0.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding 0 0
Common stock, $0.001 par value; 110,000,000 shares authorized; 38,184,747 and 37,798,610 shares issued; and 36,037,964 and 36,009,257 shares outstanding, respectively 38 38
Treasury Stock, at cost; 2,146,783 and 1,789,353 shares, respectively (128,377) (85,677)
Additional paid-in capital 463,356 433,258
Retained earnings 177,306 138,087
Accumulated other comprehensive loss (4,660) (1,447)
Total stockholders’ equity 507,663 484,259
Total liabilities and stockholders’ equity $ 637,090 $ 615,846
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.22.2.2
Condensed Consolidated Balance Sheets (Parenthetical) - USD ($)
$ in Thousands
Sep. 30, 2022
Dec. 31, 2021
Statement of Financial Position [Abstract]    
Preferred stock, par value (in dollars per share) $ 0.001 $ 0.001
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.001 $ 0.001
Common stock, shares authorized (in shares) 110,000,000 110,000,000
Common stock, shares issued (in shares) 38,184,747 37,798,610
Common stock, shares outstanding (in shares) 36,037,964 36,009,257
Treasury stock, shares (in shares) 2,146,783 1,789,353
Cash and cash equivalents $ 186,230 $ 207,552
Deferred costs 50,082 44,529
Other assets $ 15,246 $ 16,042
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.22.2.2
Condensed Consolidated Statements of Comprehensive Income - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Income Statement [Abstract]        
Revenues $ 114,486 $ 97,887 $ 328,857 $ 282,520
Cost of revenues 38,605 34,343 111,524 96,043
Gross profit 75,881 63,544 217,333 186,477
Operating expenses        
Sales and marketing 25,334 22,079 74,571 65,386
Research and development 11,135 10,854 33,268 28,459
General and administrative 16,724 14,691 49,390 45,186
Amortization of intangible assets 2,998 2,399 7,936 7,734
Total operating expenses 56,191 50,023 165,165 146,765
Income from operations 19,690 13,521 52,168 39,712
Other expense, net (695) (716) (1,610) (1,424)
Income before income taxes 18,995 12,805 50,558 38,288
Income tax expense 3,132 1,356 11,339 6,456
Net income 15,863 11,449 39,219 31,832
Other comprehensive income (expense)        
Foreign currency translation adjustments (2,296) (968) (3,309) (604)
Unrealized gain (loss) on investments, net of tax of $53, ($9), $49 and ($36), respectively 158 (27) 147 (107)
Reclassification of (gain) loss on investments into earnings, net of tax of ($13), $16, ($17) and $46, respectively (39) 48 (51) 138
Total other comprehensive expense (2,177) (947) (3,213) (573)
Comprehensive income $ 13,686 $ 10,502 $ 36,006 $ 31,259
Net income per share        
Basic (in dollars per share) $ 0.44 $ 0.32 $ 1.09 $ 0.89
Diluted (in dollars per share) $ 0.43 $ 0.31 $ 1.06 $ 0.86
Weighted average common shares used to compute net income per share        
Basic (in shares) 36,093 35,961 36,104 35,873
Diluted (in shares) 36,915 37,015 36,942 36,898
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.22.2.2
Condensed Consolidated Statements of Comprehensive Income (Parenthetical) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Income Statement [Abstract]        
Unrealized gain (loss) on investments, tax $ 53 $ (9) $ 49 $ (36)
Reclassification of (gain) loss on investments into earnings, tax $ (13) $ 16 $ (17) $ 46
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.22.2.2
Condensed Consolidated Statements of Stockholders' Equity - USD ($)
$ in Thousands
Total
Common Stock
Treasury Stock
Additional Paid-in Capital
Retained Earnings
Accumulated Other Comprehensive Loss
Beginning balance (in shares) at Dec. 31, 2020   35,487,217        
Beginning balance at Dec. 31, 2020 $ 420,721 $ 37 $ (65,247) $ 393,462 $ 93,490 $ (1,021)
Beginning balance (in shares) at Dec. 31, 2020     1,613,250      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation 19,866     19,866    
Shares issued pursuant to stock awards (in shares)   555,160        
Shares issued pursuant to stock awards 7,027 $ 1   7,026    
Employee stock purchase plan activity (in shares)   27,675        
Employee stock purchase plan activity $ 2,316     2,316    
Repurchases of common stock (in shares) 105,814 105,814 105,814      
Repurchases of common stock $ (10,661)   $ (10,661)      
Net income 31,832       31,832  
Foreign currency translation adjustments (604)         (604)
Unrealized gain (loss) on investments, net of tax (107)         (107)
Reclassification of (gain) loss on investments into earnings, net of tax 138         138
Ending balance (in shares) at Sep. 30, 2021   35,964,238        
Ending balance at Sep. 30, 2021 470,528 $ 38 $ (75,908) 422,670 125,322 (1,594)
Ending balance (in shares) at Sep. 30, 2021     1,719,064      
Beginning balance (in shares) at Jun. 30, 2021   35,859,353        
Beginning balance at Jun. 30, 2021 454,749 $ 38 $ (71,697) 413,182 113,873 (647)
Beginning balance (in shares) at Jun. 30, 2021     1,676,765      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation 6,361     6,361    
Shares issued pursuant to stock awards (in shares)   145,658        
Shares issued pursuant to stock awards 2,997 $ 0   2,997    
Employee stock purchase plan activity (in shares)   1,526        
Employee stock purchase plan activity $ 130     130    
Repurchases of common stock (in shares) 42,299 42,299 42,299      
Repurchases of common stock $ (4,211)   $ (4,211)      
Net income 11,449       11,449  
Foreign currency translation adjustments (968)         (968)
Unrealized gain (loss) on investments, net of tax (27)         (27)
Reclassification of (gain) loss on investments into earnings, net of tax 48         48
Ending balance (in shares) at Sep. 30, 2021   35,964,238        
Ending balance at Sep. 30, 2021 $ 470,528 $ 38 $ (75,908) 422,670 125,322 (1,594)
Ending balance (in shares) at Sep. 30, 2021     1,719,064      
Beginning balance (in shares) at Dec. 31, 2021 36,009,257 36,009,257        
Beginning balance at Dec. 31, 2021 $ 484,259 $ 38 $ (85,677) 433,258 138,087 (1,447)
Beginning balance (in shares) at Dec. 31, 2021 1,789,353   1,789,353      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation $ 24,053     24,053    
Shares issued pursuant to stock awards (in shares)   348,621        
Shares issued pursuant to stock awards 2,457     2,457    
Employee stock purchase plan activity $ 3,588     3,588    
Repurchases of common stock (in shares) 357,430 357,430        
Repurchases of common stock $ (42,700)   $ (42,700)      
Net income 39,219       39,219  
Foreign currency translation adjustments (3,309)          
Unrealized gain (loss) on investments, net of tax 147          
Reclassification of (gain) loss on investments into earnings, net of tax $ (51)          
Ending balance (in shares) at Sep. 30, 2022 36,037,964 36,037,964        
Ending balance at Sep. 30, 2022 $ 507,663 $ 38 $ (128,377) 463,356 177,306 (4,660)
Ending balance (in shares) at Sep. 30, 2022 2,146,783   2,146,783      
Beginning balance (in shares) at Jun. 30, 2022   36,029,477        
Beginning balance at Jun. 30, 2022 $ 497,020 $ 38 $ (115,900) 453,922 161,443 (2,483)
Beginning balance (in shares) at Jun. 30, 2022     2,044,549      
Increase (Decrease) in Stockholders' Equity [Roll Forward]            
Stock-based compensation 7,429     7,429    
Shares issued pursuant to stock awards (in shares)   108,240        
Shares issued pursuant to stock awards 1,767     1,767    
Employee stock purchase plan activity $ 238     238    
Repurchases of common stock (in shares) 102,234 102,234        
Repurchases of common stock $ (12,477)   $ (12,477)      
Net income 15,863       15,863  
Foreign currency translation adjustments (2,296)          
Unrealized gain (loss) on investments, net of tax 158          
Reclassification of (gain) loss on investments into earnings, net of tax $ (39)          
Ending balance (in shares) at Sep. 30, 2022 36,037,964 36,037,964        
Ending balance at Sep. 30, 2022 $ 507,663 $ 38 $ (128,377) $ 463,356 $ 177,306 $ (4,660)
Ending balance (in shares) at Sep. 30, 2022 2,146,783   2,146,783      
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.22.2.2
Condensed Consolidated Statements of Cash Flows - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Cash flows from operating activities    
Net income $ 39,219 $ 31,832
Reconciliation of net income to net cash provided by operating activities    
Deferred income taxes (2,092) 1,013
Depreciation and amortization of property and equipment 11,983 10,989
Amortization of intangible assets 7,936 7,734
Provision for credit losses 2,889 4,037
Stock-based compensation 25,636 21,273
Other, net 43 234
Changes in assets and liabilities, net of effects of acquisition    
Accounts receivable (3,999) (5,327)
Deferred costs (7,174) (5,686)
Other current and non-current assets 2,202 (3,893)
Accounts payable 129 (1,518)
Accrued compensation (4,388) 6,617
Accrued expenses (3,035) (174)
Deferred revenue 8,261 13,401
Operating leases (1,127) 1,036
Net cash provided by operating activities 76,483 81,568
Cash flows from investing activities    
Purchases of property and equipment (13,894) (15,567)
Purchases of investments (134,276) (84,020)
Maturities of investments 132,500 67,500
Acquisition of business, net (44,923) 0
Net cash used in investing activities (60,593) (32,087)
Cash flows from financing activities    
Repurchases of common stock (42,700) (10,661)
Net proceeds from exercise of options to purchase common stock 2,457 7,027
Net proceeds from employee stock purchase plan activity 3,588 2,316
Payments for contingent consideration 0 (2,042)
Net cash used in financing activities (36,655) (3,360)
Effect of foreign currency exchange rate changes (557) (10)
Net increase (decrease) in cash and cash equivalents (21,322) 46,111
Cash and cash equivalents at beginning of period 207,552 149,692
Cash and cash equivalents at end of period $ 186,230 $ 195,803
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.22.2.2
General
9 Months Ended
Sep. 30, 2022
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
General General
Business Description
SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf.
The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services we provide enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, to help ensure that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements.
Basis of Presentation
The accompanying unaudited condensed consolidated financial statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements.
This interim financial information has been prepared under the instructions to Form 10-Q and Rule 10-01 of Regulation S-X. Accordingly, these condensed consolidated financial statements do not include all of the information and notes required by GAAP. Therefore, these condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and notes included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the Securities and Exchange Commission (“SEC”). We have included all normal recurring adjustments considered necessary to provide a fair presentation of our financial position, results of operations, stockholders’ equity, and cash flows for the interim periods presented. Operating results for these interim periods are not necessarily indicative of the results to be expected for the full year.
Use of Estimates
Preparing financial statements in conformity with GAAP requires management to make estimates, judgments and assumptions that affect the reported amounts of assets and liabilities, disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the reporting periods. Actual results could differ from those estimates.
Significant Accounting Policies
There were no material changes in our significant accounting policies during the nine months ended September 30, 2022. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, for additional information regarding our significant accounting policies.
Accounting Pronouncements Not Yet Adopted
StandardDate of IssuanceDescriptionDate of Required AdoptionEffect on the Financial Statements
ASU 2021-08, Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers
October 2021This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter.
January 2023The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired.
XML 20 R9.htm IDEA: XBRL DOCUMENT v3.22.2.2
Business Acquisitions
9 Months Ended
Sep. 30, 2022
Business Combination and Asset Acquisition [Abstract]  
Business Acquisitions Business Acquisitions
GCommerce
Effective July 19, 2022, we acquired all of the outstanding equity ownership interests of GCommerce, Inc. ("GCommerce"), a leading EDI provider within the automotive aftermarket industry. Pursuant to the definitive agreement, the purchase price of $45 million was paid in cash at closing, and is subject to customary post-closing adjustments. The purchase accounting for the acquisition has not been finalized as of September 30, 2022. Provisional amounts are primarily related to intangible assets, net working capital, and tax positions. We expect to finalize the allocation of the purchase price within the one-year measurement period following the acquisition.
Purchase Price Allocation
We accounted for the acquisition as a business combination. We allocated the purchase price to the tangible and identifiable intangible assets acquired and liabilities assumed based on their estimated fair values as of the acquisition date. The excess of the purchase price over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. Goodwill is attributed to a trained workforce and other buyer-specific value resulting from expected synergies, including long-term cost savings, which are not included in the fair values of identifiable assets.
The following table summarizes the estimated fair values of the assets acquired and liabilities assumed at the acquisition date:
(in thousands)Estimated Fair Value
Cash$230 
Accounts receivable467 
Other current assets288 
Operating lease right-of-use asset934 
Goodwill24,556 
Intangible assets20,250 
Deferred income tax assets5,291 
Accounts payable(266)
Accrued compensation(321)
Deferred revenue(262)
Operating lease liability(934)
Deferred income tax liabilities(5,144)
$45,089 
Purchased Intangible Assets
The following table summarizes the estimated fair value of the purchased intangible assets and their estimated useful lives, each of which are subject to finalization:
($ in thousands)Estimated
Fair Value
Weighted Average
Estimated
Useful Life
Subscriber relationships$18,225 8.0 years
Acquired technology2,025 5.0 years
Total$20,250 
InterTrade
Effective October 4, 2022, we acquired all of the outstanding equity ownership interests of Canadian based InterTrade Systems Inc. ("InterTrade"), a leading EDI provider within the apparel and general merchandising markets. Pursuant to the definitive agreement, the purchase price of $49 million was paid in cash at closing, and is subject to customary post-closing adjustments.
XML 21 R10.htm IDEA: XBRL DOCUMENT v3.22.2.2
Revenue
9 Months Ended
Sep. 30, 2022
Revenue from Contract with Customer [Abstract]  
Revenue Revenue
We derive our revenues from the following revenue streams:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Recurring revenues:
Fulfillment$92,952 $78,106 $265,570 $224,738 
Analytics11,902 10,858 34,846 31,383 
Other1,699 1,435 4,867 4,019 
Recurring revenues106,553 90,399 305,283 260,140 
One-time revenues7,933 7,488 23,574 22,380 
Total revenue$114,486 $97,887 $328,857 $282,520 
Revenues are the amount that reflects the consideration we are contractually and legally entitled to, as well as the amount we expect to collect, in exchange for those services.
Recurring Revenues
Recurring revenues consist of recurring subscriptions from customers that utilize our Fulfillment, Analytics, and Other supply chain management products. Revenue for these products is generally recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Our contracts with our recurring revenue customers are recurring in nature, generally ranging from monthly to annual, and generally allow the customer to cancel the contract for any reason with 30 to 90 days’ notice. Timing of billings varies by customer and by contract type and generally are either in advance or within 30 days of the service being performed.
Given that the recurring revenue contracts are for one year or less, we have applied the optional exemption to not disclose information about the remaining performance obligations for recurring revenue contracts.
One-time Revenues
One-time revenues consist of set-up fees and miscellaneous fees from customers.
Set-up revenues
Set-up fees are specific for each connection a customer has with a trading partner. These nonrefundable fees are necessary for our customers to utilize our services and do not provide any standalone value. Many of our customers have connections with numerous trading partners.
Set-up fees constitute a material renewal option right that provide customers a significant future incentive that would not be otherwise available to that customer unless they entered into the contract, as the set-up fees will not be incurred again upon contract renewal. As such, set-up fees and related costs are deferred and recognized ratably over two years which is the estimated period for which a material right is present for our customers.
The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Balance, beginning of period$15,309 $13,344 $14,459 $11,118 
Invoiced set-up fees3,715 3,622 11,776 11,832 
Recognized set-up fees(3,805)(3,245)(11,016)(9,229)
Balance, end of period$15,219 $13,721 $15,219 $13,721 
The entire balance of deferred set-up fees will be recognized within two years. Those that will be recognized within the next year are classified as current, whereas the remainder are classified as non-current.
Miscellaneous one-time revenues
Miscellaneous one-time fees consist of professional services and testing and certification.
The contract period for these one-time fees is for one year or less and recognized at the time service is provided. We have applied the optional exemption to not disclose information about the remaining performance obligations for miscellaneous one-time fee contracts since they have original durations of one year or less.
XML 22 R11.htm IDEA: XBRL DOCUMENT v3.22.2.2
Deferred Costs
9 Months Ended
Sep. 30, 2022
Deferred Costs [Abstract]  
Deferred Costs Deferred Costs
The deferred costs activity was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Balance, beginning of period$64,665 $53,841 $59,720 $50,595 
Incurred deferred costs17,442 16,459 52,860 45,922 
Amortized deferred costs(15,551)(14,207)(46,024)(40,424)
Balance, end of period$66,556 $56,093 $66,556 $56,093 
XML 23 R12.htm IDEA: XBRL DOCUMENT v3.22.2.2
Financial Instruments
9 Months Ended
Sep. 30, 2022
Fair Value Disclosures [Abstract]  
Financial Instruments Financial Instruments
Cash Equivalents and Investments
Cash equivalents and investments consisted of the following:
September 30, 2022December 31, 2021
(in thousands)Amortized CostUnrealized Gains, netFair ValueAmortized CostUnrealized Gains (Losses), netFair Value
Cash equivalents:
Money market funds$111,498 $— $111,498 $138,205 $— $138,205 
Certificates of deposit6,437 — 6,437 7,268 — 7,268 
Marketable securities:
Commercial paper44,358 133 44,491 34,984 34,991 
U.S. treasury securities— — — 7,500 (1)7,499 
$162,293 $133 $162,426 $187,957 $$187,963 
Recurring Fair Value Measurements
The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis:
September 30, 2022December 31, 2021
(in thousands)Level 1Level 2Level 3TotalLevel 1Level 2Level 3Total
Assets:
Cash equivalents:
Money market funds$111,498 $— $— $111,498 $138,205 $— $— $138,205 
Certificates of deposit6,437 — — 6,437 7,268 — — 7,268 
Marketable securities:
Commercial paper— 44,491 — 44,491 — 34,991 — 34,991 
U.S. treasury securities— — — — — 7,499 — 7,499 
$117,935 $44,491 $— $162,426 $145,473 $42,490 $— $187,963 
See Note E to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, for additional information regarding the three levels of inputs that may be used to measure fair value.
XML 24 R13.htm IDEA: XBRL DOCUMENT v3.22.2.2
Allowance for Credit Losses
9 Months Ended
Sep. 30, 2022
Allowance for Credit Loss [Abstract]  
Allowance for Credit Losses Allowance for Credit Losses
The allowance for credit losses activity, included in accounts receivable, net, was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Balance, beginning of period$4,249 $4,233 
Provision for credit losses2,889 4,037 
Write-offs, net of recoveries(3,480)(3,666)
Balance, end of period$3,658 $4,604 
XML 25 R14.htm IDEA: XBRL DOCUMENT v3.22.2.2
Property and Equipment, Net
9 Months Ended
Sep. 30, 2022
Property, Plant and Equipment [Abstract]  
Property and Equipment, Net Property and Equipment, NetProperty and equipment, net consisted of the following:
(in thousands)September 30,
2022
December 31, 2021
Internally developed software$50,311 $44,981 
Computer equipment32,520 29,329 
Leasehold improvements16,871 16,685 
Office equipment and furniture11,157 10,972 
Property and equipment, cost110,859 101,967 
Less: accumulated depreciation and amortization(77,936)(70,066)
Total property and equipment, net$32,923 $31,901 
XML 26 R15.htm IDEA: XBRL DOCUMENT v3.22.2.2
Goodwill and Intangible Assets, Net
9 Months Ended
Sep. 30, 2022
Goodwill and Intangible Assets Disclosure [Abstract]  
Goodwill and Intangible Assets, Net Goodwill and Intangible Assets, Net
Goodwill
The activity in goodwill was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Balance, beginning of period$143,663 $134,853 
Addition from business acquisition24,556 — 
Foreign currency translation(2,311)(441)
Remeasurement from provisional purchase accounting amount— 268 
Balance, end of period$165,908 $134,680 
Intangible Assets
Intangible assets, net consisted of the following:
September 30, 2022
($ in thousands)Gross
Carrying
Amount
Accumulated
Amortization
Foreign
Currency
Translation
NetWeighted Average Remaining Amortization Period
Subscriber relationships$79,365 $(35,823)$(159)$43,383 6.6 years
Acquired technology37,351 (9,992)— 27,359 6.0 years
$116,716 $(45,815)$(159)$70,742 6.4 years
December 31, 2021
($ in thousands)Gross
Carrying
Amount
Accumulated
Amortization
Foreign
Currency
Translation
NetWeighted Average Remaining Amortization Period
Subscriber relationships$61,270 $(29,866)$(1,395)$30,009 6.4 years
Acquired technology35,316 (6,738)— 28,578 6.8 years
$96,586 $(36,604)$(1,395)$58,587 6.6 years
The estimated future annual amortization expense related to intangible assets is as follows:
(in thousands) 
Remainder of 2022$3,112 
202312,379 
202411,217 
202511,079 
202610,075 
Thereafter22,880 
Total future amortization$70,742 
XML 27 R16.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies
9 Months Ended
Sep. 30, 2022
Commitments and Contingencies Disclosure [Abstract]  
Commitments and Contingencies Commitments and Contingencies
Leases
The components of lease expense were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Operating lease cost$788 $873 $2,287 $2,309 
Variable lease cost963 976 2,612 2,694 
$1,751 $1,849 $4,899 $5,003 
Supplemental cash flow information related to leases was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Cash paid for amounts included in the measurement of lease liabilities  
Operating cash flows from operating leases$3,399 $2,488 
Right-of-use assets obtained in exchange for operating lease liabilities934 — 
Supplemental balance sheet information related to operating leases was as follows:
September 30,
2022
December 31, 2021
Weighted-average remaining lease term4.2 years4.8 years
Weighted-average discount rate4.0 %4.0 %
At September 30, 2022, our future minimum payments under operating leases were as follows:
(in thousands)
Remainder of 2022$1,515 
20234,871 
20244,474 
20254,088 
20263,760 
Thereafter1,266 
Total future gross payments$19,974 
Less: imputed interest(1,664)
Total operating lease liabilities$18,310 
Purchase Commitments
We have entered into separate noncancelable agreements with computing infrastructure, customer relationship management, and performance and security data analytics vendors for services through 2025. At September 30, 2022, the total remaining purchase commitments were $7.4 million
XML 28 R17.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stockholders' Equity
9 Months Ended
Sep. 30, 2022
Equity [Abstract]  
Stockholders' Equity Stockholders’ Equity
Share Repurchase Programs
Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the programs and activity thereunder through September 30, 2022 were as follows:
(in thousands)Effective DateExpiration DateShare Value Authorized for RepurchaseShare Value RepurchasedUnused & Expired Share Repurchase ValueShare Value Available for Future Repurchase
2019 ProgramNovember 2019November 2021$50,000$29,611 $20,389  N/A
2021 ProgramNovember 2021August 202250,00049,992 N/A
2022 ProgramAugust 2022July 202450,0002,477 N/A$47,523 
The share repurchase activity by period was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except shares and per share amounts)2022202120222021
Number of shares repurchased102,234 42,299 357,430 105,814 
Shares repurchased cost$12,477 $4,211 $42,700 $10,661 
Average price per repurchased share$122.04 $99.55 $119.46 $100.75 
XML 29 R18.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation
9 Months Ended
Sep. 30, 2022
Share-Based Payment Arrangement [Abstract]  
Stock-Based Compensation Stock-Based Compensation
Our equity compensation plans provide for the grant of incentive and nonqualified stock options, as well as other stock-based awards including performance share units (“PSUs”), restricted stock awards (“RSAs”), restricted stock units (“RSUs”), and deferred stock units (“DSUs”), to employees, non-employee directors and other consultants who provide services to us. We also provide an employee stock purchase plan (“ESPP”) and 401(k) match to eligible participants.
We recognize stock-based compensation expense based on grant date award fair value. This cost is recognized over the period for which the employee is required to provide service in exchange for the award or the award performance period, except for expenses relating to retirement-eligible employees that have not given their required notice, which is recognized on a pro-rata basis over the notice period prior to retirement. At September 30, 2022, there were 13.2 million shares available for grant under approved equity compensation plans.
Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Cost of revenues$2,146 $1,696 $6,477 $4,945 
Operating expenses   
Sales and marketing1,845 1,634 5,835 4,854 
Research and development1,396 1,195 4,250 3,212 
General and administrative2,573 2,324 9,074 8,262 
$7,960 $6,849 $25,636 $21,273 
Stock-based compensation expense by grant type or plan was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Stock options$461 $496 $1,401 $1,569 
PSUs1,541 1,342 6,244 5,357 
RSUs4,735 4,039 14,467 11,577 
RSAs & DSUs110 109 328 325 
ESPP577 376 1,609 1,038 
401(k) stock match536 487 1,587 1,407 
$7,960 $6,849 $25,636 $21,273 
As of September 30, 2022, there was $42.1 million of unrecognized stock-based compensation expense under our equity compensation plans, which is expected to be recognized on a primarily straight-line basis over a weighted average period of 2.5 years.
Stock Options
Our stock option activity was as follows:
Nine Months Ended
September 30, 2022
Options (#) Weighted Average
Exercise Price
($/share)
Outstanding, beginning of period678,650 $44.76 
Granted49,085 122.64 
Exercised(79,089)31.07 
Forfeited(6,711)89.21 
Outstanding, end of period641,935 $51.94 
Of the total outstanding options at September 30, 2022, 0.5 million were exercisable. The outstanding and exercisable options had a weighted average exercise price of $43.96 per share and a weighted average remaining contractual life of 2.9 years.
The weighted average grant date fair value of options granted during the nine months ended September 30, 2022 was $40.95 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions:
Life (in years)4.3
Volatility37.5 %
Dividend yield— 
Risk-free interest rate2.2 %
Performance Share Units, Restricted Stock Units and Awards, and Deferred Stock Units
In each of the quarters ended March 31, 2022, 2021, 2020, and 2019 we granted PSU awards with a target performance level. These awards are earned based upon our Company’s total shareholder return as compared to an indexed total shareholder return over the course of a fiscal based three-year performance period, starting in the year of grant. Earned awards vest in the quarter following the conclusion of the performance period. In the three months ended March 31, 2022, PSU awards granted in 2019 vested at the maximum performance level and less than 0.1 million shares of common stock were issued.
Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows:
Nine Months Ended
September 30, 2022
#Weighted Average Grant
Date Fair Value
($/share)
Outstanding, beginning of period702,160 $78.03 
Granted284,739 126.88 
Vested and common stock issued(268,607)63.04 
Forfeited(21,114)96.81 
Outstanding, end of period697,178 $103.19 
The number of PSUs, RSUs, RSAs, and DSUs outstanding at September 30, 2022 included less than 0.1 million units that have vested, but the shares of common stock have not yet been issued, pursuant to the terms of the underlying agreements.
Employee Stock Purchase Plan
Our ESPP activity was as follows:

Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except shares)2022202120222021
Amounts for shares purchased$238 $130 $3,588 $2,316 
Shares purchased2,481 1,526 37,516 27,675 
A total of 1.8 million shares of common stock are reserved for issuance under the ESPP as of September 30, 2022.
The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the following assumptions:
Life (in years)0.5
Volatility37.4 %
Dividend yield— 
Risk-free interest rate0.2 %
XML 30 R19.htm IDEA: XBRL DOCUMENT v3.22.2.2
Income Taxes
9 Months Ended
Sep. 30, 2022
Income Tax Disclosure [Abstract]  
Income Taxes Income TaxesWe record our interim provision for income taxes by applying our estimated annual effective tax rate to our year-to-date pre-tax income and adjust the provision for discrete tax items recorded in the period. Differences between our effective tax rate and statutory tax rates are primarily due to the impact of permanently non-deductible expenses partially offset by the federal research and development credits and tax benefits associated with foreign-derived intangible income. Additionally, excess tax benefits generated upon settlement or exercise of stock awards are recognized as a reduction to income tax expense as a discrete tax item in the quarter that the event occurs, creating potentially significant fluctuation in tax expense by quarter and by year. Our provisions for income taxes includes current federal, state, and foreign income tax expense, as well as deferred tax expense.
XML 31 R20.htm IDEA: XBRL DOCUMENT v3.22.2.2
Other Income and Expense
9 Months Ended
Sep. 30, 2022
Other Income and Expenses [Abstract]  
Other Income and Expense Other Income and Expense
Other expense, net included the following:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Investment income$586 $66 $806 $242 
Realized loss from foreign currency on cash and investments held(1,151)(854)(2,010)(1,492)
Other income (expense), net(130)72 (406)(174)
Total other expense, net$(695)$(716)$(1,610)$(1,424)
XML 32 R21.htm IDEA: XBRL DOCUMENT v3.22.2.2
Net Income Per Share
9 Months Ended
Sep. 30, 2022
Earnings Per Share [Abstract]  
Net Income Per Share Net Income Per Share
The components and computation of basic and diluted net income per share were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except per share amounts)2022202120222021
Numerator
Net income$15,863 $11,449 $39,219 $31,832 
Denominator    
Weighted average common shares outstanding, basic36,093 35,961 36,104 35,873 
Options to purchase common stock379 520 396 533 
PSUs, RSUs, RSAs, and DSUs443 534 442 492 
Weighted average common shares outstanding, diluted36,915 37,015 36,942 36,898 
Net income per share    
Basic$0.44 $0.32 $1.09 $0.89 
Diluted$0.43 $0.31 $1.06 $0.86 
The number of outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Anti-dilutive shares107 34 222 46 
XML 33 R22.htm IDEA: XBRL DOCUMENT v3.22.2.2
Geographic Information
9 Months Ended
Sep. 30, 2022
Revenue from Contract with Customer [Abstract]  
Geographic Information Geographic Information
Revenue
The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S., was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
2022202120222021
Domestic revenue85 %84 %84 %84 %
No single jurisdiction outside of the U.S. had revenues in excess of 10%.
Property and Equipment
The percentage of property and equipment, net located at subsidiary and office locations outside of the U.S. was as follows:
September 30,
2022
December 31, 2021
International property and equipment13 %12 %
XML 34 R23.htm IDEA: XBRL DOCUMENT v3.22.2.2
General (Policies)
9 Months Ended
Sep. 30, 2022
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Business Description
Business Description
SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf.
The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services we provide enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, to help ensure that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements.
Basis of Presentation
Basis of Presentation
The accompanying unaudited condensed consolidated financial statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements.
This interim financial information has been prepared under the instructions to Form 10-Q and Rule 10-01 of Regulation S-X. Accordingly, these condensed consolidated financial statements do not include all of the information and notes required by GAAP. Therefore, these condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and notes included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the Securities and Exchange Commission (“SEC”). We have included all normal recurring adjustments considered necessary to provide a fair presentation of our financial position, results of operations, stockholders’ equity, and cash flows for the interim periods presented. Operating results for these interim periods are not necessarily indicative of the results to be expected for the full year.
Use of Estimates
Use of Estimates
Preparing financial statements in conformity with GAAP requires management to make estimates, judgments and assumptions that affect the reported amounts of assets and liabilities, disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the reporting periods. Actual results could differ from those estimates.
Significant Accounting Policies
Significant Accounting Policies
There were no material changes in our significant accounting policies during the nine months ended September 30, 2022. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, for additional information regarding our significant accounting policies.
XML 35 R24.htm IDEA: XBRL DOCUMENT v3.22.2.2
General (Tables)
9 Months Ended
Sep. 30, 2022
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Accounting Pronouncements Note Yet Adopted Accounting Pronouncements Not Yet Adopted
StandardDate of IssuanceDescriptionDate of Required AdoptionEffect on the Financial Statements
ASU 2021-08, Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers
October 2021This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter.
January 2023The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired.
XML 36 R25.htm IDEA: XBRL DOCUMENT v3.22.2.2
Business Acquisitions (Tables)
9 Months Ended
Sep. 30, 2022
Business Combination and Asset Acquisition [Abstract]  
Schedule of Recognized Identified Assets Acquired and Liabilities Assumed The following table summarizes the estimated fair values of the assets acquired and liabilities assumed at the acquisition date:
(in thousands)Estimated Fair Value
Cash$230 
Accounts receivable467 
Other current assets288 
Operating lease right-of-use asset934 
Goodwill24,556 
Intangible assets20,250 
Deferred income tax assets5,291 
Accounts payable(266)
Accrued compensation(321)
Deferred revenue(262)
Operating lease liability(934)
Deferred income tax liabilities(5,144)
$45,089 
Finite-Lived and Indefinite-Lived Intangible Assets Acquired as Part of Business Combination The following table summarizes the estimated fair value of the purchased intangible assets and their estimated useful lives, each of which are subject to finalization:
($ in thousands)Estimated
Fair Value
Weighted Average
Estimated
Useful Life
Subscriber relationships$18,225 8.0 years
Acquired technology2,025 5.0 years
Total$20,250 
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.22.2.2
Revenue (Tables)
9 Months Ended
Sep. 30, 2022
Revenue from Contract with Customer [Abstract]  
Summary of Revenues by Revenue Stream
We derive our revenues from the following revenue streams:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Recurring revenues:
Fulfillment$92,952 $78,106 $265,570 $224,738 
Analytics11,902 10,858 34,846 31,383 
Other1,699 1,435 4,867 4,019 
Recurring revenues106,553 90,399 305,283 260,140 
One-time revenues7,933 7,488 23,574 22,380 
Total revenue$114,486 $97,887 $328,857 $282,520 
Summary of Deferred Revenue Liability Relating to Set-Up Fees
The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Balance, beginning of period$15,309 $13,344 $14,459 $11,118 
Invoiced set-up fees3,715 3,622 11,776 11,832 
Recognized set-up fees(3,805)(3,245)(11,016)(9,229)
Balance, end of period$15,219 $13,721 $15,219 $13,721 
XML 38 R27.htm IDEA: XBRL DOCUMENT v3.22.2.2
Deferred Costs (Tables)
9 Months Ended
Sep. 30, 2022
Deferred Costs [Abstract]  
Summary of Deferred Costs and Amortization of Deferred Costs
The deferred costs activity was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Balance, beginning of period$64,665 $53,841 $59,720 $50,595 
Incurred deferred costs17,442 16,459 52,860 45,922 
Amortized deferred costs(15,551)(14,207)(46,024)(40,424)
Balance, end of period$66,556 $56,093 $66,556 $56,093 
XML 39 R28.htm IDEA: XBRL DOCUMENT v3.22.2.2
Financial Instruments (Tables)
9 Months Ended
Sep. 30, 2022
Fair Value Disclosures [Abstract]  
Summary of Cash Equivalents and Investments
Cash equivalents and investments consisted of the following:
September 30, 2022December 31, 2021
(in thousands)Amortized CostUnrealized Gains, netFair ValueAmortized CostUnrealized Gains (Losses), netFair Value
Cash equivalents:
Money market funds$111,498 $— $111,498 $138,205 $— $138,205 
Certificates of deposit6,437 — 6,437 7,268 — 7,268 
Marketable securities:
Commercial paper44,358 133 44,491 34,984 34,991 
U.S. treasury securities— — — 7,500 (1)7,499 
$162,293 $133 $162,426 $187,957 $$187,963 
Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis
The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis:
September 30, 2022December 31, 2021
(in thousands)Level 1Level 2Level 3TotalLevel 1Level 2Level 3Total
Assets:
Cash equivalents:
Money market funds$111,498 $— $— $111,498 $138,205 $— $— $138,205 
Certificates of deposit6,437 — — 6,437 7,268 — — 7,268 
Marketable securities:
Commercial paper— 44,491 — 44,491 — 34,991 — 34,991 
U.S. treasury securities— — — — — 7,499 — 7,499 
$117,935 $44,491 $— $162,426 $145,473 $42,490 $— $187,963 
XML 40 R29.htm IDEA: XBRL DOCUMENT v3.22.2.2
Allowance for Credit Losses (Tables)
9 Months Ended
Sep. 30, 2022
Allowance for Credit Loss [Abstract]  
Schedule of Allowance for Credit Losses Activity Included in Accounts Receivable Net
The allowance for credit losses activity, included in accounts receivable, net, was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Balance, beginning of period$4,249 $4,233 
Provision for credit losses2,889 4,037 
Write-offs, net of recoveries(3,480)(3,666)
Balance, end of period$3,658 $4,604 
XML 41 R30.htm IDEA: XBRL DOCUMENT v3.22.2.2
Property and Equipment, Net (Tables)
9 Months Ended
Sep. 30, 2022
Property, Plant and Equipment [Abstract]  
Property, Plant and Equipment Property and equipment, net consisted of the following:
(in thousands)September 30,
2022
December 31, 2021
Internally developed software$50,311 $44,981 
Computer equipment32,520 29,329 
Leasehold improvements16,871 16,685 
Office equipment and furniture11,157 10,972 
Property and equipment, cost110,859 101,967 
Less: accumulated depreciation and amortization(77,936)(70,066)
Total property and equipment, net$32,923 $31,901 
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.22.2.2
Goodwill and Intangible Assets, Net (Tables)
9 Months Ended
Sep. 30, 2022
Goodwill and Intangible Assets Disclosure [Abstract]  
Schedule of Changes in Net Carrying Amount of Goodwill
Goodwill
The activity in goodwill was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Balance, beginning of period$143,663 $134,853 
Addition from business acquisition24,556 — 
Foreign currency translation(2,311)(441)
Remeasurement from provisional purchase accounting amount— 268 
Balance, end of period$165,908 $134,680 
Intangible Assets
Intangible Assets
Intangible assets, net consisted of the following:
September 30, 2022
($ in thousands)Gross
Carrying
Amount
Accumulated
Amortization
Foreign
Currency
Translation
NetWeighted Average Remaining Amortization Period
Subscriber relationships$79,365 $(35,823)$(159)$43,383 6.6 years
Acquired technology37,351 (9,992)— 27,359 6.0 years
$116,716 $(45,815)$(159)$70,742 6.4 years
December 31, 2021
($ in thousands)Gross
Carrying
Amount
Accumulated
Amortization
Foreign
Currency
Translation
NetWeighted Average Remaining Amortization Period
Subscriber relationships$61,270 $(29,866)$(1,395)$30,009 6.4 years
Acquired technology35,316 (6,738)— 28,578 6.8 years
$96,586 $(36,604)$(1,395)$58,587 6.6 years
Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization
The estimated future annual amortization expense related to intangible assets is as follows:
(in thousands) 
Remainder of 2022$3,112 
202312,379 
202411,217 
202511,079 
202610,075 
Thereafter22,880 
Total future amortization$70,742 
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies (Tables)
9 Months Ended
Sep. 30, 2022
Commitments and Contingencies Disclosure [Abstract]  
Components of Lease Expense
The components of lease expense were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Operating lease cost$788 $873 $2,287 $2,309 
Variable lease cost963 976 2,612 2,694 
$1,751 $1,849 $4,899 $5,003 
Schedule of Supplemental Cash Flow Information Related to Leases
Supplemental cash flow information related to leases was as follows:
Nine Months Ended
September 30,
(in thousands)20222021
Cash paid for amounts included in the measurement of lease liabilities  
Operating cash flows from operating leases$3,399 $2,488 
Right-of-use assets obtained in exchange for operating lease liabilities934 — 
Schedule of Supplemental Balance Sheet Information Related to Leases
Supplemental balance sheet information related to operating leases was as follows:
September 30,
2022
December 31, 2021
Weighted-average remaining lease term4.2 years4.8 years
Weighted-average discount rate4.0 %4.0 %
Schedule of Future Minimum Payments Under Operating Leases
At September 30, 2022, our future minimum payments under operating leases were as follows:
(in thousands)
Remainder of 2022$1,515 
20234,871 
20244,474 
20254,088 
20263,760 
Thereafter1,266 
Total future gross payments$19,974 
Less: imputed interest(1,664)
Total operating lease liabilities$18,310 
XML 44 R33.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stockholders' Equity (Tables)
9 Months Ended
Sep. 30, 2022
Equity [Abstract]  
Stock Repurchase Activity
Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the programs and activity thereunder through September 30, 2022 were as follows:
(in thousands)Effective DateExpiration DateShare Value Authorized for RepurchaseShare Value RepurchasedUnused & Expired Share Repurchase ValueShare Value Available for Future Repurchase
2019 ProgramNovember 2019November 2021$50,000$29,611 $20,389  N/A
2021 ProgramNovember 2021August 202250,00049,992 N/A
2022 ProgramAugust 2022July 202450,0002,477 N/A$47,523 
The share repurchase activity by period was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except shares and per share amounts)2022202120222021
Number of shares repurchased102,234 42,299 357,430 105,814 
Shares repurchased cost$12,477 $4,211 $42,700 $10,661 
Average price per repurchased share$122.04 $99.55 $119.46 $100.75 
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation (Tables)
9 Months Ended
Sep. 30, 2022
Share-Based Payment Arrangement [Abstract]  
Stock-Based Compensation Expense
Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Cost of revenues$2,146 $1,696 $6,477 $4,945 
Operating expenses   
Sales and marketing1,845 1,634 5,835 4,854 
Research and development1,396 1,195 4,250 3,212 
General and administrative2,573 2,324 9,074 8,262 
$7,960 $6,849 $25,636 $21,273 
Stock-based compensation expense by grant type or plan was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Stock options$461 $496 $1,401 $1,569 
PSUs1,541 1,342 6,244 5,357 
RSUs4,735 4,039 14,467 11,577 
RSAs & DSUs110 109 328 325 
ESPP577 376 1,609 1,038 
401(k) stock match536 487 1,587 1,407 
$7,960 $6,849 $25,636 $21,273 
Stock Option Activity
Our stock option activity was as follows:
Nine Months Ended
September 30, 2022
Options (#) Weighted Average
Exercise Price
($/share)
Outstanding, beginning of period678,650 $44.76 
Granted49,085 122.64 
Exercised(79,089)31.07 
Forfeited(6,711)89.21 
Outstanding, end of period641,935 $51.94 
Weighted Average Grant Date Fair Value of Options Granted, Assumptions
The weighted average grant date fair value of options granted during the nine months ended September 30, 2022 was $40.95 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions:
Life (in years)4.3
Volatility37.5 %
Dividend yield— 
Risk-free interest rate2.2 %
PSU, RSU, RSA, and DSU
Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows:
Nine Months Ended
September 30, 2022
#Weighted Average Grant
Date Fair Value
($/share)
Outstanding, beginning of period702,160 $78.03 
Granted284,739 126.88 
Vested and common stock issued(268,607)63.04 
Forfeited(21,114)96.81 
Outstanding, end of period697,178 $103.19 
Summary of ESPP Activity
Our ESPP activity was as follows:

Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except shares)2022202120222021
Amounts for shares purchased$238 $130 $3,588 $2,316 
Shares purchased2,481 1,526 37,516 27,675 
Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions
The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the following assumptions:
Life (in years)0.5
Volatility37.4 %
Dividend yield— 
Risk-free interest rate0.2 %
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.22.2.2
Other Income and Expense (Tables)
9 Months Ended
Sep. 30, 2022
Other Income and Expenses [Abstract]  
Summary of Other Income (Expense), Net
Other expense, net included the following:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Investment income$586 $66 $806 $242 
Realized loss from foreign currency on cash and investments held(1,151)(854)(2,010)(1,492)
Other income (expense), net(130)72 (406)(174)
Total other expense, net$(695)$(716)$(1,610)$(1,424)
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.22.2.2
Net Income Per Share (Tables)
9 Months Ended
Sep. 30, 2022
Earnings Per Share [Abstract]  
Components and Computation of Basic and Diluted Net Income Per Share
The components and computation of basic and diluted net income per share were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except per share amounts)2022202120222021
Numerator
Net income$15,863 $11,449 $39,219 $31,832 
Denominator    
Weighted average common shares outstanding, basic36,093 35,961 36,104 35,873 
Options to purchase common stock379 520 396 533 
PSUs, RSUs, RSAs, and DSUs443 534 442 492 
Weighted average common shares outstanding, diluted36,915 37,015 36,942 36,898 
Net income per share    
Basic$0.44 $0.32 $1.09 $0.89 
Diluted$0.43 $0.31 $1.06 $0.86 
Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share
The number of outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2022202120222021
Anti-dilutive shares107 34 222 46 
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.22.2.2
Geographic Information (Tables)
9 Months Ended
Sep. 30, 2022
Revenue from Contract with Customer [Abstract]  
Summary of Domestic Revenue
The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S., was as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
2022202120222021
Domestic revenue85 %84 %84 %84 %
Schedule Of Percentage Of Property And Equipment Net
The percentage of property and equipment, net located at subsidiary and office locations outside of the U.S. was as follows:
September 30,
2022
December 31, 2021
International property and equipment13 %12 %
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.22.2.2
Business Acquisitions - Narrative (Details) - USD ($)
$ in Millions
Oct. 04, 2022
Jul. 19, 2022
GCommerce Inc    
Business Acquisition [Line Items]    
Purchase price   $ 45
Measurement period   1 year
InterTrade Systems Inc. | Subsequent Event    
Business Acquisition [Line Items]    
Purchase price $ 49  
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.22.2.2
Business Acquisitions - Fair Value of Assets Acquired and Liabilities Assumed (Details) - USD ($)
$ in Thousands
Sep. 30, 2022
Jul. 19, 2022
Dec. 31, 2021
Sep. 30, 2021
Dec. 31, 2020
Business Acquisition [Line Items]          
Goodwill $ 165,908   $ 143,663 $ 134,680 $ 134,853
GCommerce Inc          
Business Acquisition [Line Items]          
Cash   $ 230      
Accounts receivable   467      
Other current assets   288      
Operating lease right-of-use asset   934      
Goodwill   24,556      
Intangible assets   20,250      
Deferred income tax assets   5,291      
Accounts payable   (266)      
Accrued compensation   (321)      
Deferred revenue   (262)      
Operating lease liability   (934)      
Deferred income tax liabilities   (5,144)      
Assets acquired and liabilities assumed, net   $ 45,089      
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.22.2.2
Business Acquisitions - Intangible Assets Acquired (Details) - GCommerce Inc
$ in Thousands
Jul. 19, 2022
USD ($)
Business Acquisition [Line Items]  
Estimated Fair Value $ 20,250
Subscriber relationships  
Business Acquisition [Line Items]  
Estimated Fair Value $ 18,225
Weighted Average Estimated Useful Life 8 years
Acquired technology  
Business Acquisition [Line Items]  
Estimated Fair Value $ 2,025
Weighted Average Estimated Useful Life 5 years
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.22.2.2
Revenue - Summary of Revenues by Revenue Stream (Detail) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Revenue Recognition [Line Items]        
Revenues $ 114,486 $ 97,887 $ 328,857 $ 282,520
Recurring revenues        
Revenue Recognition [Line Items]        
Revenues 106,553 90,399 305,283 260,140
One-time revenues        
Revenue Recognition [Line Items]        
Revenues 7,933 7,488 23,574 22,380
Fulfillment | Recurring revenues        
Revenue Recognition [Line Items]        
Revenues 92,952 78,106 265,570 224,738
Analytics | Recurring revenues        
Revenue Recognition [Line Items]        
Revenues 11,902 10,858 34,846 31,383
Other | Recurring revenues        
Revenue Recognition [Line Items]        
Revenues $ 1,699 $ 1,435 $ 4,867 $ 4,019
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.22.2.2
Revenue - Narrative (Detail)
9 Months Ended
Sep. 30, 2022
Disaggregation Of Revenue [Line Items]  
Latest timing of billings 30 days
Contract term maximum 1 year
Set up fees recognized period 2 years
Maximum recognition period for miscellaneous one-time fee 1 year
Minimum  
Disaggregation Of Revenue [Line Items]  
Customer contract cancellation period 30 days
Maximum  
Disaggregation Of Revenue [Line Items]  
Customer contract cancellation period 90 days
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.22.2.2
Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail) - Set-Up Fees - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Deferred Revenue Arrangement [Roll Forward]        
Balance, beginning of period $ 15,309 $ 13,344 $ 14,459 $ 11,118
Invoiced set-up fees 3,715 3,622 11,776 11,832
Recognized set-up fees (3,805) (3,245) (11,016) (9,229)
Balance, end of period $ 15,219 $ 13,721 $ 15,219 $ 13,721
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.22.2.2
Deferred Costs (Detail) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Deferred Costs [Roll Forward]        
Balance, beginning of period $ 64,665 $ 53,841 $ 59,720 $ 50,595
Incurred deferred costs 17,442 16,459 52,860 45,922
Amortized deferred costs (15,551) (14,207) (46,024) (40,424)
Balance, end of period $ 66,556 $ 56,093 $ 66,556 $ 56,093
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.22.2.2
Financial Instruments - Summary of Cash Equivalents and Investments (Detail) - USD ($)
$ in Thousands
Sep. 30, 2022
Dec. 31, 2021
Schedule of Financial Instruments [Line Items]    
Amortized Cost $ 162,293 $ 187,957
Unrealized Gains (Losses), net 133 6
Fair Value 162,426 187,963
Certificates of deposit    
Schedule of Financial Instruments [Line Items]    
Amortized Cost 6,437 7,268
Unrealized Gains (Losses), net 0 0
Fair Value 6,437 7,268
Cash Equivalents | Money market funds    
Schedule of Financial Instruments [Line Items]    
Amortized Cost 111,498 138,205
Unrealized Gains (Losses), net 0 0
Fair Value 111,498 138,205
Marketable Securities | Commercial paper    
Schedule of Financial Instruments [Line Items]    
Amortized Cost 44,358 34,984
Unrealized Gains (Losses), net 133 7
Fair Value 44,491 34,991
Marketable Securities | U.S. treasury securities    
Schedule of Financial Instruments [Line Items]    
Amortized Cost 0 7,500
Unrealized Gains (Losses), net 0 (1)
Fair Value $ 0 $ 7,499
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.22.2.2
Financial Instruments - Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) - Fair Value, Measurements, Recurring - USD ($)
$ in Thousands
Sep. 30, 2022
Dec. 31, 2021
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value $ 162,426 $ 187,963
Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 111,498 138,205
Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 6,437 7,268
Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 44,491 34,991
U.S. treasury securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 7,499
Level 1    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 117,935 145,473
Level 1 | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 111,498 138,205
Level 1 | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 6,437 7,268
Level 1 | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 1 | U.S. treasury securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 2    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 44,491 42,490
Level 2 | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 2 | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 2 | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 44,491 34,991
Level 2 | U.S. treasury securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 7,499
Level 3    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 3 | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 3 | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 3 | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value 0 0
Level 3 | U.S. treasury securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Assets fair value $ 0 $ 0
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.22.2.2
Allowance for Credit Losses (Detail) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Accounts Receivable, Allowance for Credit Loss [Roll Forward]    
Balance, beginning of period $ 4,249 $ 4,233
Provision for credit losses 2,889 4,037
Write-offs, net of recoveries (3,480) (3,666)
Balance, end of period $ 3,658 $ 4,604
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.22.2.2
Property and Equipment, Net (Details) - USD ($)
$ in Thousands
Sep. 30, 2022
Dec. 31, 2021
Property, Plant and Equipment [Line Items]    
Property and equipment, cost $ 110,859 $ 101,967
Less: accumulated depreciation and amortization (77,936) (70,066)
Property and equipment, net 32,923 31,901
Internally developed software    
Property, Plant and Equipment [Line Items]    
Property and equipment, cost 50,311 44,981
Computer equipment    
Property, Plant and Equipment [Line Items]    
Property and equipment, cost 32,520 29,329
Leasehold improvements    
Property, Plant and Equipment [Line Items]    
Property and equipment, cost 16,871 16,685
Office equipment and furniture    
Property, Plant and Equipment [Line Items]    
Property and equipment, cost $ 11,157 $ 10,972
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.22.2.2
Goodwill and Intangible Assets, Net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Goodwill [Roll Forward]    
Balance, beginning of period $ 143,663 $ 134,853
Addition from business acquisition 24,556 0
Foreign currency translation (2,311) (441)
Remeasurement from provisional purchase accounting amount 0 268
Balance, end of period $ 165,908 $ 134,680
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.22.2.2
Goodwill and Intangible Assets, Net - Intangible Assets (Detail) - USD ($)
$ in Thousands
9 Months Ended 12 Months Ended
Sep. 30, 2021
Dec. 31, 2021
Sep. 30, 2022
Finite-Lived Intangible Assets [Line Items]      
Gross Carrying Amount   $ 96,586 $ 116,716
Accumulated Amortization   (36,604) (45,815)
Foreign Currency Translation   (1,395) (159)
Net   $ 58,587 70,742
Weighted Average Remaining Amortization Period 6 years 4 months 24 days 6 years 7 months 6 days  
Subscriber relationships      
Finite-Lived Intangible Assets [Line Items]      
Gross Carrying Amount   $ 61,270 79,365
Accumulated Amortization   (29,866) (35,823)
Foreign Currency Translation   (1,395) (159)
Net   $ 30,009 43,383
Weighted Average Remaining Amortization Period 6 years 7 months 6 days 6 years 4 months 24 days  
Acquired technology      
Finite-Lived Intangible Assets [Line Items]      
Gross Carrying Amount   $ 35,316 37,351
Accumulated Amortization   (6,738) (9,992)
Foreign Currency Translation   0 0
Net   $ 28,578 $ 27,359
Weighted Average Remaining Amortization Period 6 years 6 years 9 months 18 days  
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.22.2.2
Goodwill and Intangible Assets, Net - Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail) - USD ($)
$ in Thousands
Sep. 30, 2022
Dec. 31, 2021
Goodwill and Intangible Assets Disclosure [Abstract]    
Remainder of 2022 $ 3,112  
2023 12,379  
2024 11,217  
2025 11,079  
2026 10,075  
Thereafter 22,880  
Net $ 70,742 $ 58,587
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies - Components of Lease Expense (Detail) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Commitments and Contingencies Disclosure [Abstract]        
Operating lease cost $ 788 $ 873 $ 2,287 $ 2,309
Variable lease cost 963 976 2,612 2,694
Lease expense $ 1,751 $ 1,849 $ 4,899 $ 5,003
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Cash paid for amounts included in the measurement of lease liabilities    
Operating cash flows from operating leases $ 3,399 $ 2,488
Right-of-use assets obtained in exchange for operating lease liabilities $ 934 $ 0
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail)
Sep. 30, 2022
Dec. 31, 2021
Commitments and Contingencies Disclosure [Abstract]    
Weighted-average remaining lease term 4 years 2 months 12 days 4 years 9 months 18 days
Weighted-average discount rate 4.00% 4.00%
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail)
$ in Thousands
Sep. 30, 2022
USD ($)
Commitments and Contingencies Disclosure [Abstract]  
Remainder of 2022 $ 1,515
2023 4,871
2024 4,474
2025 4,088
2026 3,760
Thereafter 1,266
Total future gross payments 19,974
Less: imputed interest (1,664)
Total operating lease liabilities $ 18,310
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.22.2.2
Commitments and Contingencies - Narrative (Detail)
$ in Millions
Sep. 30, 2022
USD ($)
Commitments and Contingencies Disclosure [Abstract]  
Remaining purchase commitment $ 7.4
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stockholders' Equity - Share Repurchase Plan (Details) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2022
Dec. 31, 2021
Schedule Of Stockholders Equity [Line Items]    
Share Value Repurchased $ 128,377 $ 85,677
Common Stock | 2019 Share Repurchase Program    
Schedule Of Stockholders Equity [Line Items]    
Share Value Authorized for Repurchase 50,000  
Share Value Repurchased 29,611  
Unused & Expired Share Repurchase Value 20,389  
Common Stock | 2021 Share Repurchase Program    
Schedule Of Stockholders Equity [Line Items]    
Share Value Authorized for Repurchase 50,000  
Share Value Repurchased 49,992  
Unused & Expired Share Repurchase Value 8  
Common Stock | 2022 Stock Repurchase Program    
Schedule Of Stockholders Equity [Line Items]    
Share Value Authorized for Repurchase 50,000  
Share Value Repurchased 2,477  
Share Value Available for Future Repurchase $ 47,523  
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stockholders' Equity - Stock Repurchase Activity (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Equity [Abstract]        
Number of shares repurchased (in shares) 102,234 42,299 357,430 105,814
Shares repurchased cost $ 12,477 $ 4,211 $ 42,700 $ 10,661
Average price per repurchased share (in dollars per share) $ 122.04 $ 99.55 $ 119.46 $ 100.75
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - Narrative (Detail) - USD ($)
$ / shares in Units, $ in Millions
3 Months Ended 9 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Mar. 31, 2020
Mar. 31, 2019
Sep. 30, 2022
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]          
Shares available for grant (in shares)         13,200,000
Unrecognized stock-based compensation expense         $ 42.1
Unrecognized stock-based compensation, expected to be recognized, weighted average period         2 years 6 months
Employee Stock Purchase Plan          
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]          
Common stock reserved for future issuance (in shares)         1,800,000
Stock options          
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]          
Outstanding and exercisable options (in shares)         500,000
Weighted average exercise price (in dollars per share)         $ 43.96
Weighted average remaining contractual life         2 years 10 months 24 days
Weighted average fair value per share of options granted (in dollars per share)         $ 40.95
Performance Share Unit          
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]          
Vesting period 3 years 3 years 3 years 3 years  
Performance Share Unit | Maximum          
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]          
Shares issued (in shares) 100,000        
PSU, RSU, RSA, and DSU | Maximum          
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]          
Vested at period end (in shares)         100,000
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - Stock-Based Compensation Expense (Detail) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense $ 7,960 $ 6,849 $ 25,636 $ 21,273
Unrecognized stock-based compensation expense 42,100   42,100  
Stock options        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 461 496 1,401 1,569
PSUs        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 1,541 1,342 6,244 5,357
RSUs        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 4,735 4,039 14,467 11,577
RSAs & DSUs        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 110 109 328 325
ESPP        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 577 376 1,609 1,038
401(k) stock match        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 536 487 1,587 1,407
Cost of revenues        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 2,146 1,696 6,477 4,945
Sales and marketing        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 1,845 1,634 5,835 4,854
Research and development        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense 1,396 1,195 4,250 3,212
General and administrative        
Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]        
Stock-based compensation expense $ 2,573 $ 2,324 $ 9,074 $ 8,262
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - Stock Option Activity (Detail)
9 Months Ended
Sep. 30, 2022
$ / shares
shares
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]  
Outstanding, beginning of period (in shares) | shares 678,650
Granted (in shares) | shares 49,085
Exercised (in shares) | shares (79,089)
Forfeited (in shares) | shares (6,711)
Outstanding, end of period (in shares) | shares 641,935
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]  
Outstanding, beginning of period (in dollars per share) | $ / shares $ 44.76
Granted (in dollars per share) | $ / shares 122.64
Exercised (in dollars per share) | $ / shares 31.07
Forfeited (in dollars per share) | $ / shares 89.21
Outstanding, end of period (in dollars per share) | $ / shares $ 51.94
XML 73 R62.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail) - Stock options
9 Months Ended
Sep. 30, 2022
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Life (in years) 4 years 3 months 18 days
Volatility 37.50%
Dividend yield 0.00%
Risk-free interest rate 2.20%
XML 74 R63.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail) - PSU, RSU, RSA, and DSU
9 Months Ended
Sep. 30, 2022
$ / shares
shares
#  
Outstanding, beginning of period (in shares) | shares 702,160
Granted (in shares) | shares 284,739
Vested and common stock issued (in shares) | shares (268,607)
Forfeited (in shares) | shares (21,114)
Outstanding, end of period (in shares) | shares 697,178
Weighted Average Grant Date Fair Value ($/share)  
Outstanding, beginning of period (in dollars per share) | $ / shares $ 78.03
Granted (in dollars per share) | $ / shares 126.88
Vested and common stock issued (in dollars per share) | $ / shares 63.04
Forfeited (in dollars per share) | $ / shares 96.81
Outstanding, end of period (in dollars per share) | $ / shares $ 103.19
XML 75 R64.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - Summary of ESPP Activity (Detail) - Employee Stock Purchase Plan - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Share Based Compensation Arrangement By Share Based Payment Award Value Purchased For Award $ 238 $ 130 $ 3,588 $ 2,316
Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Purchased for Award 2,481 1,526 37,516 27,675
Common stock reserved for future issuance (in shares) 1,800,000   1,800,000  
XML 76 R65.htm IDEA: XBRL DOCUMENT v3.22.2.2
Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail) - Employee Stock Purchase Plan
9 Months Ended
Sep. 30, 2022
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Life (in years) 6 months
Volatility 37.40%
Dividend yield 0.00%
Risk-free interest rate 0.20%
XML 77 R66.htm IDEA: XBRL DOCUMENT v3.22.2.2
Other Income and Expense (Detail) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Other Income and Expenses [Abstract]        
Investment income $ 586 $ 66 $ 806 $ 242
Realized loss from foreign currency on cash and investments held (1,151) (854) (2,010) (1,492)
Other income (expense), net (130) 72 (406) (174)
Total other income (expense), net $ (695) $ (716) $ (1,610) $ (1,424)
XML 78 R67.htm IDEA: XBRL DOCUMENT v3.22.2.2
Net Income Per Share - Components and Computation of Basic and Diluted Net Income Per Share (Detail) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Numerator        
Net income $ 15,863 $ 11,449 $ 39,219 $ 31,832
Denominator        
Weighted average common shares outstanding, basic (in shares) 36,093 35,961 36,104 35,873
Options to purchase common stock (in shares) 379 520 396 533
PSUs, RSUs, RSAs, and DSUs (in shares) 443 534 442 492
Weighted average common shares outstanding, diluted (in shares) 36,915 37,015 36,942 36,898
Net income per share        
Basic (in dollars per share) $ 0.44 $ 0.32 $ 1.09 $ 0.89
Diluted (in dollars per share) $ 0.43 $ 0.31 $ 1.06 $ 0.86
XML 79 R68.htm IDEA: XBRL DOCUMENT v3.22.2.2
Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail) - shares
shares in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Earnings Per Share [Abstract]        
Antidilutive shares (in shares) 107 34 222 46
XML 80 R69.htm IDEA: XBRL DOCUMENT v3.22.2.2
Geographic Information - Narrative (Detail) - jurisdiction
9 Months Ended 12 Months Ended
Sep. 30, 2022
Dec. 31, 2021
Disaggregation Of Revenue [Line Items]    
Number of jurisdiction outside US had excess revenue of 10% 0  
Revenue Benchmark | Geographic Concentration Risk | Foreign    
Disaggregation Of Revenue [Line Items]    
Concentration risk, percentage 13.00% 12.00%
Revenue Benchmark | Geographic Concentration Risk | Foreign | Maximum    
Disaggregation Of Revenue [Line Items]    
Concentration risk, percentage 10.00%  
XML 81 R70.htm IDEA: XBRL DOCUMENT v3.22.2.2
Geographic Information - Summary of Domestic Revenue (Detail) - Revenue Benchmark - Geographic Concentration Risk
3 Months Ended 9 Months Ended 12 Months Ended
Sep. 30, 2022
Sep. 30, 2021
Sep. 30, 2022
Sep. 30, 2021
Dec. 31, 2021
Domestic Revenue          
Disaggregation Of Revenue [Line Items]          
Concentration risk, percentage 85.00% 84.00% 84.00% 84.00%  
Foreign          
Disaggregation Of Revenue [Line Items]          
Concentration risk, percentage     13.00%   12.00%
XML 82 spsc-20220930_htm.xml IDEA: XBRL DOCUMENT 0001092699 2022-01-01 2022-09-30 0001092699 2022-10-20 0001092699 2022-09-30 0001092699 2021-12-31 0001092699 2022-07-01 2022-09-30 0001092699 2021-07-01 2021-09-30 0001092699 2021-01-01 2021-09-30 0001092699 us-gaap:CommonStockMember 2021-06-30 0001092699 us-gaap:TreasuryStockMember 2021-06-30 0001092699 us-gaap:AdditionalPaidInCapitalMember 2021-06-30 0001092699 us-gaap:RetainedEarningsMember 2021-06-30 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-06-30 0001092699 2021-06-30 0001092699 us-gaap:AdditionalPaidInCapitalMember 2021-07-01 2021-09-30 0001092699 us-gaap:CommonStockMember 2021-07-01 2021-09-30 0001092699 us-gaap:TreasuryStockMember 2021-07-01 2021-09-30 0001092699 us-gaap:RetainedEarningsMember 2021-07-01 2021-09-30 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-07-01 2021-09-30 0001092699 us-gaap:CommonStockMember 2021-09-30 0001092699 us-gaap:TreasuryStockMember 2021-09-30 0001092699 us-gaap:AdditionalPaidInCapitalMember 2021-09-30 0001092699 us-gaap:RetainedEarningsMember 2021-09-30 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-09-30 0001092699 2021-09-30 0001092699 us-gaap:CommonStockMember 2022-06-30 0001092699 us-gaap:TreasuryStockMember 2022-06-30 0001092699 us-gaap:AdditionalPaidInCapitalMember 2022-06-30 0001092699 us-gaap:RetainedEarningsMember 2022-06-30 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-06-30 0001092699 2022-06-30 0001092699 us-gaap:AdditionalPaidInCapitalMember 2022-07-01 2022-09-30 0001092699 us-gaap:CommonStockMember 2022-07-01 2022-09-30 0001092699 us-gaap:EmployeeStockMember 2022-07-01 2022-09-30 0001092699 us-gaap:TreasuryStockMember 2022-07-01 2022-09-30 0001092699 us-gaap:RetainedEarningsMember 2022-07-01 2022-09-30 0001092699 us-gaap:CommonStockMember 2022-09-30 0001092699 us-gaap:TreasuryStockMember 2022-09-30 0001092699 us-gaap:AdditionalPaidInCapitalMember 2022-09-30 0001092699 us-gaap:RetainedEarningsMember 2022-09-30 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-09-30 0001092699 us-gaap:CommonStockMember 2020-12-31 0001092699 us-gaap:TreasuryStockMember 2020-12-31 0001092699 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001092699 us-gaap:RetainedEarningsMember 2020-12-31 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0001092699 2020-12-31 0001092699 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-09-30 0001092699 us-gaap:CommonStockMember 2021-01-01 2021-09-30 0001092699 us-gaap:TreasuryStockMember 2021-01-01 2021-09-30 0001092699 us-gaap:RetainedEarningsMember 2021-01-01 2021-09-30 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-09-30 0001092699 us-gaap:CommonStockMember 2021-12-31 0001092699 us-gaap:TreasuryStockMember 2021-12-31 0001092699 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001092699 us-gaap:RetainedEarningsMember 2021-12-31 0001092699 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0001092699 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-09-30 0001092699 us-gaap:CommonStockMember 2022-01-01 2022-09-30 0001092699 us-gaap:EmployeeStockMember 2022-01-01 2022-09-30 0001092699 us-gaap:TreasuryStockMember 2022-01-01 2022-09-30 0001092699 us-gaap:RetainedEarningsMember 2022-01-01 2022-09-30 0001092699 spsc:GCommerceIncMember 2022-07-19 2022-07-19 0001092699 spsc:GCommerceIncMember 2022-07-19 0001092699 spsc:GCommerceIncMember us-gaap:CustomerRelationshipsMember 2022-07-19 0001092699 spsc:GCommerceIncMember us-gaap:CustomerRelationshipsMember 2022-07-19 2022-07-19 0001092699 spsc:GCommerceIncMember us-gaap:TechnologyBasedIntangibleAssetsMember 2022-07-19 0001092699 spsc:GCommerceIncMember us-gaap:TechnologyBasedIntangibleAssetsMember 2022-07-19 2022-07-19 0001092699 spsc:InterTradeSystemsIncMember us-gaap:SubsequentEventMember 2022-10-04 2022-10-04 0001092699 spsc:FulfillmentMember spsc:RecurringRevenuesMember 2022-07-01 2022-09-30 0001092699 spsc:FulfillmentMember spsc:RecurringRevenuesMember 2021-07-01 2021-09-30 0001092699 spsc:FulfillmentMember spsc:RecurringRevenuesMember 2022-01-01 2022-09-30 0001092699 spsc:FulfillmentMember spsc:RecurringRevenuesMember 2021-01-01 2021-09-30 0001092699 spsc:AnalyticsMember spsc:RecurringRevenuesMember 2022-07-01 2022-09-30 0001092699 spsc:AnalyticsMember spsc:RecurringRevenuesMember 2021-07-01 2021-09-30 0001092699 spsc:AnalyticsMember spsc:RecurringRevenuesMember 2022-01-01 2022-09-30 0001092699 spsc:AnalyticsMember spsc:RecurringRevenuesMember 2021-01-01 2021-09-30 0001092699 spsc:OtherMember spsc:RecurringRevenuesMember 2022-07-01 2022-09-30 0001092699 spsc:OtherMember spsc:RecurringRevenuesMember 2021-07-01 2021-09-30 0001092699 spsc:OtherMember spsc:RecurringRevenuesMember 2022-01-01 2022-09-30 0001092699 spsc:OtherMember spsc:RecurringRevenuesMember 2021-01-01 2021-09-30 0001092699 spsc:RecurringRevenuesMember 2022-07-01 2022-09-30 0001092699 spsc:RecurringRevenuesMember 2021-07-01 2021-09-30 0001092699 spsc:RecurringRevenuesMember 2022-01-01 2022-09-30 0001092699 spsc:RecurringRevenuesMember 2021-01-01 2021-09-30 0001092699 spsc:OneTimeRevenuesMember 2022-07-01 2022-09-30 0001092699 spsc:OneTimeRevenuesMember 2021-07-01 2021-09-30 0001092699 spsc:OneTimeRevenuesMember 2022-01-01 2022-09-30 0001092699 spsc:OneTimeRevenuesMember 2021-01-01 2021-09-30 0001092699 srt:MinimumMember 2022-01-01 2022-09-30 0001092699 srt:MaximumMember 2022-01-01 2022-09-30 0001092699 spsc:SetUpFeesMember 2022-06-30 0001092699 spsc:SetUpFeesMember 2021-06-30 0001092699 spsc:SetUpFeesMember 2021-12-31 0001092699 spsc:SetUpFeesMember 2020-12-31 0001092699 spsc:SetUpFeesMember 2022-07-01 2022-09-30 0001092699 spsc:SetUpFeesMember 2021-07-01 2021-09-30 0001092699 spsc:SetUpFeesMember 2022-01-01 2022-09-30 0001092699 spsc:SetUpFeesMember 2021-01-01 2021-09-30 0001092699 spsc:SetUpFeesMember 2022-09-30 0001092699 spsc:SetUpFeesMember 2021-09-30 0001092699 us-gaap:CashEquivalentsMember us-gaap:MoneyMarketFundsMember 2022-09-30 0001092699 us-gaap:CashEquivalentsMember us-gaap:MoneyMarketFundsMember 2021-12-31 0001092699 us-gaap:CertificatesOfDepositMember 2022-09-30 0001092699 us-gaap:CertificatesOfDepositMember 2021-12-31 0001092699 spsc:MarketableSecuritiesMember us-gaap:CommercialPaperMember 2022-09-30 0001092699 spsc:MarketableSecuritiesMember us-gaap:CommercialPaperMember 2021-12-31 0001092699 spsc:MarketableSecuritiesMember us-gaap:USTreasurySecuritiesMember 2022-09-30 0001092699 spsc:MarketableSecuritiesMember us-gaap:USTreasurySecuritiesMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2022-09-30 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2021-12-31 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:MoneyMarketFundsMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2022-09-30 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2021-12-31 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:CertificatesOfDepositMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2022-09-30 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2021-12-31 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:CommercialPaperMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2022-09-30 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2021-12-31 0001092699 us-gaap:FairValueMeasurementsRecurringMember us-gaap:USTreasurySecuritiesMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2022-09-30 0001092699 us-gaap:FairValueMeasurementsRecurringMember 2022-09-30 0001092699 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001092699 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001092699 us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001092699 spsc:InternallyDevelopedSoftwareMember 2022-09-30 0001092699 spsc:InternallyDevelopedSoftwareMember 2021-12-31 0001092699 us-gaap:ComputerEquipmentMember 2022-09-30 0001092699 us-gaap:ComputerEquipmentMember 2021-12-31 0001092699 us-gaap:LeaseholdImprovementsMember 2022-09-30 0001092699 us-gaap:LeaseholdImprovementsMember 2021-12-31 0001092699 spsc:OfficeEquipmentAndFurnitureMember 2022-09-30 0001092699 spsc:OfficeEquipmentAndFurnitureMember 2021-12-31 0001092699 us-gaap:CustomerRelationshipsMember 2022-09-30 0001092699 us-gaap:CustomerRelationshipsMember 2021-01-01 2021-09-30 0001092699 us-gaap:TechnologyBasedIntangibleAssetsMember 2022-09-30 0001092699 us-gaap:TechnologyBasedIntangibleAssetsMember 2021-01-01 2021-09-30 0001092699 us-gaap:CustomerRelationshipsMember 2021-12-31 0001092699 us-gaap:CustomerRelationshipsMember 2021-01-01 2021-12-31 0001092699 us-gaap:TechnologyBasedIntangibleAssetsMember 2021-12-31 0001092699 us-gaap:TechnologyBasedIntangibleAssetsMember 2021-01-01 2021-12-31 0001092699 2021-01-01 2021-12-31 0001092699 spsc:A2019StockRepurchaseProgramMember us-gaap:CommonStockMember 2022-09-30 0001092699 spsc:A2019StockRepurchaseProgramMember us-gaap:CommonStockMember 2022-01-01 2022-09-30 0001092699 spsc:A2021StockRepurchaseProgramMember us-gaap:CommonStockMember 2022-09-30 0001092699 spsc:A2021StockRepurchaseProgramMember us-gaap:CommonStockMember 2022-01-01 2022-09-30 0001092699 spsc:A2022StockRepurchaseProgramMember us-gaap:CommonStockMember 2022-09-30 0001092699 us-gaap:CostOfSalesMember 2022-07-01 2022-09-30 0001092699 us-gaap:CostOfSalesMember 2021-07-01 2021-09-30 0001092699 us-gaap:CostOfSalesMember 2022-01-01 2022-09-30 0001092699 us-gaap:CostOfSalesMember 2021-01-01 2021-09-30 0001092699 us-gaap:SellingAndMarketingExpenseMember 2022-07-01 2022-09-30 0001092699 us-gaap:SellingAndMarketingExpenseMember 2021-07-01 2021-09-30 0001092699 us-gaap:SellingAndMarketingExpenseMember 2022-01-01 2022-09-30 0001092699 us-gaap:SellingAndMarketingExpenseMember 2021-01-01 2021-09-30 0001092699 us-gaap:ResearchAndDevelopmentExpenseMember 2022-07-01 2022-09-30 0001092699 us-gaap:ResearchAndDevelopmentExpenseMember 2021-07-01 2021-09-30 0001092699 us-gaap:ResearchAndDevelopmentExpenseMember 2022-01-01 2022-09-30 0001092699 us-gaap:ResearchAndDevelopmentExpenseMember 2021-01-01 2021-09-30 0001092699 us-gaap:GeneralAndAdministrativeExpenseMember 2022-07-01 2022-09-30 0001092699 us-gaap:GeneralAndAdministrativeExpenseMember 2021-07-01 2021-09-30 0001092699 us-gaap:GeneralAndAdministrativeExpenseMember 2022-01-01 2022-09-30 0001092699 us-gaap:GeneralAndAdministrativeExpenseMember 2021-01-01 2021-09-30 0001092699 us-gaap:EmployeeStockOptionMember 2022-07-01 2022-09-30 0001092699 us-gaap:EmployeeStockOptionMember 2021-07-01 2021-09-30 0001092699 us-gaap:EmployeeStockOptionMember 2022-01-01 2022-09-30 0001092699 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-09-30 0001092699 us-gaap:PerformanceSharesMember 2022-07-01 2022-09-30 0001092699 us-gaap:PerformanceSharesMember 2021-07-01 2021-09-30 0001092699 us-gaap:PerformanceSharesMember 2022-01-01 2022-09-30 0001092699 us-gaap:PerformanceSharesMember 2021-01-01 2021-09-30 0001092699 us-gaap:RestrictedStockUnitsRSUMember 2022-07-01 2022-09-30 0001092699 us-gaap:RestrictedStockUnitsRSUMember 2021-07-01 2021-09-30 0001092699 us-gaap:RestrictedStockUnitsRSUMember 2022-01-01 2022-09-30 0001092699 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-09-30 0001092699 spsc:RestrictedStockUnitsAndDeferredStockUnitsMember 2022-07-01 2022-09-30 0001092699 spsc:RestrictedStockUnitsAndDeferredStockUnitsMember 2021-07-01 2021-09-30 0001092699 spsc:RestrictedStockUnitsAndDeferredStockUnitsMember 2022-01-01 2022-09-30 0001092699 spsc:RestrictedStockUnitsAndDeferredStockUnitsMember 2021-01-01 2021-09-30 0001092699 spsc:EmployeeStockPurchasePlanMember 2022-07-01 2022-09-30 0001092699 spsc:EmployeeStockPurchasePlanMember 2021-07-01 2021-09-30 0001092699 spsc:EmployeeStockPurchasePlanMember 2022-01-01 2022-09-30 0001092699 spsc:EmployeeStockPurchasePlanMember 2021-01-01 2021-09-30 0001092699 spsc:FourZeroOneKStockMatchMember 2022-07-01 2022-09-30 0001092699 spsc:FourZeroOneKStockMatchMember 2021-07-01 2021-09-30 0001092699 spsc:FourZeroOneKStockMatchMember 2022-01-01 2022-09-30 0001092699 spsc:FourZeroOneKStockMatchMember 2021-01-01 2021-09-30 0001092699 us-gaap:EmployeeStockOptionMember 2022-09-30 0001092699 us-gaap:PerformanceSharesMember 2021-01-01 2021-03-31 0001092699 us-gaap:PerformanceSharesMember 2019-01-01 2019-03-31 0001092699 us-gaap:PerformanceSharesMember 2020-01-01 2020-03-31 0001092699 us-gaap:PerformanceSharesMember 2022-01-01 2022-03-31 0001092699 srt:MaximumMember us-gaap:PerformanceSharesMember 2022-01-01 2022-03-31 0001092699 spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember 2021-12-31 0001092699 spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember 2022-01-01 2022-09-30 0001092699 spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember 2022-09-30 0001092699 srt:MaximumMember spsc:PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember 2022-09-30 0001092699 us-gaap:EmployeeStockMember 2021-07-01 2021-09-30 0001092699 us-gaap:EmployeeStockMember 2021-01-01 2021-09-30 0001092699 us-gaap:EmployeeStockMember 2022-09-30 0001092699 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionDomesticMember 2022-07-01 2022-09-30 0001092699 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionDomesticMember 2021-07-01 2021-09-30 0001092699 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionDomesticMember 2022-01-01 2022-09-30 0001092699 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionDomesticMember 2021-01-01 2021-09-30 0001092699 srt:MaximumMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2022-01-01 2022-09-30 0001092699 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2022-01-01 2022-09-30 0001092699 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2021-01-01 2021-12-31 shares iso4217:USD iso4217:USD shares pure spsc:jurisdiction 0001092699 --12-31 2022 Q3 false 10-Q true 2022-09-30 false 001-34702 SPS COMMERCE, INC. DE 41-2015127 333 South Seventh Street Suite 1000 Minneapolis MN 55402 612 435-9400 Common Stock, par value $0.001 per share SPSC NASDAQ Yes Yes Large Accelerated Filer false false false 36041714 186230000 207552000 50928000 49758000 40445000 38811000 3658000 4249000 36787000 34562000 50082000 44529000 15246000 16042000 339273000 352443000 32923000 31901000 9760000 10851000 165908000 143663000 70742000 58587000 16474000 15191000 223000 182000 1787000 3028000 637090000 615846000 8200000 8330000 28779000 31661000 5202000 8345000 58949000 50428000 4336000 4108000 105466000 102872000 5146000 5144000 13974000 16426000 4841000 7145000 129427000 131587000 0.001 0.001 5000000 5000000 0 0 0 0 0 0 0.001 0.001 110000000 110000000 38184747 37798610 36037964 36009257 38000 38000 2146783 1789353 128377000 85677000 463356000 433258000 177306000 138087000 -4660000 -1447000 507663000 484259000 637090000 615846000 114486000 97887000 328857000 282520000 38605000 34343000 111524000 96043000 75881000 63544000 217333000 186477000 25334000 22079000 74571000 65386000 11135000 10854000 33268000 28459000 16724000 14691000 49390000 45186000 2998000 2399000 7936000 7734000 56191000 50023000 165165000 146765000 19690000 13521000 52168000 39712000 -695000 -716000 -1610000 -1424000 18995000 12805000 50558000 38288000 3132000 1356000 11339000 6456000 15863000 11449000 39219000 31832000 -2296000 -968000 -3309000 -604000 53000 -9000 49000 -36000 158000 -27000 147000 -107000 13000 -16000 17000 -46000 39000 -48000 51000 -138000 -2177000 -947000 -3213000 -573000 13686000 10502000 36006000 31259000 0.44 0.32 1.09 0.89 0.43 0.31 1.06 0.86 36093000 36093000 35961000 36104000 36104000 35873000 36915000 36915000 37015000 36942000 36942000 36898000 35859353 38000 1676765 -71697000 413182000 113873000 -647000 454749000 6361000 6361000 145658 0 2997000 2997000 1526 130000 130000 42299 42299 4211000 4211000 11449000 11449000 -968000 -968000 -27000 -27000 -48000 -48000 35964238 38000 1719064 -75908000 422670000 125322000 -1594000 470528000 36029477 38000 2044549 -115900000 453922000 161443000 -2483000 497020000 7429000 7429000 108240 1767000 1767000 2481 238000 238000 102234 102234 12477000 12477000 15863000 15863000 -2296000 -2296000 158000 158000 39000 39000 36037964 38000 2146783 -128377000 463356000 177306000 -4660000 507663000 35487217 37000 1613250 -65247000 393462000 93490000 -1021000 420721000 19866000 19866000 555160 1000 7026000 7027000 27675 2316000 2316000 105814 105814 10661000 10661000 31832000 31832000 -604000 -604000 -107000 -107000 -138000 -138000 35964238 38000 1719064 -75908000 422670000 125322000 -1594000 470528000 36009257 38000 1789353 -85677000 433258000 138087000 -1447000 484259000 24053000 24053000 348621 2457000 2457000 37516 3588000 3588000 357430 357430 42700000 42700000 39219000 39219000 -3309000 -3309000 147000 147000 51000 51000 36037964 38000 2146783 -128377000 463356000 177306000 -4660000 507663000 39219000 31832000 -2092000 1013000 11983000 10989000 7936000 7734000 2889000 4037000 25636000 21273000 -43000 -234000 3999000 5327000 7174000 5686000 -2202000 3893000 129000 -1518000 -4388000 6617000 -3035000 -174000 8261000 13401000 -1127000 1036000 76483000 81568000 13894000 15567000 134276000 84020000 132500000 67500000 44923000 0 -60593000 -32087000 42700000 10661000 2457000 7027000 3588000 2316000 0 2042000 -36655000 -3360000 -557000 -10000 -21322000 46111000 207552000 149692000 186230000 195803000 General<div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Business Description</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services we provide enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, to help ensure that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements.</span></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation</span></div><div style="margin-top:6pt;text-indent:36pt"><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 conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements. </span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This interim financial information has been prepared under the instructions to Form 10-Q and Rule 10-01 of Regulation S-X. Accordingly, these condensed consolidated financial statements do not include all of the information and notes required by GAAP. Therefore, these condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and notes included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the Securities and Exchange Commission (“SEC”). We have included all normal recurring adjustments considered necessary to provide a fair presentation of our financial position, results of operations, stockholders’ equity, and cash flows for the interim periods presented. Operating results for these interim periods are not necessarily indicative of the results to be expected for the full year.</span></div><div style="margin-top:12pt"><span style="color:#1f282c;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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Preparing financial statements in conformity with GAAP requires management to make estimates, judgments and assumptions that affect the reported amounts of assets and liabilities, disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the reporting periods. Actual results could differ from those estimates.</span></div><div style="margin-top:12pt"><span style="background-color:#ffffff;color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Accounting Policies</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no material changes in our significant accounting policies during the nine months ended September 30, 2022. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 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%">, as filed with the SEC, for additional information regarding our significant accounting policies.</span></div><div style="margin-top:12pt"><span style="background-color:#ffffff;color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements Not Yet Adopted</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:20.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.172%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:29.960%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.418%"/><td style="width:0.1%"/></tr><tr><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:8pt;font-weight:700;line-height:100%">Standard</span></td><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:8pt;font-weight:700;line-height:100%">Date of Issuance</span></td><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:8pt;font-weight:700;line-height:100%">Description</span></td><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:8pt;font-weight:700;line-height:100%">Date of Required Adoption</span></td><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:8pt;font-weight:700;line-height:100%">Effect on the Financial Statements</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:115%">ASU 2021-08, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers</span></div></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">October 2021</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter.<br/></span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">January 2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired.</span></td></tr></table></div> <div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Business Description</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SPS Commerce is a leading provider of cloud-based supply chain management services across our global retail network. Our products make it easier for retailers, suppliers, grocers, distributors, and logistics firms to orchestrate the management of item data, order fulfillment, inventory control, and sales analytics across omnichannel retail channels. SPS Commerce delivers our products using a full-service model whereby our internal experts monitor, update, and boost network performance on our customers’ behalf.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The services offered by SPS Commerce eliminate the need for on-premise software and support staff by taking on that capability on the customer’s behalf. The services we provide enable our customers to increase their supply cycle agility, optimize their inventory levels and sell-through, reduce operational costs and gain increased visibility into customer orders, to help ensure that suppliers, grocers, distributors, and logistics firms can satisfy exacting retailer requirements.</span></div> <div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation</span></div><div style="margin-top:6pt;text-indent:36pt"><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 conformity with accounting principles generally accepted in the United States of America (“GAAP”) and include the accounts of SPS Commerce, Inc. and its subsidiaries. All intercompany accounts and transactions have been eliminated in the condensed consolidated financial statements. </span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This interim financial information has been prepared under the instructions to Form 10-Q and Rule 10-01 of Regulation S-X. Accordingly, these condensed consolidated financial statements do not include all of the information and notes required by GAAP. Therefore, these condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and notes included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the Securities and Exchange Commission (“SEC”). We have included all normal recurring adjustments considered necessary to provide a fair presentation of our financial position, results of operations, stockholders’ equity, and cash flows for the interim periods presented. Operating results for these interim periods are not necessarily indicative of the results to be expected for the full year.</span></div> <div style="margin-top:12pt"><span style="color:#1f282c;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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Preparing financial statements in conformity with GAAP requires management to make estimates, judgments and assumptions that affect the reported amounts of assets and liabilities, disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the reporting periods. Actual results could differ from those estimates.</span></div> <div style="margin-top:12pt"><span style="background-color:#ffffff;color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Accounting Policies</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no material changes in our significant accounting policies during the nine months ended September 30, 2022. See Note A to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 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%">, as filed with the SEC, for additional information regarding our significant accounting policies.</span></div> <span style="background-color:#ffffff;color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements Not Yet Adopted</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:20.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.172%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:29.960%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.418%"/><td style="width:0.1%"/></tr><tr><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:8pt;font-weight:700;line-height:100%">Standard</span></td><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:8pt;font-weight:700;line-height:100%">Date of Issuance</span></td><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:8pt;font-weight:700;line-height:100%">Description</span></td><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:8pt;font-weight:700;line-height:100%">Date of Required Adoption</span></td><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:8pt;font-weight:700;line-height:100%">Effect on the Financial Statements</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:115%">ASU 2021-08, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Business Combinations (Topic 805) - Accounting for Contract Assets and Contract Liabilities from Contracts with Customers</span></div></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">October 2021</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This amendment requires that an acquirer recognize and measure contract assets and contract liabilities acquired in a business combination in accordance with Topic 606, effective for all business combinations in the year of adoption and thereafter.<br/></span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">January 2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The adoption of this standard may have a material impact on the purchase accounting for business combinations depending on the specific amount of contract assets and liabilities being acquired.</span></td></tr></table> Business Acquisitions<div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">GCommerce</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective July 19, 2022, we acquired all of the outstanding equity ownership interests of GCommerce, Inc. ("GCommerce"), a leading EDI provider within the automotive aftermarket industry. Pursuant to the definitive agreement, the purchase price of $45 million was paid in cash at closing, and is subject to customary post-closing adjustments. The purchase accounting for the acquisition has not been finalized as of September 30, 2022. Provisional amounts are primarily related to intangible assets, net working capital, and tax positions. We expect to finalize the allocation of the purchase price within the one-year measurement period following the acquisition.</span></div><div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Purchase Price Allocation</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We accounted for the acquisition as a business combination. We allocated the purchase price to the tangible and identifiable intangible assets acquired and liabilities assumed based on their estimated fair values as of the acquisition date. The excess of the purchase price over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. Goodwill is attributed to a trained workforce and other buyer-specific value resulting from expected synergies, including long-term cost savings, which are not included in the fair values of identifiable assets.</span></div><div style="margin-top:6pt;text-indent:36pt"><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 estimated fair values of the assets acquired and liabilities assumed at the acquisition date:</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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><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:700;line-height:114%">(in thousands)</span></td><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:8pt;font-weight:700;line-height:114%">Estimated Fair Value</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:114%">Cash</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:114%">$</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:114%">230 </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:114%">Accounts receivable</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:114%">467 </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:114%">Other current assets</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:114%">288 </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:114%">Operating lease right-of-use asset</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:114%">934 </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:114%">Goodwill</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:114%">24,556 </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:114%">Intangible assets</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:114%">20,250 </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:114%">Deferred income tax assets</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:114%">5,291 </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:114%">Accounts payable</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:114%">(266)</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:114%">Accrued compensation</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:114%">(321)</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:114%">Deferred revenue</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:114%">(262)</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:114%">Operating lease liability</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:114%">(934)</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:114%">Deferred income tax liabilities</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:114%">(5,144)</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:0 1pt 0 5.22pt"/><td style="background-color:#cceeff;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:114%">$</span></td><td style="background-color:#cceeff;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:114%">45,089 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Purchased Intangible Assets</span></div><div style="margin-top:6pt;text-indent:36pt"><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 estimated fair value of the purchased intangible assets and their estimated useful lives, each of which are subject to finalization:</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:71.324%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:700;line-height:114%">($ in thousands)</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:8pt;font-weight:700;line-height:114%">Estimated<br/>Fair Value</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:8pt;font-weight:700;line-height:114%">Weighted Average<br/>Estimated<br/>Useful Life</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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:114%">Subscriber relationships</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:114%">$</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:114%">18,225 </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="background-color:#cceeff;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:10pt;font-weight:400;line-height:114%">8.0 years</span></td></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:114%">Acquired technology</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:114%">2,025 </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:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:114%">5.0 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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:114%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:114%">$</span></td><td style="background-color:#cceeff;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:114%">20,250 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr></table></div><div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">InterTrade</span></div><div style="margin-top:12pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 4, 2022, we acquired all of the outstanding equity ownership interests of Canadian based InterTrade Systems Inc. ("InterTrade"), a leading EDI provider within the apparel and general merchandising markets. Pursuant to the definitive agreement, the purchase price of $49 million was paid in cash at closing, and is subject to customary post-closing adjustments.</span></div> 45000000 P1Y <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 estimated fair values of the assets acquired and liabilities assumed at the acquisition date:</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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><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:700;line-height:114%">(in thousands)</span></td><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:8pt;font-weight:700;line-height:114%">Estimated Fair Value</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:114%">Cash</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:114%">$</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:114%">230 </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:114%">Accounts receivable</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:114%">467 </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:114%">Other current assets</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:114%">288 </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:114%">Operating lease right-of-use asset</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:114%">934 </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:114%">Goodwill</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:114%">24,556 </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:114%">Intangible assets</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:114%">20,250 </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:114%">Deferred income tax assets</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:114%">5,291 </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:114%">Accounts payable</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:114%">(266)</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:114%">Accrued compensation</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:114%">(321)</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:114%">Deferred revenue</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:114%">(262)</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:114%">Operating lease liability</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:114%">(934)</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:114%">Deferred income tax liabilities</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:114%">(5,144)</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:0 1pt 0 5.22pt"/><td style="background-color:#cceeff;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:114%">$</span></td><td style="background-color:#cceeff;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:114%">45,089 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 230000 467000 288000 934000 24556000 20250000 5291000 266000 321000 262000 934000 5144000 45089000 <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 estimated fair value of the purchased intangible assets and their estimated useful lives, each of which are subject to finalization:</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:71.324%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:700;line-height:114%">($ in thousands)</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:8pt;font-weight:700;line-height:114%">Estimated<br/>Fair Value</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:8pt;font-weight:700;line-height:114%">Weighted Average<br/>Estimated<br/>Useful Life</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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:114%">Subscriber relationships</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:114%">$</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:114%">18,225 </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="background-color:#cceeff;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:10pt;font-weight:400;line-height:114%">8.0 years</span></td></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:114%">Acquired technology</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:114%">2,025 </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:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:114%">5.0 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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:114%">Total</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:114%">$</span></td><td style="background-color:#cceeff;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:114%">20,250 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr></table> 18225000 P8Y 2025000 P5Y 20250000 49000000 Revenue <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We derive our revenues from the following revenue streams:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Recurring 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"/><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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment</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%">92,952 </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%">78,106 </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%">265,570 </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%">224,738 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Analytics</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%">11,902 </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%">10,858 </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%">34,846 </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%">31,383 </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 10pt;text-align: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:#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,699 </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,435 </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,867 </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,019 </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%">Recurring revenues</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%">106,553 </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%">90,399 </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%">305,283 </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%">260,140 </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%">One-time revenues</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%">7,933 </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%">7,488 </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%">23,574 </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%">22,380 </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 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%">Total revenue</span></td><td style="background-color:#cceeff;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:#cceeff;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%">114,486 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">97,887 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">328,857 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">282,520 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues are the amount that reflects the consideration we are contractually and legally entitled to, as well as the amount we expect to collect, in exchange for those services.</span></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Recurring Revenues</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Recurring revenues consist of recurring subscriptions from customers that utilize our Fulfillment, Analytics, and Other supply chain management products. Revenue for these products is generally recognized on a ratable basis over the contract term beginning on the date that our service is made available to the customer. Our contracts with our recurring revenue customers are recurring in nature, generally ranging from monthly to annual, and generally allow the customer to cancel the contract for any reason with 30 to 90 days’ notice. Timing of billings varies by customer and by contract type and generally are either in advance or within 30 days of the service being performed.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Given that the recurring revenue contracts are for one year or less, we have applied the optional exemption to not disclose information about the remaining performance obligations for recurring revenue contracts.</span></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">One-time Revenues</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One-time revenues consist of set-up fees and miscellaneous fees from customers.</span></div><div style="margin-top:9pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Set-up revenues</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Set-up fees are specific for each connection a customer has with a trading partner. These nonrefundable fees are necessary for our customers to utilize our services and do not provide any standalone value. Many of our customers have connections with numerous trading partners.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Set-up fees constitute a material renewal option right that provide customers a significant future incentive that would not be otherwise available to that customer unless they entered into the contract, as the set-up fees will not be incurred again upon contract renewal. As such, set-up fees and related costs are deferred and recognized ratably over two years which is the estimated period for which a material right is present for our customers.</span></div><div style="margin-top:6pt;padding-left:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees: </span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;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:8pt;font-weight:700;line-height:100%">2021</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:8pt;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:8pt;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, 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%">15,309 </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%">13,344 </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%">14,459 </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%">11,118 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Invoiced set-up 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%">3,715 </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%">3,622 </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%">11,776 </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%">11,832 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognized set-up fees</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,805)</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,245)</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,016)</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%">(9,229)</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%">Balance, end of period</span></td><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%">15,219 </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%">13,721 </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%">15,219 </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%">13,721 </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><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The entire balance of deferred set-up fees will be recognized within two years. Those that will be recognized within the next year are classified as current, whereas the remainder are classified as non-current.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Miscellaneous one-time revenues</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Miscellaneous one-time fees consist of professional services and testing and certification. </span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The contract period for these one-time fees is for one year or less and recognized at the time service is provided. We have applied the optional exemption to not disclose information about the remaining performance obligations for miscellaneous one-time fee contracts since they have original durations of one year or less.</span></div> <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We derive our revenues from the following revenue streams:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Recurring 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"/><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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment</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%">92,952 </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%">78,106 </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%">265,570 </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%">224,738 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Analytics</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%">11,902 </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%">10,858 </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%">34,846 </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%">31,383 </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 10pt;text-align: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:#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,699 </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,435 </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,867 </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,019 </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%">Recurring revenues</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%">106,553 </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%">90,399 </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%">305,283 </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%">260,140 </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%">One-time revenues</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%">7,933 </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%">7,488 </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%">23,574 </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%">22,380 </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 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%">Total revenue</span></td><td style="background-color:#cceeff;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:#cceeff;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%">114,486 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">97,887 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">328,857 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">282,520 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 92952000 78106000 265570000 224738000 11902000 10858000 34846000 31383000 1699000 1435000 4867000 4019000 106553000 90399000 305283000 260140000 7933000 7488000 23574000 22380000 114486000 97887000 328857000 282520000 P30D P90D P30D P1Y P2Y <div style="margin-top:6pt;padding-left:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The table below presents the activity of the portion of the deferred revenue liability relating to set-up fees: </span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;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:8pt;font-weight:700;line-height:100%">2021</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:8pt;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:8pt;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, 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%">15,309 </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%">13,344 </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%">14,459 </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%">11,118 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Invoiced set-up 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%">3,715 </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%">3,622 </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%">11,776 </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%">11,832 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognized set-up fees</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,805)</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,245)</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,016)</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%">(9,229)</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%">Balance, end of period</span></td><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%">15,219 </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%">13,721 </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%">15,219 </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%">13,721 </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> 15309000 13344000 14459000 11118000 3715000 3622000 11776000 11832000 3805000 3245000 11016000 9229000 15219000 13721000 15219000 13721000 P2Y P1Y Deferred Costs<div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The deferred costs activity was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</span></td><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%">2021</span></td><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%">2022</span></td><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%">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, 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%">64,665 </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%">53,841 </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%">59,720 </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%">50,595 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incurred deferred costs</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%">17,442 </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,459 </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%">52,860 </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%">45,922 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortized deferred costs</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%">(15,551)</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%">(14,207)</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%">(46,024)</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%">(40,424)</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%">Balance, end of period</span></td><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%">66,556 </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%">56,093 </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%">66,556 </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%">56,093 </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> <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The deferred costs activity was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</span></td><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%">2021</span></td><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%">2022</span></td><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%">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, 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%">64,665 </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%">53,841 </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%">59,720 </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%">50,595 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incurred deferred costs</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%">17,442 </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,459 </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%">52,860 </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%">45,922 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortized deferred costs</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%">(15,551)</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%">(14,207)</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%">(46,024)</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%">(40,424)</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%">Balance, end of period</span></td><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%">66,556 </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%">56,093 </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%">66,556 </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%">56,093 </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> 64665000 53841000 59720000 50595000 17442000 16459000 52860000 45922000 -15551000 -14207000 -46024000 -40424000 66556000 56093000 66556000 56093000 Financial Instruments<div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Equivalents and Investments</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents and investments consisted of the following:</span></div><div style="margin-top:12pt"><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:29.506%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.964%"/><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:8pt;font-weight:700;line-height:100%">September 30, 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:8pt;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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">Amortized Cost</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%">Unrealized Gains, net</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%">Fair Value</span></td><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%">Amortized Cost</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%">Unrealized Gains (Losses), net</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%">Fair Value</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:700;line-height:100%">Cash equivalents:</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"/><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 10pt;text-align:left;vertical-align:bottom"><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:#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%">111,498 </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%">111,498 </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%">138,205 </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%">138,205 </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:700;line-height:100%">Certificates of deposit</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%">6,437 </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,437 </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,268 </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%">7,268 </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:700;line-height:100%">Marketable securities:</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 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Commercial paper</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%">44,358 </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%">133 </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%">44,491 </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%">34,984 </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 </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%">34,991 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">U.S. treasury securities</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"/><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%">7,500 </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)</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%">7,499 </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:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">162,293 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">133 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">162,426 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">187,957 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">6 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">187,963 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Recurring Fair Value Measurements</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis:</span></div><div style="margin-top:12pt;text-align:center"><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:21.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.998%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><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:8pt;font-weight:700;line-height:100%">September 30, 2022</span></td><td colspan="3" style="padding:0 1pt"/><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:8pt;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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">Level 1</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%">Level 2</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%">Level 3</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</span></td><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%">Level 1</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%">Level 2</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%">Level 3</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</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:700;line-height:100%">Assets:</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"/><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"/><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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash equivalents:</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"/><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 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%">Money market funds</span></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%">111,498 </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%">— </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%">— </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%">111,498 </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%">138,205 </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%">— </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%">— </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%">138,205 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Certificates of deposit</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,437 </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%">— </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,437 </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%">7,268 </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%">— </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%">7,268 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Marketable securities:</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"/><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 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%">Commercial paper</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%">44,491 </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%">44,491 </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%">34,991 </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%">34,991 </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%">U.S. treasury securities</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%">— </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%">— </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%">— </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,499 </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%">7,499 </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: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%">117,935 </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%">44,491 </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%">— </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%">162,426 </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%">145,473 </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%">42,490 </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%">— </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%">187,963 </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><div style="margin-top:6pt;padding-left:36pt"><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%">See Note E to the consolidated financial statements included in our Annual Report on Form 10-K for the year ended December 31, 2021, as filed with the SEC, for additional information regarding the three levels of inputs that may be used to measure fair value.</span></div> <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash equivalents and investments consisted of the following:</span></div><div style="margin-top:12pt"><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:29.506%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.960%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.964%"/><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:8pt;font-weight:700;line-height:100%">September 30, 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:8pt;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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">Amortized Cost</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%">Unrealized Gains, net</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%">Fair Value</span></td><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%">Amortized Cost</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%">Unrealized Gains (Losses), net</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%">Fair Value</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:700;line-height:100%">Cash equivalents:</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"/><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 10pt;text-align:left;vertical-align:bottom"><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:#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%">111,498 </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%">111,498 </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%">138,205 </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%">138,205 </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:700;line-height:100%">Certificates of deposit</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%">6,437 </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,437 </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,268 </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%">7,268 </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:700;line-height:100%">Marketable securities:</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 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Commercial paper</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%">44,358 </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%">133 </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%">44,491 </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%">34,984 </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 </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%">34,991 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">U.S. treasury securities</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"/><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%">7,500 </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)</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%">7,499 </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:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">162,293 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">133 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">162,426 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">187,957 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">6 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">187,963 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 111498000 0 111498000 138205000 0 138205000 6437000 0 6437000 7268000 0 7268000 44358000 133000 44491000 34984000 7000 34991000 0 0 0 7500000 -1000 7499000 162293000 133000 162426000 187957000 6000 187963000 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table details the fair value hierarchy of our assets and liabilities measured at a fair value on a recurring basis:</span></div><div style="margin-top:12pt;text-align:center"><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:21.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.990%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.998%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><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:8pt;font-weight:700;line-height:100%">September 30, 2022</span></td><td colspan="3" style="padding:0 1pt"/><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:8pt;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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">Level 1</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%">Level 2</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%">Level 3</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</span></td><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%">Level 1</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%">Level 2</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%">Level 3</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</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:700;line-height:100%">Assets:</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"/><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"/><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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash equivalents:</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"/><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 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%">Money market funds</span></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%">111,498 </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%">— </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%">— </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%">111,498 </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%">138,205 </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%">— </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%">— </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%">138,205 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Certificates of deposit</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,437 </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%">— </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,437 </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%">7,268 </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%">— </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%">7,268 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Marketable securities:</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"/><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 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%">Commercial paper</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%">44,491 </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%">44,491 </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%">34,991 </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%">34,991 </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%">U.S. treasury securities</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%">— </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%">— </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%">— </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,499 </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%">7,499 </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: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%">117,935 </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%">44,491 </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%">— </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%">162,426 </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%">145,473 </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%">42,490 </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%">— </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%">187,963 </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> 111498000 0 0 111498000 138205000 0 0 138205000 6437000 0 0 6437000 7268000 0 0 7268000 0 44491000 0 44491000 0 34991000 0 34991000 0 0 0 0 0 7499000 0 7499000 117935000 44491000 0 162426000 145473000 42490000 0 187963000 Allowance for Credit Losses<div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The allowance for credit losses activity, included in accounts receivable, net, was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">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, 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%">4,249 </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,233 </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 10pt;text-align: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%">2,889 </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,037 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</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,480)</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,666)</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%">Balance, end of period</span></td><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%">3,658 </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%">4,604 </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> <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The allowance for credit losses activity, included in accounts receivable, net, was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">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, 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%">4,249 </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,233 </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 10pt;text-align: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%">2,889 </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,037 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</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,480)</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,666)</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%">Balance, end of period</span></td><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%">3,658 </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%">4,604 </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> 4249000 4233000 2889000 4037000 3480000 3666000 3658000 4604000 Property and Equipment, Net<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:</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:72.384%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.557%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.475%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.478%"/><td style="width:0.1%"/></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:8pt;font-weight:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">September 30,<br/>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:8pt;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%">Internally developed software</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%">50,311 </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%">44,981 </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%">Computer equipment</span></td><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%">32,520 </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%">29,329 </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%">Leasehold improvements</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%">16,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 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%">16,685 </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="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%">11,157 </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%">10,972 </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 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%">Property and equipment, cost</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%">110,859 </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%">101,967 </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%">Less: accumulated depreciation and amortization</span></td><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%">(77,936)</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%">(70,066)</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 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%">Total property and equipment, net</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">32,923 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">31,901 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;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%">Property and equipment, net consisted of the following:</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:72.384%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.557%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.475%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.478%"/><td style="width:0.1%"/></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:8pt;font-weight:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">September 30,<br/>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:8pt;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%">Internally developed software</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%">50,311 </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%">44,981 </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%">Computer equipment</span></td><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%">32,520 </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%">29,329 </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%">Leasehold improvements</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%">16,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 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%">16,685 </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="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%">11,157 </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%">10,972 </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 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%">Property and equipment, cost</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%">110,859 </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%">101,967 </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%">Less: accumulated depreciation and amortization</span></td><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%">(77,936)</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%">(70,066)</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 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%">Total property and equipment, net</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">32,923 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">31,901 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table> 50311000 44981000 32520000 29329000 16871000 16685000 11157000 10972000 110859000 101967000 77936000 70066000 32923000 31901000 Goodwill and Intangible Assets, Net<div style="margin-top:12pt"><span style="color:#1f282c;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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The activity in goodwill was as follows:</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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">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, 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%">143,663 </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%">134,853 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Addition from business acquisition</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%">24,556 </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 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency translation</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,311)</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%">(441)</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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Remeasurement from provisional purchase accounting amount</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%">268 </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, end of period</span></td><td style="background-color:#cceeff;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:#cceeff;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%">165,908 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">134,680 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Intangible Assets</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets, net consisted of the following:</span></div><div style="margin-top:12pt;text-align:center"><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:30.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.086%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="27" style="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%">September 30, 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:700;line-height:100%">($ in thousands)</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:8pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Amount</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%">Accumulated <br/>Amortization </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%">Foreign<br/>Currency <br/>Translation</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%">Net</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%">Weighted Average Remaining Amortization Period</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%">Subscriber relationships</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%">79,365 </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%">(35,823)</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%">(159)</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%">43,383 </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="background-color:#cceeff;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:10pt;font-weight:400;line-height:100%">6.6 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%">Acquired technology</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%">37,351 </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%">(9,992)</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%">27,359 </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:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.0 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">116,716 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(45,815)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(159)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">70,742 </span></td><td style="background-color:#cceeff;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:#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:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.4 years</span></td></tr></table></div><div style="margin-top:12pt;text-align:center"><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:30.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.086%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="27" style="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%">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:700;line-height:100%">($ in thousands)</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:8pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Amount</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%">Accumulated <br/>Amortization </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%">Foreign<br/>Currency <br/>Translation</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%">Net</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%">Weighted Average Remaining Amortization Period</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%">Subscriber relationships</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%">61,270 </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%">(29,866)</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,395)</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%">30,009 </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="background-color:#cceeff;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:10pt;font-weight:400;line-height:100%">6.4 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%">Acquired technology</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%">35,316 </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,738)</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%">28,578 </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:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.8 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">96,586 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(36,604)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(1,395)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">58,587 </span></td><td style="background-color:#cceeff;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:#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:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.6 years</span></td></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:3pt;font-weight:700;line-height:120%"> </span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated future annual amortization expense related to intangible assets is as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><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:700;line-height:100%">(in thousands)</span></td><td colspan="3" style="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:#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%">Remainder of 2022</span></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%">3,112 </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%">2023</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%">12,379 </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%">2024</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%">11,217 </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%">2025</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%">11,079 </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%">2026</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%">10,075 </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%">Thereafter</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%">22,880 </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 future amortization</span></td><td style="background-color:#cceeff;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:#cceeff;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%">70,742 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> <div style="margin-top:12pt"><span style="color:#1f282c;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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The activity in goodwill was as follows:</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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">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, 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%">143,663 </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%">134,853 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Addition from business acquisition</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%">24,556 </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 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency translation</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,311)</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%">(441)</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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Remeasurement from provisional purchase accounting amount</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%">268 </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, end of period</span></td><td style="background-color:#cceeff;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:#cceeff;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%">165,908 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">134,680 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 143663000 134853000 24556000 0 -2311000 -441000 0 268000 165908000 134680000 <div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Intangible Assets</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets, net consisted of the following:</span></div><div style="margin-top:12pt;text-align:center"><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:30.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.086%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="27" style="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%">September 30, 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:700;line-height:100%">($ in thousands)</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:8pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Amount</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%">Accumulated <br/>Amortization </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%">Foreign<br/>Currency <br/>Translation</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%">Net</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%">Weighted Average Remaining Amortization Period</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%">Subscriber relationships</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%">79,365 </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%">(35,823)</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%">(159)</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%">43,383 </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="background-color:#cceeff;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:10pt;font-weight:400;line-height:100%">6.6 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%">Acquired technology</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%">37,351 </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%">(9,992)</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%">27,359 </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:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.0 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">116,716 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(45,815)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(159)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">70,742 </span></td><td style="background-color:#cceeff;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:#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:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.4 years</span></td></tr></table></div><div style="margin-top:12pt;text-align:center"><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:30.566%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.086%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="27" style="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%">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:700;line-height:100%">($ in thousands)</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:8pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Amount</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%">Accumulated <br/>Amortization </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%">Foreign<br/>Currency <br/>Translation</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%">Net</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%">Weighted Average Remaining Amortization Period</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%">Subscriber relationships</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%">61,270 </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%">(29,866)</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,395)</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%">30,009 </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="background-color:#cceeff;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:10pt;font-weight:400;line-height:100%">6.4 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%">Acquired technology</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%">35,316 </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,738)</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%">28,578 </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:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.8 years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">96,586 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(36,604)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">(1,395)</span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">58,587 </span></td><td style="background-color:#cceeff;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:#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:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.6 years</span></td></tr></table></div> 79365000 35823000 -159000 43383000 P6Y7M6D 37351000 9992000 0 27359000 P6Y 116716000 45815000 -159000 70742000 P6Y4M24D 61270000 29866000 -1395000 30009000 P6Y4M24D 35316000 6738000 0 28578000 P6Y9M18D 96586000 36604000 -1395000 58587000 P6Y7M6D <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated future annual amortization expense related to intangible assets is as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><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:700;line-height:100%">(in thousands)</span></td><td colspan="3" style="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:#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%">Remainder of 2022</span></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%">3,112 </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%">2023</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%">12,379 </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%">2024</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%">11,217 </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%">2025</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%">11,079 </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%">2026</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%">10,075 </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%">Thereafter</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%">22,880 </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 future amortization</span></td><td style="background-color:#cceeff;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:#cceeff;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%">70,742 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 3112000 12379000 11217000 11079000 10075000 22880000 70742000 Commitments and Contingencies<div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Leases</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of lease expense were as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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 lease cost</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%">788 </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%">873 </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,287 </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,309 </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%">Variable lease cost</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%">963 </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%">976 </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,612 </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,694 </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:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">1,751 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">1,849 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">4,899 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">5,003 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental cash flow information related to leases was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">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%">Cash paid for amounts included in the measurement of lease liabilities</span></td><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><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%"> </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align: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 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,399 </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%">2,488 </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%">Right-of-use assets obtained in exchange for operating lease liabilities</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%">934 </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></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to operating leases was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">September 30,<br/>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:8pt;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%">Weighted-average remaining lease term</span></td><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%">4.2 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%">4.8 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="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.0 </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><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.0 </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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At September 30, 2022, our future minimum payments under operating leases were as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><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:700;line-height:100%">(in thousands)</span></td><td colspan="3" style="padding:0 1pt"/></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%">Remainder of 2022</span></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%">1,515 </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%">2023</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%">4,871 </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%">2024</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,474 </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%">2025</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%">4,088 </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%">2026</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,760 </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%">Thereafter</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,266 </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 future gross payments</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%">19,974 </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%">Less: imputed interest</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,664)</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 operating lease liabilities</span></td><td style="background-color:#cceeff;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:#cceeff;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%">18,310 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Purchase Commitments</span></div>We have entered into separate noncancelable agreements with computing infrastructure, customer relationship management, and performance and security data analytics vendors for services through 2025. At September 30, 2022, the total remaining purchase commitments were $7.4 million <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components of lease expense were as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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 lease cost</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%">788 </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%">873 </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,287 </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,309 </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%">Variable lease cost</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%">963 </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%">976 </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,612 </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,694 </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:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">1,751 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">1,849 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">4,899 </span></td><td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;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:#cceeff;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%">5,003 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 788000 873000 2287000 2309000 963000 976000 2612000 2694000 1751000 1849000 4899000 5003000 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental cash flow information related to leases was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">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%">Cash paid for amounts included in the measurement of lease liabilities</span></td><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><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%"> </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align: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 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,399 </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%">2,488 </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%">Right-of-use assets obtained in exchange for operating lease liabilities</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%">934 </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></table></div> 3399000 2488000 934000 0 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Supplemental balance sheet information related to operating leases was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">September 30,<br/>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:8pt;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%">Weighted-average remaining lease term</span></td><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%">4.2 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%">4.8 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="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.0 </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><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.0 </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> P4Y2M12D P4Y9M18D 0.040 0.040 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At September 30, 2022, our future minimum payments under operating leases were as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><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:700;line-height:100%">(in thousands)</span></td><td colspan="3" style="padding:0 1pt"/></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%">Remainder of 2022</span></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%">1,515 </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%">2023</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%">4,871 </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%">2024</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,474 </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%">2025</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%">4,088 </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%">2026</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,760 </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%">Thereafter</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,266 </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 future gross payments</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%">19,974 </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%">Less: imputed interest</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,664)</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 operating lease liabilities</span></td><td style="background-color:#cceeff;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:#cceeff;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%">18,310 </span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 1515000 4871000 4474000 4088000 3760000 1266000 19974000 1664000 18310000 7400000 Stockholders’ Equity<div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Share</span><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"> Repurchase Programs</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#212529;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the programs and activity thereunder through </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">September 30, 2022 were as follows:</span></div><div style="margin-top:12pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.848%"><tr><td style="width:1.0%"/><td style="width:12.101%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.164%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.164%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.860%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.860%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.860%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.867%"/><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:700;line-height:100%">(in thousands)</span></td><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:8pt;font-weight:700;line-height:100%">Effective Date</span></td><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:8pt;font-weight:700;line-height:100%">Expiration 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:8pt;font-weight:700;line-height:100%">Share Value Authorized for Repurchase</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:8pt;font-weight:700;line-height:100%">Share Value Repurchased</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:8pt;font-weight:700;line-height:100%">Unused &amp; Expired Share Repurchase Value</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:8pt;font-weight:700;line-height:100%">Share Value Available for Future Repurchase</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2019 Program</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 2019</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 2021</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 7pt 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%">50,000</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: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%">29,611 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;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%">20,389 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;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:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> N/A </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021 Program</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">August 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 7pt 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%">50,000</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49,992 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">N/A</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022 Program</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">August 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">July 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 7pt 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%">50,000</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,477 </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;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">N/A</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: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;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%">47,523 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="background-color:#ffffff;color:#212529;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">share</span><span style="background-color:#ffffff;color:#212529;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%">repurchase activity by period was as follows:</span></div><div style="margin-top:6pt"><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:40.528%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.832%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.403%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.776%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.403%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.776%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.403%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.779%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands, except shares and per share amounts)</span></td><td colspan="3" style="border-top:1pt solid #000;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%">2022</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2021</span></td><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%">2022</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%">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%">Number of shares repurchased</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%">102,234 </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%">42,299 </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%">357,430 </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%">105,814 </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%">Shares repurchased cost</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%">12,477 </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,211 </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%">42,700 </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,661 </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%">Average price per repurchased share</span></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%">122.04 </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%">99.55 </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%">119.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%">100.75 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> <div style="margin-top:6pt;text-indent:36pt"><span style="color:#212529;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our board of directors has authorized multiple non-concurrent programs to repurchase our common stock. Details of the programs and activity thereunder through </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">September 30, 2022 were as follows:</span></div><div style="margin-top:12pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.848%"><tr><td style="width:1.0%"/><td style="width:12.101%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.164%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.164%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.860%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.860%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.860%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.867%"/><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:700;line-height:100%">(in thousands)</span></td><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:8pt;font-weight:700;line-height:100%">Effective Date</span></td><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:8pt;font-weight:700;line-height:100%">Expiration 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:8pt;font-weight:700;line-height:100%">Share Value Authorized for Repurchase</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:8pt;font-weight:700;line-height:100%">Share Value Repurchased</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:8pt;font-weight:700;line-height:100%">Unused &amp; Expired Share Repurchase Value</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:8pt;font-weight:700;line-height:100%">Share Value Available for Future Repurchase</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2019 Program</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 2019</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 2021</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 7pt 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%">50,000</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: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%">29,611 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;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%">20,389 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;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:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> N/A </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021 Program</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">August 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 7pt 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%">50,000</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49,992 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">N/A</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022 Program</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">August 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">July 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 7pt 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%">50,000</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,477 </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;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">N/A</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: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;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%">47,523 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="background-color:#ffffff;color:#212529;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">share</span><span style="background-color:#ffffff;color:#212529;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%">repurchase activity by period was as follows:</span></div><div style="margin-top:6pt"><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:40.528%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.832%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.403%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.776%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.403%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.776%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.403%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.779%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands, except shares and per share amounts)</span></td><td colspan="3" style="border-top:1pt solid #000;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%">2022</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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2021</span></td><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%">2022</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%">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%">Number of shares repurchased</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%">102,234 </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%">42,299 </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%">357,430 </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%">105,814 </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%">Shares repurchased cost</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%">12,477 </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,211 </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%">42,700 </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,661 </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%">Average price per repurchased share</span></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%">122.04 </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%">99.55 </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%">119.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%">100.75 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 50000000 29611000 20389000 50000000 49992000 8000 50000000 2477000 47523000 102234 42299 357430 105814 12477000 4211000 42700000 10661000 122.04 99.55 119.46 100.75 Stock-Based Compensation<div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our equity compensation plans provide for the grant of incentive and nonqualified stock options, as well as other stock-based awards including performance share units (“PSUs”), restricted stock awards (“RSAs”), restricted stock units (“RSUs”), and deferred stock units (“DSUs”), to employees, non-employee directors and other consultants who provide services to us. We also provide an employee stock purchase plan (“ESPP”) and 401(k) match to eligible participants. </span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize stock-based compensation expense based on grant date award fair value. This cost is recognized over the period for which the employee is required to provide service in exchange for the award or the award performance period, except for expenses relating to retirement-eligible employees that have not given their required notice, which is recognized on a pro-rata basis over the notice period prior to retirement. At </span><span style="color:#212529;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">September 30, 2022</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, there were 13.2 million shares available for grant under approved equity compensation plans.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Cost of revenues</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,146 </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,696 </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%">6,477 </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,945 </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 expenses</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="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="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="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sales and marketing</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,845 </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,634 </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%">5,835 </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,854 </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 10pt;text-align: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</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,396 </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,195 </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,250 </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%">3,212 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">General and administrative</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,573 </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,324 </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%">9,074 </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%">8,262 </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: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%">7,960 </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%">6,849 </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%">25,636 </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%">21,273 </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><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense by grant type or plan was as follows:</span></div><div style="margin-top:12pt"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</span></td></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:8pt;font-weight:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">2021</span></td></tr><tr><td colspan="3" style="background-color:#CFF0FC;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:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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%">461 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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%">496 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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,401 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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,569 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt 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%">PSUs</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,541 </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%">1,342 </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%">6,244 </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%">5,357 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#CFF0FC;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</span></td><td colspan="2" style="background-color:#CFF0FC;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,735 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,039 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,467 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,577 </span></td><td style="background-color:#CFF0FC;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%">RSAs &amp; DSUs</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%">110 </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%">109 </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%">328 </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%">325 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#CFF0FC;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%">ESPP</span></td><td colspan="2" style="background-color:#CFF0FC;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%">577 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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%">376 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,609 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,038 </span></td><td style="background-color:#CFF0FC;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%">401(k) stock match</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%">536 </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%">487 </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%">1,587 </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%">1,407 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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,960 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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,849 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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%">25,636 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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,273 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2022, there was $42.1 million of unrecognized stock-based compensation expense under our equity compensation plans, which is expected to be recognized on a primarily straight-line basis over a weighted average period of 2.5 years.</span></div><div style="margin-top:12pt"><span style="color:#1f282c;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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our stock option activity was as follows:</span></div><div style="margin-top:6pt"><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:64.051%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.021%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.022%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30, 2022</span></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:8pt;font-weight:700;line-height:100%">Options (#) </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%">Weighted Average<br/>Exercise Price <br/>($/share)</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%">Outstanding, beginning of period</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%">678,650 </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%">44.76 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</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%">49,085 </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%">122.64 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</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%">(79,089)</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%">31.07 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited</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,711)</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%">89.21 </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%">Outstanding, end of period</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;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%">641,935 </span></td><td style="background-color:#cceeff;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:#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%">51.94 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Of the total outstanding options at September 30, 2022, 0.5 million were exercisable. The outstanding and exercisable options had a weighted average exercise price of $43.96 per share and a weighted average remaining contractual life of 2.9 years.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value of options granted during the nine months ended September 30, 2022 was $40.95 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><td style="width:0.1%"/></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:114%">Life (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 43pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:114%">4.3</span></td></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:114%">Volatility</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:114%">37.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:114%">%</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:114%">Dividend yield</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:114%">— </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:114%">Risk-free interest rate</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:114%">2.2 </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:114%">%</span></td></tr></table></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance Share Units, Restricted Stock Units and Awards, and Deferred Stock Units</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In each of the quarters ended March 31, 2022, 2021, 2020, and 2019 we granted PSU awards with a target performance level. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These awards are earned based upon our Company’s total shareholder return as compared to an indexed total shareholder return over the course of a fiscal based three-year performance period, starting in the year of grant. Earned awards vest in the quarter following the conclusion of the performance period. In the three months ended March 31, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2022</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, PSU awards granted in 2019 vested at the maximum performance level and less than 0.1 million shares of common stock were issued.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30, 2022</span></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:8pt;font-weight:700;line-height:100%">#</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%">Weighted Average Grant<br/>Date Fair Value <br/>($/share)</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%">Outstanding, beginning of period</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%">702,160 </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%">78.03 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</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%">284,739 </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%">126.88 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested and common stock issued</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%">(268,607)</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%">63.04 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited</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%">(21,114)</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%">96.81 </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%">Outstanding, end of period</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;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%">697,178 </span></td><td style="background-color:#cceeff;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:#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%">103.19 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of PSUs, RSUs, RSAs, and DSUs outstanding at September 30, 2022 included less than 0.1 million units that have vested, but the shares of common stock have not yet been issued, pursuant to the terms of the underlying agreements.</span></div><div style="margin-top:12pt"><span style="color:#1f282c;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ESPP activity was as follows:</span></div><div style="margin-top:6pt;text-indent:36pt"><span><br/></span></div><div style="margin-top:6pt"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands, except shares)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Amounts for shares purchased</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%">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%">130 </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%">3,588 </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,316 </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%">Shares purchased</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,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%">1,526 </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%">37,516 </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%">27,675 </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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A total of 1.8 million shares of common stock are reserved for issuance under the ESPP as of September 30, 2022.</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the following assumptions:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><td style="width:0.1%"/></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%">Life (in years)</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%">0.5</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%">Volatility</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%">37.4 </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%">Dividend yield</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%">— </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%">Risk-free interest rate</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%">0.2 </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> 13200000 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Cost of revenues</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,146 </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,696 </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%">6,477 </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,945 </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 expenses</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="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="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="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sales and marketing</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,845 </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,634 </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%">5,835 </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,854 </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 10pt;text-align: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</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,396 </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,195 </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,250 </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%">3,212 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">General and administrative</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,573 </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,324 </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%">9,074 </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%">8,262 </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: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%">7,960 </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%">6,849 </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%">25,636 </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%">21,273 </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><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense by grant type or plan was as follows:</span></div><div style="margin-top:12pt"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</span></td></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:8pt;font-weight:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">2021</span></td></tr><tr><td colspan="3" style="background-color:#CFF0FC;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:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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%">461 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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%">496 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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,401 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-top:0.75pt 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:#CFF0FC;border-top:0.75pt 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,569 </span></td><td style="background-color:#CFF0FC;border-top:0.75pt 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%">PSUs</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,541 </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%">1,342 </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%">6,244 </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%">5,357 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#CFF0FC;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</span></td><td colspan="2" style="background-color:#CFF0FC;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,735 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,039 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,467 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,577 </span></td><td style="background-color:#CFF0FC;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%">RSAs &amp; DSUs</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%">110 </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%">109 </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%">328 </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%">325 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#CFF0FC;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%">ESPP</span></td><td colspan="2" style="background-color:#CFF0FC;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%">577 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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%">376 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,609 </span></td><td style="background-color:#CFF0FC;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td colspan="2" style="background-color:#CFF0FC;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,038 </span></td><td style="background-color:#CFF0FC;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%">401(k) stock match</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%">536 </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%">487 </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%">1,587 </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%">1,407 </span></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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,960 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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,849 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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%">25,636 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#CFF0FC;padding:0 1pt"/><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt 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,273 </span></td><td style="background-color:#CFF0FC;border-bottom:3pt double #000000;border-top:0.75pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 2146000 1696000 6477000 4945000 1845000 1634000 5835000 4854000 1396000 1195000 4250000 3212000 2573000 2324000 9074000 8262000 7960000 6849000 25636000 21273000 461000 496000 1401000 1569000 1541000 1342000 6244000 5357000 4735000 4039000 14467000 11577000 110000 109000 328000 325000 577000 376000 1609000 1038000 536000 487000 1587000 1407000 7960000 6849000 25636000 21273000 42100000 P2Y6M <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our stock option activity was as follows:</span></div><div style="margin-top:6pt"><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:64.051%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.021%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.022%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30, 2022</span></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:8pt;font-weight:700;line-height:100%">Options (#) </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%">Weighted Average<br/>Exercise Price <br/>($/share)</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%">Outstanding, beginning of period</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%">678,650 </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%">44.76 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</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%">49,085 </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%">122.64 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</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%">(79,089)</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%">31.07 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited</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,711)</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%">89.21 </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%">Outstanding, end of period</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;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%">641,935 </span></td><td style="background-color:#cceeff;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:#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%">51.94 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 678650 44.76 49085 122.64 79089 31.07 6711 89.21 641935 51.94 500000 43.96 P2Y10M24D <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value of options granted during the nine months ended September 30, 2022 was $40.95 per share. This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><td style="width:0.1%"/></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:114%">Life (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 43pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:114%">4.3</span></td></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:114%">Volatility</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:114%">37.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:114%">%</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:114%">Dividend yield</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:114%">— </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:114%">Risk-free interest rate</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:114%">2.2 </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:114%">%</span></td></tr></table></div> 40.95 P4Y3M18D 0.375 0 0.022 P3Y P3Y P3Y P3Y 100000 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30, 2022</span></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:8pt;font-weight:700;line-height:100%">#</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%">Weighted Average Grant<br/>Date Fair Value <br/>($/share)</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%">Outstanding, beginning of period</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%">702,160 </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%">78.03 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</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%">284,739 </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%">126.88 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested and common stock issued</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%">(268,607)</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%">63.04 </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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited</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%">(21,114)</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%">96.81 </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%">Outstanding, end of period</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;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%">697,178 </span></td><td style="background-color:#cceeff;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:#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%">103.19 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 702160 78.03 284739 126.88 268607 63.04 21114 96.81 697178 103.19 100000 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ESPP activity was as follows:</span></div><div style="margin-top:6pt;text-indent:36pt"><span><br/></span></div><div style="margin-top:6pt"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands, except shares)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Amounts for shares purchased</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%">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%">130 </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%">3,588 </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,316 </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%">Shares purchased</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,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%">1,526 </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%">37,516 </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%">27,675 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 238000 130000 3588000 2316000 2481 1526 37516 27675 1800000 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the following assumptions:</span></div><div style="margin-top:12pt;text-align:center"><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:85.718%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.082%"/><td style="width:0.1%"/></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%">Life (in years)</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%">0.5</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%">Volatility</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%">37.4 </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%">Dividend yield</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%">— </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%">Risk-free interest rate</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%">0.2 </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> P0Y6M 0.374 0 0.002 Income TaxesWe record our interim provision for income taxes by applying our estimated annual effective tax rate to our year-to-date pre-tax income and adjust the provision for discrete tax items recorded in the period. Differences between our effective tax rate and statutory tax rates are primarily due to the impact of permanently non-deductible expenses partially offset by the federal research and development credits and tax benefits associated with foreign-derived intangible income. Additionally, excess tax benefits generated upon settlement or exercise of stock awards are recognized as a reduction to income tax expense as a discrete tax item in the quarter that the event occurs, creating potentially significant fluctuation in tax expense by quarter and by year. Our provisions for income taxes includes current federal, state, and foreign income tax expense, as well as deferred tax expense. Other Income and Expense<div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other expense, net included the following: </span></div><div style="margin-top:12pt;text-align:center"><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:44.960%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.932%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Investment income</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%">586 </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%">66 </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%">806 </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%">242 </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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Realized loss from foreign currency on cash and investments held</span></td><td colspan="2" style="background-color:#ffffff;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%">(1,151)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(854)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,010)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,492)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></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 income (expense), net</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%">(130)</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%">72 </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%">(406)</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%">(174)</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:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total other expense, net</span></td><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%">(695)</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%">(716)</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%">(1,610)</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%">(1,424)</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> <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other expense, net included the following: </span></div><div style="margin-top:12pt;text-align:center"><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:44.960%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.930%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.932%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Investment income</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%">586 </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%">66 </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%">806 </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%">242 </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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Realized loss from foreign currency on cash and investments held</span></td><td colspan="2" style="background-color:#ffffff;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%">(1,151)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(854)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,010)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,492)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></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 income (expense), net</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%">(130)</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%">72 </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%">(406)</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%">(174)</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:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total other expense, net</span></td><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%">(695)</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%">(716)</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%">(1,610)</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%">(1,424)</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> 586000 66000 806000 242000 -1151000 -854000 -2010000 -1492000 -130000 72000 -406000 -174000 -695000 -716000 -1610000 -1424000 Net Income Per Share<div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components and computation of basic and diluted net income per share were as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands, except per share amounts)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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:700;line-height:100%">Numerator</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"/><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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</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%">15,863 </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%">11,449 </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%">39,219 </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%">31,832 </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:700;line-height:100%">Denominator</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="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="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="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></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;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%">Weighted average common shares outstanding, basic</span></td><td colspan="2" style="background-color:#ffffff;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%">36,093 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,961 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,104 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,873 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;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%">Options to purchase common stock</span></td><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%">379 </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="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%">520 </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="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%">396 </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="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%">533 </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 2px 28pt;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%">PSUs, RSUs, RSAs, and DSUs</span></td><td colspan="2" style="background-color:#ffffff;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%">443 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">534 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">442 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">492 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;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%">Weighted average common shares outstanding, diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;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%">36,915 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37,015 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,942 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,898 </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><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:700;line-height:100%">Net income per share</span></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></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%">0.44 </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%">0.32 </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.09 </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%">0.89 </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 28pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</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%">0.43 </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%">0.31 </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%">1.06 </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%">0.86 </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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Anti-dilutive shares</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%">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 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%">34 </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%">222 </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%">46 </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:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The components and computation of basic and diluted net income per share were as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands, except per share amounts)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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:700;line-height:100%">Numerator</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"/><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 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</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%">15,863 </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%">11,449 </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%">39,219 </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%">31,832 </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:700;line-height:100%">Denominator</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="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="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="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></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;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%">Weighted average common shares outstanding, basic</span></td><td colspan="2" style="background-color:#ffffff;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%">36,093 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,961 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,104 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,873 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;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%">Options to purchase common stock</span></td><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%">379 </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="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%">520 </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="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%">396 </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="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%">533 </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 2px 28pt;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%">PSUs, RSUs, RSAs, and DSUs</span></td><td colspan="2" style="background-color:#ffffff;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%">443 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">534 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">442 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">492 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;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%">Weighted average common shares outstanding, diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;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%">36,915 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37,015 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,942 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><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:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,898 </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><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:700;line-height:100%">Net income per share</span></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #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%"> </span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></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%">0.44 </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%">0.32 </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.09 </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%">0.89 </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 28pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</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%">0.43 </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%">0.31 </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%">1.06 </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%">0.86 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div> 15863000 11449000 39219000 31832000 36093000 36093000 35961000 36104000 36104000 35873000 379000 520000 396000 533000 443000 534000 442000 492000 36915000 36915000 37015000 36942000 36942000 36898000 0.44 0.32 1.09 0.89 0.43 0.31 1.06 0.86 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive was as follows:</span></div><div style="margin-top:12pt;text-align:center"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</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:700;line-height:100%">(in thousands)</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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Anti-dilutive shares</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%">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 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%">34 </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%">222 </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%">46 </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> 107000 34000 222000 46000 Geographic Information<div style="margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S., was as follows:</span></div><div style="margin-top:6pt"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</span></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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Domestic revenue</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%">85 </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%">84 </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%">84 </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%">84 </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-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">No single jurisdiction outside of the U.S. had revenues in excess of 10%. </span></div><div style="margin-top:12pt"><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</span></div><div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The percentage of property and equipment, net located at subsidiary and office locations outside of the U.S. was as follows:</span></div><div style="margin-top:12pt"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;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:8pt;font-weight:700;line-height:100%">September 30,<br/>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:8pt;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%">International property and equipment</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%">13 </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%">12 </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-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The percentage of domestic revenue, which we define as the percentage of consolidated revenue that was attributable to customers based within the U.S., was as follows:</span></div><div style="margin-top:6pt"><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:44.354%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.085%"/><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:8pt;font-weight:700;line-height:100%">Three Months Ended<br/>September 30,</span></td><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:8pt;font-weight:700;line-height:100%">Nine Months Ended<br/>September 30,</span></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:8pt;font-weight:700;line-height:100%">2022</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%">2021</span></td><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%">2022</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%">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%">Domestic revenue</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%">85 </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%">84 </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%">84 </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%">84 </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.85 0.84 0.84 0.84 0 0.10 <div style="margin-top:6pt;text-indent:36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The percentage of property and equipment, net located at subsidiary and office locations outside of the U.S. was as follows:</span></div><div style="margin-top:12pt"><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:71.930%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.406%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.083%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;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:8pt;font-weight:700;line-height:100%">September 30,<br/>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:8pt;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%">International property and equipment</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%">13 </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%">12 </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.13 0.12 EXCEL 83 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( %F!6U4'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 " !9@5M5Q)_0%.T K @ $0 &1O8U!R;W!S+V-O&ULS9+! M2L0P$(9?17)O)TU!(71S6?&D(+B@> O)[&ZP24,RTN[;V\;=+J(/X#$S?[[Y M!J8S49HAX7,:(B9RF&\FWXMU*+-4_L:4#[)RYV@LN&RY:_+ZX__*["?K!N[_ZQ M\450=?#K+M074$L#!!0 ( %F!6U697)PC$ 8 )PG 3 >&PO=&AE M;64O=&AE;64Q+GAM;.U:6W/:.!1^[Z_0>&?V;0O&-H&VM!-S:7;;M)F$[4X? MA1%8C6QY9)&$?[]'-A#+E@WMDDVZFSP$+.G[SD5'Y^@X>?/N+F+HAHB4\GA@ MV2_;UKNW+][@5S(D$4$P&:>O\, *I4Q>M5II ,,X?+&A T%116F]?(+3E'S/X%/F7/Z3H=,H%N,!M8('_.;Z?D3EJ(X53"Q,!J9S]6:\?1 MTDB @LE]E 6Z2?:CTQ4(,@T[.IU8SG9\]L3MGXS*VG0T;1K@X_%X.+;+THMP M' 3@4;N>PIWT;+^D00FTHVG09-CVVJZ1IJJ-4T_3]WW?ZYMHG J-6T_3:W?= MTXZ)QJW0> V^\4^'PZZ)QJO0=.MI)B?]KFNDZ19H0D;CZWH2%;7E0-,@ %AP M=M;,T@.67BGZ=90:V1V[W4%<\%CN.8D1_L;%!-9ITAF6-$9RG9 %#@ WQ-%, M4'RO0;:*X,*2TER0UL\IM5 :")K(@?5'@B'%W*_]]9>[R:0S>IU].LYKE']I MJP&G[;N;SY/\<^CDGZ>3UTU"SG"\+ GQ^R-;88C'(CN]WV6'WV3T=N(]>IP+,BUY1&)$6?R"VZ MY!$XM4D-,A,_")V&F&I0' *D"3&6H8;XM,:L$> 3?;>^",C?C8CWJV^:/5>A M6$G:A/@01AKBG'/F<]%L^P>E1M'V5;SC MFED)O816:I^JAS0^J!XR"@7QN1X^Y7IX"C>6QKQ0KH)[ ?_1VC?"J_B"P#E_ M+GW/I>^Y]#VATK\>WZV22$KYI9+2,6D$N!LT$DN/R+RO JQ GH9%LE" M0AMNZ5/U2I77Y:^Y*+@\6^3IKZ%T/BS/^3Q?Y[3-"S-#MW)+ZK:4OK4F.$KT ML@'37[]EUVY".E,%.70[@:0KX#;;J=W#HXGIB1N0K3 M4I!OP_GIQ7@:XCG9!+E]F%=MY]C1T?OGP5&PH^\\EAW'B/*B(>ZAAIC/PT.' M>7M?F&>5QE T%&ULK"0L1K=@N-?Q+!3@9& MH >#KU$"\E)58#%;Q@,KD*)\ M3(Q%Z'#GEUQ?X]&2X]NF9;5NKREW&6TB4CG":9@39ZO*WF6QP54=SU5;\K"^ M:CVT%4[/_EFMR)\,$4X6"Q)(8Y07IDJB\QE3ON>;G*YZ(G;ZEW?! M8/+]<,E'#^4[YU_T74.N?O;=X_INDSM(3)QYQ1$!=$4"(Y4U#VT%SU&\Z.9X!ZSAW.;>KC"1:S_6-8>^3+?.7#;.MX#7N83 M+$.D?L%]BHJ $:MBOKJO3_DEG#NT>_&!()O\UMND]MW@#'S4JUJE9"L1/TL' M?!^2!F.,6_0T7X\48JVFL:W&VC$,>8!8\PRA9CC?AT6:&C/5BZPYC0IO0=5 MY3_;U UH]@TT')$%7C&9MC:CY$X*/-S^[PVPPL2.X>V+OP%02P,$% @ M68%;52.JW>KJ!0 OA\ !@ !X;"]W;W)K?M?!$%!DE*,>_.]%6 M^3]-X.OKO?I- 0\P7;8^M$@@%CR/]*/<_"IV0#VCY\LH*_Z2 MS?;;;K=%_#S3,MX%0PGB,-G^\N==1;P.H#4!;!? W@70NO_@[@**FNML2U9@ M77/-1T,E-T29KT'-7!1U4T0#39B8-,ZT@K M=/Q=_-4VGM7$#\B=3/0J(Y,D$,';^ Z4I2P0VQ?HBJ&",Y&>$] M#P]_\/4YA-K"WQ3'+>O'+?1P'9+V"ZF/KJ6?@Y=5).GEU382/%PZK0_VY#0 MJ(9(O1*I=QS2YYPK+53T0AY%*I6VX>%26N6V2O'0J(9X_1*O?QS>5*A0!J87 M$A@'K,G#E9-9%H6$/ #R7@ M![10DT2'^H7YN\NA-SLCMO7=N(T4U&I)2IYI/G6-8;Q-?*FB?W#35 M,S+3T"F)5,23>:+5"_P&U@HXH'X]L1'C04V17UD(>@SR$W\FMP%TTG 1^@4W MTI(/2'9IFSFT1]F%E1<-;LK+*EYV#.\X"$ ].]M?D$_P'7E(['G%)5W7)3-P MV2LR$VNH0OC5"CR=E1Z5:DI?&2**6A"<_FDCK?2XY"P/H7=0QW&LO*>P1+3R M1!1W->]Y/7,'/?E);A(K*RYW%R:)X*F,0IO;]O#HIK"56Z*XQWD/6XY;4R77 M8>+;VS:N>7=O!3V%;:*5;Z*XW7D/.I69YA'Y*TSKAV9/*XI:>6< M*&YWBO8ZAB5^/1@NT*=VK%/8)5KY)8J;G4_2AWQ-5S+!#-,!D:[;:P^Z-S'^4\P+?BY@DQ:(7$E3\8QS,4S+?VO9R3EBJQY ME ORO7,.CI&DL+XM5O_62CB%F6*5F6*XW0&W'X3)DLQ>XKF,;.P'!, Q>M9- MA%,X)E8Y)H;;FWTVR>397_%D*6H-\0&A^_'L>FQ==..!30DKC\2.\DA>KI19 MMFW7:D4J84;)K1M-!Q2_6+>G/#RJ*6?EAMA1;N@VT4)MMR3-^IOOP:V0:O,WN[Q75JMQOPN*9\E0-B1SF@22S4TG3,7T !UATP6Z0\ ML:<6%ZP'/84!8I4!8KA_V2=R)2"1&%[#;2,\KBE>983843M';V?Y6;&=3QYR M#;8V,7.HE?@;69Q=/6S5>H6:.3Y:C]R^TZ47M#OLK&V,E1EB1VT@>3"B*G!] MMTD@GLEOPIY&7 H6F=09L/Y@8&4XA=]Q*[_CXG9E/UW>A)EQMU\$F#5L2_> M7+M-6=NEUF.&4Q@@MS) +NY;ROW/^+UCGU0FIF?"* M@^.,^&8W=GM86CXM#Z?'Q9%LI_I\>[)]Q\U\F9%(+"#4.;^ 4]M#XNW-UJF MQ7GK7&HMX^)R)7@@E/D WB^DU/L;\P_*(_O1?U!+ P04 " !9@5M5@IPL M1#T' "D( & 'AL+W=O9A$6.<[#[3$NT61A([%-4>[Z]?4MW6Q:/MA1]L MZRB6OBH6ZZLB??4DY+=VQ[D"W^NJ::]7.Z7VGS:;-M_QFK4?Q9XW^LV#D#53 M^E8^;MJ]Y*SH!]75!D,8;VI6-JOM5?_L5FZO1*>JLN&W$K1=73/Y_)E7XNEZ MA58O#[Z6CSME'FRV5WOVR.^X^FM_*_7=9M!2E#5OVE(T0/*'Z]4OZ-,-[0?T M$O\N^5,[N0;&E'LAOIF;WXOK%32(>,5S950P_>? ;WA5&4T:Q]\GI:OAFV;@ M]/I%^Z^]\=J8>];R&U']IRS4[GJ5KD#!'UA7J:_BZ9_\9%!D].6B:OO?X.DD M"U<@[UHEZM-@C: NF^-?]OWDB,D 1#T#\&D ?NT D./R'JSOC#%ME=2 M/ %II+4V<]'[IA^MK2D;,XUW2NJWI1ZGMC>B*?2D\ +HJU949<&4OOG,*M;D M'-P9Q2VX '_=?0$_?_@'^ #*!ORY$UW+FJ*]VBB-P6C:Y*?O?3Y^#WN^=\?W M'P&!:X AQH[A-^'A7WBNAZ-^.)H/WVC+!_/Q8#[N]1&?^9V4O%& M:VVTV7. M<3QUCS>+[%.[9SF_7NE5U')YX*OMCS^@&%ZZC'LG93-3R6 J"6G?WK!V!_2D M@=Q<\+^[\L J;;O3ZJ.JN%=E,L%AB](8$WBU.4SML<4P3*((#V(SI'1 2H-( M[W9"J@O%9:V#[MTH5>0:-WQF#KB$:9X 2ET@2?7<)TJ3(_005UZ4,D*9FN1 /%YV^"7@96W"R)%[F=H<4@FGD SW2$ KST&]"%$]E53F1 M$4?\11E<9B&7'"5Q[)O_D7E0F'I^;Q1K'DN=@$[^\T^]S2H)3.ARK3O$HC2: MY*LYT)%]4!0L7,XM=Q1DK[?6+>^E;6[L2&0HS&3SQ*NG1#07IV3BM-TF*133 MA"ZGQB$6HJS5K(YEV'%('84VJAD=M0F-R._!%PHLU;,4E@9N4TAQR*T@D-SKN(D> P M?%4?497LOJQ*5;IK+!RDR3=W$^^D;6[SR)4XS)5#U;9GS[[R%]O,EV*XG!:7 M%)DT&W. D]XN3(\:H.SZK%'O=8_+S+Z!$Z3-=#A-DFR)TA8C*(X]^0*/A(C# MA/@"DW\W*#V!8Q->I%O@)4);*B639F,.<"1%'";%(:%)?N!-YYYH%\]EU/*A MJV.CO@2!1SK$X6YL60F=6X>.MHR093'LDD+0AW5D,QQFLWDQ? ZI@Z1@1&,+ MJTM.1[&')/#(9CAY1:%Q#F60$=^"1,>,>%>PZAS64(9Q0O*R67'$'>SH",K$?"K'&0R-S2D=U)F-U- M2(O&;R9",&0H2=N$)KV-)%DG6;J.T<(!E\>W\1IJB2RFPRW,UCA*7H0G M+EIKBFCWO#^)JMP!Y]K977HL*#-WV5ADD#-%AM1LT,EG<'=T&E-]\WP)\%I3 MTSI)26\>TE?9FD3D9-TK+'+L ".X*$I3RNM< MO&=E<5$V(&?[4N=F)UZ[=:8Q(=&2GEURA&#?,0$9RPD2+B>^V!]^<& M3N!V;7"AJU,K*SC$=/'C@4W'$H*^9F.YG:3_'W](,4HN R1 [>H@@LET\_!T M;.2L-7#DV:BG8QU!WUA']$OQC48@Z^C-N>/ADG/M>&PF1\CF_/Y?3#Z63:N+ MR@<]$'Y,M!OD\4C\>*/$OC]5OA=*B;J_W'&FP1L!_?Y!"/5R8PZJAW],V/X/ M4$L#!!0 ( %F!6U5&0@[=J@, !(- 8 >&PO=V]R:W-H965T&ULK9?;;MLX$(9?A= 6BP3H1N=3UA;0."AV+XH:=;M[L>@%(]$6 M$4I42F M*=.<%%C>\(J4<&?-18$53,7&E)4@.&N<"F8ZEA68!::EDV+<+V],.C<4_E.SDP1AI*0^ZN#N'=Q&:$O6R+K' M"B[[VY")KIT.%TZG":>.X6C M0#Y4J4)\C=[2$I) ,4-++FE3=?^]>9!*0.U]'I/:QO;&8^L->2LKG)*Y 3M. M$K$E1O+[;W9@_3DF_'\*UDN#VZ7!/14]6<)>(D) (4 !IH^O484%VF)6$W0% MSSOCC&$A447@A9!#:5R/9:-=(FR6T&^3;6+=6!8\I>VAS'-6/7ZOX_'85OX_L'6+[5_ WPS]OU!/B= /^G!% IZ_/P_A'4$/N4 M10\XZ("#GP*&SB$5O!IHN3E''9RE/F71HPX[ZO D]8(7!>SJ7RCR\$5%?LZJ M!Q]U\-$%\!=7>'243-NV1FO\)98]!7&G(+Y0,.XI14[?C@AXJ#]VR=%?(2SGZS% MMX&,<^CV$9!C>T$8N4/R8T,[C&+7=R? GQNU?;(!)@LLD"\UA:T+ MC7O\#-+&"@XQHL!QAY4^8N=8H>\[$[3/_=0^W5#OG]Z.*9<3B.Y8)XF<(>&Q MF>?Y3CP!^-PP[=,=\ST<[@3"4I()/.\X@[[C!4.\$;/ \H;Y,P\.K/IKX1T6 M&UI*Q,@:_*R;$/2)]@#>3A2OFC/L U=P(FZ&.7RT$*$-X/Z:<_4TT4;I^Y^"2WC"GTN2PJ>3?9 M*K6[F4[E^] M%[-;OE=%7K'W LE]66;BRSTK^//=!$]>;GS(-UME;DQGM[MLPQZ8^KA[+_35 MM+6RRDM6R9Q72+#UW>0-OEF0Q#2H$;_F[%D>?4>&RB/GG\S%N]7=Q#,C8@5; M*F,BTQ]/;,Z*PEC2X_BK,3II^S0-C[^_6'];D]=D'C/)YKSX+5^I[=TDGJ 5 M6V?[0GW@SS^PAE!@["UY(>O_T7.#]29HN9>*ETUC/8(RKPZ?V>?&$4<-M!VX M 6D:$+N!W]. -@WH:WOPFP;^:WL(F@8U]>F!>^VX-%/9[%;P9R0,6ELS7VKO MUZVUO_+*),J#$OK77+=3LSFO5CKL;(7T-\F+?)4I??&@](?.!R417^N?2IV% M6Y,>3PR]JY:\9.@*?7Q(T?G9!9+;3#")\@K]LN5[F54K>8G.3JYOITH/UG0Y M738#NS\,C/0,C*(?>:6V$BWT %= ^W2X?3+0?JJ=U'J*O'CJG@P:?&"[:T2] M2T0\0H#QS%_?'$-T_E_OB__<^XDS:)LVM+9'>^PU.="F"?K]S:-40D_[/Z!0 M'XSYL#%3"V_D+ENRNXE.,\G$$YO,OOT&A]YWD)_'-):.:6PQDK&3B/AM1/PA MZ[,/[(E5>P;.M$/+L&YI5HZG&<:^'X>WTZ=CQ[JP)(KCZ!25NBA*XCBP8 L7 M1F(2$*^%G; ,6I;!(,LYE\I4)#' ]F A.!Y@''J!119 ^?J?1=9%88P#XEMD M75@2>D?&3KB&+==PD.OW@DN)=H*O$X]*,()AJU1*/!8O+SCHE,Y=4&L<\[LQB!88W&K"%C&DO'-+88R=A) M(.(V$/%@QCUDA5[']7JM%8;XQ$Q(H$C$;K($E%HI-0=0Q(L2*_%<5.0'D97$ M"Q<5!O2H?IVP35JVR;]43,DRL=S6A%>ZH!1\9]8RB'("U0%JUQ0 Y<6!/==< M%*4DC"W*+HK$?I# E+'7R3UON*BP2D^VHN:5O M#L'\,+&BF (P/Z&)9S&'8 'NBS8^4KIXD/J;D@N5_YW5&Q2]AN25RJI-_E@P ME$G)%"Q2L1N')(EM!P HFMBY#J"BA(8V?0 5'%UXM870M>OCA M[W5 XM0=0A+:&3J'8#0@3KZ[, UR9CH HTF$20_M3A#B847XL]HR\1+G2U0Q ML+(U1HY[OPH3N[)!J B'-F$ A4/L3' (YI.^%.^T(1X6ATV<']F:"Z:G=WVE MLL\]20YHNSAQF0,P$MMR,@5@@1<$3JPA<:KED3NV( ZI312 MZ7V14[9=&$T(=I@",!S3OFG<:3(<#ZOC>AHO3XY@FMP^;V)] 3IA4.M]K6 > MU5HZJK7%6-9. ]3)2#RL(]_J:I-O*K3<"\&JY1>D!54EBX/.R%9_[J6J3]+ M(+DR[XJ0Q-Z90[#$7DA2"$6IYR0J -.[53A/2: MH?-";U\OD/9!7CVQQ@?U,F3$EZE4^N,LH)?H_"RYN$1G?E*KTO,S&NI+':D= MJT^1BR^0YPB@.>UR.P= 5\0^T( L^?9Q!F0)>ST;7])I4C*L23^P9:'%9[[. MEZTN/3?NNT#&?9;WC&3E2&]:*JW@'%^>GV%J_(A#XU(<7=3N///#5SC3U9Q7 M=BF? R#?3D'(4&#OY@ 0ICU+(.D$+GF5P 6JY<"*2%S->45P%-G4 5ABYT@* MH2C!]B$*! NBGL,BTJE<,JQRY\ * 5*F[FD@#9W#0 CF!1ZQ.;LP&GJ>O:F! M8)CT;6=)IW&)/[@X=CH :6%_>!(!DAZ4RE^[&(YJ+1W5VF(L:Z%=V\>3M6<'?7$=U1KZ:C6%F-9.XU? MM\,@P\>^W9P]1 S.5O<,5A?ZQ$E7 !8DH9.OD#7LV<]50&MQ[UK9278R+-F/ M)^L09^"H-DRP?40 P2+/AJ6P-9_8G"%8G-CZ:'KTS+]D8E._;"'U)-M7ZO < MM[W;OM#QIGZ-P;I_CV_F&+B?XIO%X76-SOSA[9$?,[')*XD*MM9=>=>1'JLX MO)!QN%!\5[]Q\,B5XF7]=+DP'[6LQLW\ 4$L#!!0 ( M %F!6U6OPUXR]0( D) 8 >&PO=V]R:W-H965T&UL MK59;;]HP%/XK5E9-(+7-#>C*(%*Y3.M#)536[6':@TD.Q&IB,]M MU^_8R=D M7 *JMKXDOISO.^=\OASW-D(^JQ1 DY<\XZKOI%HONZZKXA1RJJ[%$CC.S(7, MJ<:N7+AJ*8$F%I1G;N!Y'3>GC#M1SXY-9-03*YTQ#A-)U"K/J?PU@$QL^H[O M; <>V2+59L"->DNZ@"GHI^5$8L^M6!*6 U=,<")AWG?N_.ZX;>RMP5<&&[73 M)B:3F1#/IG.?]!W/! 09Q-HP4/RM80A99H@PC)\EIU.Y-,#=]I;]D\T=K3#^*S6>H!00D(#@&M$X"P!(2O]= J :W7>FB7 )NZ6^1NA1M13:.>%!LB MC36RF895WZ)1+\;-/IEJB;,,<3H:"I[@JD-"L*5$QA*JL3/5^,/MH!41L@=SS6.1 &A,JT2 %S6*:-9J.2..B22X(X^1+*E:*\D3U7(UQ M&F]N7,8T*&(*3L04D@>!Q(J,,;:D!C\ZC[\]@W=1GTJD8"O2(#A+.(7E-0F] M2Q)X05 3S_#U<+\NG?_S/OYG[WMBA-6."2U?>(*O7/YJAY#O=S.E)9[X'W5+ M79"UZLG,+=A52QI#W\$=ID"NP8G>O_,[WLI*NNH'?;< M]:[LQR97M_LFHV.3UH')N(8E[%0V>YFWJ\S;9S-_A#BC2K$Y7D&V[N!EU3 : M-(G1X$ ";&M!@$K.^.*T(.WC./U#18YM_,Z!(G4T-P>2'-NT#A5Q=^[V'.3" M%E5%8K'BNCBTU6A5M^]LN3H8'_C=H5\S/L(Z7Y3EO_3%(^&!R@7CBF0P1U?> M]0V&*XO"6W2T6-K*,A,:ZY1MIOA6 6D,<'XNA-YVC(/J]1/] 5!+ P04 M" !9@5M5:]I')[ - #JC & 'AL+W=O M]-=W)"L>S44CTGZS"!!+]IGW#.><&9(/#\FKA[KYV-Y559?\NEYMVNN+NZZ[ M_^[RLIW?5>NR?5/?5QO]EP]ULRX[_;6YO6SOFZI<[!NM5Y7O7[7YQ>7-U7]Y6 M[ZONI_NWC?YV^:2R6*ZK3;NL-TE3?;B^^%/VGD^_'+0?3BR>>NX?'G+^IRO_%Z M8WXNVVI:K_ZU7'1WUQ?CBV11?2BWJ^Y=_?#GZK!!?*+'1B58M$?VKKU7)1=OK+^T[_T!G7M4G]07^K MYQ_OZM6B:MH_),4OVV7W.1DE/[V?):^^>9U\DRPWR8]W];8M-XOVZK+3_=JI M7\X/??C^L0_D1!]^K+MR%6@VC3>;UNNU3N9]YP*M9V>^7X2V1<:UW5:<7#3WL1=ELEIO;T!BJ,]V9S[?K M[6H?O']T=U6CX[G6B]/=;M7X5"5_K5M']5)GRE.ZD*=T(7LW[(2;[ZO;Y6;7 M13W_5^5F7B6O](:W=V53M:^3LDMFU?Q-0K-O$Y*2-)0*4?W=POM=>U_.J^L+ MW?FV:CY5%S>__UTFTC^&$N11C._%=HONIQO*V3@G67YU^>DX%Y!>"Z281(HI MD)B5&O0I->C U.B3#H^:XBB"C*0Z@';\IKX9=4/LFXP$)\PQ*P)*$\H$L!9%]YCD7UA\XQI-B,>1,V$QDEW!G8 NE4(L44 M2,S*#/Z4&7RO3D]DQ@^;^6ZOI1-"I\#^T^O=KC>X>_[WNWJU2O3AVD/9+/X3 MRA*.S!*DV PI5B#%)%),@<2L5!)/J22BB\P^9T:[@_A%,M='"OHPH=P=SH02 M1?B3=C(6PEFBH_Z&9@!2K.C5?XETJ4!B5FCSI]#F\=#N]Q3)LFVW.KCWVZ;= MEILNZ>JDW04]*7ICZ.J0>Q'@G&MC9Q>.]%D@Q2123('$K.08 M/R7'&) S',4^(<74W'W@&1^)-T W?T1ACZ$_LP .5ML5_MVVWOY 2#+G/PT8B]59B*(*#JA50-0E5 M4^=&UPZX@7!9%,S<_+1IJG*U_)\^?[HM];[VU:INV]>)CO9R\ZDZ1/O;9*,G MNU[,N_+78.2YW[Z=N0-,\OBT.Q=-5^5;;O\ ML)P_3F\=WU>[''B=['+ 20']69]65X=+>F<3(D"IZ-C-!RAD@ZH54#4)55-G M!M=.!\/9LCAH*S:+R%6:]]7]FX2F^ZLT63#B4,26^8R-\HE@Q$VB&=1O 563 M4#6%4K/SPZ"V+,[:G/SHE1,^T6)YRHFW$/B@S8^S;S/*^20=NP?L 9^$B#QU M3Z!]NXQP2KSC,=]NE/')J?VNH5_9&?SUPND&)5]0M5GF@[0LSR:I\$ZBH?@+ MJJ90:G9AB@%@) [ SEXV_\MV$\^0N(/!M2D^E:)\S">44[6@YT?7&P]&)1X$;^\+!.Y_L?=:&$KPK E M85\#>1&#O C]#4M6")(O3:%J,ZA: 5634#6%4K-3R@ W$@=N0TI7B(^ !/5 M>=SAX$2 K9>6R"A/A5*S0ZP 6PD#M@P!2QQ)X/7"I\H98P+[NW@H8P-JB:A M:@JE9B>)87'D3 ';LPM9B ^#R,0] IL>K(Z/U-QRI7@/!\>Z3["FA;B\S-&].KIQKN7V:R? M61'?G,'3%LKB4&KVG4"&Q=$XBQM8T$+]$K01(YEW$Q"T!JV?TP+J5$+5%$K- MCK+!:32.T^+E+#2$IIA'S>(^!@<5J59 U62_ 5$HIW90#=*C<:3WDG(6Z@.S MT42XUZ[B'1@<<>BMG5 U"553YT;7#OC1;9OQHC1(.0OU2[5&WLT!\8X,#CR4 MMT'5)%1-G1E<.^X&H]$X1ON:Q2S4AU;,6P:@T VJ5D#5)%1-Q@Y./59VXE2%JC? JHFH6H*I6;GAZ%M-$[;GE'*0GV %BQE"=CY MHUZ D0X0SQZ1$5:3HAW#LHZVLYBW=Z\&*+5)-0-852L\-O M0!B-@["S3U()AWSBK[=C1KAWPNW;^>NM;S,:Q5Y8&W9V=)E?S97E8[^8:QKOR=#5M*_; NI60M44 M2LT.OL%4+/L-2U 8D@E-H6HSJ%H!59-0-852LU/*0#(6AV1#2E"8?]\D8:F_ M;D"I&%2M8#YY"FR"A#I5*#4[Q :+L3@6PQ2AQ)T,7BT"-T2RL7"?EC:#>BV@ M:A*JIE!J=I(SZQ&8 MSXTHSYE7@-+3;A;OZ>!80N_4A*HIE)H=

BV@7B543:'4[#@;PL;BA"U>NL "3&Q",I>DQ'T,CBH4KT'59+\!42BG=E - M-V-Q;O:2T@46($^4IE[(H;=]0M4*J)J$JBF4FOW87,/_>)S_06H<>(#%N8^7 MGL8[,C1!H&H%5$U"U11*S4X0PPCYN>>I?;UB"!ZXYY.[M8WQ_@W.&R@(A*I) MJ)I"J=EY8T @CX/ _A=R23 U B\P$"G-)^[5TFEORUF\QX-C#RV(@ZHIE)H= M>T,(>9P0QFLBPO'V7QC TUP(%P8'[+QK= &;44;&U+M(QWUJR 2EW'U 9L N MRW.:.G8J8#=BXNAASO9X&IC&XS#MI7,IP*,R)O*Q-[A0J-;7;0%U*Z%J"J5F M1_[HM09QKC;H,0+AX&-?9A" 72(E$^;.K1G4;P%5DU UA5*S4\3 .!Z'<6=N&!(C2N3Y?=9W<$[#*1,>8^NR-@ M-R+L:'VQA]2P+AYG78!9!ZU#@ZK-N%^'1E+&N'N_10%U*Z%J"J5F9XBA9'S\ M&U9.<"22FD+59E"U JHFH6H*I6:GE&%T/,[HAE1.<)_)Y8RX2"[N<' B0)%< MKRV04)\*I6:_5LB@-A%';9BZB;B3H6N%")"[=$R8>YD-ZK6 JDFHFD*IV4EB M<)N(X[;GUTV(P$V4N7 I;-S]T#4!JE;TV@()]:E0:G:X#2439RC9<^LF1*!V MSGLH4#4A @!*GWE0EX7VM)O% M>SHXE- R.*B:0JG9,3?D3L3)W<"JB8.:0RX]N#*->QT\L?MY+:!>)51-H=3L M.!M.)^*<+EXU(0*/2.-CCVW'?0R.*A3 0=5DOP%1**=V4(]>!!HG:R^IFA A M-$4FWJM!L>\&Q;X<%%H,!U53*#4[,PP@%'% "*F:$*$'JGF'<%#T!U4KH&H2 MJJ90:G:"&#XHXE5T7[-J0@3>7D!=]A/OW^"\@4) J)J$JBF4FITW!@(*U)L< M@I<=A$_53E1-]+:^F-GPP/_.>TN%5$[G_I+9@U43 MSKN*%[ )5TT$#(-5$P&[8-5$R/'IJHG.)=RGT:%JR;BW1BZU/9U M6T#=2JB:0JD]1OZRO:NJ;E9VY;-EE5'[1\^B;7@]4L;^^> MOG3U_?6%[L+/==?5Z_W'NZI<5,W.0/_]0UUW7[Y<:OV'NOFX]W'S?U!+ P04 M " !9@5M5P(&2 /<& F'@ & 'AL+W=O<*/51E+<]F&Z6V)XN%S#>\8O*] MV/(:?EF+IF(*;IN[A=PVG*W,HJI'EP7=QNE'RR6IUMVQV^X^K:]:N!NT6M9%16O92%JU/#U MV>P7"-MRJT0W_7-GZNS6: 1\9+G2JM@\&_/+WE9:DV MXT>G=-:_4R\\O'[2_LD8#\;<,LDO1?E/L5*;LUDZ0RN^9KM278O[/WAG4*3U MY:*4YB^Z;V63<(;RG52BZA8#@JJHV__LH7/$P0+0XUY N@5DO&#J#;1;0(VA M+3)CU@>FV/*T$?>HT=*@35\8WYC58$U1ZS#>J 9^+6"=6EZ*>@5!X2L$5U*4 MQ8HIN+E1\ ^BI202:W3)Y 9]@HA+-$??;CZ@MV]^0V]04:._-F(G6;V2IPL% M:+3.1=Z]^:)],YEX3+E@G@5WO#M>T2#=X@$ MA#CP7+Y\.?; H;UGJ=%'ISRKG;8V3ELWHD)0>0U317W7IFZA"N[T6JLU=&O5 M57TBMRSG9S,H6\F;/9\M?_T%Q\'O+I-?2=F1 \+> :%/^_(+-*&BSD7%76:V M:V.S5O>:_9)F!&>GB_TA?H<43BGII8Z 13VPR!N9:YZ+.B_*@IE. @E>]U"1 M$N8NU]';-F)?0'*BV\<7AR]ZS?"]DK(C+\6]EV)O^#[P-6\:,/[),>S!;7&K M)CJ(T9P$&1E%TI;" :;N0"8]Q.09B&!WWH41NA!BE6A4\6\?5P@@A$T]FA_Y MCUVQU3W-941BP\-92D=&.*2"+,W<5J2]%:G7BO,1Z*)6K+XK;DN.F)1<.9V> M6DB2C,8CN ZAA(9NM%F/-O.BO=(U84@<9@B40X(4"I4"@#IQ9A8$DJ;C*K>% MPH F;IPX&)@M\"*]42+_/M<@V#F9D66 Z%)HM)5Y/7[)"OI>W800/'8R^#+L_S7.STE 1]B!=[ M!D7KM)G:/9)FV;@.7&(1)5.5,! Q]C-QW\IS(=WMI%-P].8$)^$8H$,LBM-X M N! R-C+9&W^P[@+(&ME-DY!V\1ZRX.R@41SB= #C0(_;S(P!L=B_I?C:OS4.:IF.8ME@ZK_UT6G(VX4-BD]<G8>B^8VIQRD51/-%>R$!^Q$]^1[C;R)F##2=8 M![]!?9)D/ BZ!-,P(,$$VH$)B9\)/S.U:TQ"O02N36R8DB@(QFAMN3@Y%#L& M.Q @>8X ^TE/H[W=21"0"\.,6'5LRTUA';B0^+FP[S\[:?:T+R]B M!SG&0919H!URE 3I5 (/_$C2G^H^ZZ)F=?X"X%[:_>GN\TK:CITP4##Q4_ U MWQ[6,4PT%22=U%L\I^TVS\ZAC.W*<,CA((XG")D.A$S]A*S3#9IDSOFJ"QM_ MX$U>2*[ABZVN&:D/FY[,>M8DZMA[AM&8O1U223"U@Z #>]/GV7MD3K4MQ2/G M+>#!C&W)ZJ?$?'3:89,TC:Q9TR%%*)Z80NC Y-1+DLLK]MB>:IO#"U'K^M=; M#+B4,)0TDR-RI]?=DCK(MLB*+ETH%YJ9]Y/YHS 9WOX&U>W-7=#B]_A&+(S=$" H]#ZK?'#$X;7#M..^M= MO#V%?^!BZN?B[@"[T1,U>KOB[=5O.@0F'GKV,1=Z -JS]6Z&4J,SEAC-H8EH ?E\+H9YN] OZ3\/+_P!02P,$% @ 68%; M54_WX,6YZZ+1EFZ]"%W32+^[ M(N.V%Y/3R7#C3E=UY!OSR_-65K2F^+Z]]?@U'ZT4NB$;M+/"4WDQ69V^NGK& MZ]."OVO:AH-KP9%LG+OG'V^+B\F"'2)#*K(%B7\/=$W&L"&X\4MOR1L/ MKP?KWZ?8$LSWE3$A_Q;9?NY@( MU87HFGXS/&BTS?_EQQZ'+]FP[#/D#6?+2G,\CC/&MN>HW7N6-R\]L_(/XT=E8!W%C"RH>[Y_# MB=&3Y>#)U?))@VMJ9^)L,17+Q7+YA+VS,;*S9._L,_;>^4I:_4ER\J?BVMG@ MC"YDYH(MQ*VG0#;F&ZX4WVLKK=+2B#5N$H@7@_C7:A.B!W7^?0RA[,"SXPYP M.;T*K51T,6GY+/] D\NOOSI]L7C]1'C/QO">/67]J<1]T49QU04\"4&\H:"\ M;A,.Z]LUH&H:\HJ$#D(*@TK7MA*M=P^Z(,]0*>.ZXH2+H4 UMZW9"55# $!, MBTIFZ 3'JQ7!A/(.I[C.B\JX#4[V%*4VPE+DBIV)=W@$\T6G@'@C[W%R%"2# MQFF0G7X]^3#-I^ET67FGTD6AD2*]Z:+C7YQ:XRK1;@!MRBH4<9-F94AO#SZ="VP?\=QY1@O+>F7Q*D(;#L]+LTEE# MH(W50,-:&B/M?X;98WP+,E DG[$9 >"T5 >+IB3'D71."P6VYH\;79IO;:1 M/,X6]+$ES\ YJ^'D5'0M(J'L(^0PQ %I@85)QBTL,NEA)DL,G/CZJY?+T^]> MBPW5TI0S\1- &G/HRA(GP]SN<00( )HT8&H)2SAASIZ \8T.,.'*N)6>,F+( MGO/@1I1ER<:BO.=@X4NL911*MG*CC8Z[?(M&]WKOPG'WMC304Y"5&T./0^/\ M:ZO0LT)R5/N1M3N%Q;)*9R+W*()&?QH6[?-NZ 'IRS&@@9S$VKNNJJ=(,)*& MXX!L$A+D0P'QO+3BDA@.+L2##KJ/#LESHW^9"4M MZ!EU*'?@!W<^H#R4$2Y^Z;3/"C<35R@TSO!C061\I5*N::7=\>[.RJY G11< M! 5]J'+B1_T,>_VLY0,A9V21(&HE/W#:G6;+D]??YL @E'3 M%9FF_6EIXR&;I^*M5;.\'$]#MPFZT-)K DHK8W+)]9#LK?!ZZ(H-,LT9AS&/ MY3%Z_ANP8XXC,>E0W1PLT3;/8IRF6H9?P=M9UB\^2UO0I.N= K=XBA&GBY._ M)9?O.C ?OQ:GC,,=59W))M,^=#8/@HER?3+^AZ&] MAWTHR1B+R\K:#FOO* D:K [H_CDI()O?D?2H9=[TAA0U&^3E[#3--_@KN58- MGHWNK$EU7D=-^=R;C]PV*DK\U"%-P0._US?7 [UGXF?*E!M=9+@MH\P-"#9] M:BC%!^A-#HL#YUZ.M1:>A8!QG!DRB"B:C]3*@NW">66DY0"5#+4J\%801LH'LL*)=$08/J,"0D"TG'_[)@!>FMJ]B;@GH MG?"T#X'IQREO1DG#>NJW&IW;J:;<-3"WI<["(YQ+>LL>'-\@9#Z"JV- [%BP M.9>?<\:C<=JN9S1#C J&/'0)N_VFI/PY>:P]L4O4S>E1J98+S2.(*+UKL,^% M \ P5>G*ZA+I132K?2^Y17$K#B6)"::$1 O!FSP'D>LK#"4=#JP<=J3!RH'7 M%I,S#US\_I,K?,T-*I=X_PH#MXC$7Z$>8L59_C+%^3_KC#@J-#?7T[1;%H7N MIY9#7?94R23^7P++[!'BWEETTC1Z^ M@PP/[X:FD+;SDYO,_'XV//K"MEJ_3X&?+%Y.]Z\XD- --^)41-_\Y%JMQ,O% M\V_%R:'W#,DU3_CHY&*UKXKQWE\.RB,Q<7@2,KC7X\3Y3D7'>4@Y2'UEAN,C5RM:CC^H%#'>X\J5O6 @3M2;(;@U3[X M]"2U]H1Z*\Z0GUX)T'1+E-A,_$F" MO&@M0.$L3Y3#RB0H0"4,C&CD+G/TE<8V?"N46+K8O;=\XGP^9M2_A%=F[[C;%P$R])EC?&& M/"_ \])!:_H??,#X8>_R/U!+ P04 " !9@5M5KX9A#-T% "0#@ & M 'AL+W=O,"2 XXMBITF6 M!'#2RS*@:-!TS<.P!UHZMMA2I$I2=KQ?OX^4;*N)FQ7=]F)+Y+E\YSL74N=+ M8S^[G-G30Z&TN^CDWI=G_;Y+?R/*[=VLMS4WDE-=]:EF/,= M^]_+6XNW_L9*)@O63AI-EF<7GYGY_*)STJ&, M9Z)2_KU9_LI-/.-@+S7*Q5]:UK+C48?2RGE3-,I 4$A=_XN'AH>6PLG@&PI) MHY!$W+6CB/*E\.+RW)HEV2 -:^$AAAJU 4[JD)0[;[$KH>=HDGZI MI).!*G?>]S =!/II8^:J-I-\P\PIO37:YXY>Z8RSK_7[@+3!E:QQ727/&KSC MLD='@RXE@R1YQM[1)LZC:._HG^*\-L54:E&7A,YHXAQ*OQ4]_3&9.F]1+G_N MXJ%V,]KM)K30F2M%RA<=](ACN^#.Y<\_#8\'OSP3Q&@3Q.@YZ]^?K!\P0V_ M3,$V97HUFW%L%OJM4BL:GM99Z-*2T450L9R14(K,C'S.A%YW'EQ*/2?&ME^1 M66JV+IT93'@7I#<^NG2CTQ[M=S8KG8,N"5*8*\',JY-$^A)83W5DZKILX$88Z"\2R6%M*2UCX- M<.$PK59L#QV*">[3!B)&!<[3V!;6%$VMP8!;8:#,06$7(%-5Q2FAC)X?ABF MA#I/3BRP"HEE+M,\EG_HH5J>8RM_34CD[BL"ZJAK>EN%&/?J>PO*W44SNW.V M3MAWU@&FRJ[\GM%^!&LJ!TUW0*\VSEX'9Q\C5]=A+NU1*6"XB MWM'Q"WH7F4XK:T.'-:B2DQ-ZAVX3D6>,7!2-#;>70S,[K%R#GDZ/1MO<)J/N M>'R,J?VX0))!-QD/Z"7/V-I(,IJ+X]AH),;=Y'2X15B*582WGQP?'X1E6T$- M2KAGNKJ;]X^2X<'6I.4%ZRIJ) =/D*]I7=$^$!_L1-*F?G_<'8X@MT>C<7=P M?6B=/,WD@8 MRF6/OE4P]_%BBH<))@+NV71735V*+D5AQ#,A#':4/,"*IWI]Z7#_ M]K)Q^C]>-G9=-ONMKP0$-(_?0N$L1%O6'PR;UZ, MBF=0'?1>C#OU!%F_>%/&;XZI\8 :'W/PSC8(8']FC%^_! >;C]#+OP%02P,$ M% @ 68%;51SN-IA?!P \A$ !D !X;"]W;W)K&ULO5A;;^,V%OXKA%L4'4!CZ^+K- F03+?=/LS.()G=>2CZ0$NT390B MO21E)_OK]SND),N)$^S#HB\61?*<\YW;1\I71V/_=#LA/'NLE7;7HYWW^P^3 MB2MWHN9N;/9"8V5C;,T]7NUVXO96\"H(U6J2I^E\4G.I1S=78>Z+O;DRC5=2 MBR^6N::NN7VZ$\H;\6#\/_@V^W WI?UAP[^D.+K!F)$G:V/^I)??JNM12H"$$J4G#1R/@_@HE")% M@/'O5N>H-TF"PW&G_9?@.WQ9Z>+$2L;YTW="@-!+75\\L? 6JQ)R_N9>'(1NQ-7$0QE-3UOY>5_$F3?!(K3HN*9:2S:)\RZ& V_0UB,0D-*O>W6 M&"(A>.T^L*\[*\19>MD_8.5\YD>IH<W9]VR5)ZM9CL%BF63I'(-\/DMFBY1&^319%$MVJ[EZ\K)T+,N259JS M+$V6LR4KILER.F=%EA3+@GV&3Y9ER7RUPN^TF#$LSQ?X3;/5!230,D]FLX*M MTJ2 3)'.DAQZ\GF:9-.4?=;BO0?[G 06R:HH\#M=+EE> .04$&$[95^-YZH/ MX_? .<4N\F:U2);+!09%O@1H&N7+/)GE*;OO]'(K0D)X;1H$Q>^X)[8CVG)A MH32@0.22!QH[BB!1M@7=<*6>&'+ E-B&,2(KO4*&O$D8=Q!0BIX#&] A'O

^X6X!K3.,[/!7+?JFK4K MK=R3!VT-EFT/NNAQXZ62_XG%.JB1Y)3^)'@9\^R:_1ZN BQ UUSC^ @5M;>F M:A"W,>N[/SB"]NS7F'1L*S3B2=$"1K/5L%PQ.B,8HLS72A#38Y\Y"-OE(/*' M%[9F:[&56I-C1H?EBGL1_2#\;Z@K?5]S#YC>Z?;17** M[?HLKH-P4?9/Z_!?<]]8D0R=0@YI,02ZIJ[%)&QSK5$O,9"GW9R(X Q7* NN M2Z'.G:=@ 6*>U>I8C!D_OANV6>+7YBVB!C8LR^RCI$:#3)+#!LSW)+@E:THXU"':9\=!K!Q%**G1 MH,F$V@8-B$=1AS&%!7%@E72EHDZ2.MZAPF5DC0M2"X&N3@.8T;.UDEO>MHNY M6! =T/&)J_J^?,E>@[9TPK]O]FPCB'P0Y1H P1%<"[!YG#[OT#%[B"*]MH>A M"L3)@4SD1I8!J^#ECNSI[N)URO2.MT7.&1PF51.^'EFR.IE%5<' -WZD[CM*]X!ML[!/0:"IA M*KQP4 B+\I6ZHZ6VI)+NN!A6RA$-W)D"#%0C1/F6"+C9PYF^>ULGQ^S6@:?+ M7?*BX*Q0B$@%$=?V&:[1(BH,RSTE1S9^:GGX:$(C LM.HL1D!"D0Z#KH0P-) M4X4*B3N&H0^QADBXJVG_LHY"!;*6_>ECI=O:'IWT^2#]4TV-#$MO7WH.N M/Y7DX#P2".Y2J2#,@U#\_^Y9=UP1:23#M$%CGC';-"\9^9;VGEY;-P1P;M'0\?,ZXSU-GH!9H7 I4*W$)U6RL M]+YA!VT3;TKGMJ2[> P^;]7V1 UR@PM02VPX>K_]]:=F_6H(!^>\(U*-C!CP M&5"%)$Q58UM==#8\3_;_Z%Q&[_C3]OC MOR&?N 4*!UL;B*;CQ6P4.:Q[\68?ONK7QH._PG G<-NTM 'K&V-\]T(&^K]Y M;OX+4$L#!!0 ( %F!6U4J\(4JHP( @& 9 >&PO=V]R:W-H965T MVF]:%3U>[C8=J# M Y=@%6QFFZ;=K]^U25C2I5%?X/CZGN-S,?=.-U+=ZQ+ D,>Z$GKFE<8TDR#0 M60DUT^>R 8$[A50U,[A4ZT W"ECN2'45T#!,@YIQX9&W"]SR=6EL()A/&[:&.S#?FAN%JZ!7R7D-0G,IB()BYBVB MR3*V^2[A.X>-WL/$5K*2\MXNKO*9%UI#4$%FK +#UP-<0%59(;3Q>ZOI]4=: MXC[>J7]RM6,M*Z;A0E8_>&[*F3?R2 X%:RMS*S>?85M/8O4R66GW))LNEZ8> MR5IM9+TEHX.:B^[-'K??88\P"E\@T"V!.M_=0<[E)3-L/E5R0Y3-1C4+7*F. MC>:XL)=R9Q3N!04V[$V1;_K+CTQ?X8W(MA2DU^2AR MR _Y 7KI#=&=H24]*7@'S3D9A#ZA(:4G] 9]@0.G-WA5@>3G8J6-PG_AU[%: M.ZGXN)3MCXEN6 8S#QM @WH ;_[N392&'TX8C7NC\2GU5]S$2?YQ=\^J_UJ" M_66[4.9"KBVX>2(;A@M-"EEAH^H)YBJ @]LE7_#(P\@9%\24LM5,Y/J]NS/[ MB/;0DE5,9."3%:RY$%RLB2Q( XK+G+PE:>RG:8(@&?BC.+)@[ ]I:$'H)^.$ M7(FL=8:?.8^&?AQ3$J5^G(Q)0OU1&I(X\<=X\J*6RO __Y/.HL1/DN@]@MBG MX1!!G/HAC2T(_=B"WC&(_-!KBMS4.D/*>' D#Y,/**ZN=,MC&QD['J_?D=*4>V\>%WV1>(=[Q[>D<^1-]E)=:]S M1 /?"E'JJ9<;LQEWNSK-L6"Z(S=8TLQ*JH(9$M6ZJS<*6>:<"M&-@J#?+1@O MO=G$Z6[4;"(K(WB)-PIT511,[2]0R-W4"[T'Q2U?Y\8JNK/)AJUQ@>9N_ M8I-/S^*E4FCWA5UM&R<>I)4VLFB<*8*"E_6??6OVXRL(HFN7D9V8?>,G*E#,!'TMM5$7[;?2D M:PC:&G33!N:BAHE>@!G!M2Q-KN&JS# []N]22&U,H,\8LV)\.-U-Q WT_B06M?2P,_Z@];72U=NT#84B!H3"O%#4>*G$C)U'?CH8#?]0;T*B5^C'!PRZ]= M!%@3Y_,A5Z#.,Z-\N= UCZS?UOGE'!53:;ZWVR@K!8R.M.&BX&S)19U.4>-G MP RP0P![Z]/+\1 2W=YGW"+ L+F'S7_&#Y+0P=R>O;<13W^/\S[40Z^ MEHVG6/DZ=CYX-=1\06R(^DC\S[Q]&JIE[[%DMXXX&ML-:Z(XVJ_OQ$YZ?C*P M9$](-0J.S1J>+Q#A=VD0KL!(QUM[(4K!,V;OQ%5[ZVI#BIKYO$Q%1:\C#1R; MS\NR(HM;.A%E+%=MFP%A\/-O5"#*@>Z1*4#[I#ZEJ$_E0 L)FMMQDSO[Q=7< M=\XLR[CM>@B?EW7K5G=1:Z8R5WAD;7)%:0A+5L<-7FXJ8ZN0ZJA@>U@B5)K@ M*<.FQ Z*J_/<&]<]:$2(#VO7;MG'HBI-W9.TVK:C.Z\;F>_F=3M(1%O;BUS@ MBER#SJ#G@:I;K%HP?3"':!ML^=_0-02P,$ M% @ 68%;5:Y4C-NA @ #@8 !D !X;"]W;W)K&ULE55M;],P$/XKIX#0)H4E2[*N*VVE=H! 8JC:@'U ?'"32V/-L8/M MMMN_Y^RT62NZ2OL2O]P]SSV7RUV&:Z4?3(5HX;$6THR"RMIF$$4FK[!FYDPU M*,E2*ETS2T>]B$RCD14>5(LHB>->5#,N@_'0W\WT>*B65G"),PUF6==,/TU1 MJ/4H. ^V%[=\45EW$8V'#5O@'=J?S4S3*>I8"EZC-%Q)T%B.@LGY8)HY?^_P MB^/:[.S!93)7ZL$=OA:C(':"4&!N'0.C9877*(0C(AE_-YQ!%](!=_=;]L\^ M=\IES@Q>*W'/"UN-@GX !99L*>RM6G_!33X7CB]7PO@GK%O?]#* ?&FLJC=@ M4E!SV:[L=@#]^ 5 L@$D7G<;R*O\R"P;#[5:@W;>Q.8V/E6/)G%E'HD M/RH$MF?/6[MH[;ZKN'T*@!>U\-G!#>5FIIF"S,J:^\>YS#E DG(H0Y+KB47"Y E="@YJJ MY"% M27;5KFD*,ZU6W$^._S4G8;]_17YQ>@GWFEM\K\K2>(&.D32K%;&2YTD:9OWX MU*V]7N_T60+*8B\XV2_Z/G@OSN!0U:.='JU1+_PD,N#?4]NNW6TW["9MCS^[ MMY/RAFEZ 08$E@2-SRXO M#M]&D/5C6^X^?*TOSPVXH&-FKG0/92*;L]N #= M+V#\#U!+ P04 " !9@5M5^5)49/," "*!@ &0 'AL+W=OX=O$G?N2 9?R<:8GU[Y6"Z#V!-"A05Y!,&O>[Q"I3P0T[C;8P:' ME#[P6'Y$_]#7SK5LA,,KH[[+DNIE, N@Q$ITBCZ;W>^XKV?L\0JC7/^$W> [ MXHQ%Y\@T^V#6&ZF'M_BU[\-1P"Q^)2#=!Z0][R%1S_):D%@MK-F!]=Z,YH6^ MU#Z:R4GM+^66+)]*CJ/5VO+]6GH H4NXN>MDRQVG$/Y$6D3$";Q;5.S!+@>P M]!6P'#X93;6#&UUB^3P^8F('=NDCN\OT). MMN>0Q2&D<9J>P,L.U68]7O8? MU8:P5D+3\Z+AQ\7&D>7OY.^72A^01R\C^]F9NU84N QX.!S:>PQ6O[U))O'[ M$[Q'!]ZC4^C_]Y9.@KU,]40&>':&3V>:SPK#\^D(2S 54(U0&<6#+O5V#N^D M9I/I',>Y,^#+)&PV:/L;O<9BKR3]]2;P41-:+91ZX+&ZYW71,JHS%>V$17@+ MXSC,DH2%T2C,9PEPCAA"-L23_&0SOIM,PSR9G+,1A/&'A MBR&AH#W1_K>^Y#S-O,!9XP1>^MJBH_W0H-WV6] QZT[3L"H.UL.BO1CVRY/[ ML*4_";N5VH'"BD/C\^DX #MLOD$AT_;;9F.(=UDXF2_?H>4K=B%&RSZLH AD]1W:C&3 MO6FYP%L%NN\ZIIZNL96[N1=ZAX,[OFF,/9@N9ENVP7LT?VQO%>VFHY6:=R@T MEP(4KN?>,KRZ3JR\$_B3XTX?K<%&LI+RF]U\K.=>8 %ABY6Q%AC]/> [;%MK MB&!\W]OT1I=6\7A]L/Z[BYUB63&-[V3[E=>FF7N%!S6N6=^:.[G[@/MX4FNO MDJUV3]@-LFGL0=5K([N],B'HN!C^V>.>AR.%(OB)0K17B!SNP9%#><,,6\R4 MW(&RTF3-+ERH3IO <6&36D9Q;OI:QWO&V!B1H^"L/$AJ]:A*76:+0/ MG]',IH8<6?%IM3=Z/1B-?F*TA$]2F$;#;Z+&^E1_2@!'E-$!Y77THL%[W%Y" M'/@0!5'T@KUXC#IV]N)?BAINN*Y:J7N%\-=RI8VBVOG[' V#E^2\%]M/5WK+ M*IQ[U# :U0-ZBS>OPBQX^T(,R1A#\I+U7\WQ@U6ORIG@3)7Z: M9O#F51&%T5N@%J<&%M1R2J&HGH"2+G3+G.PD\N,PO(!)DM#S#CMDMCAH-IG! MPU;)!V[G%&MAVZNJH3E!WBK9"V/1LLZN1F=15CS'A$3J2319ZI=!L8\F*X(S M!7ITPO9)$)2$2M*PU :=04.)&,@F!%= +62P6Z$:^P@FK^&4\?=*$DO+JNJ[ MGD(G.P=:;(J_N@E'A\L'5#2P+1$T]6U\RTXJP_\9V+H=(KGO5[I2W'I4.!"I M&[[5%%A>^G&6TF(2IWX1Q1=V&::E_:=QRUX9V+?]T;.RF9$#V5/SL. M$Q_I\D"MX(*SX"2Q^4/I C^="S],@8' FABBFG9E2]'[8>A&0PPAM69>VG5" MN?:C,+?KU*Z#X3R#D,C*4XN:KBUK0Z:BR"^HL;Y(0X@/^(^!C[5Q;E!/CSZW M':J-NU1H<-T^?'G'T_'>LAP^U\_BPZ7G$U,TT32TN";5X#)//5##16+8&+EU M'^^5-'05<,N&[EZHK "]7TMI#AOK8+S-+?X%4$L#!!0 ( %F!6U6ZJ!*Z M\0, #4) 9 >&PO=V]R:W-H965TPT>2CZP)5&*R*BJ)"4U_[W'5+R'CX62/O" M2S/??'-PJ/E&JF^Z1C1P+YI6+[S:F.XL"'11HV#Z5';8TI=**L$,;=4ZT)U" M5CHET01Q&&:!8+SUEG-W=JV6<]F;AK=XK4#W0C#U<(&-W"R\R'L\N.'KVMB# M8#GOV!IOT?S572O:!5N4D@ML-92?PA>-&[ZW!>K*2\IO= M_%XNO- 2P@8+8Q$837=XB4UC@8C&]Q'3VYJTBOOK1_1?G>_DRXIIO)3-5UZ: M>N'E'I18L;XQ-W+S&X[^3"Q>(1OM1M@,LI/8@Z+71HI1F1@(W@XSNQ_CL*>0 MAZ\HQ*-"['@/AAS+*V;8Y8@0N/;HI&=8?>\NV;* L_''$AW;J0'D/_\93]#SCXB%3R M&C[7"(44G6R=G*R@L1\ [ZD[T+Q!"AG34,F&KKD^(P6%>% ,\ <9/CQYQULP MM>PUV=7O78KM$.VM_NQ0, GF.8YC?DTH3'VXWSJYB2F.%LU MN"\_RQ*833.2R*+8CK.4Y"-_.HG)G[B/([]E.+I&O*)K$YZ M;7.IT29Z9:BQ#_;QOJ@9%88C^ 3M@,,L2>'MFSR.X@^'85RQAK4%PO#P55;VP#H6;-12\HIP_#Y>JI M )X%3C^_.D]*Y,:Q=ZK54"^V9"?1Q&X26[53=V%26J;3U"XGM PIH[3,*,G3 M++07F-[LBEPGY3C+X+.T&1FYKI74>L>4#,S\&6%]1$V$N.AZXVJ U)'NT[O( MS[+T_8AQK!0(*?>3*(3K7E'UT->]=O-2+PSVGC*!:NT>; TN"\.KMCW=_A.< M#T_A3GSXH?C$U)JWFEA5I!J>3B<>J.&1'C9&=NYA7$E#SZQ;UO1?@\H*T/=* M2O.XL0:V?TK+?P%02P,$% @ 68%;5:^/[>+) P >P@ !D !X;"]W M;W)K&ULC59M;]LV$/XK!S7(-D"S)%I^46(;<-H4 M78%F0=QV'X9]H*6S)40259*RD_[Z'4E;D;'$V!>+/-[SW"MYGNV%?%0YHH:G MJJS5W,NU;JZ"0*4Y5EP-1(,UG6R$K+BFK=P&JI'(,PNJRH"%X3BH>%%[BYF5 MWTF[H&/) MB@IK58@:)&[FWC*ZNHF-OE7X7N!>]=9@(ED+\6@V?V1S+S0.88FI-@R6[:!Q> MGW$P[AR,S['_[SJ<97G=QS[UY;LIBR;7!P.PRKE$>,"FE6E.O0WW4FPEKQ3\ MV5*W"RXS$!O("DF72$@%I 2\U;F0Q4_,H*+>+YH2H1;U[ZFHTU9*K#4T1QHM MZ.9V[()(4U%5=!N5<6H 'U#SHE3&B,[Q!Q)"86' MI,MV2\^,R^&!(T[\)&$P/4)9!^TK?V[+9[.*CS#FQY.)Q5Q //%'; A?J:C* MQMMK@ZZPZV=H4!8B@[WIJU[MON82\>11@3OJ]5/)28%]P*>4NL*99:.0^6P80TR?)('A:.+'PY#$(W\:Q:Z8 MIXA44(8N('+IH%3XS):#&":V0%'HC\>4^!U*FGO4]$6*UM<^B_/;T+!!&-,B M20:CD1%$R2 >6YIP,!G!:X]/T!L(%4O M7&Z+6D&)&X(:BQY(-^K<1HO&CI>UT#2L[#*G?P&PO=V]R:W-H965T6[?73>7 MYZHU15[)ZX9T6Y:BV5W)0FTO1N&H?W&3KS>&7YQ>GM=B+1?2?*VO&SR=#E*R MO)25SE5%C5Q=C.;AAZN$Y]L)WW*YU7OWQ);<*G7'#[]G%Z. %9*%7!J6('"Y MEQ]E4; @J/&]DSD:MN2%^_>]]+]8VV'+K=#RHRK^S#.SN1A-1Y3)E6@+$3+5AM5=HNA09E7[BH>.C_L+9@&+RR(N@61U=MM M9+7\)(RX/&_4EAJ>#6E\8TVUJZ%<7G%0%J;!:(YUYG)AU/+NY IV9?11E8BU M%NRN\U,#Z3SG=-E)NG*2HA@/59F-IL]5)K/#]:?0:E MZE6[BEX5N)"U M3W'@411$T2ORXL'4V,J+7Y*W$8WL3+T6.V26H7G3B&HM[?T_Y[?:-$B3?SUG MO).=/"^;2^>#KL527HQ0&UHV]W)T^>N[O";]IX+TOTFB+VU# M\GN;FQTM]]_7A:@TU8VZSS-) $R&TEK>,V06E%>+>$ZU!6)*J-*5=];4>2K M'.(U;T6J9C':(Z%IB]KCJX*(QHV?W%I5Q%8TF69I19OEU9IJV5C @7C2'#=J MJ]QH.OKUW32*@K/KQ5=M;\.S8P_@@,#E2S/LVLGK9]\LYJ_-/A1] (E4HZU,YX,E7 /X@#/AG8T:_,P) ME"^E9GFM]NE/^+?0C^.B&K;IE*K;9KF!+VW !N4^+ZZO>^7LMDD0'MT= T#, MY>NJ1"S'.5V1S;;G+6#R\',^TB)"C'P3SQ M%%('ZL #*.8A2YT.!P_[>>7V\WB=K(U=U5G$6Q6P$8F(K1IIL"M#Q,G@KB'( MD"T,;00JH%*&UBB%BO>#W8.Z&("*7F?5#]:C,;$Q)PW0FSV)X<$C;F'OF!K_ MS:%"/LT- 2>-+&^QI@=+\G@YBF;+?V'L1V@=1<$QL\6$%+P7>2'8$C;;Q:T% M;CU7DF7 UB L;HQE0 M6%PC-]SU[SFJ>):,&2L%<5O] 6G4(!OV6PW]'2!W^.;(;JE:C9S7Q\XG^ OW M[CYR)F+#1B)B+5SRGB(O3":XAMYDQM>)EZ0IKHDW2\;T!6%P.3%DR4(4TI4S M",V=M(.A-\5DB(@3&GO3>(SETW%"-^@* C7:(%$;TFZRP86'GBPRM/^?N9+$V\L9IC/\X2FCF!6E"4R^:1% U]6:3P*H^ M369LTAB*L"U1Z$58\V;D;G==-IA=+;EV+)[8>/X?@K#8[Q'LZ4G(_S,7!8"5 MO8XG,V+ Y]LD9((EDY1"+$AY>*[I5U'6 M9_3)B@D#"H,9Q=$4OS$Q2A)/C%,.Q 1#(<1,>[1T".LP\),8A^?!,"%![A[XQD$OL55R-T*73:I).O E$G!N>3.H'X'\29HPB-)X(6]ONLN/EG;V#[, M[9!3HG0I(6U*/-/Z7"D%/M!T,*$C'SP$[H?4-B[16:A5 ?MV/5#WFUT5 @6W M6&X48WR7K>PDGE"J3/))S3B2XI*6!WH[3WH[A<9QUYGT@?[&SF%8M)XYIL2/ MZ9MBIE%P"<0I(OT+?'8YC$4L.Z1^CN MO]#U'K&Q!QWZRC35X[[3LUU7BO:]#>KT; M[-P[_P_;SN*PSU-&=/L?.)%1$,[@D"&2@/">F%O/"3*B64MS0,H*[HPV9[3L M9[,U<%@%&0X VYH1$E#"1QA1[:R+TC/=U9:-.>+&@ BNU#85(POCH>C8(UI: M#AL>[-,+2P86ML1.VN:(H%6NEYCNU##?<#K277/H"/,/F_H<,@LRMD$?U,IAN$ 1]^+1AP@* MV*BQ-JR;L<)*\9"7;?DT3C;,* _+@BL 5?@CSW2,KN07-J\L?N6H"0E=YSWV M,P?E<'*3]VPW]VS3[E*3>S8T$^MU(]><\F_WBG=/.X0%_+?[1!J !MIFGD[] M(![Z1#1E@@%F$$W\Z92^=1ZJLD,#G6UT%$W0;H+TF":Q'R3[[0-%$H;),8]8JS#OK!LP<$=]*6+T7/'7$?CS8N'^"P MUF7$"]$=CD$[5/6MQ$G(NYZRSDO5\EF%<[9S0W_VSICPQ39@ M,2=0#(XXM>>*.)PX5-Z?''G)E-GL.)H ^KTQYD2I-TG'-.])PHI"?_I633$\ M=M^#M^BY^X3[.-T]R$;0 O;-4IKA:6!GXY'U+B/P^[!J-I^D+U5QJC2 MWFZD0*AX L972IG^@3<8OM!?_@=02P,$% @ 68%;550W7ANB P #P@ M !D !X;"]W;W)K&ULC5;!O[%J08I7:<7BQ@N?OV[<-B MX77OPUVLB%@]-+6+FZQB;B_S/!85-3K.?4L.7TH?&LW8AGT>VT#:I*"FSI>+ MQJ<"E9OLZOSR^D+\D\,?EOIXLE92R<[[.]F\-9ML(82H MIH(%0>/GGEY370L0:'P:,;,II02>KH_HOZ3:4(6O8_JK^L%WM0)-%*C5%@YQU*ZYR! M*/:\&*.OA^CE5Z)_5.^\XRJJGYTA\V5\#B83G>61SO7R6*G9_A>3'POGD/_YG'\_^B/A#M3^&"4[X*RCBG81K7!W]MT MH7"?84W^+/YJ=U"Z;>N#=?L40I$MNIZ,TLYUNE94EI3ND 2H@$^*?7(]D YG M[,^,V*#*F3B,X-H!P/R-3E9S'%\2!_( M%4*5N"=R \W'K"1E9,T=^W"8S%'I(/E15+#U09DN\9<OBPCYB:4$Y22# 7H)%VA0U$E'H;N,?A: MC#%6*-58CLDNK';DJ$R&&'UAD]:]Y4JDP321[ &%B12LW3ZQ&%2=JRL#*,@H M/&;@!EGBEZ![+$+"[%K(#:)<4^(!X>F!0F$C26@"*"(FBZ$*=:S[ / MPD94;TM;:#B6-9)W.N47R)/$$/Z(+IIB*YTX5^_1%U.CQ<>MCDW=&2Q (0B9 M\>AFJ6UHEM#&0WBBX)E4W.,AD5^\ 00<^HP?VH2Y"=#NJ&P3T\1*/C.\3"O M)^OTVET-0_ZS^_!4OM-A;U%8325"%_,?7F0J#,_/L&'?II&_\XP')"TKO-@4 MQ '?2P^QQXTDF/X'V/X+4$L#!!0 ( %F!6U7/T5D&N0( ",& 9 M>&PO=V]R:W-H965TS(/($4*!N74(C+8[ M/$,A'!#1^-5B!EU(Y[@O/Z)_]+E3+BMF\$R)[[RPY3R8!%#@FFV%O5*[3]CF M,W)XN1+&K[!K;(?C /*ML:IJG8E!Q66SL_OV'?8<)M$+#DGKD'C>32#/\CVS M;#'3:@?:61.:$WRJWIO(<>F*0'I!"Z4M*6!#[+ XJE_2*PZ:LDCM65R$/ :ZV,81@-(HB0Y M@#?L4AUZO.$K4S7PXW1EK*8/Y.=S:3>HZ?.HKFFFIF8YS@/J"H/Z#H/%VS=Q M%KT[P#GM.*>'T%]5GO]#@N8"&VT D@8!E[G84A&!KF"M!'4NEYLIW)0:\4F9 MX3.%>7K2XY+\U-90$-/WQ7-+O">=RSLTEEK;AW*$CF TR6C-W#*)W)JD"5PA M$_PW@0IE#*RUJHB.IDZ3U!M:H\P?@%H[9Z;T.?$.V$")@LC$@W@4]Z$W&:6T M)H,HCOKN-#U)^FWJ+85>^P3]Y@UZ\9 LQPGTTBAS+F,"N%&6"5#_OM@1]+*3 M4=_MXSCS>SS(7"POI4G:?^YK"/<:MT*]\>/)0*ZVTC8]W)UV$_"T:?R_YLWX MO&!ZPZ4!@6MRC8['HP!T,Y(:Q:K:CX&5LC14O%C2%$?M#.A^K91]5%R [K^P M^ -02P,$% @ 68%;59ZU@FAX P (P@ !D !X;"]W;W)K&ULI5;?;]LV$/Y7#EHQ;(!F_;1B9;8!NVFQ/C0SXK5]*/I M2V>+B$1J)!6G__V.E*(X@V-LZ(O((^\^?G?\2&I^E.I>5X@&'IM:Z(57&=-> M!X$N*FR8GL@6!=J;G MC0+=-0U3W]=8R^/"B[RG@3M^J(P=");SEAUPB^93NU%D!2-*R1L4FDL!"O<+ M;Q5=KU/K[QP^-I_0G_O,,.64O[_D$4LD'8H()MQ13. T/(=CXH!I1UCQ*_@I+# M1RE,I>&=*+%\&1\0HY%6_$1K'5\$W&([@23T(0[C^ )>,J:9.+SD%;QW3 DN M#OHY2?BZVFFC2!7?SN7;PZ7GX>Q)N=8M*W#AT5'0J![06_[\4Y2%OU\@FXYD MTTOH_WE/+J*R"P@ZM&0YF[]3707:8-D2,!^4,IDLP/\P22J9]GD;6B,+76 M["J!/UM;-@U&0MNIHJ([8P0TLKB'Y"J':1P2I0RF20*;[2?*^V[XKNAK*WU# M-J1I0BXIM3&D>?R_F#YM%;'+HRFMZH>V(8O J)GEL].B/1=\[5)\ ^$D35U# MY:)*3L+<6;,<;@9HYY/T/E'OD_4^F5.5Z)H=P9*"3IA!*PT)C;/Z7^Q-Q4RO M(=) W5EM[)5L:)SR9'71U:,@+\J062C\/LB15OK-N=/M#T>:^S&!GI?AZL4J M0SY1> 6T=S$YI1FTG;,AAV@?&_8/D/ M4$L#!!0 ( %F!6U5&^5*5 P, /D& 9 >&PO=V]R:W-H965T=89HX*7(A9YZF3'EV/=UG&'! M=%^6*.A+*E7!#$W5VM>E0I:XH"+WHR X\PO&A3>;N+6%FDUD97(N<*% 5T7! MU.L<,EYKDE(AE/&TZO^Z4-W!ZW M[)]<[I3+BFF\E/EWGIALZHT\2#!E56[N9?T%-_F<6KY8YMH]H6ZPPW,/XDH; M66R"24'!1?-F+YLZ; 6,@@,!T28@,;'."[QV<4%4*J9 &7 MI%510U"Q30:7KLRHX,?%2KOUG_L*T/ /]_/;PS/6)8MQZM'IT*B>T9N]?Q>> M!1^/J!]VZH?'V/]AF_Z'!]KB?,T02E0Q"D,G$F0*"15&&X*K!M*#FH(SJ-'V M/K$#TV#^"HNET#+G"3.8M*$$8U1QPC-C%%]5AJUR6I6;/D>EW0%+W*YPX6@? M^LM^KPG2D,J<3$2/2:="W.DXN+-:=E9LX]A'N#6Z>I,.C$[A!$;#G<>=!,W% MFK3]JA37"6\,A"Q-\\2EURJ#C'7I:2#)^!*CUA82!B=]6"AR3V5>@8D$KI\J M7I*?F3UE+K>!V )[(,B6V^U+HI?CO3[WW%EG M:^ON?$44Q/M:&W\^JD)HGDVG/JNHEGYB&S)X4UA7RX!;5TY]XTCF\5"MI_/9 M[.FTELJ,+L[BLQMW<6;;H)6A&R=\6]?2;2Y)V_7YZ'C4/[A5917XP?3BK)$E M+2F\:6X<[J:#EES59+RR1C@JSD>+XV>7IRP?!7Y1M/8[UX(C65E[QS>O\_/1 MC!TB35E@#1+_[NF*M&9%<.-=IW,TF.2#N]>]]I)ZPOL]K'OV+=R*MP+ER\(D-.:O'EC=4J M4^2_.IL&Z.6WTZS3<9ETS#^@XQOQO36A\N+:Y)0_/#^%/X-3\]ZIR_E!A4MJ M)N)D-A;SV7Q^0-_)$.1)U'?R 7T_NE(:]:=D'(S%E34>P>8RP<+DXL:1)Q/2 M UN(E\I(DRFD98F'! P&+WY?K'QP0-$?^S*4''B\WP'NK&>^D1F=CQJVY>YI M=/'%H^.GL^<'PGL\A/?XD/:+R];CB??B!?G,J8;#V.?CIVL1RYLE\E77Y#(2 MR@LI-#I?F5(TSMZKG!SG*].VS8^X.7)T=]/HC<@J$ * :M#9G#_!0:N,H")S M%E9LZT2I[0I)=A2DTL)0X Z>B!_Q"NKS-D/::WD'RT&0] K60$.=/#D_3M94 MO"R=S>)%KE GM6J#Y3NNK[8EGJG,BT*YVHM@A76@-ZYG(!$JVO44 2D470 @ M<@Q!#K)H=:&TYO=CH9C?G#08RJ7<# G@LI1(/%S01UT616TA+-85.5IMHKPR@1QL"WK?D./$6:/@ MY%BT#2*AY"/HT8<^TP*"D=8--#+RH291#ISXXM'7\^/3YV)%E=3%1/R,) TU MM$4!RU"W>1@! @!']3DU!!$NF#5'@'VM/%38(JREHY0Q5,\Z8"/(HF!E0=YQ ML/ E5#*(3#9RI;0*F_2(!OY4LQ8* A,AR MWT:X>-'4?(7V&FEAHF66V;J39X(;@D:Q6J:*@U(?$= M*J<:;O$RS4S@!>^I">DLP_.-B8[$J1%=7Z">*I/B2P;L?/;\U6)Q$R^/GW\5 M*P6ENLU3OW36XL'=MAJ+UR:;)'&\]>W*JUQ)AVD]$0NM4^]W*=EJ87D0G/$R M+D"[,0]].GC^";GC9D-AHE%5[X@HDY9$+E,E_=_2VQHF4K:E#/#:=DX!Y+Q> MB>/9T4_1Y=L6+8B[V3'GX9;*5B>5RZ/?$"ZB[2,6L?D/2@53XT O*J%ZA+B?'<=O" M7\FDH?%N<&=)6>M44)3L7K_G^552Q*?R<3WO\;V\ONKA/1&_4H+1)"IXN3+7\+XDMA<>"\5$#6P#/O\3N!$=*S.::@5#P;'^YK'/&H+-[BJK\YTQQW5FRN< ,^DK4>#GBA]2UH,=6I3-?>\!Y=A6 MDN9(J,E<=\C_\Q@//L9?'YS2S/TY&()_F_10[/4@<""%YWD6NDG*KWD1B#4\ MQ-5/!ZY^>I!DW_AH]AK3HF;2VD?3GZ:!Z1H=SPG9"]T]-,N=U;>:WUW%D(&X M_U&O?"S>MGFY[0'I\6NRZ9B$YR,6"62K2R.W ,.N'F@5\M0=U2KM%HK2",42 M&\PDTL !7HCY1VHBOB7/ M[<1\W>],+.-$X@>0JE@P\#Z.B/]G^A5[^??Z:AQ/RSQ7W5:Y.ZX&PO=V]R:W-H965TC()[M:L#"]+5HA4[W&)XW]XY^DHGE%(U:+RR!AQ6RV1]?K.Y8/MH\$'A MWA^=@3,IK/W$'Z_+99(Q(=0H R,(^ON"MZ@U Q&-SP-F,H5DQ^/SB/XJYDZY M%,+CK=6_JS+4R^0Z@1(KT>EP;_<_XY#/)>-)JWW\A?U@FR4@.Q]L,S@3@T:9 M_E]\'>KP7QSRP2&/O/M D>4+$<1JX>P>'%L3&A]BJM&;R"G#3=D&1UI%?F'U M$QIT0L.3=Z+0Z)\NTD"HK$OE@+#I$?)O(/P(;ZP)M8>7IL3RG_XIL9DHY2.E M3?XHX!;;&],S_!_8Q-)?*E,*50%.(7,77WG=41H07Z*53;:SNJ+S'SYURY!;=6?.R MJNB> IU"C:=;L-Z^YY$X?Y9=G\&F\\35>^IG4Y U@WB:8MLJ"=?9Y5-X!D?L M:7MQYV,'8>T]$A[W?I+]JD2AM H*/53.-I/&TX4,-=S&JXC.PUL9;($N4H%W MM2(@XE4@^:BAA5\:J1])]-:ZRJS/ 6%]:@+$40NN3()Y1N $/*!PW2HS] M86:DH+U?!70S^$68CI8X5V%.5<"#)7D%KHH?)Z(1#U +BBSH2,[<5M6TXM#N MMG.RIM4:$SCJV&F*)=*+5++-X.Y;E*JB3$7#WLS@5&&/ZUD@^X]5G9VZANG1 M4J7&[^+3P50H1+]?)^GT.JW[I7PP[Y^V-\+M%#'76)%K-OOA,@'7/Q?]1[!M M7-&%#31E\5C3"XN.#4A?6;K*PP<'F-[LU=]02P,$% @ 68%;574,97O> M P ! D !D !X;"]W;W)K&ULK591;]LV$/XK M!RT8;,")9-ERG???=\3N=%CNE/YL"T<)3*:19!H6UU448FK3 DIDS5:&DDUSIDEE:ZDUH M*HTL\TZE".,HFH4EXS)8+?S>G5XM5&T%EWBGP=1ER?3S%0JU6P;C8+]QSS>% M=1OA:E&Q#3Z@_5#=:5J%'4K&2Y2&*PD:\V5P.;ZX2IR]-_C(<6=ZS^ R62OU MV2UNLV40.4(H,+4.@='?%J]1" =$-+ZTF$$7TCGVG_?H-SYWRF7-#%XK\8EG MME@&\P RS%DM[+W:_8%M/IY@JH3QO[!K;:, TMI85;;.Q*#DLOEG3VT=_HM# MW#K$GG<3R+-\S2Q;+;3:@7;6A.8>?*K>F\AQZ2[EP6HZY>1G5U>UH1UCX#+] M4G/#7:D,#![96J 9+D)+,9QEF+9X5PU>_ .\ M$[R*CP(^8'4&DV@$<13'1_ F7<(3CS?Y6<+7JEQSR1IMR PNC:$>Z)4!_KQ< M&ZM)-W\=JD,39GHXC.NE"U.Q%)LOXUGTVY$DIET2TV/HJP?J MS:P6""J'>TS51O*OF,%MAM+RG&.;37NKFM8NP[>]=4D:8%S#@DDY4;$_HFMI.:RKDGE4\G\/["C5)A9(32.\ T*[93U5^6IN6/9Q/ MIO"[4MF."P'Q=)0D,[B5ELD-=_![L&@4)Q&\QARURY3+5)5()7O:6R2C^'S\ MPK!BSY[>()[-AFY;U^1&3O1:-HUZ!Y-X/'R!U+A%67N/>/@=\WU9GV% C(<' MF?1+/TA&XRG9G< T&47S=0+Q]2]%$V_ZNB]X*N:IT65&Y7UF\EX!(F&W)Y02 9Y;6@PF_1 MC !96CBD7<'I@6D7>OTWS3&P"JA.3/"O/ED2_@G\2/J?_$1R[X(M26"#\%"O M3:KYFB2N47@ 4_#*T-V.YZ,X3F!^%L$S,MTKM\6TD$JHS3/$HXALDL[F45DF M7$O MZ%9U,W.;A565GW-K96EJ^L>"/E-0.P,ZSY6R^X4+T'WXK/X!4$L#!!0 ( M %F!6U6?(!QVT , ,@( 9 >&PO=V]R:W-H965TM&!J C212KYEM($D7M,"Z!DFZ?ACV@;;.ME")U$@Z;O;K M=Z1?XG2NMP_[0A[)N^>>.QUY&JVU^6*7B Z^]IVRXVCIW' 1QW:VQ%[:F5ZUJ%MP;LJN^E>;K" M3J_'41KM-N[:Q=+YC7@R&N0"[]%]&FX-K>(]2M/VJ&RK%1B))X0=SIQ'D#0]XC5VG0>V<GU^]P&T\@.-.=#2.L-[H%CV"VLD[W M6V-BT+=J,\NOVSP<&%3)=PSXUH 'WAM'@>5;Z>1D9/0:C-/J%8(KQ_DM$-[-HH=H?JS>+9%N-H@\.\@U/!!*[>T\+-J ML'EI'Q.;/26^HW3%3P+>XW .(F' $\Y/X(E]B"+@B7\)<6YT#]?$U5 I4)K= M$JY#@M' [Y=3&_;_.): #7YV'-]?FPL[R!F.([H7%LTC1I,??TB+Y*<3[+,] M^^P4^N1^&;IR6W)6+79G8(-[>P$/2X/XHA+@5W+YI???!K@!M$>*[.3[HZ7V0.5DO//#4Q]4X!PHIP--1:>:<^! M&/KUH$UXOK?+9D=ZE[IN3]HC7 '/%_K,TKV4DU0T:T%ZU2WA6Q&NC& MZ,9_PIR)I/:"8"++O$#?- \[*4O3"MZK1]W.R-D!/1"L3',:"W)#>F59^*D2 MW%>@7JCVKV\,7@M6)?F9GWGF9U)/TH*$FG%>GSWS1-5\RY"G6X8E!?3/G6,5 M%A]T%WHK%Z&'6ICIE7*;1K/?W;?IRTUW>E;?]/@/TE#F+'0X)]/DO*3J,9N^ MN5DX/81>-=6.'N8@+NE7 XU7H/.YUFZW\ [V/R^3OP%02P,$% @ 68%; M5=1*>>V\ @ , 8 !D !X;"]W;W)K&ULC55M M;YLP$/XK%INF5D+E)4!>EB E[:;U0Z>JZ;8/TSXX< 2K8#/;:=K]^IT-84F; M1OL"=^:>YYZS?<=T*^2#*@$T>:HKKF9.J74S\3R5E5!3=2$:X/BE$+*F&EVY M]E0C@>865%=>Z/N)5U/&G71JUVYE.A4;73$.MY*H35U3^;R 2FQG3N#L%N[8 MNM1FP4NG#5W#$O2WYE:BY_4L.:N!*R8XD5#,G'DP640FW@9\9[!5>S8QE:R$ M>##.=3YS?",(*LBT8:#X>H1+J"I#A#)^=YQ.G]( ]^T=^V=;.]:RH@HN1?6# MY;J<.2.'Y%#03:7OQ/8+=/7$AB\3E;)/LFUC$\R8;906=0=&OV:\?=.G;A_V M "/_#4#8 4*KNTUD55Y13=.I%%LB332R&<.6:M$HCG%S*$LM\2M#G$ZOH I M(2>70FE%SN[IJ@)U/O4TDIL0+^N(%BU1^ ;1F-P(KDM%/O$<\D.\AZ)Z9>%. MV2(\2;B$YH(,?)>$?AB>X!OTE0XLW^#_*OTY7RDM\5+\.E9K2Q4=IS*-,E$- MS6#F8"!8G_\830J!<:G6)/EVU_$%&0%YHIS\F\%E*S/]3>Z5UX+?P9RUH17D&+EG!FG'.^-J4UX!D(B?O21*Y21*C$0_<4108 M8^P.0]\8OAN/8W+-LXT5_$)Y,'2C*"1!XD;QF,2A.TI\$L7N&#-WN_D:=!;$ M;AP'YVA$;N@/T8@2UP\C8_AN9(Q>,>"Y'&A-$)L890@9#XZL'+LFWEX7UR#7 M=E8IU+/ANFWH?K4?A_-V"OP+;V?I#96XAXI44"#4OQC&#I'M?&H=+1H[$U9" MXX2Q9HDC':0)P.^%$'KGF 3]3R+]"U!+ P04 " !9@5M5;>3)S.8# "L M"@ &0 'AL+W=O&9 MRR%FLA'R466(&GX6>:FF3J9U-?8\E618,'4F*BSISU+(@FD2Y.",:/UJ?376D,=_=;[U]L[!3+@BF6UPB77"6Y4+5$!7^>+RA\ZI&_ M#L7='X9NK\$7U_#G:R 11$JE,36@=(:P%#FQ MFY>K,5"]-!8+E%W1X!*3]B2P)P&<\)+L1*W(LSJ%\T)(S?\F?W.A-#R4]+SD M5OY*SXIRH:37::=P_Z(/)U="*6K?7PQ?1C8VW8I/1"CY2)K+FN# ;Q $@1N/ MAK3[^&$8!N&GO;,@&KJAW]O_VY[-D8 M><(T]10E)\5***ZA[\;1H--OI($; M]H?=62-=6R"&?* PJ277' GE7!0%2DO3BE64R3AVH]Z0KHW,-AX%$,7N:!C# MP&Y(?CB[.P--B:'^?MIQUEWX*Y:FA@4*PMBHRC9#+);"BBEL"> M@\AW@BAV@F"[#FP8L@MC8<)X'[NN<(TY!.T:MFL$]T)32N% MWDNF8Z1Z'[FV5BVS7A%;GKT0_S/M?H5JR+>1GWW'A@ MN!K3T3.!/*LW64>X1R7 M9.J?#8AHLIF-&D&+RLXC"Z%INK';C,9)E$:!_B^%T%O!7- -J+-_ %!+ P04 M " !9@5M5?W$5#[P" T!@ &0 'AL+W=O(5"."'"^-5H!NV6SO%U?Z?^V<=. ML2R8P2LE'GANBW$P""#')5L+>Z>V7[")Y]SI94H8_X5M8QL'D*V-567C3 0E MEW7+GIIS^!>'I'%(/'>]D:?\R"Q+1UIM03MK4G,='ZKW)C@NW:7,K:953GXV MG0BZ%B8S!+I@N-*8+02:TU%D:2=G'V6-ZK163?ZB>@DW2MK" MP">98[[O'Q%ABYGL,*?)4<$Y5F?0C4-(XB0YHM=MP^YZO>[_A@T_)@MC-3V6 MGX?"KE5[AU5= @U-Q3(%PAL#RFK MD42-Q!JDD%!>F-B.2;=,(4BT(6P9^1@2DX(3\;:'6ALG7*G5>%FJLS;4FH M>F!5Y>O"0EFJ,KY;4%E'[0QH?:F4W0W&PO=V]R:W-H965TK$S]KNK$0E^-DJ[95 3M?,H^5]N0QB3P@5%N01!"_W>(M*>2"F\6./&1Q">L=C^1']KSYWSF4C'-X:]:\L MJ5X&LP!*K$2GZ(O9O<-]/F./5QCE^B_L!ML11RPZ1Z;9.[/>2#VLXN>^#D<. ML_@%AW3OD/:\AT ]RS>"Q&IAS0ZLMV8T+_2I]MY,3FI_*7=D^52R'ZW6EN_7 MT@,(7<+;'YULN>(4PB?NAXNO8J/072XBXDC>/BKVJ#<#:OH":@X?C:;:P5M= M8OG* IL_DDG\YQG>HP/OT3GT\[Q/ MD3T+=YKLLY; IY;0W!*%X>?H"$LP%5"-4!G%[UKJ[1PNI.8MTSGV8P'M-:+50ZH%?T3U/AY91G:EH)RS"*QC'898D+(Q&83Y+ MX-8T;<J MD@4>8?@DJ\YJ21V'39(P&4\AB<-\FL)+E2B,(S:-P]DX9]LDS"=3#N_>8]:=IF$R''8/<_5Z&"=/YL-0_BCL5FH'"BMV MC:^FXP#L,.@&A4S;#Y>-(1Y5O5CSOP&M-^#SRAAZ5'R P]]F]1M02P,$% M @ 68%;53/"$0R>! 00L !D !X;"]W;W)K&ULQ599;]M&$/XK R4(9("P>(MT; 'RT20/"0S;;1Z*/JS(D;@-N:OL+BVK MO[ZS7(J64E5H^U) H/:8XYMSYW(CU3==(1IX:6JAKT:5,>N+R407%39,G\LU M"KI92M4P0UNUFNBU0E9V3$T]"7T_G32,B]'LLCN[5[-+V9J:"[Q7H-NF86I[ MC;7<7(V"T>[@@:\J8P\FL\LU6^$CFI_7]XIVDT%*R1L4FDL!"I=7HWEP<9U: M^H[@%XX;O;<&:\E"RF]V\ZF\&OD6$-98&"N!T=\SWF!=6T$$XWLO@+#5)LXO.U(Z;P'%A M@_)H%-URXC.S#U*6&U[7P$0)GX1A8L47-<)<:S3:@R^4%^,G1D?Z[')B2*/E MFQ2]]&LG/?P;Z3E\EL)4&NY$B>4A_X20#G##'=SK\*3 1UR?0^1[$/IA>$)> M-)@?=?*B_V0^W')=U%*W"N'7^4(;14GTVS$W."WQ<2VVL"[TFA5X-:+*T:B> M<31[]R9(_?/5*AE2Z#E$FXJL@ U<-%%[H8IM>5B!?-&ML)8 MBIW%QZPXJ>>X%8,#GRIT)<;-UJI?[2XV3 /]EK*F!J OX N)/4@+&!.YJ62K M*0CZK NM_01PS6HF"O1@@2LNA#6$+%BCXK*$MQ#$D9>FD5U%L9DJ3P[DT6!N%[H-*FPA54:DJA*+9 ,1:Z9AWM M./2B(#B#<1S3]P$;9#87J"<9IV&MY#.W_8G5L&Y545%_(&V%=;9%RYS;=\K" M-'NU"2GC#JQ)$R_WL]Z:-//A1&XD0VXD)W/C+RE]+.S_4L1^G;"^30A*MD)2 MJ]8&.[,,I8,+.?GA JAN#38+5$/QPO@M',;]@Y(4JWE1M$U+ 2 YN^#85/[: M]5G#ZYE>%_N)C=.W\^M@M=*&XU*G3AU!5?:W+O-/>B-*'% M.$J\+(S.[#)(16H-%)60M5UN(IEZ4!##.O3P/ MSUZC:X]SXO5[7HIDD'K3(+4*8M(5)/NZIKXWC4.BCWOZ6RQZ'P6>*X#_S4=I MX(53WX(-:+^SE/O.Q*CL)Z7ASM3T5!ZQ+AY4YK&P?*_98U2M6 M_F.1 C_LPS]T794"56]7H!1G+PBZ5AQ!0*UPFMMU3%GMA<'4KA.[]MUY M"@&EQ32Q+P&-ATM#HL+0RZB1/4E#B'?X]X$/57 LJI.]L:9!M>J&-PU==W43 MSG ZS(=S-Q:]DKOA\C-3]()HJ'%)K/[YE'J><@.;VQBY[H:DA30T&PO=V]R:W-H965T9YBX3I^V'F_L@PV*8 J*2B)-_?RM!L)TXW+5?0 +M/H_VV5UIMN'B MN\P0%3R6127G5J94?38:R3C#DLE37F-%?U(N2J9H*M8C60MDB3$JBY'G..&H M9'EE+6;FVZU8S'BCBKS"6P&R*4LFGBZPX)NYY5K/'^[R=:;TA]%B5K,U+E%] MJ6\%S4:]ER0OL9(YKT!@.K?.W;.+2*\W"[[FN)$[8] [67'^74\^)7/+T82P MP%AI#XQ>#WB)1:$=$8T?G4^KA]2&N^-G[]=F[[27%9-XR8MO>:*RN36Q(,&4 M-86ZXYL_L-O/6/N+>2'-$S;MVG!J0=Q(Q=6^V6,7AQV#B?.&@=<9 M>(9W"V187C'%%C/!-R#T:O*F!V:KQIK(Y9469:D$_5GFBJ*L)+ J M@4M>J;Q:8Q7G*.'HGJT*E,>SD2(L;3&*.[\7K5_O#;]3N"%/F82/58+)OOV( M./9$O6>B%]Z@PR76I^ [-GB.YPWX\_N-^\:?_TL;O\IE7'#9"(2_SU=2" M?PY%H04)#H/HBCJ3-8MQ;E')2!0/:"W>OW-#Y\/ %H)^"\&0=[V%FE=F!SR% MSTC)"1\?J5PE'J(ZZ.PPU?L,(=Y#*0P*MBBP00H0DY#R@JI;GL%])A#WI(<_ M"6C_RU%>@G2 ,9<*?H-H,J'G)/+IZ=G>)#)O MWYG"5R9RG:N[ZZ>A#],HI!6AZ^GG-*#UKAV-7?.>!%-Z!_9DJM]CVW%\&)!E MW,LR'I1E28TS:8@*A6O9U'6!.LM8 9=,9G!-@8)/5=M.=5^ZPX(IBHKBK83R MD':#B(>UVX..-72JH?,=:+&%-F&3L"$Q=_7\"?',[FJ6)V0M@)6\T2F35W'1 M:#MCAE 2#E65IK5-IX*DRXM6"35@G4% C) 6.O![ M^QS0(^KUB/ZW'M>-TDW^AEB630FW[*D]$KY0LHN=9'Q;A4&LPZ5YKEZ$4E>1 M#;P1D+9\RHY/_*_2R ;\HSSLC@#%-VUK5C6_LCO7$U[TO,FTWH&$0 M!7HXIJ%#U43#D HL"AWJZ@3#4E*/C+TPA'NNDZKCNA9F_ M]I?'\_;.M%W>WCQOF%CGE20&*9DZIQ%U6]'>YMJ)XK6Y0:VXHON8&69T 4:A M%]#_E'/U/-$ _95Z\2]02P,$% @ 68%;570TBQ;' P 5 @ !D !X M;"]W;W)K&UL?5;;;MLX$/V5@3;HMH#6DFCYHM0V MX+0I=A=H&L1I]V&Q#[0TMH1(HDI2=K)?WR%IRS+@Y"4BQW/.G+F0S&POY)/* M$34\5V6MYEZN=7,=!"K-L>)J(!JLZ9>-D!77M)7;0#42>69!51FP,!P'%2]J M;S&SMGNYF(E6ET6-]Q)46U5Q\;<./PKEU( ^ROC^Q?;.Z4RYHK_"3*?XI,YW-OZD&&&]Z6^D'L M_\1#/B/#EXI2V;^P=[[#T(.T55I4!S IJ(K:??GSH0X]P/0U #L F-7M EF5 MG[GFBYD4>Y#&F]C,PJ9JT22NJ$U35EK2KP7A]&*E1?J4BS)#J7Z'VY]MH5_@ M_2-?EZ@^S )-(8QCD![H;AP=>X4N@:^BUKF"VSK#[!P?D+1.'SOJNV%O$JZP M&< P](&%C+W!-^SR'5J^X2M\APS_7:Z5EC02_UW*T5'$ERG,,;E6#4]Q[M$Y M4"AWZ"W>_1:-PX]O"(P[@?%;[*XA\(!-*].H:WA;#=JS#70"$&Z?FT)R>^3M M?I5SPO_@94NU/&5(]UF_RGVODSF#[W5K/N]XU7QTU+1SSCVTPYU%VE'ZYA39 M0%]:W9XC6!@E<.^J G=BYW*VUMZ.17 %H] /PY 6+/''D;&PT!].R3%8.I\+ M/&1=MENZ/UP-#QQQXB<)@^D1RCIHW_GOMGPQJ_@(8WX\F5C,%<03?\2&\$A- M53;?WAATC5V_0(.R$!GLS5SU>O>82\2S2P+N:&S/+6<-]@&?4YH*%\Y-$)$? MHO-*M+6F*;#*;=ZGU5UKJT$S>,#*7F>CD/EL&$-,GR2!X6CBQ\.0S"-_&L6N MF>>(5%"%KB!RY:!2^,RV@Q@FMD%1Z(_'5/@=2GK0:.B+%*W6/HO3;6C8((QI MD22#T<@8HF00CRU-.)B,X-)E$O1N^@KEUKYGBI11$=REWUF[)W/I7HJ3NWMO MOW*Y+6H%)6X(:B)Z(-T;YC9:-/;=6 M-KY!=YO3LHS0.]/M&"'WB M+$D1NO%/IW.P-4D;=Y\WVC_9V#&6*=?B4I8_BMPLSP;I '(QYZO2W,KU;Z*+ M)R)],UEJ>X5U)^L-8+;21E;=9O2@*NKVSA^Z//S,AJ#;$%B_6T/6RX_<\/-3 M)=>@2!JUT8,-U>Y&YXJ:BC(Q"E<+W&?.)T;.[MY?8%PY7,H*:ZVY3=?Q5SXM MA1Z>C@R:(>'1K%-YT:H,7E"9P1=9FZ6&JSH7^?[^$;JW]3'8^'@1]"J+X1]_FL\U49AO_Q]*/A6 M-SNLFS!THAL^$V<#!(D6ZEX,SM\=^;'WH<=SMO6<]6E_N5I7#_0L#OG;J_&P MOZV9J34SVS4C6C.PYAIX6**\:Y-RJ M4V))J+X7N!-_"T!M$-!([/8KS[3IS1/798DN"=.1F+X+H1"J.L%YLH-4PX(@#0 M!B).W0F[Z#LI"J.*D$'DI&&$V].(P2TFCZO9THKG:+24C>TFWPG1FN_X&8D& MD0>A$_@!?!8U&BRM/,\1V@4U'7$4.AHE(5[#@$'F> F#U GB %U-G"SVK.LI MRRBD"!VA6 +?"7#/JY6;/L(".]V >6P$2 5-R>NVGO]#$:P[(!MR@2K 8I^N M65L%YOGV'L49W$R^:7ID/B6,!1AAP"C#893 +2TR)[')]L(,?.:P. $?-R2T M/-;PCE?-!_AHU?@>^%X&89#B7P17DYL;(,$PH4+$N.2CFA30@>.[(78H>8D, MC]6+,)LL3<@5>V5>\A-I[X%VM(5V]#JTL0EMM<8TJPKS> C/O6H.X_EZI;H@ MVU*TLQ#U/RO\\RI?=\4[/AK"#SOC\.7X'EMW(>!Z91#>=8[ <& J%D5=$T80 M=@BF0N80)ZD31Y0ZQES,_F?J/53 L*U3A%$0N#%#]A)J5E#/'B>TD TA]%W, M/ [>N2AHPW'L)+X_A#1SL:_V[ H$T(Y%YCL9-LH;B'PW8WVEB;>EB7M+\RQL M&P7@O!7PB1<*OO-R)JF6_W:](JNN-;=[9;M%+U IS MLGV_L;U!V:)+<;Y25 MBYIJJ6K55%;:J.%*1E*=";>>J;84WS'.1IC"5H&E( MNL@$A;9+0INBLH0N6[JW+J#=UJ&5WAB[*#E2T&2VE$2>7<,UJIB10"5S09\X M9FEEV[ZCA4V<[S=Q\J?,G< ?Q5Q8OGE$CD6N86X(WV6)U%92%X>)&\%;^(@] MG5,W/!:BS.'=48H\^P%N"WWW?DZ$5F!B$!0&%/D>N &\[6F/9-L>26^9D+H< MHBBZC!W+YTA#A\K=J^H[GMK%?177BX2BUA)BDKA=N41VD1-+(KD'LIBE\QU13Y]9V%F'_=2148&D) MTD&,Y. E0XA#UV.[8$=:]7TVA SU]*,]2QP_26F,>*'K9WUP3[?U3/N9N#V? MD!4[.?K(N%?3RV1L];Y(PK\^?3$M#S.$=(O:%X;QN)(K^@JC3FKEH%GA%XO] M6,!1%MHTAE36$*=?:K^80C^&R7^% X>E-*>C($;L.1'*!(D3)U%?^K-M^K/> M].\PZE7+.40@6(S+MH?:0?G-\LT^UW3#\Z;CFB_$-:]2<+\S1,$[-+M/A.UG M5D>'[1>B);J6CK',>UW/C97;PQ.]D/.YL$S=M?03DSZQ8R\9>DA^^V3(?IT, MO9?(<+1SMJR$6M@3M,;0L)?:8^;V[?:0/F[/ID_B[0G_"U<8NX92S'&KYR;X M*:/:4W/[P\C&GE2GTN"YUSXN!<^%(@%R)$#3;5@?VA5-MST,>U!L.C8J2YFD--V^ M?I3L> F6!MB+1%'DT2%ITM.=5$^Z0#3P4G&A9UYAS&;B^SHML&+Z4FY0T$TN M5<4,'=7:UQN%+'-.%?>C($C\BI7"FT^=[E[-IW)K>"GP7H'>5A53OQ;(Y6[F MA=Y>\5"N"V,5_GRZ86M\9KY-P"$8V?#:;7/FD=#^4]^D<7.\6R M8AJO)?]69J:8>2,/,LS9EIL'N?N$33P#BY=*KMT*N]JV/_8@W6HCJ\:9&%2E MJ'?VTN3AP&$4O.(0-0Z1XUT_Y%B^9X;-ITKN0%EK0K.""]5Y$[E2V*(LC:+; MDOS,_+,I4,&-2&6%P$0&'UZHWAJA\\A6''5WZAMZQAK[:0.YJ"&C5R#'<"N% M*31\$!EFQ_X^T6LY1GN.B^@LX!(WE] />A %470&K]_&W'=X_?^,6R9ZPU*<>=0>&M4S>O.W;\(D>'>&<]QRCL^ASY=UTX#, MX8A^I^'>[<$=FE.LS^/68%B#]$#0&"A%RK=4.: KR"6GOBW%>@*/A4(\JBW< M$=JQIE,*\I-;37G575 M$ 9=JXW'4;?)8T.A@VT>;0XZ89\LAQ%TXB"Q+D,">)2&<9#_9NP".LEXT+7[ M,$S<'O82^Y:3XBCNGOH$_(.VK5"MW7#2D,JM,'4'M]IV_EW5;?_7O!Z>MTRM M2Z&!8TZNP>5PX(&J!U)],'+CAL!*&AHI3BQHAJ.R!G2?2VGV!_M ^U>8_P%0 M2P,$% @ 68%;54;5XO"O P ,@D !D !X;"]W;W)K&ULI59M;]LV$/XK!ZT86D"S7NU8F6W 3E*L'YH9<;I^&/:!ELZ6 M$(K42"I.__V.E*+:@V.LV!>21]X]?.Y-U.P@U9,N$0V\U%SHN5<:TUP'@R08%G>RDJIDA4>T#W2ADA3.J>1"'X22H626\Q-AVI?&KL1+&8-V^,&S9=FK4@*!I2BJE'H2@I0N)M[R^AZ M-;;Z3N&/"@_Z: W6DZV43U;X5,R]T!)"CKFQ"(RF9[Q!SBT0T?B[Q_2&*ZWA M\?H5_:/SG7S9,HTWDG^M"E/.O:D'!>Y8R\V#//R&O3^.8"ZY=B,<>MW0@[S5 M1M:],3&H*]'-[*6/PW\QB'N#V/'N+G(L;YEABYF2!U!6F]#LPKGJK(E<)6Q2 M-D;1:45V9G%/>?\D*+P)NL!E!$OH0AW%\ 2\9_$T<7O(&WAU3HA)[ M?>3MG\NM-HK*XZ]S_G9PZ7DXVS+7NF$YSCWJ"8WJ&;W%SS]%D_#7"V33@6QZ M"7UQ(^M&"A1& Q,%6+$US%6SW,&*Z2IW![<5;PT6<"Z9YWRZ>.MYGQY+A/R4 M3GY*9SO0*7HZ@NA4'9V&Z&@7[0/2P#3L)*@?1V)].$KN(_#3- M:)%D?ARY1>1/DQAN44CJ.6?ZU?4W46'/!+9WT:C)_!OK>:4/DJ+;\/A3) MQ ^S!)*QGTTB*T5A:J7I50*_-S9L&HR$IE5Y2=^5 =#(_ F2JPS&<4B4)C!. M$EAOOI#?#_VXI-$EGF1(TX144IIC2+/XAYB^IHK89=&8;O5#.Y%$8#1-L^EQ MT+X'O"N^=Q".TM1-%"Z*Y"C,G#3-AJ)T.DFG$W4ZDTYG A=Z9#STR/ABCVSH MF2I:CK8$E\)4OSB7Z$MOV\6ZO>G6M+::=D#3>,YRT?:O='&^@BI;<; M2+3UEF#IPJ,D0",-]53%^+\294IFNG;!$^[&MN(I_XL=QRP4?NL[[R1$!SK[ M?[UXON-.$]'[$X570&4:DU)Z/O7!T3M&+;MWK[6FL%!O=T_:L#O\$"R[=_"[ M>OZ$XQLW*NXE8;>6+BF_;O1\F7IFN2%UN4R*/#JZ9K;>YMADCP5.3*SH*,J)R$ MH8TS+(3MZQ(5GZ3:%()8-*O0E@9%XHV*/(P&@\.P$%(%\ZG?NS;SJ:XHEPJO M#=BJ*(1Y/L%E6.$"Z:Z\-BR%'4HB"U16:@4&TUEP M/)R8YPZ(:3PTF$%W MI3/<7+?HW[SO[,M26#S5^6^94#8+C@)(,!553C=Z_0,;?SS!6.?6?V%=ZXY' M <25)5TTQLR@D*K^BZ]46>Y9D@,9\:O0;CM!G-+;RK MWIK)2>62LB##IY+M:/X=]3SR>*,= M>#?XB*I"2(TNX)2Y&JX,CCIE<.KCC0;^'"^MW_^[+0 U_L%V?-=%$UN*&&'@ZQ[V!QW[@WWH\T7=/*!3.&.JECAQC4?;J.X'N\T02C0Q M*N(&=)A)BVEJS!ZLN30R6*,K=38'88'>F,5:69W+1! FK2FK"8XKZPLB(Y<5 MN9("TDU9H[&^GQ(?>ZD\[%U_T>_51A92G?/,L!.XS0SBJ[J"*\?EU8XK#_<9 M;JS._G,'CL;P'HX.-C][DC+NDC+>GQ0>E4G%SOU,X?HE,$XR/#X-/<.Q2N#\ MH9(E#S2"*Z1MV=I_R]MLE2VZ8'1LT7N@>)CG.O;9X!S8:FEE(EW9.$6=IC+& M6H%[W0+/:C[WB&T.WJ2 NY"P6')ON%8\P[@1AKTZTA>*T"@/*/(=Q& XXI@/ MH^TQ#S>&&!?'RH]JRZ55*:KG6;?;O0;']1!\4:^?DDMA5I(=RS%ETT'_,P?6 MU..Y%DB7?B0N-7$E^F7&+QH:I\#GJ=;4"NZ"[HV<_P-02P,$% @ 68%; M5:'0L?RR @ N0D !D !X;"]W;W)K&ULK99= M;],P%(;_BA4F-"1HTO1S(XVT=7P4,:A6!A>("S]K/\<]L8.=D'=J Z#)0\)3-7$V6F?GKJNB#214=40&*;Y9"9E0 MC5VY=E4F@<96E'#7][RAFU"6.F%@Q^8R#$2N.4MA+HG*DX3*QTO@8C=QNL[3 MP U;;[09<,,@HVM8@+[-YA)[;N42LP12Q41*)*PFSD7W?#HV\3;@.X.=VFL3 M0[(4XLYT9O'$\?W-];=F194@53 MP7^P6&\FSM@A,:QHSO6-V'V$DF=@_"+!E?TENR)VB,%1KK1(2C&N(&%I\:0/ M91[V!-W^,P*_%/C_*NB5@IX%+59FL:ZHIF$@Q8Y($XUNIF%S8]5(PU*SBPLM M\2U#G0XO**G)Z\(B>$ MI>2:<6ZB U?C0HR=&Y637A:3^L],^C72'>+U7Q/?\_T:^;19_BGG'=(]JY.[ MB%_EP*]RX%N__C-^'Z8B24!&0&9I5$?3*#=U=JXR&L'$P4)2(+?@A"]?=(?> MVSJVELP.2'L5:<^Z]X[8;?+S,XZ1F89$_:JC[[5)WY+9 7V_HN\W[O,\E]$& M2YYDDD50A]JH/Q:U,!M:,_,QW8;]0>!N:P &%<"@$> :J,HEX$=4DPPD$W$= M1*/'L1#-"^J21Z"R86N&%=FPT6B6:I#?)(V!+!Z5^2N:6NR0WV21+Q7&PO M=V]R:W-H965TQCVP,C'ME!)=$G*3O[]2%F1+5LA[.&\Q+KP?)3XA31YZ-&&\1]B M"2#)R" M9J4U&=77'OADQ"J99R4\<"*JHJ#\Y19RMAE;KO5ZX6NV6$I]P9Z,5G0!CR"_ MK1ZX.K-;RBPKH!09*PF'^=BZ<:\3=Z #ZA+?,]B(O6.B7^6)L1_ZY'XVMAS] M1)!#*C6"JH\UW$&>:Y)ZCI\-U&KKU('[QZ_TI'YY]3)/5, =R__.9G(YM@86 MF<&<5KG\RC9_0/-"H>:E+!?U7[)IRCH622LA6=$$JR85$#8G M-T* ;,IPF!%:SLBGC#YEN0H H>]7A;K^?@J29KGXH C?'J?D_;L/Y!W)2O+7 MDE5"18F1+=53Z[KMM'G"V^T3>F\\X2.L+HGO?"2>XWD]X7?F\#^K_)*XPS?# MI^;P*:2J=K<.=WO"X],?OB\\.;UVIQMN*]&M;:^U[=4\_PS;Y)]/ZAJYEU"( M?_OT;)%!/U*/?-=B15,86VIH$\#78$U^_<6-G-_Z9&'"IIBP&!.6(,$ZDOU6 MLF^B3WYG;+;)\KS/Y38RJB/UE\YZXD;AT!F,[/6^)6,%YUKJJ3/PH\COUAGW M%/.#:.!TBR6]Q0;ACM9ILZ!ML\#<9G>L*("GJA^4:5_#&8.# MR<@4L\(8$Y8@P3JZAJVNH5G7"CB56;D@.:B5->%Z"7W!YA>5.JGM]YJJQ,60%$TF>3/=0D1T/;MQ=Z0_=0'FKZ I668-&Z\G89#->< MPFAGCBOZ\M:TT8PX6YE_I.S"BXX&2[6A9E(:6D>;[QWU--0<"2HMP:)UM>W2)*YQ@;X;)CFLH:SZ>QIJ M7J2A'?0T[U 9:L8#E99@T;K*=DD/UYSU.)SYY\U&S$NO.]1<2$/KN#N>\Z/6 M&:/2$BQ:U]TN(^*:4R)]LY)\MY'6:Q U/^(>)T@N0CZIU!/,O5>Z$=2]B_!S?BS?0Z.TI-!Z R&ASY1DRBHM 2+ MMO5I[^V%Z]]&?*9\D95"C95SA7&ULM59M3]LP$/XK5H8F)FWD!5): MED9J86Q,3$)TP(=I']SDVE@X<;"=%O[]SDX(W18R#94OB=_NN>=>?.=H+>2M MR@ TN<]YH<9.IG5YY+HJR2"G:D^44.#.0LB<:IS*I:M*"32U0CEW \\;N#EE MA1-'=NU"QI&H-&<%7$BBJCRG\F$*7*S'CN\\+ERR9:;-@AM')5W"#/15>2%Q MYK8H*R):P9KM3$FQI2Y$+=FXRE-/QM%*XHA29)'<54\RX2I$/Y*S0 MM%BR.01[)BI%BU1%KD:" M1HV;-&2F-9G@&3)?*[Y'_-%[$GA!0*YF)V1WY]WO,"[:UQH9M$8&%G?_/XPD M/\YQC9QIR-7/+JHUY$$WI+DL1ZJD"8P=O T*Y J<^.T;?^!]["&\WQ+>[T./ M/RG-,./0V:>427)->05='&N4@44Q]V\5H^="+W)7'/8BO=!)8=?MPA>0 J58][ABW#82]26V T)%DA MN%@^=-'I!7EA!$UM)N@;FSUK2G73^1GOQ7RGM_@$< M/I]W[D8[-$^+;U0N&78U#@N$\O8.L0C(NEO7$RU*VR'G0F._M<,,7S@@S0'< M7PBA'R>FZ;9OIO@74$L#!!0 ( %F!6U7_/X'H=P0 $,< 9 >&PO M=V]R:W-H965TV@=V5 M@@1HD,6Z:2^*7FAMVA8BB2Y)VUF@#U_J8,DZ6+&W3.*./'(E=FD;\Y9XF[##5L'9L>(K7&YDWZ+/)-EK3 M.95?MX]DU91FG-!,QRQ"GJZEVAV]#[.<.A<4?,3V(DVN4A_+,V+?\YM-R MJAGYB&A"%S)'1.IK3Q]HDN0D-8Y_*JA6]YD[GEX?Z1^*X%4PSY&@#RSY,U[* MS53S-+2DJVB7R"=V^$BK@.RAZ&7LQ<4$DH]F$LP/BN;6B MY1?%[!?>:K[B+%\H<\G5K['RD[,GNJ?9CJ+W:%XN%<16J&H4Z/GE>(V4$XU2 M]#:@,HJ3=\KAZSQ ;]^\0V]0G*'?-VPGHFPI)KI4P\KA^J(:PGTY!')F"";Z MS#*Y$2C,EG0YX!^,^_LC_KJ:CGI.R'%.[LDH<$ZW-\@T?D'$(&1@/ ^7N^.A MV]-AEDO$+/@F3]8($]TP=997#S=?_VFC- G25/Q]U"^2Z(U3,RE M[U9LHP6=:DK;!.5[JLU^_@D[QJ]#DPT)"R!A(1"LE1:K3HLU1C^F9?!Q*SV= MPC/_H]C/,+8LSYGH^].)[9OYKN>Y;:N@;V42S[,[9F'?C'C$)D9MUHK2KJ.T M?Q#E8L=YG*W5?]+Y>$<9URXW2%@ "0N!8*U$.'4B'' 5<"#3 @D+(&$A$*R5 M%K=.B_MJ%2@][5,5,!S;-CLJT#?S#=/W.RK0MS(-FW@=6-@W(XZ!K3,JX-51 M>J-1?LGH>ZEVIZ,B,(JX=K5!P@)(6 @$:^7!K_/@@XN #YD62%@ "0N!8*VT M8*/9PQNOEH'*]?29='VSJP)#5I;G=51@P(J8MFMU5&#(C)C>&17 )Z4*'@WS MPRY9Q4FBRE2)_D67[0W&D=B,LE8A1X]2J$I 6@M!"*UDY-4\QA&UXB0(L[4%H 2@NA M:.WD- 4>'BU4QB7"Z=<2V#=Z$C%@9GAV;Q?1-S,MSW*Z"C%@ALV3DJ,=:%,R MX?&:Z8O<4'ZY.(S"KEY_D+0 E!9"T=II:6H\[,&+ VC1!TH+0&DA%*V=G*;P MPZ,%S+@X^/W7C4[W!<+#D)5EVEUIZ%M9GM-]USAD96"_(PSZR:%(2OFZ.(T2 M:,%VF2Q??]>M]8G777'.TVF_Q[* ]R$_(BD.8!E\>KWV.^#K.!$KH2G5E MW+A*Q'AY8E7>2+8MCF2>F90L+2XW-%I2GANHWU>,R>--WD%];CC[#U!+ P04 M " !9@5M51,8Z'43-RQ?:3/AQ[.*YG +^DMU+7'D]RHI*X$K)CB1D,V]D_!X$8Z, M@[7XRF"MMIZ)"64IQ)T97*1S+S!$4$"BC03%OWLXA:(P2LCQLQ7U^C6-X_9S MI_[1!H_!+*F"4U%\8ZE>S;TCCZ20T;K0-V)]#FU 8Z.7B$+97[)N;,=HG-1* MB[)U1H*2\>:?/K0;L>6 .L,.4>L06>YF(4MY1C6-9U*LB336J&8>;*C6&^$8 M-Z=RJR6^9>BGXQNX!UX#V2.?J)34;!%YX@K'SDU9MT:A%.]2F MY$IPO5+D T\A_=/?1[(>+^KP%I%3\!:J?3(*WI$HB"*'WJ@/=V3U1COTSIBB M>2XAI_9.?,Y(MP'?+]&47&@HU8^AP!O=@V%=DSO'JJ()S#U,#@7R'KSX]:MP M$KQW4!_TU 0T6PJF)2JP2+$N4@:D4$AST\9S!Q M#$&[EWIR,X]ZYB,W,^.[CM/I^,Q$F/98TQ=*W^D+4(?!IL@&[ERQA1PD2;JD M22BWI[YU&P;+K5OWZ6P.MSX$X=]D@ Q= M@_U#+.2R:7*:@1:5;2R60F.8]G&%C2%(8X#O,R%T-S +]*UF_!M02P,$% M @ 68%;53V4%4E+ P Z0H !D !X;"]W;W)K&ULK59M;],P$/XK5D!HD^CRVF8;;:1UZ0022%/+X /B@YM<6PO'#K;; K\> M.TE#FWFE@O5#8SO//7?/^>S<<,O%-[D"4.A'09D<.2NERFO7E=D*"BPO> E, MOUEP46"EIV+IRE( SBNC@KJ!YPW< A/F),-J[5XD0[Y6E#"X%TBNBP*+GV.@ M?#MR?&>W,"7+E3(+;C(L\1)FH![*>Z%G;LN2DP*8))PA 8N1<^-?3V*#KP"? M"&SEWA@9)7/.OYG)NWSD>"8@H) IPX#U8P.W0*DATF%\;SB=UJ4QW!_OV.\J M[5K+'$NXY?0SR=5JY%PZ*(<%7E,UY=NWT.CI&[Z,4UG]HVV#]1R4K:7B16.L M(R@(JY_X1Y.'/0/-8S<(&H.@:Q ]81 V!N&I'J+&(#K50[\QJ*2[M?8J<2E6 M.!D*OD7"H#6;&539KZQUO@@S=3)30K\EVDXE4]@ 6P/JH5E=*8@O4 H+$ )R MM'O[GN YH43]U"L4*\*62'&DBZCW4*([ (G.4E"8T'-#M+?<0P^S%)V]/$06^_2X_=41>U:Q1X06")Y_9T<]\FY_^\3_[9^T$RPK:,PHHO?(+O M4<7<"('9$O2-HM"7*:<4Z7.]Q2+_:MOZFCRRDYNK\EJ6.(.1H^]""6(#3O+J MA3_PWMCR_IQDZ7.239Z)[&"'HG:'HF/LR1A3S#)XC>:P)(R9(ZQ/>@F"<-MI M&M=L@XK-?&PVB=\/O:NAN]G/M045AE%TB$HMJ"CJ=[@F%I3^7;:H ]G]5G;_ MJ.QW;,-)I@M3ZEMI7:*%OI5L#CE@; MZC(,[&('K=C!4;%3R/B2D5]_ESMXY+X77GI=O394$'50J07E^Y[?56R!707! ME5UQW"J.3ZMJ8/GQ>HXM]1SXW7JVH,+8W) 'BD_BFOR-JQ;L[GV["Q#+JFF2 M*.-KINK[MUUM^[*;JAWIK(_]ZUO?LI[J/JYNN_[0UTW@!RST52 1A85VY5W$ M>G-$W5C5$\7+JG.8&PO=V]R:W-H965T':0\.W 14L)GM)-U^_6P@ M-"%N%FU]26QSSKD^]QIS!QO*GG@*(-!SD1,^-%(ARKYI\CB% O,K6@*13Q:4 M%5C(*5N:O&2 DXI4Y*9C68%9X(P8T:!:NV?1@*Y$GA&X9XBOB@*S7R/(Z69H MV,9VX2%;ID(MF-&@Q$N8@7@L[YF$8)8K 8&C=V?QHJ? 7XFL&& M[XR1D2O%<(;D-P3XW@-03OU A^0ZBLF[7W*G$3+' T M8'2#F$)+-36HLE^Q9;XRHL[)3##Y-),\$4U@ 8Q!@L:4"X[.)R!PEG] E^AQ M-D'G9Q_0&T?XIG3;6G:VED?.4<$9E%?(M2Z08SF.9C_CT^FVSL[_19_^<_2]9+AM_=U* MSSVM_M\?:)XC^0IN,$M^Z(I=RWEZ.76K]7F)8Q@:\MKBP-9@1._?V8'U49?I MMQ2;O*78](W$]FKBM37QCJE'(YQC$L,%FL,R(R0C2T07J 264=W[,ZK5@DI- M?1?64> %@3\PU[NY/D3Y[K5G[Z,F&E0O=*Q]U%2#LOS>2\0]VWYKVS]J^Y;$ MJ^HH)MLS&:LSJ7-<"_D[\>W0\YR.8PTJ\/Q>Q_$ARG>N@Z[C0Y14')#GP_Z'@^1/F!U7,[ED_2FOY-JS9L[GQP"V#+JM/ALG@K M(NJ[MUUMFZF;JH?HK(_L_MC6K$]D\U7W2B_R=>=VAYF\%#C*82%#65>AK ZK MNZ%Z(FA9?>[G5,CFH1JFLH$$I@#R^8)2L9VH &U+&OT!4$L#!!0 ( %F! M6U6$>9>$2@0 %@6 9 >&PO=V]R:W-H965TR"L7VU+26^7GM2(IWB7OJAZH<]>WQ>';!D=[&3JC^^ MNY@#8Q;2R/B+#>;-^,UCAS?L=,_%L]P"*/0UCA(Y<[9*I=>N*U=;B*D<\!02 M?67#14R5/A5/KDP%T'4>%$S*<\4Q%+X%X@F<4Q%=_> M0\3W,P<[+S]\8D];97YPY].4/L$2U$-Z+_296V99LQ@2R7B"!&QFSCM\O2!# M$Y C/C/8RZ-C9$IYY/S9G-RM9XYG&$$$*V524/VU@P5$D7PIDCKE?YK MX^.7[+=Y\;J81RIAP:,_V5IM9\[806O8T"Q2G_C^=R@*R@FN>"3S3[0OL)Z# M5IE4/"Z"-8.8)8=O^K40XB@ !RT!I @@_S? +P+\O- #L[RL&ZKH?"KX'@F# MUMG,0:Y-'JVK88FYC4LE]%6FX]3\EB4T63$:H;M$*I'I.Z0D>HN6A]N*^ 8M MJ-RB7[]D;$>C_"I-UAJ] ZD.Z-D ^=X;1#Q"+.&+[O ;6.EPG(?C>KBK!2I5(J5* M),_GM]'1W;/.(C!RV!7[ZX,.07<*8OFWK=Q#_L">W_3JM4SI"F:.;D8)8@?. M_.>?<.C]8BN^IV0U*?Q2"K\K^_Q=S(5B_\ :+;A4ME(/\6$>;YXBNSD."9GX M4W=W7(0%-AY-AJ,25J,7E/2"3GH/B7Z813F_W_1#3"_.#UQ*D%=O4 )6NH=\ MPV,>_BG7)B:TTQR6-(>=-&\I$^@SC3*P41HV*84D(.$)*PM,*QCZ=FIA22WL MI+8 ?7\W;$452+/>UY!RR:S2=2;ZT47=4[):S:.RYM&%^WO4IQ0]):M),2ZE M&)_9W^-F,P3^Z&1M-D$C$H[M*W-24IOTW-N3!@OOA&<7HD82>Y6C>F?T=A'\ M'?DLJ';]\)'9X^[>/K7R?]%'GL W/5&(9STS;K(VM^[,^Z/KNZ]L=14J,\>7 M=G/VNA"5W^-+&S[NU?'[RE:7H_)\?*[IXZ:A!X$_;*S<)LS7 MZSMH6;B5\^.^K1\WG;TYUUM +>\?I+)_J"'+W87_S-OM]7^TO, J2: M!ORIL5H@HZ'7XJVD&@)(WT, ^?X08(&\;>NR:@H@YTP!17#8Q:H) M&>GV/^'E'FW[F3U7W=Q/1I<(-CK,&XQT%G'8QCR<*)[F.X&/7"D>YX=;H&L0 M!J"O;SA7+R=F<['<3)[_!U!+ P04 " !9@5M5M4EJAJD& !C.@ &0 M 'AL+W=O(XU?/%(!P\O7 ; MWZ]U_L)P-MWR>S$7^LOV1IIGPPIE&6]$JN(L15*L+@;OPW=749 [%!9?8_&H M:H]1GLI=EGW+GWQ<7@R"/"*1B(7.(;CY]R"N1)+D2":.?TO0077-W+'^^ G] M0Y&\2>:.*W&5)7_%2[V^&(P':"E6?)?HV^SQ#U$FQ'*\19:HXB]Z+&V# 5KL ME,XVI;.)8!.G^__\>UF(FD-(CSC@T@&W=2"E RD2W4=6I'7--9]-9?:(9&YM MT/('16T*;Y--G.9MG&MIWHV-GYY]B%.>+F*>H(^ITG)G.J05>HOF^[:B;(6L MR7NEA'F7ITOT*>9W<1+K6"CT67"UDV*)N$8?>"S15Y[L!,J;A&[%8B=EG-ZC M2ZYBA5Y?"\WCY(VYA#4]>X(HKGY6M7;] K%*?HSW6V4^;R:CK4 M)OD\A>&B3/1RGR@^DNA<;,\1" M5O\T56-_>=I\^?S+X9W:\H6X&)A/OQ+R00QFO_X21L%O3;4! G,J1:I*$1_Z MK"3=*B_80UZPIFSW$%$!D7]S/PA6 MYV08TLGX&74;S,@8!ZR9NJ,JPI$WPBLA=;R*%Z9'*O^N7XIMIF+=%*<7J&M7 M@,"WH M6V+4J4DIG83/"-Q@1NBD9N;&:,5-Z%5JU%(YZ)BVHRH)"/\<)U;!(3F#B&L@L)!SV,(4/D%A>96 MR\HO[!4L[0A=8KQXH&NR\YSH<&VRY)<]EM =3G=^S,Y].L7 "%M1A4G/K 95 M8E!H;K6L$L/^\54[5M,VQ[P&J^/G/&S5#_:KGQJC6YSX_&"=FW.* 1*VR@I' M/5,95)]!H;G5LOH,^\=9[:@\>E$F>TW7[,SMTYQ72)6#U%>E[C$5#I!87F5LM*+P*PRB.':[H#+OM,W%]/6*%#_4*G MQN46QSL_6.[5'8WU*=0I-1J\DHP&J/OKS::S YOMJC M5@31-JL]TA@4Z.@("LW-TPHJVO-JCX**+R@TMUI6?%& U1X]7-D=D-9GXL9F MI0YML] CK4]X?KC.C3G%T(A9+<5Z7N@Q4/D%A>96R\HO!K#08X>+NN Q4=4&AN=6RJHL!K/'8X8+N@,L^ M$S>VVB_&VRSP2,L3GA^L8''0+48%)I[\X?58A' J_$B#QD M]IKL8QO6[@#,;[_\S.5];.J=B)7Q"])+9S]]UWW\5W M_8V0SVJ)J.&E8%P-O*76Y9WOJVR)!5$WHD1NOLR%+(@V6[GP52F1Y,ZI8'X8 M!(E?$,J]M._.QC+MBY5FE.-8@EH5!9%_ALC$9N"UO=W!A"Z6VA[X:;\D"YRB M?BK'TNS\&B6G!7)%!0>)\X%WW[X;=:V],_A.<:/VUF SF0GQ;#=?\H$76$+( M,-,6@9C7&D?(F 4R-'YO,;TZI'7<7^_0/[G<32XSHG DV ^:Z^7 ZWF0XYRL MF)Z(S6?)E@RCUA4]DFH0?92FE1;)T-@X+RZDU>MCKL.1B<9H=PZQ > M.L0G'**M0^02K9BYM!Z()FE?B@U(:VW0[,)IX[Q--I3;*DZU-%^I\=/I/3-U M)#Q#,'\$C"3F5,-7H10JN'Q 32B[@FMXFC[ Y<457 #E\&TI5HKP7/5];2A8 M(#_;AAM6X<(3X6[A47"]5/"1YYB_]O<-]9I_N.,_#,\"3K&\@2AH01B$80.? MT=O=VV?H1+6>N<,*Y1J]]/V[=A)\:-+B/X&]4B:NE8G/H:=#PJP$+9CA M@G).^0+$'$J45.1-B5=HB4.SK6B=QF%\V_?7^PDU&451;?2*:*Q41Q$W6:>2]>%#\Z'9DQ54^4?3#7C'HDT M_[("AG,#&=QTC6RRFAO51HO2M=Z9T*:1N^72C%J4UL!\GPNA=QL;H![>Z5]0 M2P,$% @ 68%;5?FE,A2S P 21$ !D !X;"]W;W)K&ULM5AACZ,V$/TK%CU5=]+>@B% V":1>ME67>GN&MWVV@]5/WC) M9&,=8,XVR6U_?<>0A9#UTJ9BOR089A[O#<]FS&POY!>U!=#D6YX5:NYLM2ZO M7%>E6\B9NA0E%'AE(V3.- [EO:M*"6Q=)^69ZWM>Y.:,%\YB5I];R<5,5#KC M!:PD456>,_GP#C*QGSO4>3SQB=]OM3GA+F8ENX=;T)_+E<21VZ*L>0Z%XJ(@ M$C9SYT=ZM:2Q2:@C?N>P5T?'Q$BY$^*+&=RLYXYG&$$&J380#/]VL(0L,TC( MX^L!U&GO:1*/CQ_1?Z[%HY@[IF ILC_X6F_GSM0A:]BP*M.?Q/X7. @*#5XJ M,E7_DGT3&P4.22NE17Y(1@8Y+YI_]NU0B*,$.GDFP3\D^/\U(3@D!+70AEDM MZYIIMIA)L2?21".:.:AK4V>C&EZ8QWBK)5[EF*<7*XF.D/J!L&)-?OI:\1*? MD;X@']%!KZ]!,YZI-^0M^7Q[35Z_>D->$5Z0W[:B4IB@9JY&#@;)30_W>]?< MSW_F?K=07I+ NR"^Y_N6].5P^C6DF$[K=-I/=U%Y*]]OY?LU7O O\B_(*F.% M[E>!_/D>P\F-AES]99/:8$_LV&8"7JF2I3!W<(8ID#MP%M]_1R/O!YOPD"5"AM$]Z@136:62AV"TJ]:9C,W-VQ)$N81Y,H;L-Z9"@U!7._[3*JXQI6..TQ9JDG#4+ TI@N9":_UV?L/%O;A >$7L;QTD0 MG?"WA>'R&-GYARW_\'\5NP!KK<,G) (_\8,3JI8HFGC4SC1JF4:#3&\*#;)@ M6?: )=[ADE]BL978Z#V38.,Z"'?NA!@)K*<\;I7'+[@NQ&.6822P7AFF;1FF MHZX+TR[%[;V@10_@(U5B++1^*8YZ&#JJ30]P_34U]+T3GUK"_ 077[M1:==ST,%W M.;[ L._%Y*L0/#UMY+C=IAC(76E]WUX2<,.=C!GEV(DM'XIN@Z& M#K" P# MGOVT1D+KR^^Z(!J]I'%';8K&0NN7HFN+Z&"[<;YQ8\M.@8;QJ7$M85X2^R?& M=8_VN>8CPP3Q3]02P,$% @ 68%;58D)T.,R P L @ !D !X;"]W M;W)K&ULK5;;UTTIDD8,"$IC8SMM-+ M'M+)Q+T\=/H@P]IH(B0J"3OY^ZZ$0QR'N'WH"^BR>W3.:MEEM)'J5I< AMQ5 M7.BQ5QI3G_N^SDNHJ#Z5-0C<64I548-3M?)UK8 6SJGB?A@$B5]1)KQLY-:N M53:2C>%,P+4BNJDJJNZGP.5F[ V\AX4;MBJ-7?"S44U7, ?SK;Y6./,[E()5 M(#23@BA8CKW)X'R66GMG\)W!1N^,B56RD/+63BZ+L1=80L A-Q:!XFL-,^#< M B&-WUM,KSO2.NZ.'] _.NVH94$US"3_P0I3CKW4(P4L:H<7+ M)=?N239;V\ C>:.-K+;.R*!BHGW3NVT<=AP0I]\AW#J$^P[Q"P[1UB%R0EMF M3M8%-30;*;DAREHCFAVXV#AO5,.$O<6Y4;C+T,]DGZ0L-HQS0D5!+H6A8L46 M',A$:S#ZF'S!1#HAHL%EN22S$FU $R;]+?[^'DC M\8FINJ&J^-47J!8H[@>R7_^YKFD.8P\_;PUJ#5[VYM4@"=[WJ?Q/8$\TQYWF M^!!Z-J6#.$J2:.2O=R7UF$5Q M.GPT>T)VV)$='B0[*0KF"M!2R8HL&HW[6F,Y^MTP[7;Z*+>8PQTN83P<)GN, MGUL%_623CFQRD"RF#]8Q@85$*1#Y/3&*"LWI2S239P1.PF@PV*/98Q7'@WZF M9QW3LX-,;Z "JAN%+RPB+K:UDFMFNP7EI&Y47F*UQCCGMLS8'*&NX/3).#L0 MQU;")?@5JY MGJB)"U-;!KO5KNU.7+?96Y]B.VZ[YR-,V\NOJ,(/4Q,.2X0,3L\P<*KMC^W$ MR-JUF(4TV+#74IJ'B3V@^TG)_@!02P,$% @ 68%;58:$ M#[3=! E1H !D !X;"]W;W)K&ULM5EK;]LV M%/TKA%8,+=!$(O7.; ..M;8!VB%(VO7#L ^TS-A")=$EJ;C>KQ_UL&1;$FNU MZI=8CWL/>2[I>T[,R8ZR+WQ#B #?DCCE4VTCQ/9&UWFX(0GFUW1+4OGFB;($ M"WG+UCK?,H)715(2Z\@P'#W!4:K-)L6S>S:;T$S$44KN&>!9DF"VOR4QW4TU MJ!T>/$3KC<@?Z+/)%J_)(Q&?MO=,WNDURBI*2,HCF@)&GJ;:'-X$".4)1<3? M$=GQHVN04UE2^B6_N5M--2.?$8E)*'((+#^>R8+$<8XDY_&U M7J,?/$X^L# M^IN"O"2SQ)PL:/PY6HG-5/,TL")/.(O% ]V](Q4A.\<+: M31C= 99'2[3\HBAFD2WI1VF^[H^"R;>1S!.SMY2N=E$< YRNP%TJ<+J.EC$! M<\Z)X*_!7W+K7;5?@) V0@6#7A-3I 0EE.NQ-#RX?'2G8F/52FP6>V8/W)DHC0:[>R^]9QU*#?][+ M>' G2,+_[5J\$MSJ!L_;TPW?XI!,-=E_.&'/1)O]_AMTC#^Z"C".058WMF?9[YC>\Y$?SZN M2SL*0L>%3=@)8[MF;"L9S\,P2[(8"[F+)%TFHO]PWL*[2"N1AI(NP>PC.E>F MXQC6&>N.,,OVH-W-VJE9.TK64F2DA*1@D3%&TG //C*<\KB7N1)M*'.G30F: MOGU&O"O*]KMINS5M5TE;MO\N=LJDH>SV2I%LUO@/V!#,.+)"4RH0LL,+[ M+G%<7(;D'I"^1UX3ABK<897$/8ZG .1*YQ MUN&JL),6YYM.CW!!U+!&HPFV&FHP<=26).1[SKE1Z8HS;0^9/=0;QPN5WF^P M:JOA!M,W+]+MSK ^X8:-,85J9]HCW>JLP13;'M,T#,,_IVBU*%JFZ?6M;V-% MH=J+_KQ^?V> RV5W<2'2!58@4$/]:)MLK"Y4>]UY^#6+F*RJ(.$FI3%=[SM+ M-ZK''14M& OMM(*-:X;N+Y7P4?WUJ&C!6&BGE6T,.U3[X,LE?"0;7-70:_$^;[?\^\9:KPP M4CK"P0*NAAM*OD([9G5NVI0AIZ0;FXK4-K5'N=59@[FU32GR;/=\8;O"Y([N M<2>H,:5(;4I_7KF_,T"EMYW4+\H$_D&IH=>KU&JHH=U0/_H=/R%L79R'";HM3@245 M@B;%Y8;@%6%Y@'S_1*DXW.0#U"=1L_\!4$L#!!0 ( %F!6U5XS*0&^@( M .<) 9 >&PO=V]R:W-H965T,YEJK+E[98<<"I M$>74]ARG;^>8%%8\-,]N>3QDI:2D@%N.1)GGF/^Z ,HV(\NUGAY,R3*3^H$= M#U=X"3.0]ZM;KGIVXY*2' I!6($X+$;6V#V_'.AX$_"%P$9LM9'.9,[8@^[< MI"/+T4! (9': :N_-5P"I=I(8?RL/:UF2BW<;C^Y7YO<52YS+."2T:\DE=G( MBBR4P@*75$[9YB/4^03:+V%4F%^TJ6,="R6ED"ROQ8H@)T7UCQ_K.FP)W-X+ M J\6>/\J\&N!;Q*MR$Q:$RQQ/.1L@[B.5FZZ86ICU"H;4NA5G$FN1HG2R?@# M8^F&4(IPD:*;0N)B2>84T%@(D.(4?58OTCMT)211)8,479>RY&JX*$I,T3AG M7)+?V*S(U:-ZM02@*5 3*MF^(9J5\Q]J!?7@,_'Q!"0F]$1-=C^;H..C$W2$ M2('N,E8*Q2:&ME3I:F@[J5.[J%+S7DAM!JLSY#NGR',\KT5^V2V?0*+DKI&[ MS^6V*G)3::^IM&?\_(,JC29$))0)7=QOX[F07+W@W]N2KF;IM<^B/_ISL<() MC"SU50O@:[#BMV_Q90?RF('Z7>SP%O\T_M \J A#UXC M[[61!_ODKN>&.^2=W@>2]QOR_FOD01MYOX7!Y&%#'KY&WF\C#_?) M'2<,=L@[O0\DCQKRJ)/\+@-U2UA(X&W\T1Z_YT61L\/?.<.!_(.&?]#)KPZR M-O#!WOX2.F%O=X/9CPJB(/K[251$]M8QK*] GS!?DD(@"@NE<\Y"51]>72NJ MCF0KH\05C\JFC#_OF;A?_ 5!+ P04 " !9@5M5 MG<%TCP,# #%"0 &0 'AL+W=O[AE_$&D !(]YAD5(RN5LAC8MHA3R+&X9 50-;-D/,=2=?G* M%@4'G!A2GMF>XX1VC@FUHJ$9N^'1D*UE1BC<<"36>8[Y[S%D;#NR7&LW<$M6 MJ=0#=C0L\ KF(.^*&ZYZ=JV2D!RH((PB#LN1=>4.9J'&&\ ]@:W8:R/M9,'8 M@^Y\3D:6HQ."#&*I%;#Z;& "6::%5!J_*DVK#JF)^^V=^D?C77E98 $3EGTG MB4Q'5L]""2SQ.I.W;/L)*C\=K1>S3)A?M*VPCH7BM9 LK\@J@YS0\HL?JSKL M$91..\&K"%Z3$#Q!\"N"_]P(044(GANA4Q&,=;OT;@HWQ1)'0\ZVB&NT4M,- M4WW#5O4B5.^3N>1JEBB>C"8LSXE4"R\%PC1!$T8EH2N@,0&!WJM^7C!JIMD2 M?0&U)FCVJ':I^IY/06*272C8W7R*SL\NT!DB%'U+V5HH,3&TI4I1![+C*IUQ MF8[W1#H^NE8)I +-: ))"W]ZFM\_P;=5:>KZ>+OZC+V3@G,H+I'OO$.>XWDM M^4R>3W?;[/Q?]-F+HQ\4PZ\WBV_T_!=MEBD1<<;$F@/Z<;40DJM#X&?;%BB# M!.U!],$X$ 6.862IDT\ WX 5O7WCALZ'MOJ_IMCT-<5FKR1VL%)!O5+!*?7H M:P$US_$3(\QGM?K'H)F M+2#?Z=>@ Z.=VFCGI-%[S E>9/ /GZ5(9R]T/VQXF+1@NF'#YS'&"UVOX;,- MU _:?8:US_"DS_+DA?+D;7,8'A77[7;@X)>OP&:'8,ZCN,W M/-I[]U(.?&4>!$(MTIK*\M2I1^LWQY6Y:AOC8W$"K4MEBJ4<]E5R\'+1T/9D:PPM^*"277'FF:JWEG -4#-+QF3NXX.4+_< MHC]02P,$% @ 68%;5=\2+ _< @ _@8 !D !X;"]W;W)K&ULK57O3]LP$/U73AF:F#1(FK2,LC82+4-#&AJB8_OL)I?& MPK$SVVG9?[^STV:EE&X?]B7QC[OG]]XYE]%*Z4=3(EIXJH0TXZ"TMKX(0Y.5 M6#%SJFJ4M%,H73%+4[T(3:V1Y3ZI$F$<16=AQ;@,TI%?N]/I2#56<(EW&DQ3 M54S_FJ!0JW'0"S8+]WQ16K<0IJ.:+7"&]J&^TS0+.Y2<5R@-5Q(T%N/@LGKS[C6XPEF2AC_A-4Z-@H@:XQ5 MU3J9&%13:=JJKBELIB#3"9PU1)R^4"9<;1P G,Z-KDC4!0 M!.T GZ6J2>+SDM9HX:VO&9\I_ GEG4[RSJ'T)/O]:HF;NHD#FS"KJ'!@JM*E#=CG=D MKPTM]IG'=FUNF2;)<#@*E]OR7@;%_?/S+N@9[4%'>W"0MF^2)ZHX::A6S!BD MNJHY?1^RK2L^926CK\\7?D?)WVH[>,%WF/1W-+V,B78$A5NMI$*]\!W60.;N M8/M!=:M=$[_TO6MG?4+-O>W%?V#:/\,MTPLN#:DJ"#(Z_4"L=-MMVXE5M6]8 M>EO4$L#!!0 ( %F!6U7)!H2K@0( M %$& 9 >&PO=V]R:W-H965T-O<3ZN.?H MGB/=FVRGS9VM$!W<2Z'L+*JXPFL#MI&2F?TE"KV;1>/H<>&&;RKG%^(\J]D& ME^B^U]>&9G'/4G*)RG*MP.!Z%EV,S^=3'Q\"?G#"4KK>_\Y*J<18E/ M" 46SC,P^FQQCD)X(DKC=\<9]4=ZX.'XD?UST$Y:5LSB7(M;7KIJ%IU&4.*: M-<+=Z-T7[/0<>[Y""QM^8=?%)A$4C75:=F#*0'+5?ME]Y\,!(#U^!I!V@/2U M@$D'F 2A;69!UH(YEF=&[\#X:&+S@^!-0),:KOPM+IVA74XXE\^UE-S1M3@+ M3)4PU\IQM4%5<+1P!$MZ-F4C$/0:EDU="_2Q3, E$TP5",OPUJY4^Z#\S=R@ M8 Y+/B?18[2MD?'!==>I=M>NDSZ2VQ'L$D^0!IDJ8#\/G+ M\ 46!!\'^/@I/":C>K?2WJTT\$W^R:T%MX70MC$(/R]6UAEZH[^&-+>'3(>WH4JP/&);-%3T M5->^V3&0@J2#*XLC%,HV=X.R7\=TUG/=#K ]$3[ MM-<^_3OM)5V_;I0#0\]_2'3+=Q;X?'?=YLDHF6;Q]E#/'X+:5..#@O?-]ALS M&ZXLF;XF6#+Z2,W#M VLG3A=AQZPTHXZ2AA6U//1^ #:7VOM'B>^K?3_(OD# M4$L#!!0 ( %F!6U6. 0:#[P( "D( 9 >&PO=V]R:W-H965TP[X.-,M%T^R %#HN:1,SIQ"J6KBNC(M MH,3R@E? ]).Y)2;,2:;-O85(IKQ6E#!8""3K MLL3BY0HHW\XV09"/2E H&-%MV"+I-$I]>@,*%GZ 01AAX*7DM-D%-7 M:=^&[J:=QZO68W# XQ*J"S3P/J# "P+TN+Q&IR=G?X9Q==I][D&?>]#$'?Q7 M[M=$II1+D_'WRY540G] /VSF6\C0#C&[:B(KG,+,T=M&@MB D[Q_YT?>QR,I M#/H4!L>B)_=@=IXIOWX_ICPV@VV(J EA=NDF\4,_G+H;"WC8@X='P9HUL+%: M5;C#&L8CW\X*>U;X%FMH8X7[K.%H:&=%/2MZBQ7:6-$^RXMC.VO4LT9OL2(; M:[3'&HPBS\Z*>U9\E/50@&[:N0)A(\9[1#^((CMQW!/'QXE<88KRMF>L!9<2 M55W'L%D8[UL8CP^]3=_[W=Z\HRYN0$4H4;K36,WX^WLV'OA_?P3N3N,WA^@=%FO"I&;D M6N==C'0VHCV7VHGB57,6K+C2)TLS+/19#L(LT,]SSM7KQ!PO_;^#Y!=02P,$ M% @ 68%;50+P>>$7 @ 300 !D !X;"]W;W)K&ULG53+;MLP$/P5@@V*!&A-64Z0[MCKK' JPA2DJ5),F6*"TV++.XM;9&9UDNA86F):Y7B]L\]2'/( MZ9@>-U9B5_NPP8JLX3M8@W]JEA8C-K!40H%VPFAB89O3N_'L?A+R8\)W 0=W MLB;!R<:8YQ \5#E-@B"04/K P/&UASE(&8A0QN^>DPXE _!T?63_$KVCEPUW M,#?RAZA\G=-/E%2PY:WT*W/X"KV?F\!7&NGBDQRZW.D-)67KO%$]&!4HH;LW M?^GOX020IJ\ TAZ01MU=H:ARP3TO,FL.Q(9L9 N+:#6B49S0X:.LO<53@3A? MS(U2PN,M>T>XKLC<:"_T#G0IP)&/Y!NWEH>+(Y<+\%S(*W)!A":/0DJ\592=_)>3 MA7"E-*ZU0'[>;9RWV Z_SHGOBER?+Q)&9.8:7D).<08;O FR8VS,9X;+^XK''>P88$/-\:XX]!Z,'A#U+\ M!5!+ P04 " !9@5M57!",K^(# "M$P &0 'AL+W=OPWL.R>LC3K>4/?&0$ &>DSCE,RL4 M(KNT;>Z'),'\@F8DE4]6E"58R"9;VSQC! @>7R.RY8UKH*@\4OJD&I^#F>6HC$A,?*$@L/S9D 6) M8X4D\_A6@EK5F"JP>;U#_Z3)2S*/F),%C?^, A'.K(D% K+">2SNZ?974A(: M*CR?QEQ_@VW9U[& GW-!DS)89I!$:?&+GTLA&@$2ISL E0%H/V#P0H!;!KB: M:)&9IG6#!9Y/&=T"IGI+-'6AM='1DDV4JFE<"B:?1C).S)>"^D\AC0/"^,_@ M]EL>B>_@ UB&F!%P3[*<^:%4"=S%. 7O;HC 4 '(0Z\EF8PV^(+\.A#H>&=-Q*8%?CN2^E(S=>D,<$_+X"3;%W6O_U MFPP GP5)^-]=ZA7H@VYTM89],K/D+N:$;8@U?_L3'#D?NZCW!-828E ) M,3"ASXLE]17'>7-A!5V<"Z"1!E)U:#.':.*.QU-[TV1SV&TR'#5ZM=(<5FD. MC6DN:)+(\J*G"OPK5P'T.G8#HVN&DZ[C'SE=/8"TA1I40H[,NW%&?0O0$ MUA)B7 DQ?O7"O;*&BT)L<4JA*I26C@>1[:)W0.+P1K,P3-;NA_ M%JL2O4ERLD_0F,"I!&L;!8_T40B5C5>6JEZ-5%]H;3%J*P7/ZZ5@KV:J+[2V M&+6=@F?R4_!UALH\_*GT:DL%>_-4L,-4#0Y><\SCGK MLZ@K?0)CU]V+@ZPOF*VCE(.8K&2HJ1 TT9&PO=V]R:W-H965TE85F#F."V, M<*1LMS04C$S M6Y8XS:%@*2D0A=78F-C#>2#]E<./%+9L;XQD)4M"'N3D:SPV+)D09!!QR8#% M:P/7D&622*3QI^$TVI 2N#_>L7]6M8M:EIC!-%O4;/S8Z[ $$CQ[@- "G"_!> +@- MP'UM!*\!>*^-X#< 5;I9UZZ$FV&.PQ$E6T2EMV"3 Z6^0@N]TD*NDP6GXFLJ M<#Q<U\!ARG&;L07O>+ M&3H_NT!GR$0LP1082@MT7Z2<70JC&']/2,5P$;.1R46V,J89-9E-Z\R<%S)S MT0TI>,+0O(@AUN!GI_&#$WA3J-1*Y>RDFCHG"1=0]I!K72+'OA]NZ MPMR>9O1';0!Z_M@W>*/?Q6Y4N@B*QV&Y"V>S9& MYV('UN8+77MJ9E\QR_-D$]IB;;G>R-SL"W_LYCG.8'#H-3OV]+R@(XO&S;)Z?;^CB[EWM.5 U^I.P41WJX+7 M?ZO6VEY;)NJT[MBG]O#:UMAGXII3WTJ>Z>L[T@VFZ[1@*(.5""5S,Q"M[QWU MA)-2':Q+PL4QK8:)N*H!E0[B^XH0OIO( .WE+_P+4$L#!!0 ( %J!6U6X M61FN& 8 ,HO 9 >&PO=V]R:W-H965T#,=I)VVA\_VU ( M+7&;[I':%PTX/!^,OX^-_8W'.\9_B!6E$NZS-!>7G964ZXMN5T0KFA%QRM8T M5]\L&,^(5*=\V15K3DEL@K*TZSG.L)N1).],QJ9LRB=CMI%IDM,I!['),L(? MKFG*=I<=M_-8\#59KJ0NZ$[&:[*D,RKOUE.NSKH5)4XRFHN$Y<#IXK)SY5Z$ M7E\'F"N^)70G]HY!/\J^K _>-'>F@>7CW,G AZP]+O22Q7EYWS#L1T03:I_,IVO]+R@0::%[%4F/^P M*Z]U.A!MA&19&:QJD"5Y\4GNRX;8"U"<]@"O#/">!O0/!/3*@-YK _IE0/^U M 8,R8/ DP!L>"!B6 4/3]D5CF9;VB223,6<[X/IJ1=,'1BX3K1HXR75FS217 MWR8J3DYFDD4_/E\K;6*X89E*6$&,Y)_A=\(YT;K#1Y]*DJ2?5.'=S(>/'S[! M!^B"6!%.!20YW.6)%">J4!W?)FFJ &+G#+U2-8[WV#C7GA5X2_@I]-P3\!S/:ZG/S>O#W99P__7A M3DMX\.IP=]36F/;P&5VK<*?MV1MMV:L2K6=XO4,\G2R?Y\\3[4IE6;ZD:K22 M,'^ _>NFY,$47^T(C^'/WQ02ODB:B;_:DJNX?[_]_GJ$OA!K$M'+CAJ"!>5; MVIG\_),[='YI4Q83YF/" DQ8B 1K9$2_RHB^C5YDA "R54,+F:<4U'L2EBH9 M)'Q4XT@QNGQJ4]K*/59I3)B/"0LP86$!&QB8GFYL)VY/33_4W[B[;5%Q4*DX ML*IXEW,:L66>_*,ZK#!ODZ+S1ON=G-[K8]HFIA5_K)B8,!\3%F#"P@+F.GMJ M]KU3MUW)8:7D\/\K>6*DC*0JE@SF%.J8$]B9>9SZBFPI5_-26%.>L+8W^;6U M*L>JC@GS,6$!)BRTR^?! R5U[I>_[.<[)SS(S A/F8L 3%B+! M&ADQJC)B9.WQ*@O4Z%&,_E#B8S,Q6VSDAE-(A-B0/*(O3=&LMSE6>$R8CPD+ M,&'AZ/D4[=PR0W.=>HWOV&?:1DZVE@?7Y=;X8^5"I?FHM "5%F+1FKKN>3?N M.X_?906P$@.3YJ/2 E1:B$5K)H97)X9G[?!_;*20)(^3? GJ0\W9*8\285;9 MY3#PT@!NO\/1RF/2?%1:@$H+2]K^*#ZP#>*U?^9:S9C)]Z>+JU)4M4+;VP5R[$?9,64[U M;T*Z\T9J*<=))## ]V\MM=)=U"KB M6R/]-T<&;XX,[9%O%:)VMUR[O=4^!,._<$ONDVR3M4J#:F6ATGQ46H!*"[%H MS9T;M>?E.>\\&'NHIADJS4>E!:BT$(O63(S:-/.LWLOCM@-M9)?3:8L+4K(: MGFQS-5^JA^ILH=("5%J(16NJ5SM;GMW9FL[N3N!K\>_JQ)A;_NS./H+;D4=W M5%0K"Y46H-)"+%I3ZMKP\MY[QYB':H2ATGQ46H!*"[%HS<2H_3+/[LSHZ;1V M3F0YH0::OSR0HYIDJ#0?E1:@TD*O9=]8FYW=W=N"G%&^-)O%!41LD\MBPVU5 M6FU(OS+;L)^47[L70;&MO,84N]QO"5\FN8"4+A32.3U3E>+%QO'B1+*UV>@\ M9U*RS!RN*(DIUQ>H[Q>,R<<3?8-J^_[D/U!+ P04 " !:@5M59VCD\G & M !M-0 &0 'AL+W=O=.082B]L*K( 1+]N'81\8F[&%Z.%)3-+NUX]ZQ#(I6HV].\!? M$DL^]Y"7ESK6DB/+$\/I9,O78B'D[7:>JZ/ACF45)2(MHBQ%N;B_'%SA"T:] M,J!"_!Z)YV+O,RI3N.%F&7Q']%*;BX'HP%:B7O^&,N;[/D7T214=7"9Q47U M%STW6&> EH^%S)(F6/4@B=+Z/__:#,1>@.*Q!Y F@)@![H$ V@30U[;@-@'N M:UOPFH J]6&=>S5P(9=\.LFS9Y27:,56?JA&OXI6XQ6EY419R%Q]&ZDX.5W( M;/GP\5H-]0K-LD3-OX)7%?R(#G[%OI:?!7H7"LFC^+W"WBY"].[->_0&12GZ M;9,]%CQ=%9.A5%TL&QHNF^Y=6?$59[S="V4@$AT]PWMX^;\6W7ZZIGGJP]ZV"PK)/KS5]4*^BQ%4OQE MFS!UEUQ[ETH=O2BV?"DN!THH"Y$_B<'T[0_8=WZT50N2+(0D8T!D6EW=75W= M/O9&!.IZ+?<+).HKW5:6FM&O&,M?HZ=I,/:=R?!I?[B[('_DCG50V 41SZ>^ MCF(6%"8!W:&TQ+U=XEYOXK=I+I;9.HW^49D7)XQ"3>_M]F$LFTY>-;?@-[P8R]I2+(0DHP!D6DU"'8U",Y/J@/( MND*2A9!D#(A,J^MH5]<1N%2/NHKA8T.B+)BQ(<%A%X-=QR!B%I#GC^TR/=XE M/>Y->KZXM>I(;]2Q\PV2+(0D8T!DVM!CIS4(SODI2=,GH-*"LH6@; R*3:_N MGOW#X'K24.K7N&LJB@U%76)HB@7E$]O9!LH6@; R*32] ZR?Q&1I*#.HH0=E"4#8&Q:97MW65&-Y6-I3:C4A /5-; M+"B'FL;2@L*NZP>FN%A@V L.J4OK+7&_N;Q97!7H+4^V/Z+PD-! .L,9*%L( MRL:@V/1:M(X4^VO/!C0WD=&2F M"Z)D9(J,#>0=D)C6#.)^-\@6\[DUN=ZPHV<>)%L(RL:@V/0"M,84C\]05T!] M+RA;",K&H-CT5S^M]26]YNLD76DH-:L2&+<<,PN(!N;C%@M(96:H#[.A'#JR M*PMI?2'I]X6N@]\]O*^?B:.$R^7&FFPOR;$S$90M!&5C4&QZ.5JG2LCYZ0P! MM<&@;"$H&X-BTZO;VF#2:\1.TQEJ>23BFSK3!;FCP-29+@A[)HK94*YSP"21 MUB.2?H]83<3L'N7B2:2/PNJ2^BF.GH>0;"$H&X-BTXO1.E;BG:'*@'I@4+80 ME(U!L>G5;3TP><5KV6-5QN]<]02['9GIHK#?>7UD0?FN>6O$+"AW[!YP2J2U MB.0[%I''HD \7:F;F?Q!R"A=6_,%?84)RA:"LC$H-KT>K7,EHS.4&E!;#,H6 M@K(Q*#:]NJTM)OTO;$^2FG%71$:N^>37AO*I:TI-%^6-S*?(S()R1YYKEQK: MND;:[QIOU(#R?+FIU&:E[FOB;%O.6^OB-M#WG*!L(2@;@V+3B]+Z68K/3V\H MJ#T&90M!V1@4FU[=UA[3_A>YI^A-0ZF_GS9O6F8V%!X;2A):4"[QS#5Y%A0E MF!S0F[U%N?WN\6>1BIS'E=SP51*E42%S7JZ_MZ8-NYX6=D$M[(K:_^/M)VV= M+77/4'% K3(H6PC*QJ#8].JV5IGVO]P]27%J2GVE\]X2YF;0+2A*S#L<"VKL M!.:Z&0MJ1'Q3<89[VT<2D:^K?3N%2NLQE?7F@-W9W=Z@JVI'C''^&E_,L.5\ MB"]8O?.GI:\W(GWA^3I*"Q2+>]64\RE0'<[KO3WU@:5NTS*+*D^;@1? MB;P$J._OLTR^')0-['983?\%4$L#!!0 ( %J!6U5-1LR2:@, )T+ 9 M >&PO=V]R:W-H965TS4-K K]8^O[820'@'M4E7E@?AK9GXS MML("I[+@LFILU&JNG-=F6VP)'+ *V1Z9L5%293NBK4K*X$DMT)E MX0:>%[DEH(8("\R444'T9X?W6!1&D^;XLU'JM#:-8+=]T/[).J^=61*)][SX0G.UF3IC M!W)/9T.]=^ MY7#/2[W9DMAPW8*=@E\KVYV9Z%'U N\^H"*T>#]QE39OE+A98VI>FPK.F$K@ M,V=J(^$CRS'_I[RKL5OVX, ^#RXJ?,1J $/O!@(O".![<$%NB$#9?"Y8&+;1 M&5H+PW,6C**^Z,R$(&R-^G@J6+Y =]V"O-CAV9Z(_*:)G]2-K9**L)RR-7Q] MX$4!^EB9-7_TA;+F"ONYS%6]DQ7)<.KHNRA1[-!)?_C.C[P?+W@=MEZ'E[2G M'=(;6.*:,F:@^0HJ%)3G\(ZR)L;OX:_>:-=.U&9&UHQ)#[LTBL?1R)NXNQZ\ M48LWNHCWDPZ]PM=3C$XHPL0;C_HAHA8BN@CQ\1E%1N4;,*(3C-M8G]WHG_\'U]KUCSO?^_07/=8HB M0IJA>M?,]AV3;&_^K\V.NU0+]#IN(1N>DHV30> EG=\9RN-#X[_A MI3E-&]=@AR='<.0/DF]WVNU43"6*M:T+)61\RU1=/+6C;>TYJRNNX_*ZO?YY&^ @ I08 !D !X;"]W;W)K&UL?55M;]HP$/XKITR:6JF0$ JT'42"=MTJM1HJ6OMAV@>3 M7, BB3/;0/GW.]LAHUJ:+XE?[GFY8 M,]45)1:TDPJ9,TU3N?)5*9$E%I1G?A@$0S]GO/"BL5V;RV@LMCKC! M,WF882;V$Z_G'1>>^6JMS8(?C4NVP@7JG^58Z&X*$!B.O&FO9O9 MR,3;@!>.>W4R!I/)4HB-F3PD$R\PAC##6!L&1J\=WF*6&2*R\:?B]&I) SP= M']GO;>Z4RY(IO!79*T_T>N)=>9!@RK:9?A;[[UCE,S!\L L *$UK<3LB[OF&;16(H]2!--;&9@4[5H,L<+ M25P*W(Z:\5LN3KP:C.B]>D.)1T0?).LT$ R"/>, M2WAAV19!I/"C-!#E C"Y@*FB0ZX6S^Y0,YZ=$Z,5 ^$VQKXF_\:%'U=>9\YK M^('7:W@2A5XK^%HDF+S'^Y1WG7QX3'X6MA(NL.Q"/[B , C#%KY^7M_ MQ+=F$CO+_XLYE529%=+'K&%Y@-.X.3O8Y>F>R01^/1(E/&C,U>^F CG]RV9] MUYK!5\X[O>()% @>.6=*DZ_#7I[+-DJ-:B(-4BZ MCDW:HZ:<[6?^SH!_TCIRE"O;(!7$8EMHUT7JU;H'3UWK^1?N&O@3DRM.%S[# ME*!!=T1EEZXINHD6I6U$2Z&IK=GAFOXC*$T [:="Z./$"-1_IN@O4$L#!!0 M ( %J!6U5SYZ'V4 , "$+ 9 >&PO=V]R:W-H965T2/-S&^T9*P KIC@2,)\[%W@\PGN6P&W MXY[!1NV,D77E08A'._F2C;W $D$.,VU54/-:PR7DN=5D.'[42KW&IA7<'3]I MOW;.&V<>J()+D7]GF5Z.O<1#&W8O,9:H<&5M],Y,H]T:;>&WAHME): M%+6P(2@8K][T9QV('8&0'! @M0!QW)4A1WE%-4U'4FR0M+N--CMPKCII \>X M_2M3+-0XU7Y,FK">E4 M.(6RA\+@%)& $'2$?*265(*J7QT6PB9NH;,0'K#PKLW+2J3?+F+SZUR5= 9C MSR20 KD&+WW_#D?!APZ@?@/4[]*>?EMII44@ST*DO3C M<-A.$34442?%/2@+80_J3!2%.>;*GG_$E%J] B[:@SLC41(%<3M=W-#%G72F MS,R!O29*<0L(QKC?SI$T',G+CQ*86+W^$"5[8-$PQG'2#C9LP(:=2??=U5@3 MGXLU2'-G('>JD"E\@*XID^B>YBM QT>^(SMI(QO^AQS%P;;:!O^>I9G((<+DZB7'#@(F&S! MR+]F\EMXR3YO%/:" PF%M[<%[JS]SU+[+63A/MG0!!(?(-M>&_@5]\9^LK\% MM;]W%G$0]O#SVNWO="T%R(7KS93YG2NNJP:F66WZOXNJZ]ENKYK'KU2:5%(H MA[D1#7JQJ3RRZL>JB1:EZX$>A#8=E1LN30\+TFXPW^="Z*>)-=!TQ>D?4$L# M!!0 ( %J!6U6DY.U+5 , H+ 9 >&PO=V]R:W-H965T-/8FMVEZS MNV[(OS][<8V3N#D%FH?$NSO?-S/?3-8SVE%VQU-$ 3^+O.1C*Q6BNK5M'J=8 M$'Y-*RSER8:R@@BY9%N;5PQ)HD%%;GN.$]H%R4IK,M)[2S89T5KD68E+!KPN M"L+V,\SI;FRYUL/&IVR;"K5A3T85V>(*Q9=JR>3*;EF2K,"29[0$AINQ-75O MHU#9:X.O&>YXYQE4)FM*[]3B0S*V'!40YA@+Q4#DSSW.,<\5D0SC1\-IM2X5 ML/O\P/Y.YRYS61..:7_&QTZ D3S_ :P#>,6#P",!O /Y3/0P:P."I'H(&H%.W M3>Y:N 419#)B= =,64LV]:#5UVBI5U:J/ED))D\SB1.3E:#QW=5,2IW G!:R M_3C1%;R"E6D=H!N(5LLE3%5-,[&'BP4*DN67TB8JJISN$4'SP+)F<2JY8)D3 M1?%EM8"+EY?P$K(2/J>TYJ1,^,@6,G+EWXZ;*& M_.(\_LT9O"T5:V7S'F2;>6<)5UA=@^^\!L_QO)YXYD^'NWWI_)WWZ(^]'XCA MMSWD:S[_,;Z4,+Q:G_;0E#%2;E%>*P+6>^C:+;T]WA"7P[1])"1\$%OQ[ M7W<8_X-^_^HJO>45B7%LR;N2([M':_+JA1LZ;_M*\YQDB^\H]CF MG&(FG*";Q&#H'DEV:N0&7GBDV:F1?Q.X1U91C[^;\";H5RUL50O/JB:5*J1& M7+\MFB8V>6]J4F +#D37!IID%A;7D=AB8M M0%#35R5(W,F5%M3B5*]#4VJ@F0<)'L91- H%93)()GYMH9.)VEK.)"PT,5LA MJ#[,@:O]-!@$QX5GMBZL6PB324G7L 3[4BXTSL*&)6,"I&%*$@WY-)@-KN=C M%^\#7AGLS]][IC+BAJX4?P[RVPQ#3X')(.<;KE]5ONO4.=SZ?A2Q8U_DGT=&P4DW1JK M1 U&!X+)ZDW?ZCJ< )"G'1#7@-C[KH2\RUMJ:3+1:D^TBT8V-_"I>C2:8](= MRM)JW&6(L\G2JG33FV->&;E1 L_:4%^N'KFG3)-7RK= [HQEHEI7N8L3./)0 M\F*87),YITBS3 O%P9!OI0]=:):ZS2>5 ?]$9@9/WN\8K[A>WP%U=!;_5_PF=94K@$_>$M6!W(: MMZ 'OSS;4YV1'X](21XL"/.SK4"5_D6[OKODUZ:D*4P#O,4&] Z"Y..'P2CZ MTI'=19/=11=[\LAR(&=,D@-0;<[;['43C(CPY]?AY;+QVBS M46$'U;&[UK5+HOYP?#$)=RV:HT9SU*EYRW8L YF1 P.>M>E6^*M3V7;)<2,Y M[I1\9F;3RS5>("8MX)%:HJF%-NUQ6\Y1%/]C(#QI)P+TVC=-0U*UE;;J+,UJ MTY=G53OZ$UXU]2>JUPSO.X<&ULK59;3]LP%/XK1QF:0 )R:9*6KHU$+]-X M0$-Y;(=&CU+$AP1I:YO&;K+UC[ M";1>S')1_L*ZPH:!!?%22%;49#6#(J/5/WFL\[!!<'<1O)K@M0G^#D*G)G1> M&\&O"?YK(P0UH;1N5][+Q$V()-& LS5PC59JNE%FOV2K?&54[Y,;R=773/%D M]%6FR.&"QJQ (#2!Z:/:@@+A<(*29/D1G,#=S00.#X[@ #(*MRE;"@44 UNJ M^%K%CNM8HRJ6MR-6!RX9E:F *4TP,? G^_EG>_BV\MV8]Y[-C[R]@C>X.(6. MXWF&^8Q?3W=-=OXO^O2?H[](1J?9"9U2K_/&G2#@Q_F]D%P=Z9^F-:]4 M?;.JON;Z8D%B'%KJ'A/(5VA%'S^XH?/)E/#W%)N\I]CTG<1>+(W?+(V_3SVZ MH"L44MW.4IU O3ZF=:@DPE)"OPZK*.B% WNUF=YM3-B"3+8A/:>%F6YC/-]K M,"\L!HW%8*_%:R1Y]AL3R)D0,..L /4(JFN>JEN0N&[@MG)B0/4"OY45 \AS7*>5%U- _VQ'9L(F,^'>S%3G MLEIW.,3J4!X= T5I,AT:YM!I372\#>IZ+<<&'7]K(YB"=7VSWV[CM[O7[RV3 M) ?V-M?=K1UY$IX%+=<&4-=M[W\#R VW5MJ$\KVVR(R1O=(\3 CR(OZ=S8,U8]F"9-]JB =((K5/*1+28%9+Q) M=B:M"(*I5"IRT[&LP"Q@5AJ+F>Q[(HL9KEF>E>B) %H7!23_+%&.CW/#-DX= MS]ENST2'N9A5<( M-Q!47C%^$XVOZ=RPQ(I0CA(F("!_'= *Y;E XNOXNP4UNCF%8O_[A/Y%DN=D M7B%%*YQ_SU*VGQNA 5*TA77.GO'Q-]02\@5>@G,JG^#8REH&2&K*<-$J\Q44 M6=F\X8_6$#T%CJ-7<%H%1U7PKBBXK8+[V1F\5L'[[ Q^JR"IFPUW:;@8,KB8 M$7P$1$AS-/$AK2^UN;VR4CC*AA$^FG$]MOB=^^+7,L$% D^(@,T>$@1^ 2M< M5+A$):, EJELU@S*K<5;L(0T2^1 G.4U0RG0PMS&B,$LO^-X+YL8W-[<@1M@ M BH&*F8R3%4LVDY;8LB'F7"'F@F^X9'L* MUF6*4HU^/*P?#>B;W,B=I9V3I9?.(. &51/@6O? L1Q'LY[5Y]5M'9W_-_OZ M/\]^9@RW7E5$S@=:P03-#1X:*2('9"Q^_LD. MK%]U5AT3+!X3;#T2V)G]O<[^WA"Z//:9/*^Z#6AT ZDK,LUA8?MAX,[,0]^R M&BG;\Z)SJ?A2RHT<6Y%::Z3LT'4ZJ3.2?D?2'W2R&)68A\QK;N:/Z69C@L5C M@JU' CO;@:#;@6#0S;[+/,WS SSPX[Y#@'M+\3QU]R]E?%?9U5B'XRC$-3+1E8@4 M=<2CT,;;T7HM9P2="E M)%#Q$E)2UI9]UIAQ>U2T>%2T]5AHYQO2NQG8@\ZZ[ )RBO,<$OJ^+UI/;.'" MGF-8$T\Y>2NME*OX6*R1LB>66C5HL<+HBB)Q[^1]DKJCHZX&)JV4 MJZ8EC12GKD9E+588*-3-WL60%]P[>2.G/.K4)6N*]:ZWN_4_RKNNTK^T'U:V MIC\6?PGD1?0=OOG%\ V27<937(ZV?"IK,N4!@S2W]J;!<"6OI:^8\4NN_-PC MF"(B!/CX%F-V:H@)NG\GBW\!4$L#!!0 ( %J!6U5W)U:;P ( "L( 9 M >&PO=V]R:W-H965T(YO(@BD^RD MNM4%@"%W)1=ZY!7&5$/?UUD!)=5GL@*!)VNI2FIPJS:^KA30W(%*[H=!<.&7 ME DO39QLH=)$UH8S 0M%=%V65/V> )>[D3?P]H(;MBF,%?AI4M$-+,%\K18* M=W['DK,2A&92$ 7KD3<>#.>QU7<*WQCL],&:V$A64M[:S54^\@+K$'#(C&6@ M^-G"%#BW1.C&KY;3ZTQ:X.%ZS_[1Q8ZQK*B&J>3?66Z*D??.(SFL:<\N72:[=+]FUNH%'LEH;6;9@]*!DHOG2NS8/!P#DZ0>$+2!\"(B? $0M M('JNA;@%Q,^U<-X"7.A^$[M+W(P:FB9*[HBRVLAF%R[[#HWY8L+6R=(H/&6( M,^EG+,4KD.UO5(RE66)%^P4-9G? M9;S.(2=K)4LRI3RK.745@,"9Q>!9KXV3&1C*^!LTIANN]L,$^5+(6E.1Z\0W M&*/UU,_:>"9-/.$3\43D6@I3H&<"W>K!SX[CWQ_!^YC;+L'A/L&3\"CA$JHS M$@5O21B$88\_T^?#!WWA_)_U^3];OY>,J*NVR/%%3_#-J1),;/1!'?P8K[11 MV"]^]EUV0Q?WT]D>.M05S6#D89/4H+;@I:]?#2Z"#WV9?DFRV4N2S5^([-Z= MQ-V=Q,?84_N\N]?=OL$3?(3-\DW?K32$YX[0#J)M.@@N$W][F.S'.E%\7V7V M6"6T17JH,W^L$U]T*DV\_D'W*T%MW-C1)).U,$UI=M)NLHU=0W\@GPR&TT&/ M?(:3L!E&PO M=V]R:W-H965T84,N? MF+4[[D]8+A-"X8XCD:ET8< 11/,\ K =XI8/@(H%\" M^D9HD9F1=84E]B><[1#7NQ6;'AAO#%JI(50?XU)R]94HG/0_ 8LXSF(2H&M: M5(5V]RVZQ9QC;3%Z?042D^2-6OR5, MREB@#S2$L $_;\>[7@N!K817ZKV#^IG7RKB$K(?ZSAGR',]K2J@=?@6!@KL& M[K:DTZ\.HV_X^H_Q$8&CB$-4',+7-5K %F@.Z,<7M15=2TC%SR;C"][S9E[] M%%R*# D<$?M=IV73;X4P08FF'[1MKXSL;?'8EO3^4^Q@TKL MH%7LX71G0(-8O:(;]!<=7<@YHP%0R8MJ6!"AOZO'2SU-C;>O-=A3BZ CLIHO MP\J7X3/=@V&7%G1$5K-@5%DP:BV-^MFKF[ Y0QEPO:;^NS9)+_C&QZ7><_LG MU=ZXR:LVU5*]J%*]>*XJ5J,;O"=IGC8I:@W[U,/LB*SFT+AR:/Q,]3SNTH*. MR&H6N,Y#H^%T7-$EX4FUGE1T>]2GJK*/.JD4>&0:3($"EE-9-%75:M7$OC>M MF_VPO>B ;S"/"!4H@;6".KV1>E%YT506$\DRTY>MF%1=GAG&JA$'KC>H[VO& MY&&B U2MO?\/4$L#!!0 ( %J!6U4>8IBY0 , '(0 9 >&PO=V]R M:W-H965T2#SS*(5 C9*JU: M!=IV,>W"30Y)U,3.; /=OY^=A Q0R.CJW4#LG/%*$M-Q[(&9H838KB3HN^> MN1.Z$6E"X)XAOLDRS'[-(*6[J6$;^XYE$L5"=9CN),<1K$!\R>^9;)DU)4PR M(#RA!#%83XT;>^R/5'P1\#6!'3^X1NI)'BA]5(W;<&I8:D"00B 4 +VG^\6SRV=YP!SF-/V6A"*>&B,#A;#&FU0LZ>XC5,_3 M5[R IKSX1+LJUC)0L.&"9I58CB!+2/F-GZHZ' @DIUG@5 +G5- [(^A6@NZE M&7J5H'=IAGXEZ)\*!F<$@THP*&I?%JNHM(<%=B>,[A!3T9*F+@J["K4L<$+4 MQ%H))N\F4B?<#T CAO,X"= M*>>I,OP=6I4S#=$U\F@&7,B()6R!; "]\4#@ M)'TKP_9=,R!!+ 6/LN^ .:4 MB)BC!0DA;-![[?KKO^G]=KWMM !,6>^ZZ,Z^Z#.GE;B"O(.ZUA5R+,=I&-#\ M.=S(YF^97*T$MW6.>XP"F MAER;.; M&.[K5_; >M_DC4Z8IQ.VT GS-<&./.W5GO8*>O>- MS^MZF?G^28:B6P$9_]'D=$^GTSIAGD[80B?,UP0[OQ^8?#]< MH1R8ZI/;FB:'2]YUP5.[IJUK=4;]B;D]=*XQJ'<=EKY3W789TP;]2P0MK=DV549T:_,:-39RP=,0_.1!FP MJ#B];OKO[# 91AY2:\/(+WJ='!B #'R MY##R?=P8]"9\&(X)9Q/%("HG)>-+Y^Z!8RJY5($VW6;2=<%3_W)PUUG0B U/ MR814-K?+X+XGS?0=8&6!0,9Y*[ 7.L=H4!&MJ1)WQK"3K?,%%#3CQV5E%!:* M++N]ZW =8&\FR42JC*HV33=H&+/4G^: MF^4(:T.CT7M%<[:P]B)O!6#L79R=5!5??N2L$"5UBS\XX6A 5G'!3"KVRV2# M5ID:!U5A\$R59M--ST]%JD>ZT*MV6N2XYMX):OZ[^UQ0017AFZ)-[Q_S+K]: M<7SSKR3;WRJ[@KT:FU?OL8N\/@61R2F(/(F>[!^_R#@]?HW-T>WH1$;-(6/C M)+-UCFF] 9P7A^$W.'WR==)@,F=<,]%8,Y9E5+PXSAAZ32;F3YDM?C,_HSF9 M<_W8@L-P/?Y*,S8OTW;6/6Q$,VL]_@++ZR;M8=7D8B*C"YJ-&U,5$SL,S,!D M;2X(V$7N[.5'L!B'^1' L#R8 BS&16%Y_J?U]-'U. S3UOAX[%4PQO8M2>#'SX9I@P@L#V3ZL[W&JXUWR/X^ MP&JZKT.PE>*=B*T4WVM _/L&$6GJKS:6!R*P*F"] _G]>:"G_#%Q#%7%M&%/ M,(ZD*89 +_I[-$F0W4G@XZ\/]I3$<9KZ$<#\"N(80^!IQ!%, 6C D#BV[\&= M]U&T>D]%Z__OC7X#4$L#!!0 ( %J!6U67BKL

-8?20$3; M8T.P6BP^0"X99K>]9!:G&AT*FX)[*9[=C_/-(=M()Q^DDOYU-HK?E1BQ6FI9 MR^^BFHTF(^:6YOD/8^5WHSU7\](:I6:C:7OB7E@OR_\4SQO(;_S!Q1+/'^YX M )F-BDFH<"&M\_&*6#\/C!L1+FZ/UMY<2N6%O>!>7%FS7DG]V%03[F(,;B.V MP^ZS;<0C^W^:T2P6LA07IES70ONV':U0#:!V2[ER(Z9Y+6:C<[,1MKF?\ ?7 M57MO/D"!EK)',IRPUU7$HT31E=!.5"Q\TD%=" M"\L5@/F$P'RBA3E;.ZF%<^RT_&<=_CQ> - ^(VB?:='NQ$;HM8!#\@0;DR>T M.!=B(:R-KY;SL(FFJ"F(57$I=1AN)5?L6CMOX^4=.,P04V)%G"IEGJ.RPL_9 M>6@\Z=D7XYSH(&)^F!(+(H1-JQ#4O#*N*_9[Z *KY@/[%TG#".Q#+"?"V]E]W)@? MIL2"F'M3/BV-JH1UO\3G[5\A&Z:%*;$7(MO!&6_U58>:7+P(\F&FF!*KXEJ7 MIA;L&W_I/D],$5-B1WSU2V'9EBQVX9>FW: T$DP:";$TPC"RH[L-H/,EMQTV M3!T)L3JNA'FT?+6494!L:^B^;0DZNR!VQS9*8A]N0QC7#"&_0C),&0FQ,M[( MPB16O>/"/)$0>Z(WE.NEQ#21$&MB&]7UO$P.23$\P4TP>*;$\T,"OFV'!/)*29ZN0P(]]@)B8 M4%)BH?2%?GT=*$735<1NV1<#;D$A)J::E%@U^\*N'DS,-2FQ:_JBK]Y'CHDG M)19/?QC6BXD)*"464']T<TK,PNV+73L 6)B!LJ(#?0#<_LV;D(WOQ"> M2P7[3X;I)R/63V]3O@6==Q 3$U!&+*#W87!/*Z(K)<3BZ0^#W]H48F+BR8C% M@V)V(K<,4T]&K!XT7+^ &L\P]63$ZD'#]2XFIIZ,6#UXN Y7R#),/1FQ>G!, MN$:68^K)!YW\Y! 34T\^Z.3G &)B]LG)%^L1S.X2,V:?G'RY'L.$72C'+)23 M+]ACF)TNA*[8#[DBT^U"F(7R =9D&E?&V=H='-YSS$+YSUB>Z<%LBM]A8A;* MB2VT-X/0!L<0$[-03FPA!+,Y!;>38!8JB"V$8G;&S0*S4$%L(03S+R$?(29F MH>)GI.#Z,6_G?\*5[ *S4#%4$JX-X"$F9J&"V$((9I/M@)B8A0IB"^W/%<:Y M)<1$=XX16Z@W5W@0&];HSD[! K-006RA/9CS4'6U[F1>"\Q"!?57-GHG%6JGS4/95?S&\VFUYWFW7/OD74$L#!!0 ( %J!6U7;=K!Q,0( M (DI : >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/-VDMNHT 4A>&M M6"P@N.Z+I!5GU)-,HVP .>6'8AM$T4JR^[:<@7U0#WH2<4:H0%S^T0<"'E_R MH1WWW:GL]GU9?!X/I[*J=N/8_ZKKLM[E8UONNCZ?SDRR[GL5J\ MML,VCZNJ_CQ<=Y?ZLDEWY\G5XOEM50W/;ZFJYPX2")+Y@Q2"=/X@@R";/\@A MR.@GH+@=Z">@N!WH)Z"X'>@GH+@=Z">@N!WH)Z"X'>@GH+@=Z*>BN!WHIZ M*X'>BGHK@=XZ>5E"H+>BWDJ@MZ+>2J"WHMY*H+>BWDJ@MZ+>2J"WHMY*H+>A MWD:@MZ'>1J"WH=Y&H+>AWD:@MTU>=A/H;:BW$>AMJ+<1Z&VHMQ'H;:BW$>AM MJ+<1Z.VHMQ/H[:BW$^CMJ+<3Z.VHMQ/H[:BW$^CMDX^5!'H[ZNT$>COJ[01Z M.^KM!'H[ZNT$>@?J'01Z!^H=!'H'ZAT$>@?J'01Z!^H=!'H'ZAT$>L?D9Q," MO0/U#@*] _4. KT#]0X"O1O4N_E)O?ZMJ(\_0502P,$% @ 6H%;5:3(PW?Z 0 M"@ !, !;0V]N M=&5N=%]4>7!E&ULS=K+3L,P$ 707ZFR18WK)P_1;H ML. '3#*E49/8 MLETH?X^3 A((*E"1N)M&K>VY$X]T5CV_>_84)]NN[>.\6*7DSQB+U8HZ&TOG MJ<\K2QTM)LV3:ZV^>?8N'Y> M!&IC,;G8;1RRYH7UOFTJF_(Z>^SK3RG3UX0RGQSWQ%7CXU'>4+ O$X:5[P-> MS]T\4@A-39-;&]*U[?(NMFU93,\MQ7)_B2]Z=,ME4U'MJDV7CY31![)U7!&E MKBUW18_V)Z=\P[3[Y ?GCV7V!>:=M\'YF"<6Z/=Q;R,93D]]+D0A-?M?\3TQ MES[X_6B8=DWU#[/S]3ZYL![G$=GX./R./\[XO?XO^Q @?4B0/A1('QJD#P/2 MQS%('R<@?9R"],%G*(V@B,I12.4HIG(45#F*JAR%58[B*D>!E:/(*E!D%2BR M"A19!8JL D56@2*K0)%5H,@J4&05*+)*%%DEBJP215:)(JM$D56BR"I19)4H MLDH4626*K I%5H4BJT*15:'(JE!D52BR*A19%8JL"D56A2*K1I%5H\BJ4635 M*+)J%%DUBJP:15:-(JM&D56CR&I09#4HLAH460V*K 9%5H,BJT&1U:#(:E!D M-2BR'O^GK/?.K?\X?GR6G6WZMWPV_EEQ\0)02P$"% ,4 " !9@5M5!T%- M8H$ "Q $ @ $ 9&]C4')O<',O87!P+GAM;%!+ M 0(4 Q0 ( %F!6U7$G] 4[0 "L" 1 " :\ !D M;V-0&UL4$L! A0#% M @ 68%;52.JW>KJ!0 OA\ !@ ("!# @ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 68%;5<"!D@#W!@ )AX !@ M ("!03( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ 68%;51SN-IA?!P \A$ !D ("!X4< 'AL+W=O&PO=V]R:W-H965T&100 -D) 9 " @=1< !X;"]W;W)K&UL4$L! A0#% @ 68%;5;JH$KKQ P -0D !D M ("!4&$ 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ 68%;550W7ANB P #P@ !D ("!-W, M 'AL+W=O&PO=V]R:W-H965TM8)H> , ",( 9 M " @0!Z !X;"]W;W)K&UL4$L! A0#% @ M68%;54;Y4I4# P ^08 !D ("!KWT 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 68%;574,97O> P M! D !D ("!!HP 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 68%;56WDR&PO=V]R:W-H M965T !X;"]W;W)K&UL4$L! M A0#% @ 68%;53/"$0R>! 00L !D ("!5Z$ 'AL M+W=O"P &0 @($LI@ >&PO=V]R:W-H965T&UL4$L! A0#% @ 68%; M5:FF[U5N!@ QA !D ("!NZX 'AL+W=O&PO=V]R:W-H965T+PKP, #() 9 " @62X !X;"]W;W)K M&UL4$L! A0#% @ 68%;5>)&FRT, P +P< M !D ("!2KP 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 68%;50F2T/?! @ /PD !D M ("!E,< 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ 68%;53V4%4E+ P Z0H !D ("!8M( 'AL+W=O M^QT# "> M"@ &0 @('DU0 >&PO=V]R:W-H965T9>$2@0 %@6 9 " @3C9 M !X;"]W;W)K&UL4$L! A0#% @ 68%;5;5) M:H:I!@ 8SH !D ("!N=T 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 68%;58D)T.,R P L @ !D M ("!E^L 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ 68%;59W!=(\# P Q0D !D ("! M1?< 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ 68%;58X!!H/O @ *0@ !D ("!2@ ! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 6H%;54U&S))J P G0L !D M ("!,QH! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ 6H%;5:3D[4M4 P "@L !D ("!4"0! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M6H%;5>&UL4$L! A0#% @ 6H%;51YBF+E P M&PO&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4 " !:@5M5I,C# M=_H! "T* $P @ %G2 $ 6T-O;G1E;G1?5'EP97-=+GAM 7;%!+!08 3@!. %D5 "22@$ ! end XML 84 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 85 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 86 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.2.2 html 230 291 1 false 55 0 false 5 false false R1.htm 0001001 - Document - Cover Sheet http://www.spscommerce.com/role/Cover Cover Cover 1 false false R2.htm 1001002 - Statement - Condensed Consolidated Balance Sheets Sheet http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets Condensed Consolidated Balance Sheets Statements 2 false false R3.htm 1002003 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) Sheet http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical Condensed Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 1003004 - Statement - Condensed Consolidated Statements of Comprehensive Income Sheet http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome Condensed Consolidated Statements of Comprehensive Income Statements 4 false false R5.htm 1004005 - Statement - Condensed Consolidated Statements of Comprehensive Income (Parenthetical) Sheet http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncomeParenthetical Condensed Consolidated Statements of Comprehensive Income (Parenthetical) Statements 5 false false R6.htm 1005006 - Statement - Condensed Consolidated Statements of Stockholders' Equity Sheet http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity Condensed Consolidated Statements of Stockholders' Equity Statements 6 false false R7.htm 1006007 - Statement - Condensed Consolidated Statements of Cash Flows Sheet http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows Condensed Consolidated Statements of Cash Flows Statements 7 false false R8.htm 2101101 - Disclosure - General Sheet http://www.spscommerce.com/role/General General Notes 8 false false R9.htm 2104102 - Disclosure - Business Acquisitions Sheet http://www.spscommerce.com/role/BusinessAcquisitions Business Acquisitions Notes 9 false false R10.htm 2109103 - Disclosure - Revenue Sheet http://www.spscommerce.com/role/Revenue Revenue Notes 10 false false R11.htm 2114104 - Disclosure - Deferred Costs Sheet http://www.spscommerce.com/role/DeferredCosts Deferred Costs Notes 11 false false R12.htm 2117105 - Disclosure - Financial Instruments Sheet http://www.spscommerce.com/role/FinancialInstruments Financial Instruments Notes 12 false false R13.htm 2121106 - Disclosure - Allowance for Credit Losses Sheet http://www.spscommerce.com/role/AllowanceforCreditLosses Allowance for Credit Losses Notes 13 false false R14.htm 2124107 - Disclosure - Property and Equipment, Net Sheet http://www.spscommerce.com/role/PropertyandEquipmentNet Property and Equipment, Net Notes 14 false false R15.htm 2127108 - Disclosure - Goodwill and Intangible Assets, Net Sheet http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNet Goodwill and Intangible Assets, Net Notes 15 false false R16.htm 2132109 - Disclosure - Commitments and Contingencies Sheet http://www.spscommerce.com/role/CommitmentsandContingencies Commitments and Contingencies Notes 16 false false R17.htm 2139110 - Disclosure - Stockholders' Equity Sheet http://www.spscommerce.com/role/StockholdersEquity Stockholders' Equity Notes 17 false false R18.htm 2143111 - Disclosure - Stock-Based Compensation Sheet http://www.spscommerce.com/role/StockBasedCompensation Stock-Based Compensation Notes 18 false false R19.htm 2152112 - Disclosure - Income Taxes Sheet http://www.spscommerce.com/role/IncomeTaxes Income Taxes Notes 19 false false R20.htm 2153113 - Disclosure - Other Income and Expense Sheet http://www.spscommerce.com/role/OtherIncomeandExpense Other Income and Expense Notes 20 false false R21.htm 2156114 - Disclosure - Net Income Per Share Sheet http://www.spscommerce.com/role/NetIncomePerShare Net Income Per Share Notes 21 false false R22.htm 2160115 - Disclosure - Geographic Information Sheet http://www.spscommerce.com/role/GeographicInformation Geographic Information Notes 22 false false R23.htm 2202201 - Disclosure - General (Policies) Sheet http://www.spscommerce.com/role/GeneralPolicies General (Policies) Policies 23 false false R24.htm 2303301 - Disclosure - General (Tables) Sheet http://www.spscommerce.com/role/GeneralTables General (Tables) Tables http://www.spscommerce.com/role/General 24 false false R25.htm 2305302 - Disclosure - Business Acquisitions (Tables) Sheet http://www.spscommerce.com/role/BusinessAcquisitionsTables Business Acquisitions (Tables) Tables http://www.spscommerce.com/role/BusinessAcquisitions 25 false false R26.htm 2310303 - Disclosure - Revenue (Tables) Sheet http://www.spscommerce.com/role/RevenueTables Revenue (Tables) Tables http://www.spscommerce.com/role/Revenue 26 false false R27.htm 2315304 - Disclosure - Deferred Costs (Tables) Sheet http://www.spscommerce.com/role/DeferredCostsTables Deferred Costs (Tables) Tables http://www.spscommerce.com/role/DeferredCosts 27 false false R28.htm 2318305 - Disclosure - Financial Instruments (Tables) Sheet http://www.spscommerce.com/role/FinancialInstrumentsTables Financial Instruments (Tables) Tables http://www.spscommerce.com/role/FinancialInstruments 28 false false R29.htm 2322306 - Disclosure - Allowance for Credit Losses (Tables) Sheet http://www.spscommerce.com/role/AllowanceforCreditLossesTables Allowance for Credit Losses (Tables) Tables http://www.spscommerce.com/role/AllowanceforCreditLosses 29 false false R30.htm 2325307 - Disclosure - Property and Equipment, Net (Tables) Sheet http://www.spscommerce.com/role/PropertyandEquipmentNetTables Property and Equipment, Net (Tables) Tables http://www.spscommerce.com/role/PropertyandEquipmentNet 30 false false R31.htm 2328308 - Disclosure - Goodwill and Intangible Assets, Net (Tables) Sheet http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetTables Goodwill and Intangible Assets, Net (Tables) Tables http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNet 31 false false R32.htm 2333309 - Disclosure - Commitments and Contingencies (Tables) Sheet http://www.spscommerce.com/role/CommitmentsandContingenciesTables Commitments and Contingencies (Tables) Tables http://www.spscommerce.com/role/CommitmentsandContingencies 32 false false R33.htm 2340310 - Disclosure - Stockholders' Equity (Tables) Sheet http://www.spscommerce.com/role/StockholdersEquityTables Stockholders' Equity (Tables) Tables http://www.spscommerce.com/role/StockholdersEquity 33 false false R34.htm 2344311 - Disclosure - Stock-Based Compensation (Tables) Sheet http://www.spscommerce.com/role/StockBasedCompensationTables Stock-Based Compensation (Tables) Tables http://www.spscommerce.com/role/StockBasedCompensation 34 false false R35.htm 2354312 - Disclosure - Other Income and Expense (Tables) Sheet http://www.spscommerce.com/role/OtherIncomeandExpenseTables Other Income and Expense (Tables) Tables http://www.spscommerce.com/role/OtherIncomeandExpense 35 false false R36.htm 2357313 - Disclosure - Net Income Per Share (Tables) Sheet http://www.spscommerce.com/role/NetIncomePerShareTables Net Income Per Share (Tables) Tables http://www.spscommerce.com/role/NetIncomePerShare 36 false false R37.htm 2361314 - Disclosure - Geographic Information (Tables) Sheet http://www.spscommerce.com/role/GeographicInformationTables Geographic Information (Tables) Tables http://www.spscommerce.com/role/GeographicInformation 37 false false R38.htm 2406401 - Disclosure - Business Acquisitions - Narrative (Details) Sheet http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails Business Acquisitions - Narrative (Details) Details 38 false false R39.htm 2407402 - Disclosure - Business Acquisitions - Fair Value of Assets Acquired and Liabilities Assumed (Details) Sheet http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails Business Acquisitions - Fair Value of Assets Acquired and Liabilities Assumed (Details) Details 39 false false R40.htm 2408403 - Disclosure - Business Acquisitions - Intangible Assets Acquired (Details) Sheet http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails Business Acquisitions - Intangible Assets Acquired (Details) Details 40 false false R41.htm 2411404 - Disclosure - Revenue - Summary of Revenues by Revenue Stream (Detail) Sheet http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail Revenue - Summary of Revenues by Revenue Stream (Detail) Details 41 false false R42.htm 2412405 - Disclosure - Revenue - Narrative (Detail) Sheet http://www.spscommerce.com/role/RevenueNarrativeDetail Revenue - Narrative (Detail) Details 42 false false R43.htm 2413406 - Disclosure - Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail) Sheet http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail) Details 43 false false R44.htm 2416407 - Disclosure - Deferred Costs (Detail) Sheet http://www.spscommerce.com/role/DeferredCostsDetail Deferred Costs (Detail) Details http://www.spscommerce.com/role/DeferredCostsTables 44 false false R45.htm 2419408 - Disclosure - Financial Instruments - Summary of Cash Equivalents and Investments (Detail) Sheet http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail Financial Instruments - Summary of Cash Equivalents and Investments (Detail) Details 45 false false R46.htm 2420409 - Disclosure - Financial Instruments - Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) Sheet http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail Financial Instruments - Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) Details 46 false false R47.htm 2423410 - Disclosure - Allowance for Credit Losses (Detail) Sheet http://www.spscommerce.com/role/AllowanceforCreditLossesDetail Allowance for Credit Losses (Detail) Details http://www.spscommerce.com/role/AllowanceforCreditLossesTables 47 false false R48.htm 2426411 - Disclosure - Property and Equipment, Net (Details) Sheet http://www.spscommerce.com/role/PropertyandEquipmentNetDetails Property and Equipment, Net (Details) Details http://www.spscommerce.com/role/PropertyandEquipmentNetTables 48 false false R49.htm 2429412 - Disclosure - Goodwill and Intangible Assets, Net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail) Sheet http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail Goodwill and Intangible Assets, Net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail) Details 49 false false R50.htm 2430413 - Disclosure - Goodwill and Intangible Assets, Net - Intangible Assets (Detail) Sheet http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail Goodwill and Intangible Assets, Net - Intangible Assets (Detail) Details 50 false false R51.htm 2431414 - Disclosure - Goodwill and Intangible Assets, Net - Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail) Sheet http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail Goodwill and Intangible Assets, Net - Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail) Details 51 false false R52.htm 2434415 - Disclosure - Commitments and Contingencies - Components of Lease Expense (Detail) Sheet http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail Commitments and Contingencies - Components of Lease Expense (Detail) Details 52 false false R53.htm 2435416 - Disclosure - Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail) Sheet http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalCashFlowInformationRelatedtoLeasesDetail Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail) Details 53 false false R54.htm 2436417 - Disclosure - Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail) Sheet http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalBalanceSheetInformationRelatedtoLeasesDetail Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail) Details 54 false false R55.htm 2437418 - Disclosure - Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail) Sheet http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail) Details 55 false false R56.htm 2438419 - Disclosure - Commitments and Contingencies - Narrative (Detail) Sheet http://www.spscommerce.com/role/CommitmentsandContingenciesNarrativeDetail Commitments and Contingencies - Narrative (Detail) Details 56 false false R57.htm 2441420 - Disclosure - Stockholders' Equity - Share Repurchase Plan (Details) Sheet http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails Stockholders' Equity - Share Repurchase Plan (Details) Details 57 false false R58.htm 2442421 - Disclosure - Stockholders' Equity - Stock Repurchase Activity (Details) Sheet http://www.spscommerce.com/role/StockholdersEquityStockRepurchaseActivityDetails Stockholders' Equity - Stock Repurchase Activity (Details) Details 58 false false R59.htm 2445422 - Disclosure - Stock-Based Compensation - Narrative (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail Stock-Based Compensation - Narrative (Detail) Details 59 false false R60.htm 2446423 - Disclosure - Stock-Based Compensation - Stock-Based Compensation Expense (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail Stock-Based Compensation - Stock-Based Compensation Expense (Detail) Details 60 false false R61.htm 2447424 - Disclosure - Stock-Based Compensation - Stock Option Activity (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail Stock-Based Compensation - Stock Option Activity (Detail) Details 61 false false R62.htm 2448425 - Disclosure - Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail) Details 62 false false R63.htm 2449426 - Disclosure - Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail) Details 63 false false R64.htm 2450427 - Disclosure - Stock-Based Compensation - Summary of ESPP Activity (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail Stock-Based Compensation - Summary of ESPP Activity (Detail) Details 64 false false R65.htm 2451428 - Disclosure - Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail) Sheet http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail) Details 65 false false R66.htm 2455429 - Disclosure - Other Income and Expense (Detail) Sheet http://www.spscommerce.com/role/OtherIncomeandExpenseDetail Other Income and Expense (Detail) Details http://www.spscommerce.com/role/OtherIncomeandExpenseTables 66 false false R67.htm 2458430 - Disclosure - Net Income Per Share - Components and Computation of Basic and Diluted Net Income Per Share (Detail) Sheet http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail Net Income Per Share - Components and Computation of Basic and Diluted Net Income Per Share (Detail) Details 67 false false R68.htm 2459431 - Disclosure - Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail) Sheet http://www.spscommerce.com/role/NetIncomePerShareScheduleofAntidilutiveCommonSharesExcludedfromCalculationofDilutedNetIncomePerShareDetail Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail) Details 68 false false R69.htm 2462432 - Disclosure - Geographic Information - Narrative (Detail) Sheet http://www.spscommerce.com/role/GeographicInformationNarrativeDetail Geographic Information - Narrative (Detail) Details 69 false false R70.htm 2463433 - Disclosure - Geographic Information - Summary of Domestic Revenue (Detail) Sheet http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail Geographic Information - Summary of Domestic Revenue (Detail) Details 70 false false All Reports Book All Reports spsc-20220930.htm q3_2022exhibitex311.htm q3_2022exhibitex312.htm q3_2022exhibitex321.htm spsc-20220930.xsd spsc-20220930_cal.xml spsc-20220930_def.xml spsc-20220930_lab.xml spsc-20220930_pre.xml spsc-20220930_g1.jpg spsc-20220930_g2.jpg http://fasb.org/us-gaap/2022 http://xbrl.sec.gov/dei/2022 true true JSON 88 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "spsc-20220930.htm": { "axisCustom": 0, "axisStandard": 21, "contextCount": 230, "dts": { "calculationLink": { "local": [ "spsc-20220930_cal.xml" ] }, "definitionLink": { "local": [ "spsc-20220930_def.xml" ] }, "inline": { "local": [ "spsc-20220930.htm" ] }, "labelLink": { "local": [ "spsc-20220930_lab.xml" ] }, "presentationLink": { "local": [ "spsc-20220930_pre.xml" ] }, "schema": { "local": [ "spsc-20220930.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/2022/elts/srt-2022.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd", "https://xbrl.sec.gov/country/2022/country-2022.xsd", "https://xbrl.sec.gov/dei/2022/dei-2022.xsd" ] } }, "elementCount": 454, "entityCount": 1, "hidden": { "http://xbrl.sec.gov/dei/2022": 5, "total": 5 }, "keyCustom": 28, "keyStandard": 263, "memberCustom": 18, "memberStandard": 33, "nsprefix": "spsc", "nsuri": "http://www.spscommerce.com/20220930", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "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", "role": "http://www.spscommerce.com/role/Cover", "shortName": "Cover", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "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": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2109103 - Disclosure - Revenue", "role": "http://www.spscommerce.com/role/Revenue", "shortName": "Revenue", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "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": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:DeferredCostsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2114104 - Disclosure - Deferred Costs", "role": "http://www.spscommerce.com/role/DeferredCosts", "shortName": "Deferred Costs", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:DeferredCostsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2117105 - Disclosure - Financial Instruments", "role": "http://www.spscommerce.com/role/FinancialInstruments", "shortName": "Financial Instruments", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForCreditLossesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2121106 - Disclosure - Allowance for Credit Losses", "role": "http://www.spscommerce.com/role/AllowanceforCreditLosses", "shortName": "Allowance for Credit Losses", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForCreditLossesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2124107 - Disclosure - Property and Equipment, Net", "role": "http://www.spscommerce.com/role/PropertyandEquipmentNet", "shortName": "Property and Equipment, Net", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2127108 - Disclosure - Goodwill and Intangible Assets, Net", "role": "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNet", "shortName": "Goodwill and Intangible Assets, Net", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2132109 - Disclosure - Commitments and Contingencies", "role": "http://www.spscommerce.com/role/CommitmentsandContingencies", "shortName": "Commitments and Contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2139110 - Disclosure - Stockholders' Equity", "role": "http://www.spscommerce.com/role/StockholdersEquity", "shortName": "Stockholders' Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2143111 - Disclosure - Stock-Based Compensation", "role": "http://www.spscommerce.com/role/StockBasedCompensation", "shortName": "Stock-Based Compensation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2152112 - Disclosure - Income Taxes", "role": "http://www.spscommerce.com/role/IncomeTaxes", "shortName": "Income Taxes", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "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", "role": "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "shortName": "Condensed Consolidated Balance Sheets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:ShortTermInvestments", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherNonoperatingIncomeAndExpenseTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2153113 - Disclosure - Other Income and Expense", "role": "http://www.spscommerce.com/role/OtherIncomeandExpense", "shortName": "Other Income and Expense", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherNonoperatingIncomeAndExpenseTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2156114 - Disclosure - Net Income Per Share", "role": "http://www.spscommerce.com/role/NetIncomePerShare", "shortName": "Net Income Per Share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:GeographicInformationTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2160115 - Disclosure - Geographic Information", "role": "http://www.spscommerce.com/role/GeographicInformation", "shortName": "Geographic Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:GeographicInformationTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:BusinessDescriptionPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2202201 - Disclosure - General (Policies)", "role": "http://www.spscommerce.com/role/GeneralPolicies", "shortName": "General (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:BusinessDescriptionPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2303301 - Disclosure - General (Tables)", "role": "http://www.spscommerce.com/role/GeneralTables", "shortName": "General (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2305302 - Disclosure - Business Acquisitions (Tables)", "role": "http://www.spscommerce.com/role/BusinessAcquisitionsTables", "shortName": "Business Acquisitions (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2310303 - Disclosure - Revenue (Tables)", "role": "http://www.spscommerce.com/role/RevenueTables", "shortName": "Revenue (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:DeferredCostsAndAmortizationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2315304 - Disclosure - Deferred Costs (Tables)", "role": "http://www.spscommerce.com/role/DeferredCostsTables", "shortName": "Deferred Costs (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:DeferredCostsAndAmortizationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashCashEquivalentsAndShortTermInvestmentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2318305 - Disclosure - Financial Instruments (Tables)", "role": "http://www.spscommerce.com/role/FinancialInstrumentsTables", "shortName": "Financial Instruments (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashCashEquivalentsAndShortTermInvestmentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2322306 - Disclosure - Allowance for Credit Losses (Tables)", "role": "http://www.spscommerce.com/role/AllowanceforCreditLossesTables", "shortName": "Allowance for Credit Losses (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "us-gaap:PreferredStockParOrStatedValuePerShare", "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "usdPerShare", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1002003 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)", "role": "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical", "shortName": "Condensed Consolidated Balance Sheets (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "us-gaap:PreferredStockParOrStatedValuePerShare", "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "usdPerShare", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2325307 - Disclosure - Property and Equipment, Net (Tables)", "role": "http://www.spscommerce.com/role/PropertyandEquipmentNetTables", "shortName": "Property and Equipment, Net (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2328308 - Disclosure - Goodwill and Intangible Assets, Net (Tables)", "role": "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetTables", "shortName": "Goodwill and Intangible Assets, Net (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2333309 - Disclosure - Commitments and Contingencies (Tables)", "role": "http://www.spscommerce.com/role/CommitmentsandContingenciesTables", "shortName": "Commitments and Contingencies (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2340310 - Disclosure - Stockholders' Equity (Tables)", "role": "http://www.spscommerce.com/role/StockholdersEquityTables", "shortName": "Stockholders' Equity (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2344311 - Disclosure - Stock-Based Compensation (Tables)", "role": "http://www.spscommerce.com/role/StockBasedCompensationTables", "shortName": "Stock-Based Compensation (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfOtherNonoperatingIncomeExpenseTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2354312 - Disclosure - Other Income and Expense (Tables)", "role": "http://www.spscommerce.com/role/OtherIncomeandExpenseTables", "shortName": "Other Income and Expense (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfOtherNonoperatingIncomeExpenseTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2357313 - Disclosure - Net Income Per Share (Tables)", "role": "http://www.spscommerce.com/role/NetIncomePerShareTables", "shortName": "Net Income Per Share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfProductInformationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2361314 - Disclosure - Geographic Information (Tables)", "role": "http://www.spscommerce.com/role/GeographicInformationTables", "shortName": "Geographic Information (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfProductInformationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iabd0bcea1d444415b13e05a564719aaa_D20220719-20220719", "decimals": "-6", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationConsiderationTransferred1", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2406401 - Disclosure - Business Acquisitions - Narrative (Details)", "role": "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails", "shortName": "Business Acquisitions - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iabd0bcea1d444415b13e05a564719aaa_D20220719-20220719", "decimals": "-6", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationConsiderationTransferred1", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407402 - Disclosure - Business Acquisitions - Fair Value of Assets Acquired and Liabilities Assumed (Details)", "role": "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "shortName": "Business Acquisitions - Fair Value of Assets Acquired and Liabilities Assumed (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i531a247503d14ceaad7ac42b3a2cab71_I20220719", "decimals": "-3", "lang": "en-US", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "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 Comprehensive Income", "role": "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "shortName": "Condensed Consolidated Statements of Comprehensive Income", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:CostOfRevenue", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:FiniteLivedAndIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i531a247503d14ceaad7ac42b3a2cab71_I20220719", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408403 - Disclosure - Business Acquisitions - Intangible Assets Acquired (Details)", "role": "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "shortName": "Business Acquisitions - Intangible Assets Acquired (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:FiniteLivedAndIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTableTextBlock", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i531a247503d14ceaad7ac42b3a2cab71_I20220719", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2411404 - Disclosure - Revenue - Summary of Revenues by Revenue Stream (Detail)", "role": "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail", "shortName": "Revenue - Summary of Revenues by Revenue Stream (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ic886303516634d269f4729114224a5d9_D20220701-20220930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:RecurringRevenuesTimingOfBillingsLatestPeriod", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2412405 - Disclosure - Revenue - Narrative (Detail)", "role": "http://www.spscommerce.com/role/RevenueNarrativeDetail", "shortName": "Revenue - Narrative (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "spsc:RecurringRevenuesTimingOfBillingsLatestPeriod", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iedbfc0849a59489a81d327b2974426c4_I20220630", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerLiability", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2413406 - Disclosure - Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail)", "role": "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail", "shortName": "Revenue - Summary of Deferred Revenue Liability Relating to Set-Up Fees (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iedbfc0849a59489a81d327b2974426c4_I20220630", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerLiability", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "spsc:DeferredCostsAndAmortizationTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i1f892157d8c541aa8e5d8db145f2a8d9_I20220630", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:DeferredCostsCurrentAndNoncurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2416407 - Disclosure - Deferred Costs (Detail)", "role": "http://www.spscommerce.com/role/DeferredCostsDetail", "shortName": "Deferred Costs (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "spsc:DeferredCostsAndAmortizationTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i1f892157d8c541aa8e5d8db145f2a8d9_I20220630", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:DeferredCostsCurrentAndNoncurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfCashCashEquivalentsAndShortTermInvestmentsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2419408 - Disclosure - Financial Instruments - Summary of Cash Equivalents and Investments (Detail)", "role": "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail", "shortName": "Financial Instruments - Summary of Cash Equivalents and Investments (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfCashCashEquivalentsAndShortTermInvestmentsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i4e61f0fdbd494c1d89e90ed1dd5d53f2_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AssetsFairValueDisclosure", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2420409 - Disclosure - Financial Instruments - Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)", "role": "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail", "shortName": "Financial Instruments - Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i4e61f0fdbd494c1d89e90ed1dd5d53f2_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AssetsFairValueDisclosure", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i094f7b69b0ff4b02bc7830cd64fb2542_I20211231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2423410 - Disclosure - Allowance for Credit Losses (Detail)", "role": "http://www.spscommerce.com/role/AllowanceforCreditLossesDetail", "shortName": "Allowance for Credit Losses (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i3c046b87ee0b418d91471603c26545a7_I20201231", "decimals": "-3", "lang": "en-US", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2426411 - Disclosure - Property and Equipment, Net (Details)", "role": "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails", "shortName": "Property and Equipment, Net (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfGoodwillTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i094f7b69b0ff4b02bc7830cd64fb2542_I20211231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2429412 - Disclosure - Goodwill and Intangible Assets, Net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail)", "role": "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail", "shortName": "Goodwill and Intangible Assets, Net - Schedule of Changes in Net Carrying Amount of Goodwill (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfGoodwillTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:GoodwillAcquiredDuringPeriod", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1004005 - Statement - Condensed Consolidated Statements of Comprehensive Income (Parenthetical)", "role": "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncomeParenthetical", "shortName": "Condensed Consolidated Statements of Comprehensive Income (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i094f7b69b0ff4b02bc7830cd64fb2542_I20211231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2430413 - Disclosure - Goodwill and Intangible Assets, Net - Intangible Assets (Detail)", "role": "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail", "shortName": "Goodwill and Intangible Assets, Net - Intangible Assets (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i094f7b69b0ff4b02bc7830cd64fb2542_I20211231", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2431414 - Disclosure - Goodwill and Intangible Assets, Net - Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail)", "role": "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail", "shortName": "Goodwill and Intangible Assets, Net - Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2434415 - Disclosure - Commitments and Contingencies - Components of Lease Expense (Detail)", "role": "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail", "shortName": "Commitments and Contingencies - Components of Lease Expense (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "spsc:ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2435416 - Disclosure - Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail)", "role": "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalCashFlowInformationRelatedtoLeasesDetail", "shortName": "Commitments and Contingencies - Schedule of Supplemental Cash Flow Information Related to Leases (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "spsc:ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "spsc:ScheduleOfSupplementalBalanceSheetInformationRelatedToLeasesTableTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2436417 - Disclosure - Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail)", "role": "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalBalanceSheetInformationRelatedtoLeasesDetail", "shortName": "Commitments and Contingencies - Schedule of Supplemental Balance Sheet Information Related to Leases (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "spsc:ScheduleOfSupplementalBalanceSheetInformationRelatedToLeasesTableTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "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:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2437418 - Disclosure - Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail)", "role": "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail", "shortName": "Commitments and Contingencies - Schedule of Future Minimum Payments Under Operating Leases (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "ix:continuation", "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-5", "first": true, "lang": "en-US", "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2438419 - Disclosure - Commitments and Contingencies - Narrative (Detail)", "role": "http://www.spscommerce.com/role/CommitmentsandContingenciesNarrativeDetail", "shortName": "Commitments and Contingencies - Narrative (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "ix:continuation", "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-5", "first": true, "lang": "en-US", "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:TreasuryStockCommonValue", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2441420 - Disclosure - Stockholders' Equity - Share Repurchase Plan (Details)", "role": "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails", "shortName": "Stockholders' Equity - Share Repurchase Plan (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i0845dd1766014496b1968d59bb20c2a3_I20220930", "decimals": "-7", "lang": "en-US", "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:TreasuryStockSharesAcquired", "reportCount": 1, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2442421 - Disclosure - Stockholders' Equity - Stock Repurchase Activity (Details)", "role": "http://www.spscommerce.com/role/StockholdersEquityStockRepurchaseActivityDetails", "shortName": "Stockholders' Equity - Stock Repurchase Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "2", "lang": "en-US", "name": "us-gaap:TreasuryStockAcquiredAverageCostPerShare", "reportCount": 1, "unique": true, "unitRef": "usdPerShare", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-5", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2445422 - Disclosure - Stock-Based Compensation - Narrative (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "shortName": "Stock-Based Compensation - Narrative (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "ia28c230829654d129da74ceb8df88a7b_I20220930", "decimals": "-5", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iebf575fa6da244ceb2e30e0153ae0f32_I20201231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:CommonStockSharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1005006 - Statement - Condensed Consolidated Statements of Stockholders' Equity", "role": "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "shortName": "Condensed Consolidated Statements of Stockholders' Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iebf575fa6da244ceb2e30e0153ae0f32_I20201231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:CommonStockSharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2446423 - Disclosure - Stock-Based Compensation - Stock-Based Compensation Expense (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail", "shortName": "Stock-Based Compensation - Stock-Based Compensation Expense (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i094f7b69b0ff4b02bc7830cd64fb2542_I20211231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2447424 - Disclosure - Stock-Based Compensation - Stock Option Activity (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail", "shortName": "Stock-Based Compensation - Stock Option Activity (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i094f7b69b0ff4b02bc7830cd64fb2542_I20211231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i2db8de97f1fd48818b0ce3b0740a884b_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2448425 - Disclosure - Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail", "shortName": "Stock-Based Compensation - Weighted Average Grant Date Fair Value of Options Granted, Assumptions (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i2db8de97f1fd48818b0ce3b0740a884b_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i3d87cd91c1a3461db320070d0eceda14_I20211231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2449426 - Disclosure - Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail", "shortName": "Stock-Based Compensation - PSU, RSU, RSA, and DSU (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i3d87cd91c1a3461db320070d0eceda14_I20211231", "decimals": "INF", "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i24150d9598e240fc9fbc0b129cc18867_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "spsc:ShareBasedCompensationArrangementByShareBasedPaymentAwardValuePurchasedForAward", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2450427 - Disclosure - Stock-Based Compensation - Summary of ESPP Activity (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail", "shortName": "Stock-Based Compensation - Summary of ESPP Activity (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i24150d9598e240fc9fbc0b129cc18867_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "spsc:ShareBasedCompensationArrangementByShareBasedPaymentAwardValuePurchasedForAward", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i1a3745403e1d41d89c7fc4ab6d415ac0_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2451428 - Disclosure - Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail)", "role": "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "shortName": "Stock-Based Compensation - Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i1a3745403e1d41d89c7fc4ab6d415ac0_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfOtherNonoperatingIncomeExpenseTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:InvestmentIncomeNet", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2455429 - Disclosure - Other Income and Expense (Detail)", "role": "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail", "shortName": "Other Income and Expense (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfOtherNonoperatingIncomeExpenseTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:InvestmentIncomeNet", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R67": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "usd", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2458430 - Disclosure - Net Income Per Share - Components and Computation of Basic and Diluted Net Income Per Share (Detail)", "role": "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail", "shortName": "Net Income Per Share - Components and Computation of Basic and Diluted Net Income Per Share (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R68": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2459431 - Disclosure - Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail)", "role": "http://www.spscommerce.com/role/NetIncomePerShareScheduleofAntidilutiveCommonSharesExcludedfromCalculationofDilutedNetIncomePerShareDetail", "shortName": "Net Income Per Share - Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iad4fa2c5758b4c94976e8584e4373418_D20220701-20220930", "decimals": "-3", "first": true, "lang": "en-US", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "shares", "xsiNil": "false" } }, "R69": { "firstAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": "INF", "first": true, "lang": "en-US", "name": "spsc:NumberOfJurisdictionOutsideUSHadExcessRevenueOfTenPercentage", "reportCount": 1, "unique": true, "unitRef": "jurisdiction", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2462432 - Disclosure - Geographic Information - Narrative (Detail)", "role": "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "shortName": "Geographic Information - Narrative (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": "INF", "first": true, "lang": "en-US", "name": "spsc:NumberOfJurisdictionOutsideUSHadExcessRevenueOfTenPercentage", "reportCount": 1, "unique": true, "unitRef": "jurisdiction", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "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.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows", "shortName": "Condensed Consolidated Statements of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": "-3", "lang": "en-US", "name": "us-gaap:DeferredIncomeTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "usd", "xsiNil": "false" } }, "R70": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfProductInformationTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i693b36bd127c4dc29610d307dbde6880_D20220701-20220930", "decimals": "2", "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2463433 - Disclosure - Geographic Information - Summary of Domestic Revenue (Detail)", "role": "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail", "shortName": "Geographic Information - Summary of Domestic Revenue (Detail)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfProductInformationTableTextBlock", "ix:continuation", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "i693b36bd127c4dc29610d307dbde6880_D20220701-20220930", "decimals": "2", "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "number", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2101101 - Disclosure - General", "role": "http://www.spscommerce.com/role/General", "shortName": "General", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2104102 - Disclosure - Business Acquisitions", "role": "http://www.spscommerce.com/role/BusinessAcquisitions", "shortName": "Business Acquisitions", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "div", "body", "html" ], "baseRef": "spsc-20220930.htm", "contextRef": "iac4165f473f342b5aa89404a71633f89_D20220101-20220930", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 55, "tag": { "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Cover [Abstract]", "terseLabel": "Cover [Abstract]" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2022", "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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", "verboseLabel": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r554" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r555" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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", "verboseLabel": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine2": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 2 such as Street or Suite number", "label": "Entity Address, Address Line Two", "terseLabel": "Entity Address, Address Line Two" } } }, "localname": "EntityAddressAddressLine2", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r552" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r552" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company", "terseLabel": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r552" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r574" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r552" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r552" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r552" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r552" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "employerIdItemType" }, "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r551" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r553" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/Cover" ], "xbrltype": "tradingSymbolItemType" }, "spsc_A2019StockRepurchaseProgramMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2019 Stock Repurchase Program", "label": "2019 Stock Repurchase Program [Member]", "terseLabel": "2019 Share Repurchase Program" } } }, "localname": "A2019StockRepurchaseProgramMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "domainItemType" }, "spsc_A2021StockRepurchaseProgramMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2021 Stock Repurchase Program", "label": "2021 Stock Repurchase Program [Member]", "terseLabel": "2021 Share Repurchase Program" } } }, "localname": "A2021StockRepurchaseProgramMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "domainItemType" }, "spsc_A2022StockRepurchaseProgramMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "2022 Stock Repurchase Program", "label": "2022 Stock Repurchase Program [Member]", "terseLabel": "2022 Stock Repurchase Program" } } }, "localname": "A2022StockRepurchaseProgramMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "domainItemType" }, "spsc_AnalyticsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Analytics.", "label": "Analytics [Member]", "terseLabel": "Analytics" } } }, "localname": "AnalyticsMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "spsc_BusinessCombinationMeasurementPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Combination, Measurement Period", "label": "Business Combination, Measurement Period", "terseLabel": "Measurement period" } } }, "localname": "BusinessCombinationMeasurementPeriod", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "durationItemType" }, "spsc_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilities": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 9.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Accrued Liabilities", "label": "Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Accrued Liabilities", "negatedTerseLabel": "Accrued compensation" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilities", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "spsc_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 4.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Operating Lease, Right-Of-Use Asset", "label": "Business Combination, Recognized Identifiable Assets Acquired And Liabilities Assumed, Operating Lease, Right-Of-Use Asset", "terseLabel": "Operating lease right-of-use asset" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "spsc_BusinessDescriptionPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business description policy.", "label": "Business Description Policy [Policy Text Block]", "terseLabel": "Business Description" } } }, "localname": "BusinessDescriptionPolicyPolicyTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GeneralPolicies" ], "xbrltype": "textBlockItemType" }, "spsc_CashPaidForAmountsIncludedInMeasurementOfLeaseLiabilitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cash paid for amounts included in the measurement of lease liabilities.", "label": "Cash Paid For Amounts Included In Measurement Of Lease Liabilities [Abstract]", "terseLabel": "Cash paid for amounts included in the measurement of lease liabilities" } } }, "localname": "CashPaidForAmountsIncludedInMeasurementOfLeaseLiabilitiesAbstract", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalCashFlowInformationRelatedtoLeasesDetail" ], "xbrltype": "stringItemType" }, "spsc_ContractTermMaximum": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Contract Term Maximum", "label": "Contract Term Maximum", "terseLabel": "Contract term maximum" } } }, "localname": "ContractTermMaximum", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "durationItemType" }, "spsc_CustomerContractCancellationPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer contract cancellation period.", "label": "Customer Contract Cancellation Period", "terseLabel": "Customer contract cancellation period" } } }, "localname": "CustomerContractCancellationPeriod", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "durationItemType" }, "spsc_DeferredCostsAmortized": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Deferred costs amortized.", "label": "Deferred Costs Amortized", "terseLabel": "Amortized deferred costs" } } }, "localname": "DeferredCostsAmortized", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/DeferredCostsDetail" ], "xbrltype": "monetaryItemType" }, "spsc_DeferredCostsAndAmortizationTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Deferred costs and amortization.", "label": "Deferred Costs And Amortization [Table Text Block]", "terseLabel": "Summary of Deferred Costs and Amortization of Deferred Costs" } } }, "localname": "DeferredCostsAndAmortizationTableTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/DeferredCostsTables" ], "xbrltype": "textBlockItemType" }, "spsc_DeferredCostsDisclosureTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Deferred costs.", "label": "Deferred Costs Disclosure [Text Block]", "terseLabel": "Deferred Costs" } } }, "localname": "DeferredCostsDisclosureTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/DeferredCosts" ], "xbrltype": "textBlockItemType" }, "spsc_DeferredCostsIncurred": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Deferred costs incurred.", "label": "Deferred Costs Incurred", "terseLabel": "Incurred deferred costs" } } }, "localname": "DeferredCostsIncurred", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/DeferredCostsDetail" ], "xbrltype": "monetaryItemType" }, "spsc_DeferredCostsRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Deferred Costs", "label": "Deferred Costs [Roll Forward]", "terseLabel": "Deferred Costs [Roll Forward]" } } }, "localname": "DeferredCostsRollForward", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/DeferredCostsDetail" ], "xbrltype": "stringItemType" }, "spsc_DeferredRevenueAmortizedSetUpFees": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Deferred revenue amortized set up fees.", "label": "Deferred Revenue Amortized Set Up Fees", "negatedLabel": "Recognized set-up fees" } } }, "localname": "DeferredRevenueAmortizedSetUpFees", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "monetaryItemType" }, "spsc_DeferredRevenueArrangementRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Deferred Revenue Arrangement", "label": "Deferred Revenue Arrangement [Roll Forward]", "terseLabel": "Deferred Revenue Arrangement [Roll Forward]" } } }, "localname": "DeferredRevenueArrangementRollForward", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "stringItemType" }, "spsc_DeferredRevenueInvoicedSetUpFees": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Deferred revenue Invoiced set up fees.", "label": "Deferred Revenue Invoiced Set Up Fees", "terseLabel": "Invoiced set-up fees" } } }, "localname": "DeferredRevenueInvoicedSetUpFees", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "monetaryItemType" }, "spsc_EarningsPerShareBasicAndDilutedEPSAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Earnings Per Share, Basic And Diluted EPS", "label": "Earnings Per Share, Basic And Diluted EPS [Abstract]", "terseLabel": "Net income per share" } } }, "localname": "EarningsPerShareBasicAndDilutedEPSAbstract", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "stringItemType" }, "spsc_EmployeeStockPurchasePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Employee stock purchase plan.", "label": "Employee Stock Purchase Plan [Member]", "verboseLabel": "ESPP" } } }, "localname": "EmployeeStockPurchasePlanMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "spsc_FiniteLivedIntangibleAssetsAccumulatedForeignCurrencyTranslationGainLoss": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail": { "order": 3.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Finite lived intangible assets accumulated foreign currency translation gain (loss).", "label": "Finite Lived Intangible Assets Accumulated Foreign Currency Translation Gain Loss", "terseLabel": "Foreign Currency Translation" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedForeignCurrencyTranslationGainLoss", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "spsc_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": 6.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Finite lived intangible assets, amortization expense after year four.", "label": "Finite Lived Intangible Assets Amortization Expense After Year Four", "terseLabel": "Thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail" ], "xbrltype": "monetaryItemType" }, "spsc_FourZeroOneKStockMatchMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Four zero one (k) stock match.", "label": "Four Zero One K Stock Match [Member]", "terseLabel": "401(k) stock match" } } }, "localname": "FourZeroOneKStockMatchMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "spsc_FulfillmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fulfillment.", "label": "Fulfillment [Member]", "terseLabel": "Fulfillment" } } }, "localname": "FulfillmentMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "spsc_GCommerceIncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "GCommerce Inc", "label": "GCommerce Inc [Member]", "terseLabel": "GCommerce Inc" } } }, "localname": "GCommerceIncMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "spsc_GeographicInformationTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of geographic information.", "label": "Geographic Information [Text Block]", "terseLabel": "Geographic Information" } } }, "localname": "GeographicInformationTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GeographicInformation" ], "xbrltype": "textBlockItemType" }, "spsc_IncreaseDecreaseInOperatingLeases": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 15.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Increase decrease in operating leases.", "label": "Increase (Decrease) In Operating Leases", "terseLabel": "Operating leases" } } }, "localname": "IncreaseDecreaseInOperatingLeases", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "spsc_InterTradeSystemsIncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "InterTrade Systems Inc.", "label": "InterTrade Systems Inc. [Member]", "terseLabel": "InterTrade Systems Inc." } } }, "localname": "InterTradeSystemsIncMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "spsc_InternallyDevelopedSoftwareMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Internally Developed Software", "label": "Internally Developed Software [Member]", "terseLabel": "Internally developed software" } } }, "localname": "InternallyDevelopedSoftwareMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "spsc_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "order": 6.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Lessee, operating lease liability, payments due after year four.", "label": "Lessee Operating Lease Liability Payments Due After Year Four", "terseLabel": "Thereafter" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "spsc_MarketableSecuritiesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Marketable Securities", "label": "Marketable Securities [Member]", "terseLabel": "Marketable Securities" } } }, "localname": "MarketableSecuritiesMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "domainItemType" }, "spsc_MaximumRecognitionPeriodForMiscellaneousOneTimeFee": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Maximum recognition period for miscellaneous one-time fee.", "label": "Maximum Recognition Period For Miscellaneous One Time Fee", "terseLabel": "Maximum recognition period for miscellaneous one-time fee" } } }, "localname": "MaximumRecognitionPeriodForMiscellaneousOneTimeFee", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "durationItemType" }, "spsc_NumberOfJurisdictionOutsideUSHadExcessRevenueOfTenPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of jurisdiction outside US had excess revenue of 10%.", "label": "Number Of Jurisdiction Outside U.S. Had Excess Revenue Of Ten Percentage", "terseLabel": "Number of jurisdiction outside US had excess revenue of 10%" } } }, "localname": "NumberOfJurisdictionOutsideUSHadExcessRevenueOfTenPercentage", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail" ], "xbrltype": "integerItemType" }, "spsc_OfficeEquipmentAndFurnitureMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Office Equipment And Furniture", "label": "Office Equipment And Furniture [Member]", "terseLabel": "Office equipment and furniture" } } }, "localname": "OfficeEquipmentAndFurnitureMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "spsc_OneTimeRevenuesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "One time revenues.", "label": "One Time Revenues [Member]", "terseLabel": "One-time revenues" } } }, "localname": "OneTimeRevenuesMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "spsc_OtherMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Other.", "label": "Other [Member]", "terseLabel": "Other" } } }, "localname": "OtherMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "spsc_PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Performance share units, restricted stock units, restricted stock awards, and deferred stock units.", "label": "Performance Share Units Restricted Stock Units Restricted Stock Awards And Deferred Stock Units [Member]", "terseLabel": "PSU, RSU, RSA, and DSU", "verboseLabel": "PSU, RSU, RSA, and DSU" } } }, "localname": "PerformanceShareUnitsRestrictedStockUnitsRestrictedStockAwardsAndDeferredStockUnitsMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "domainItemType" }, "spsc_RecurringRevenuesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Recurring revenues.", "label": "Recurring Revenues [Member]", "terseLabel": "Recurring revenues" } } }, "localname": "RecurringRevenuesMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "spsc_RecurringRevenuesTimingOfBillingsLatestPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Recurring revenues timing of billings latest period.", "label": "Recurring Revenues Timing Of Billings Latest Period", "terseLabel": "Latest timing of billings" } } }, "localname": "RecurringRevenuesTimingOfBillingsLatestPeriod", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "durationItemType" }, "spsc_RestrictedStockUnitsAndDeferredStockUnitsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Restricted stock units and deferred stock units member.", "label": "Restricted Stock Units And Deferred Stock Units [Member]", "terseLabel": "RSAs & DSUs" } } }, "localname": "RestrictedStockUnitsAndDeferredStockUnitsMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "spsc_RevenueRecognitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Revenue recognition.", "label": "Revenue Recognition [Line Items]", "terseLabel": "Revenue Recognition [Line Items]" } } }, "localname": "RevenueRecognitionLineItems", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "stringItemType" }, "spsc_RevenueRecognitionTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Revenue Recognition.", "label": "Revenue Recognition [Table]", "terseLabel": "Revenue Recognition [Table]" } } }, "localname": "RevenueRecognitionTable", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "stringItemType" }, "spsc_ScheduleOfPercentageOfPropertyAndEquipmentNetTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule Of Percentage Of Property And Equipment Net", "label": "Schedule Of Percentage Of Property And Equipment Net [Table Text Block]", "terseLabel": "Schedule Of Percentage Of Property And Equipment Net" } } }, "localname": "ScheduleOfPercentageOfPropertyAndEquipmentNetTableTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationTables" ], "xbrltype": "textBlockItemType" }, "spsc_ScheduleOfStockholdersEquityLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of stockholders equity.", "label": "Schedule Of Stockholders Equity [Line Items]", "terseLabel": "Schedule Of Stockholders Equity [Line Items]" } } }, "localname": "ScheduleOfStockholdersEquityLineItems", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "stringItemType" }, "spsc_ScheduleOfStockholdersEquityTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of stockholders equity.", "label": "Schedule Of Stockholders Equity [Table]", "terseLabel": "Schedule Of Stockholders Equity [Table]" } } }, "localname": "ScheduleOfStockholdersEquityTable", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "stringItemType" }, "spsc_ScheduleOfSupplementalBalanceSheetInformationRelatedToLeasesTableTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of supplemental balance sheet information related to leases.", "label": "Schedule Of Supplemental Balance Sheet Information Related To Leases Table [Table Text Block]", "terseLabel": "Schedule of Supplemental Balance Sheet Information Related to Leases" } } }, "localname": "ScheduleOfSupplementalBalanceSheetInformationRelatedToLeasesTableTableTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "spsc_ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of supplemental cash flow information related to leases.", "label": "Schedule Of Supplemental Cash Flow Information Related To Leases Table [Table Text Block]", "terseLabel": "Schedule of Supplemental Cash Flow Information Related to Leases" } } }, "localname": "ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTableTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "spsc_SetUpFeesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Set up fees.", "label": "Set Up Fees [Member]", "terseLabel": "Set-Up Fees" } } }, "localname": "SetUpFeesMember", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "domainItemType" }, "spsc_SetUpFeesRecognizedPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Set up fees recognized period.", "label": "Set Up Fees Recognized Period", "terseLabel": "Set up fees recognized period" } } }, "localname": "SetUpFeesRecognizedPeriod", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "durationItemType" }, "spsc_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAtPeriodEnd": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Vested At Period End", "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Vested At Period End", "terseLabel": "Vested at period end (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAtPeriodEnd", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "sharesItemType" }, "spsc_ShareBasedCompensationArrangementByShareBasedPaymentAwardValuePurchasedForAward": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Share-based compensation arrangement by share-based payment award value purchased for award.", "label": "Share Based Compensation Arrangement By Share Based Payment Award Value Purchased For Award", "terseLabel": "Share Based Compensation Arrangement By Share Based Payment Award Value Purchased For Award" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardValuePurchasedForAward", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail" ], "xbrltype": "monetaryItemType" }, "spsc_SignificantAccountingPoliciesPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Significant accounting policies.", "label": "Significant Accounting Policies Policy [Policy Text Block]", "terseLabel": "Significant Accounting Policies" } } }, "localname": "SignificantAccountingPoliciesPolicyPolicyTextBlock", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/GeneralPolicies" ], "xbrltype": "textBlockItemType" }, "spsc_TreasuryStockUnusedAndExpiredRepurchaseValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Treasury Stock, Unused and Expired Repurchase Value", "label": "Treasury Stock, Unused and Expired Repurchase Value", "terseLabel": "Unused & Expired Share Repurchase Value" } } }, "localname": "TreasuryStockUnusedAndExpiredRepurchaseValue", "nsuri": "http://www.spscommerce.com/20220930", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "monetaryItemType" }, "srt_MaximumMember": { "auth_ref": [ "r227", "r228", "r229", "r230", "r244", "r251", "r303", "r305", "r454", "r455", "r456", "r457", "r458", "r459", "r478", "r518", "r520", "r548", "r549" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/RevenueNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r227", "r228", "r229", "r230", "r244", "r251", "r303", "r305", "r454", "r455", "r456", "r457", "r458", "r459", "r478", "r518", "r520", "r548", "r549" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r156", "r228", "r229", "r282", "r285", "r481", "r517", "r519" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]", "terseLabel": "Product and Service" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r156", "r228", "r229", "r282", "r285", "r481", "r517", "r519" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]", "terseLabel": "Product and Service" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r222", "r227", "r228", "r229", "r230", "r244", "r251", "r293", "r303", "r305", "r337", "r338", "r339", "r454", "r455", "r456", "r457", "r458", "r459", "r478", "r518", "r520", "r548", "r549" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "terseLabel": "Statistical Measurement" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/RevenueNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r222", "r227", "r228", "r229", "r230", "r244", "r251", "r293", "r303", "r305", "r337", "r338", "r339", "r454", "r455", "r456", "r457", "r458", "r459", "r478", "r518", "r520", "r548", "r549" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "terseLabel": "Statistical Measurement" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/RevenueNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r27", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r4", "r17", "r159", "r160" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r159", "r160" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "totalLabel": "Accounts receivable, net" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r29" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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", "terseLabel": "Accrued expenses" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r9", "r218" ], "calculation": { "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails": { "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/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r20", "r39", "r41", "r42", "r507", "r525", "r526" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r38", "r42", "r51", "r52", "r53", "r90", "r91", "r92", "r397", "r443", "r521", "r522" ], "lang": { "en-us": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "AOCI Attributable to Parent [Member]", "terseLabel": "Accumulated Other Comprehensive Loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "auth_ref": [ "r209" ], "lang": { "en-us": { "role": { "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life", "terseLabel": "Weighted Average Estimated Useful Life" } } }, "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails" ], "xbrltype": "durationItemType" }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "auth_ref": [ "r18" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", "label": "Additional Paid in Capital, Common Stock", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapitalCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r90", "r91", "r92", "r350", "r351", "r352", "r405" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r307", "r354", "r355" ], "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", "terseLabel": "Stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "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]", "terseLabel": "Reconciliation of net income to net cash provided by operating activities" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AllocatedShareBasedCompensationExpense": { "auth_ref": [ "r343" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.", "label": "Share-Based Payment Arrangement, Expense", "terseLabel": "Stock-based compensation expense" } } }, "localname": "AllocatedShareBasedCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForCreditLossAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Allowance for Credit Loss [Abstract]", "terseLabel": "Allowance for Credit Loss [Abstract]" } } }, "localname": "AllowanceForCreditLossAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": { "auth_ref": [ "r161", "r182" ], "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": "Schedule of Allowance for Credit Losses Activity Included in Accounts Receivable Net" } } }, "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/AllowanceforCreditLossesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_AllowanceForCreditLossesTextBlock": { "auth_ref": [ "r164" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for allowance for credit losses.", "label": "Allowance for Credit Losses [Text Block]", "terseLabel": "Allowance for Credit Losses" } } }, "localname": "AllowanceForCreditLossesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/AllowanceforCreditLosses" ], "xbrltype": "textBlockItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r24", "r162", "r178" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Accounts Receivable, Allowance for Credit Loss, Current", "negatedLabel": "Allowance for credit losses", "periodEndLabel": "Balance, end of period", "periodStartLabel": "Balance, beginning of period" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/AllowanceforCreditLossesDetail", "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": { "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": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]", "terseLabel": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableRollforward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/AllowanceforCreditLossesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": { "auth_ref": [ "r181" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.", "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff", "negatedLabel": "Write-offs, net of recoveries" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/AllowanceforCreditLossesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r80", "r207", "r213" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 4.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of Intangible Assets", "terseLabel": "Amortization of intangible assets" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r122" ], "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": "Antidilutive shares (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareScheduleofAntidilutiveCommonSharesExcludedfromCalculationofDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]", "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative" } } }, "localname": "ArrangementsAndNonarrangementTransactionsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r13", "r85", "r145", "r148", "r154", "r176", "r233", "r234", "r235", "r236", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r394", "r398", "r418", "r444", "r446", "r487", "r505" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "ASSETS" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r5", "r26", "r85", "r176", "r233", "r234", "r235", "r236", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r394", "r398", "r418", "r444", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsFairValueDisclosure": { "auth_ref": [ "r408" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value portion of probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Fair Value Disclosure", "terseLabel": "Assets fair value" } } }, "localname": "AssetsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": { "auth_ref": [ "r167", "r189" ], "calculation": { "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amortized cost 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, Amortized Cost", "totalLabel": "Amortized Cost" } } }, "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesDebtSecurities": { "auth_ref": [ "r165", "r168", "r189", "r492" ], "calculation": { "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail": { "order": 2.0, "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis", "weight": 1.0 } }, "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": "Fair Value" } } }, "localname": "AvailableForSaleSecuritiesDebtSecurities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r311", "r312", "r313", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r330", "r331", "r333", "r334", "r336", "r337", "r338", "r339", "r340" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]", "terseLabel": "Award Type" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by location on balance sheet (statement of financial position).", "label": "Balance Sheet Location [Axis]", "terseLabel": "Balance Sheet Location [Axis]" } } }, "localname": "BalanceSheetLocationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationDomain": { "auth_ref": [ "r401", "r402" ], "lang": { "en-us": { "role": { "documentation": "Location in the balance sheet (statement of financial position).", "label": "Balance Sheet Location [Domain]", "terseLabel": "Balance Sheet Location [Domain]" } } }, "localname": "BalanceSheetLocationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "domainItemType" }, "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]", "terseLabel": "Basis of Presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeneralPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r302", "r304", "r383" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]", "terseLabel": "Business Acquisition, Acquiree" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r302", "r304", "r378", "r379", "r383" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]", "terseLabel": "Business Acquisition" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionLineItems": { "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": "Business Acquisition [Line Items]", "terseLabel": "Business Acquisition [Line Items]" } } }, "localname": "BusinessAcquisitionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business Combination and Asset Acquisition [Abstract]" } } }, "localname": "BusinessCombinationAndAssetAcquisitionAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationConsiderationTransferred1": { "auth_ref": [ "r387", "r388", "r389" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.", "label": "Business Combination, Consideration Transferred", "terseLabel": "Purchase price" } } }, "localname": "BusinessCombinationConsiderationTransferred1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "auth_ref": [ "r384", "r390" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).", "label": "Business Combination Disclosure [Text Block]", "terseLabel": "Business Acquisitions" } } }, "localname": "BusinessCombinationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitions" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 11.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lease obligation assumed in business combination.", "label": "Business Combination, Recognized Identifiable Asset Acquired and Liability Assumed, Lease Obligation", "negatedTerseLabel": "Operating lease liability" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "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, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents", "terseLabel": "Cash" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 3.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other", "terseLabel": "Other current assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables", "terseLabel": "Accounts receivable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 8.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable", "negatedTerseLabel": "Accounts payable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 10.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Deferred Revenue", "negatedTerseLabel": "Deferred revenue" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 7.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.", "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets", "terseLabel": "Deferred income tax assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 12.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities", "negatedTerseLabel": "Deferred income tax liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 6.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill", "terseLabel": "Intangible assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "auth_ref": [ "r380", "r381" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles", "terseLabel": "Estimated Fair Value" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r381" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net", "totalLabel": "Assets acquired and liabilities assumed, net" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r3", "r7", "r82" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "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": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r77", "r82", "r83" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "periodEndLabel": "Cash and cash equivalents at end of period", "periodStartLabel": "Cash and cash equivalents at beginning of period" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r77", "r423" ], "calculation": { "http://www.spscommerce.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 increase (decrease) in cash and cash equivalents" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashEquivalentsMember": { "auth_ref": [ "r7" ], "lang": { "en-us": { "role": { "documentation": "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 Equivalents [Member]", "terseLabel": "Cash Equivalents" } } }, "localname": "CashEquivalentsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_CertificatesOfDepositMember": { "auth_ref": [ "r502" ], "lang": { "en-us": { "role": { "documentation": "Short to medium-term investment available at banks and savings and loan institutions where a customer agrees to lend money to the institution for a certain amount of time and is paid a predetermined rate of interest. Certificates of deposit (CD) are typically Federal Deposit Insurance Corporation (FDIC) insured.", "label": "Certificates of Deposit [Member]", "terseLabel": "Certificates of deposit" } } }, "localname": "CertificatesOfDepositMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail", "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_CommercialPaperMember": { "auth_ref": [ "r232" ], "lang": { "en-us": { "role": { "documentation": "Unsecured promissory note (generally negotiable) that provides institutions with short-term funds.", "label": "Commercial Paper [Member]", "terseLabel": "Commercial paper" } } }, "localname": "CommercialPaperMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail", "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r31", "r493", "r511" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "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", "terseLabel": "Commitments and contingencies" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "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/2022", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r224", "r225", "r226", "r231", "r544" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r90", "r91", "r405" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r16" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value (in dollars per share)" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r16" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r16" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r16", "r264" ], "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", "periodEndLabel": "Ending balance (in shares)", "periodStartLabel": "Beginning balance (in shares)", "terseLabel": "Common stock, shares outstanding (in shares)" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r16", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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", "terseLabel": "Common stock, $0.001 par value; 110,000,000 shares authorized; 38,184,747 and 37,798,610 shares issued; and 36,037,964 and 36,009,257 shares outstanding, respectively" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r47", "r49", "r50", "r56", "r496", "r513" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Comprehensive income" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "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" } } }, "localname": "ComputerEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r136", "r137", "r158", "r416", "r417", "r543" ], "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" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r136", "r137", "r158", "r416", "r417", "r527", "r543" ], "lang": { "en-us": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]", "terseLabel": "Concentration Risk Benchmark" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r136", "r137", "r158", "r416", "r417", "r527", "r543" ], "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" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r136", "r137", "r158", "r416", "r417" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r136", "r137", "r158", "r416", "r417", "r543" ], "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" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r273" ], "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": "Summary of Deferred Revenue Liability Relating to Set-Up Fees" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerDurationAxis": { "auth_ref": [ "r282", "r289" ], "lang": { "en-us": { "role": { "documentation": "Information by duration of contract with customer. Includes, but is not limited to, short-term and long-term contracts.", "label": "Contract with Customer, Duration [Axis]", "terseLabel": "Contract with Customer, Duration" } } }, "localname": "ContractWithCustomerDurationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ContractWithCustomerDurationDomain": { "auth_ref": [ "r282", "r289" ], "lang": { "en-us": { "role": { "documentation": "Duration of contract with customer. Includes, but is not limited to, short-term and long-term contracts.", "label": "Contract with Customer, Duration [Domain]", "terseLabel": "Contract with Customer, Duration" } } }, "localname": "ContractWithCustomerDurationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r271", "r272", "r283" ], "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", "periodEndLabel": "Balance, end of period", "periodStartLabel": "Balance, beginning of period" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r271", "r272", "r283" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 4.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" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "auth_ref": [ "r271", "r272", "r283" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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", "terseLabel": "Deferred revenue, non-current" } } }, "localname": "ContractWithCustomerLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfRevenue": { "auth_ref": [ "r63", "r85", "r176", "r233", "r234", "r235", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r418" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.", "label": "Cost of Revenue", "terseLabel": "Cost of revenues" } } }, "localname": "CostOfRevenue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing cost of sales.", "label": "Cost of Sales [Member]", "terseLabel": "Cost of revenues" } } }, "localname": "CostOfSalesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerRelationshipsMember": { "auth_ref": [ "r386" ], "lang": { "en-us": { "role": { "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.", "label": "Customer Relationships [Member]", "terseLabel": "Subscriber relationships" } } }, "localname": "CustomerRelationshipsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail": { "order": 1.0, "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, before tax, of unrealized gain (loss) in accumulated other comprehensive income (AOCI) 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, Accumulated Gross Unrealized Gain (Loss), before Tax", "terseLabel": "Unrealized Gains (Losses), net" } } }, "localname": "DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtSecuritiesAvailableForSaleTable": { "auth_ref": [ "r172" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about 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 [Table]", "terseLabel": "Schedule Of Financial Instruments [Table]" } } }, "localname": "DebtSecuritiesAvailableForSaleTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredCompensationArrangementWithIndividualCommonStockReservedForFutureIssuance": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of common shares reserved for future issuance related to deferred compensation arrangements with individuals.", "label": "Deferred Compensation Arrangement with Individual, Common Stock Reserved for Future Issuance", "terseLabel": "Common stock reserved for future issuance (in shares)" } } }, "localname": "DeferredCompensationArrangementWithIndividualCommonStockReservedForFutureIssuance", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_DeferredCosts": { "auth_ref": [ "r12", "r486", "r504" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred cost, excluding capitalized cost related to contract with customer; classified as noncurrent.", "label": "Deferred Costs, Noncurrent", "terseLabel": "Deferred costs, non-current" } } }, "localname": "DeferredCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredCostsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Costs [Abstract]", "terseLabel": "Deferred Costs [Abstract]" } } }, "localname": "DeferredCostsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DeferredCostsCurrent": { "auth_ref": [ "r25" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of deferred costs capitalized at the end of the reporting period that are expected to be charged against earnings within one year or the normal operating cycle, if longer.", "label": "Deferred Costs, Current", "terseLabel": "Deferred costs" } } }, "localname": "DeferredCostsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredCostsCurrentAndNoncurrent": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The carrying amount of deferred costs.", "label": "Deferred Costs", "periodEndLabel": "Balance, end of period", "periodStartLabel": "Balance, beginning of period" } } }, "localname": "DeferredCostsCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/DeferredCostsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r358", "r359" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred income tax assets" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r80", "r86", "r364", "r369", "r370", "r371" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "terseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r358", "r359" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "terseLabel": "Deferred income tax liabilities" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRevenueArrangementByTypeTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of deferred revenue disclosure which includes the type of arrangements and the corresponding amount that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date.", "label": "Deferred Revenue Arrangement, by Type [Table]", "terseLabel": "Deferred Revenue Arrangement By Type [Table]" } } }, "localname": "DeferredRevenueArrangementByTypeTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredRevenueArrangementLineItems": { "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": "Deferred Revenue Arrangement [Line Items]", "terseLabel": "Deferred Revenue Arrangement [Line Items]" } } }, "localname": "DeferredRevenueArrangementLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r80", "r143" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation, Depletion and Amortization", "terseLabel": "Depreciation and amortization of property and equipment" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail", "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [ "r282", "r285", "r286", "r287", "r288", "r289", "r290", "r291" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail", "http://www.spscommerce.com/role/RevenueNarrativeDetail" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r282" ], "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": "Summary of Revenues by Revenue Stream" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r310", "r311", "r344", "r345", "r347", "r356" ], "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/2022", "presentation": [ "http://www.spscommerce.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/2022", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "Net income per share" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r57", "r96", "r97", "r98", "r99", "r100", "r104", "r106", "r119", "r120", "r121", "r125", "r126", "r406", "r407", "r497", "r514" ], "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": "Basic (in dollars per share)" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r57", "r96", "r97", "r98", "r99", "r100", "r106", "r119", "r120", "r121", "r125", "r126", "r406", "r407", "r497", "r514" ], "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": "Diluted (in dollars per share)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r122", "r123", "r124", "r127" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "terseLabel": "Net Income Per Share" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r423" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 4.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "terseLabel": "Effect of foreign currency exchange rate changes" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r29" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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", "terseLabel": "Accrued compensation" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "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 Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]" } } }, "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "stringItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r346" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount", "terseLabel": "Unrecognized stock-based compensation expense" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r346" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition", "terseLabel": "Unrecognized stock-based compensation, expected to be recognized, weighted average period" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "An Employee Stock Purchase Plan is a tax-efficient means by which employees of a corporation can purchase the corporation's stock.", "label": "Employee Stock [Member]", "terseLabel": "Employee Stock Purchase Plan" } } }, "localname": "EmployeeStockMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail" ], "xbrltype": "domainItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [], "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]", "terseLabel": "Stock options" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "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/2022", "xbrltype": "stringItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r0", "r51", "r52", "r53", "r90", "r91", "r92", "r94", "r101", "r103", "r130", "r177", "r264", "r265", "r350", "r351", "r352", "r365", "r366", "r405", "r424", "r425", "r426", "r427", "r428", "r429", "r443", "r521", "r522", "r523" ], "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" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueBalanceSheetGroupingFinancialStatementCaptionsLineItems": { "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, Balance Sheet Grouping, Financial Statement Captions [Line Items]", "terseLabel": "Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]" } } }, "localname": "FairValueBalanceSheetGroupingFinancialStatementCaptionsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByBalanceSheetGroupingTable": { "auth_ref": [ "r408", "r414", "r415" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about the fair value of financial instruments, including financial assets and financial liabilities, and the measurements of those instruments, assets, and liabilities.", "label": "Fair Value, by Balance Sheet Grouping [Table]", "terseLabel": "Fair Value By Balance Sheet Grouping [Table]" } } }, "localname": "FairValueByBalanceSheetGroupingTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r245", "r247", "r248", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r409", "r451", "r452", "r453" ], "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" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "auth_ref": [ "r408", "r409", "r410", "r411", "r413" ], "lang": { "en-us": { "role": { "documentation": "Information by measurement frequency.", "label": "Measurement Frequency [Axis]", "terseLabel": "Measurement Frequency" } } }, "localname": "FairValueByMeasurementFrequencyAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "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/2022", "xbrltype": "stringItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r245", "r294", "r295", "r300", "r301", "r409", "r451" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r245", "r247", "r248", "r294", "r295", "r300", "r301", "r409", "r452" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r245", "r247", "r248", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r409", "r453" ], "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 3" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementFrequencyDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Measurement frequency.", "label": "Measurement Frequency [Domain]", "terseLabel": "Measurement Frequency" } } }, "localname": "FairValueMeasurementFrequencyDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r245", "r247", "r248", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r451", "r452", "r453" ], "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 Hierarchy and NAV" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsRecurringMember": { "auth_ref": [ "r412", "r413" ], "lang": { "en-us": { "role": { "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value.", "label": "Fair Value, Recurring [Member]", "terseLabel": "Fair Value, Measurements, Recurring" } } }, "localname": "FairValueMeasurementsRecurringMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FinancialInstrumentAxis": { "auth_ref": [ "r169", "r170", "r173", "r174", "r175", "r179", "r182", "r183", "r184", "r185", "r190", "r191", "r192", "r193", "r246", "r262", "r403", "r448", "r449", "r450", "r451", "r452", "r453", "r454", "r455", "r456", "r457", "r458", "r459", "r460", "r461", "r462", "r463", "r464", "r465", "r466", "r467", "r468", "r469", "r470", "r471", "r472", "r473", "r474", "r475", "r476", "r477", "r556", "r557", "r558", "r559", "r564", "r565", "r566" ], "lang": { "en-us": { "role": { "documentation": "Information by type of financial instrument.", "label": "Financial Instrument [Axis]", "terseLabel": "Financial Instrument [Axis]" } } }, "localname": "FinancialInstrumentAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FinancialInstrumentsDisclosureTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures.", "label": "Financial Instruments Disclosure [Text Block]", "terseLabel": "Financial Instruments" } } }, "localname": "FinancialInstrumentsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstruments" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedAndIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of finite-lived and indefinite-lived intangible assets acquired as part of a business combination.", "label": "Finite-Lived and Indefinite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]", "terseLabel": "Finite-Lived and Indefinite-Lived Intangible Assets Acquired as Part of Business Combination" } } }, "localname": "FiniteLivedAndIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r11", "r212" ], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "negatedLabel": "Accumulated Amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r214" ], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One", "terseLabel": "2023" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.", "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year", "terseLabel": "Remainder of 2022" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r214" ], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": 5.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four", "terseLabel": "2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r214" ], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": 4.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three", "terseLabel": "2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r214" ], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": 3.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two", "terseLabel": "2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r208", "r210", "r212", "r215", "r482", "r483" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "terseLabel": "Finite Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r212", "r483" ], "calculation": { "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Gross Carrying Amount" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "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": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Finite-Lived Intangible Assets [Line Items]" } } }, "localname": "FiniteLivedIntangibleAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r208", "r211" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "terseLabel": "Finite Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r212", "r482" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "terseLabel": "Intangible assets, net", "totalLabel": "Net" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetEstimatedFutureAnnualAmortizationExpenseRelatedtoIntangibleAssetsSubjecttoAmortizationDetail", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": { "auth_ref": [ "r482" ], "lang": { "en-us": { "role": { "documentation": "Remaining amortization period of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Finite-Lived Intangible Assets, Remaining Amortization Period", "terseLabel": "Weighted Average Remaining Amortization Period" } } }, "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "durationItemType" }, "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": { "auth_ref": [ "r419", "r420", "r421", "r422" ], "calculation": { "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail": { "order": 2.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.", "label": "Foreign Currency Transaction Gain (Loss), before Tax", "terseLabel": "Realized loss from foreign currency on cash and investments held" } } }, "localname": "ForeignCurrencyTransactionGainLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeneralAndAdministrativeExpense": { "auth_ref": [ "r64" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 3.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.", "label": "General and Administrative Expense", "terseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeneralAndAdministrativeExpenseMember": { "auth_ref": [ "r58" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing general and administrative expense.", "label": "General and Administrative Expense [Member]", "terseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "us-gaap_GeographicConcentrationRiskMember": { "auth_ref": [ "r135", "r543" ], "lang": { "en-us": { "role": { "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa).", "label": "Geographic Concentration Risk [Member]", "terseLabel": "Geographic Concentration Risk" } } }, "localname": "GeographicConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_GeographicDistributionAxis": { "auth_ref": [ "r186", "r498", "r499", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573" ], "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" } } }, "localname": "GeographicDistributionAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "stringItemType" }, "us-gaap_GeographicDistributionDomain": { "auth_ref": [ "r498", "r499", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573" ], "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" } } }, "localname": "GeographicDistributionDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_GeographicDistributionDomesticMember": { "auth_ref": [ "r187", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573" ], "lang": { "en-us": { "role": { "documentation": "Allocation of business activity identified as domestic.", "label": "Geographic Distribution, Domestic [Member]", "terseLabel": "Domestic Revenue" } } }, "localname": "GeographicDistributionDomesticMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_GeographicDistributionForeignMember": { "auth_ref": [ "r188", "r498", "r499", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573" ], "lang": { "en-us": { "role": { "documentation": "Allocation of business activity identified as foreign.", "label": "Geographic Distribution, Foreign [Member]", "terseLabel": "Foreign" } } }, "localname": "GeographicDistributionForeignMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r10", "r194", "r195", "r202", "r206", "r446", "r485" ], "calculation": { "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails": { "order": 5.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 }, "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 4.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", "periodEndLabel": "Balance, end of period", "periodStartLabel": "Balance, beginning of period", "terseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAcquiredDuringPeriod": { "auth_ref": [ "r196", "r206" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.", "label": "Goodwill, Acquired During Period", "terseLabel": "Addition from business acquisition" } } }, "localname": "GoodwillAcquiredDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Abstract]", "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r216" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for goodwill and intangible assets.", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "Goodwill and Intangible Assets, Net" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNet" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "auth_ref": [ "r200" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Foreign Currency Translation Gain (Loss)", "terseLabel": "Foreign currency translation" } } }, "localname": "GoodwillForeignCurrencyTranslationGainLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillPurchaseAccountingAdjustments": { "auth_ref": [ "r201", "r377" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Purchase Accounting Adjustments", "terseLabel": "Remeasurement from provisional purchase accounting amount" } } }, "localname": "GoodwillPurchaseAccountingAdjustments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillRollForward": { "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": "Goodwill [Roll Forward]", "terseLabel": "Goodwill [Roll Forward]" } } }, "localname": "GoodwillRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetScheduleofChangesinNetCarryingAmountofGoodwillDetail" ], "xbrltype": "stringItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r62", "r85", "r145", "r147", "r150", "r153", "r155", "r176", "r233", "r234", "r235", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r418" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "totalLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r54", "r145", "r147", "r150", "r153", "r155", "r484", "r494", "r499", "r515" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "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": "Income before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "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/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r220", "r223" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]", "terseLabel": "Income Statement Location" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r223" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]", "terseLabel": "Income Statement Location" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Abstract]", "terseLabel": "Income Tax Disclosure [Abstract]" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r87", "r361", "r362", "r363", "r367", "r372", "r374", "r375", "r376" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]", "terseLabel": "Income Taxes" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/IncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r88", "r102", "r103", "r144", "r360", "r368", "r373", "r516" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "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)", "terseLabel": "Income tax expense" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 11.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", "terseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 13.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 expenses incurred but not yet paid.", "label": "Increase (Decrease) in Accrued Liabilities", "terseLabel": "Accrued expenses" } } }, "localname": "IncreaseDecreaseInAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "auth_ref": [ "r79", "r479" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 14.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", "terseLabel": "Deferred revenue" } } }, "localname": "IncreaseDecreaseInContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInDeferredCharges": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.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 the value of expenditures made during the current reporting period for benefits that will be received over a period of years. Deferred charges differ from prepaid expenses in that they usually extend over a long period of time and may or may not be regularly recurring costs of operation.", "label": "Increase (Decrease) in Deferred Charges", "negatedLabel": "Deferred costs" } } }, "localname": "IncreaseDecreaseInDeferredCharges", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 12.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 obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits.", "label": "Increase (Decrease) in Employee Related Liabilities", "terseLabel": "Accrued compensation" } } }, "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in assets and liabilities, net of effects of acquisition" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating assets classified as other.", "label": "Increase (Decrease) in Other Operating Assets", "negatedLabel": "Other current and non-current assets" } } }, "localname": "IncreaseDecreaseInOtherOperatingAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares": { "auth_ref": [ "r108", "r109", "r111", "r112", "r113", "r114", "r115", "r116", "r117", "r121" ], "calculation": { "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail": { "order": 3.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of contingently issuable shares. Contingently issuable shares are those shares that are issuable for little or no cash contingent on certain conditions being met.", "label": "Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares", "terseLabel": "PSUs, RSUs, RSAs, and DSUs (in shares)" } } }, "localname": "IncrementalCommonSharesAttributableToContingentlyIssuableShares", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r107", "r108", "r110", "r121", "r309" ], "calculation": { "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail": { "order": 2.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements", "terseLabel": "Options to purchase common stock (in shares)" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_InvestmentIncomeNet": { "auth_ref": [ "r65", "r67" ], "calculation": { "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail": { "order": 1.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after accretion (amortization) of discount (premium), and investment expense, of interest income and dividend income on nonoperating securities.", "label": "Investment Income, Net", "terseLabel": "Investment income" } } }, "localname": "InvestmentIncomeNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentTypeAxis": { "auth_ref": [ "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r539", "r540", "r541", "r542" ], "lang": { "en-us": { "role": { "documentation": "Information by type of investments.", "label": "Investment Type [Axis]", "terseLabel": "Investment Type" } } }, "localname": "InvestmentTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "stringItemType" }, "us-gaap_InvestmentTypeCategorizationMember": { "auth_ref": [ "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r539", "r540", "r541", "r542" ], "lang": { "en-us": { "role": { "documentation": "Asset obtained to generate income or appreciate in value.", "label": "Investments [Domain]", "terseLabel": "Investments" } } }, "localname": "InvestmentTypeCategorizationMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r440", "r442" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail": { "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": "Lease expense" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r440" ], "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": "Components of Lease Expense" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r217" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r441" ], "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]", "terseLabel": "Schedule of Future Minimum Payments Under Operating Leases" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail_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 future gross payments" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "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 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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "order": 5.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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "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 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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail": { "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 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": "Remainder of 2022" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r441" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail_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", "negatedLabel": "Less: imputed interest" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r28", "r85", "r149", "r176", "r233", "r234", "r235", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r395", "r398", "r399", "r418", "r444", "r445" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 1.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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r23", "r85", "r176", "r418", "r446", "r489", "r509" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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\u2019 equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "LIABILITIES AND STOCKHOLDERS\u2019 EQUITY" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r6", "r30", "r85", "r176", "r233", "r234", "r235", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r395", "r398", "r399", "r418", "r444", "r445", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_MoneyMarketFundsMember": { "auth_ref": [ "r294" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail", "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r77" ], "calculation": { "http://www.spscommerce.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 used in financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "terseLabel": "Cash flows from financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r77" ], "calculation": { "http://www.spscommerce.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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "terseLabel": "Cash flows from investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r77", "r78", "r81" ], "calculation": { "http://www.spscommerce.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 provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Cash flows from operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r1", "r45", "r48", "r53", "r55", "r81", "r85", "r93", "r96", "r97", "r98", "r99", "r102", "r103", "r118", "r145", "r147", "r150", "r153", "r155", "r176", "r233", "r234", "r235", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r407", "r418", "r495", "r512" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "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", "terseLabel": "Net income", "totalLabel": "Net income", "verboseLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetIncomeLossAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Attributable to Parent [Abstract]", "terseLabel": "Numerator" } } }, "localname": "NetIncomeLossAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "stringItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r66" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 }, "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "Nonoperating Income (Expense)", "terseLabel": "Other expense, net", "totalLabel": "Total other income (expense), net" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "totalLabel": "Total operating expenses" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating Expenses [Abstract]", "terseLabel": "Operating expenses" } } }, "localname": "OperatingExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r145", "r147", "r150", "r153", "r155" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "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": "Income from operations" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r434", "r442" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail": { "order": 1.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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r432" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail_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", "terseLabel": "Total operating lease liabilities" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofFutureMinimumPaymentsUnderOperatingLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r432" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 5.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": "Operating lease liabilities" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r432" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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": "Operating lease liabilities, non-current" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r433", "r436" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalCashFlowInformationRelatedtoLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r431" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 3.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": "Operating lease right-of-use assets" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r439", "r442" ], "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", "terseLabel": "Weighted-average discount rate" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalBalanceSheetInformationRelatedtoLeasesDetail" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r438", "r442" ], "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" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalBalanceSheetInformationRelatedtoLeasesDetail" ], "xbrltype": "durationItemType" }, "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/2022", "xbrltype": "stringItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "auth_ref": [ "r2", "r400" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure.", "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]", "terseLabel": "General" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/General" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherAssetsCurrent": { "auth_ref": [ "r25", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current assets classified as other.", "label": "Other Assets, Current", "terseLabel": "Other assets" } } }, "localname": "OtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r12" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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", "terseLabel": "Other assets, non-current" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsNoncurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Assets, Noncurrent [Abstract]", "terseLabel": "Other assets" } } }, "localname": "OtherAssetsNoncurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax": { "auth_ref": [ "r35", "r39" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax, after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax", "terseLabel": "Foreign currency translation adjustments" } } }, "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r46", "r49", "r392", "r393", "r396" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "totalLabel": "Total other comprehensive expense" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract]", "terseLabel": "Other comprehensive income (expense)" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": { "auth_ref": [ "r39", "r43", "r44", "r171" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 3.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.", "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax", "negatedLabel": "Reclassification of (gain) loss on investments into earnings, net of tax of ($13), $16, ($17) and $46, respectively", "negatedTerseLabel": "Reclassification of (gain) loss on investments into earnings, net of tax" } } }, "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax": { "auth_ref": [ "r40", "r171" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit) of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.", "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Tax", "negatedTerseLabel": "Reclassification of (gain) loss on investments into earnings, tax" } } }, "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncomeParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": { "auth_ref": [ "r36", "r39" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax and before adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.", "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax", "terseLabel": "Unrealized gain (loss) on investments, net of tax of $53, ($9), $49 and ($36), respectively", "verboseLabel": "Unrealized gain (loss) on investments, net of tax" } } }, "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": { "auth_ref": [ "r37", "r40" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before adjustment, of tax expense (benefit) for unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.", "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax", "terseLabel": "Unrealized gain (loss) on investments, tax" } } }, "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncomeParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherIncomeAndExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Income and Expenses [Abstract]", "terseLabel": "Other Income and Expenses [Abstract]" } } }, "localname": "OtherIncomeAndExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_OtherLiabilitiesNoncurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Liabilities, Noncurrent [Abstract]", "terseLabel": "Other liabilities" } } }, "localname": "OtherLiabilitiesNoncurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_OtherNoncashIncomeExpense": { "auth_ref": [ "r81" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", "label": "Other Noncash Income (Expense)", "negatedLabel": "Other, net" } } }, "localname": "OtherNoncashIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNonoperatingIncomeAndExpenseTextBlock": { "auth_ref": [ "r60", "r61" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the components of non-operating income or non-operating expense, including, but not limited to, amounts earned from dividends, interest on securities, gain (loss) on securities sold, equity earnings of unconsolidated affiliates, gain (loss) on sales of business, interest expense and other miscellaneous income or expense items.", "label": "Other Nonoperating Income and Expense [Text Block]", "terseLabel": "Other Income and Expense" } } }, "localname": "OtherNonoperatingIncomeAndExpenseTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/OtherIncomeandExpense" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r68" ], "calculation": { "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail": { "order": 3.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "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 income (expense), net" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/OtherIncomeandExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": { "auth_ref": [ "r76" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.", "label": "Payment for Contingent Consideration Liability, Financing Activities", "negatedLabel": "Payments for contingent consideration" } } }, "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r75" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "Payments for Repurchase of Common Stock", "negatedLabel": "Repurchases of common stock" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r71" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "Payments to Acquire Businesses, Net of Cash Acquired", "negatedTerseLabel": "Acquisition of business, net" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireOtherInvestments": { "auth_ref": [ "r73" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.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", "negatedLabel": "Purchases of investments" } } }, "localname": "PaymentsToAcquireOtherInvestments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r72" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 1.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": "Purchases of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.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 Share Unit", "verboseLabel": "PSUs" } } }, "localname": "PerformanceSharesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r15", "r249" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r15" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesIssued": { "auth_ref": [ "r15", "r249" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r15" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r15", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "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.001 par value; 5,000,000 shares authorized; 0 shares issued and outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities": { "auth_ref": [ "r69", "r70", "r166" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from sale, maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Proceeds from Sale and Maturity of Debt Securities, Available-for-Sale", "terseLabel": "Maturities of investments" } } }, "localname": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r74", "r349" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 2.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": "Net proceeds from exercise of options to purchase common stock" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockPlans": { "auth_ref": [ "r74" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the amount received from the stock plan during the period.", "label": "Proceeds from Stock Plans", "terseLabel": "Net proceeds from employee stock purchase plan activity" } } }, "localname": "ProceedsFromStockPlans", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Abstract]" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r219" ], "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": "Long-Lived Tangible Asset [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r221", "r545", "r546", "r547" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "Property and Equipment, Net" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNet" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r8", "r217" ], "calculation": { "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails": { "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, cost" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r219", "r446", "r501", "r510" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "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", "terseLabel": "Property and equipment, net", "totalLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r219" ], "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": "Property, Plant and Equipment" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r217" ], "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": "Long-Lived Tangible Asset [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r59", "r180" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Accounts Receivable, Credit Loss Expense (Reversal)", "terseLabel": "Provision for credit losses" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/AllowanceforCreditLossesDetail", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted": { "auth_ref": [ "r14", "r488", "r506" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Minimum amount to be expended to satisfy the terms of arrangements in which the entity has agreed to expend funds to procure goods or services, excluding long-term purchase commitments or unconditional purchase obligations.", "label": "Purchase Commitment, Remaining Minimum Amount Committed", "terseLabel": "Remaining purchase commitment" } } }, "localname": "PurchaseCommitmentRemainingMinimumAmountCommitted", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesNarrativeDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r357", "r480", "r550" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingExpenses", "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", "terseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "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]", "terseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "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]", "verboseLabel": "RSUs" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r19", "r265", "r446", "r508", "r524", "r526" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 5.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)", "terseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r0", "r90", "r91", "r92", "r94", "r101", "r103", "r177", "r350", "r351", "r352", "r365", "r366", "r405", "r521", "r523" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Retained Earnings" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "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/2022", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "auth_ref": [ "r141", "r142", "r146", "r151", "r152", "r156", "r157", "r158", "r281", "r282", "r481" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "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": "Revenues" } } }, "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/RevenueSummaryofRevenuesbyRevenueStreamDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r273", "r274", "r275", "r276", "r277", "r278", "r279", "r280", "r284", "r292" ], "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" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/Revenue" ], "xbrltype": "textBlockItemType" }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "auth_ref": [ "r437", "r442" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.", "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "terseLabel": "Right-of-use assets obtained in exchange for operating lease liabilities" } } }, "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesScheduleofSupplementalCashFlowInformationRelatedtoLeasesDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.", "label": "Sale of Stock [Domain]", "terseLabel": "Sale of Stock" } } }, "localname": "SaleOfStockNameOfTransactionDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail" ], "xbrltype": "domainItemType" }, "us-gaap_SalesRevenueNetMember": { "auth_ref": [ "r136", "r158" ], "lang": { "en-us": { "role": { "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.", "label": "Revenue Benchmark [Member]", "terseLabel": "Revenue Benchmark" } } }, "localname": "SalesRevenueNetMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationNarrativeDetail", "http://www.spscommerce.com/role/GeographicInformationSummaryofDomesticRevenueDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "auth_ref": [ "r122" ], "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": "Schedule of Anti-dilutive Common Shares Excluded from Calculation of Diluted Net Income Per Share" } } }, "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": { "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": "Debt Securities, Available-for-Sale [Line Items]", "terseLabel": "Schedule of Financial Instruments [Line Items]" } } }, "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "auth_ref": [ "r378", "r379", "r383" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.", "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsFairValueofAssetsAcquiredandLiabilitiesAssumedDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfCashCashEquivalentsAndShortTermInvestmentsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of cash, cash equivalents, and investments.", "label": "Cash, Cash Equivalents and Investments [Table Text Block]", "terseLabel": "Summary of Cash Equivalents and Investments" } } }, "localname": "ScheduleOfCashCashEquivalentsAndShortTermInvestmentsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r121" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Components and Computation of Basic and Diluted Net Income Per Share" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/NetIncomePerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": { "auth_ref": [ "r342", "r353" ], "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": "Schedule Of Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Table]" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "auth_ref": [ "r342" ], "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]", "terseLabel": "Stock-Based Compensation Expense" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": { "auth_ref": [ "r408", "r409" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, 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": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]", "terseLabel": "Summary of Financial Assets and Liabilities Measured at Fair Value on a Recurring Basis" } } }, "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "auth_ref": [ "r208", "r211", "r482" ], "lang": { "en-us": { "role": { "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Schedule of Finite-Lived Intangible Assets [Table]", "terseLabel": "Schedule of Finite Lived Intangible Assets [Table]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r208", "r211" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Intangible Assets" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r195", "r196", "r197", "r198", "r199", "r200", "r201", "r202", "r203", "r204", "r205", "r206" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.", "label": "Schedule of Goodwill [Table Text Block]", "terseLabel": "Schedule of Changes in Net Carrying Amount of Goodwill" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": { "auth_ref": [ "r95", "r98", "r128", "r129" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.", "label": "Accounting Standards Update and Change in Accounting Principle [Table Text Block]", "terseLabel": "Accounting Pronouncements Note Yet Adopted" } } }, "localname": "ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeneralTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfOtherNonoperatingIncomeExpenseTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of non-operating income or non-operating expense that may include amounts earned from dividends, interest on securities, gains (losses) on securities sold, equity earnings of unconsolidated affiliates, net gain (loss) on sales of business, interest expense and other miscellaneous income or expense items.", "label": "Schedule of Other Nonoperating Income (Expense) [Table Text Block]", "terseLabel": "Summary of Other Income (Expense), Net" } } }, "localname": "ScheduleOfOtherNonoperatingIncomeExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/OtherIncomeandExpenseTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfProductInformationTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of product information that are included in the discussion of the nature of an entity's operations.", "label": "Schedule of Product Information [Table Text Block]", "terseLabel": "Summary of Domestic Revenue" } } }, "localname": "ScheduleOfProductInformationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GeographicInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r219" ], "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": "Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/PropertyandEquipmentNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": { "auth_ref": [ "r382" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.", "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]", "terseLabel": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed" } } }, "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r306", "r308", "r311", "r312", "r313", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r330", "r331", "r333", "r334", "r336", "r337", "r338", "r339", "r340" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail", "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock": { "auth_ref": [ "r341" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of employee stock purchase plan activity.", "label": "Schedule of Share-Based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block]", "terseLabel": "Summary of ESPP Activity" } } }, "localname": "ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r314", "r329", "r332" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.", "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]", "terseLabel": "Stock Option Activity" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock": { "auth_ref": [ "r335" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.", "label": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]", "terseLabel": "Fair Value Estimation of Common Stock Using Black-Scholes Option Pricing Model, Assumptions" } } }, "localname": "ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "auth_ref": [ "r335" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.", "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]", "terseLabel": "Weighted Average Grant Date Fair Value of Options Granted, Assumptions" } } }, "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "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": "PSU, RSU, RSA, and DSU" } } }, "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfTreasuryStockByClassTextBlock": { "auth_ref": [ "r266", "r267", "r268", "r269" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock.", "label": "Class of Treasury Stock [Table Text Block]", "terseLabel": "Stock Repurchase Activity" } } }, "localname": "ScheduleOfTreasuryStockByClassTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "auth_ref": [ "r211" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.", "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]", "terseLabel": "Estimated Future Annual Amortization Expense Related to Intangible Assets Subject to Amortization" } } }, "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingAndMarketingExpense": { "auth_ref": [], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", "label": "Selling and Marketing Expense", "terseLabel": "Sales and marketing" } } }, "localname": "SellingAndMarketingExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingAndMarketingExpenseMember": { "auth_ref": [ "r58" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling and marketing expense.", "label": "Selling and Marketing Expense [Member]", "terseLabel": "Sales and marketing" } } }, "localname": "SellingAndMarketingExpenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r79" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows": { "order": 6.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", "terseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "auth_ref": [ "r311" ], "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": "Vesting period" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "auth_ref": [ "r328" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period", "negatedLabel": "Forfeited (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "auth_ref": [ "r328" ], "lang": { "en-us": { "role": { "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value", "terseLabel": "Forfeited (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r326" ], "lang": { "en-us": { "role": { "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period", "terseLabel": "Granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r326" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Granted (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "auth_ref": [ "r323", "r324" ], "lang": { "en-us": { "role": { "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number", "periodEndLabel": "Outstanding, end of period (in shares)", "periodStartLabel": "Outstanding, beginning of period (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": { "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": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]", "terseLabel": "#" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [ "r323", "r324" ], "lang": { "en-us": { "role": { "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value", "periodEndLabel": "Outstanding, end of period (in dollars per share)", "periodStartLabel": "Outstanding, beginning of period (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]", "terseLabel": "Weighted Average Grant Date Fair Value ($/share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r327" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period", "negatedLabel": "Vested and common stock issued (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r327" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Vested and common stock issued (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r338" ], "lang": { "en-us": { "role": { "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate", "terseLabel": "Dividend yield" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r337" ], "lang": { "en-us": { "role": { "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate", "terseLabel": "Volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r339" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate", "terseLabel": "Risk-free interest rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate": { "auth_ref": [ "r337" ], "lang": { "en-us": { "role": { "documentation": "Rate of weighted-average expected volatility for award under share-based payment arrangement.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Weighted Average Volatility Rate", "terseLabel": "Volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "percentItemType" }, "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/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail", "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r348" ], "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": "Shares available for grant (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r317" ], "lang": { "en-us": { "role": { "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number", "terseLabel": "Outstanding and exercisable options (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r317" ], "lang": { "en-us": { "role": { "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price", "terseLabel": "Weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "auth_ref": [ "r321" ], "lang": { "en-us": { "role": { "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period", "negatedLabel": "Forfeited (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [ "r319" ], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross", "terseLabel": "Granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r330" ], "lang": { "en-us": { "role": { "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Weighted average fair value per share of options granted (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r315", "r316" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number", "periodEndLabel": "Outstanding, end of period (in shares)", "periodStartLabel": "Outstanding, beginning of period (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": { "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": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r315", "r316" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price", "periodEndLabel": "Outstanding, end of period (in dollars per share)", "periodStartLabel": "Outstanding, beginning of period (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": { "auth_ref": [ "r348" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued under share-based payment arrangement.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period", "terseLabel": "Shares issued (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward": { "auth_ref": [ "r347" ], "lang": { "en-us": { "role": { "documentation": "Number of shares purchased for issuance under share-based payment arrangement.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Purchased for Award", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Purchased for Award" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r311", "r312", "r313", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r330", "r331", "r333", "r334", "r336", "r337", "r338", "r339", "r340" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]", "terseLabel": "Award Type" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationPSURSURSAandDSUDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockBasedCompensationExpenseDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r320" ], "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": "Exercised (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r321" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price", "terseLabel": "Forfeited (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r319" ], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price", "terseLabel": "Granted (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareRepurchaseProgramAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by share repurchase program.", "label": "Share Repurchase Program [Axis]", "terseLabel": "Share Repurchase Program" } } }, "localname": "ShareRepurchaseProgramAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareRepurchaseProgramDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the share repurchase program.", "label": "Share Repurchase Program [Domain]", "terseLabel": "Share Repurchase Program" } } }, "localname": "ShareRepurchaseProgramDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r336" ], "lang": { "en-us": { "role": { "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term", "terseLabel": "Life (in years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationWeightedAverageGrantDateFairValueofOptionsGrantedAssumptionsDetail" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r333" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term", "terseLabel": "Weighted average remaining contractual life" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "durationItemType" }, "us-gaap_ShortTermInvestments": { "auth_ref": [ "r25", "r490", "r491", "r503" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.", "label": "Short-Term Investments", "terseLabel": "Short-term investments" } } }, "localname": "ShortTermInvestments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r0", "r33", "r51", "r52", "r53", "r90", "r91", "r92", "r94", "r101", "r103", "r130", "r177", "r264", "r265", "r350", "r351", "r352", "r365", "r366", "r405", "r424", "r425", "r426", "r427", "r428", "r429", "r443", "r521", "r522", "r523" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "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/2022", "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/2022", "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/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r90", "r91", "r92", "r130", "r481" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "auth_ref": [ "r15", "r16", "r264", "r265" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan.", "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans", "terseLabel": "Employee stock purchase plan activity (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "auth_ref": [ "r15", "r16", "r264", "r265" ], "lang": { "en-us": { "role": { "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).", "label": "Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture", "terseLabel": "Shares issued pursuant to stock awards (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r15", "r16", "r264", "r265", "r320" ], "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", "negatedLabel": "Exercised (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationStockOptionActivityDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "auth_ref": [ "r15", "r16", "r264", "r265" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.", "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan", "terseLabel": "Employee stock purchase plan activity" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": { "auth_ref": [ "r15", "r16", "r265", "r330" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture", "terseLabel": "Shares issued pursuant to stock awards" } } }, "localname": "StockIssuedDuringPeriodValueShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of stock repurchase plan authorized.", "label": "Stock Repurchase Program, Authorized Amount", "terseLabel": "Share Value Authorized for Repurchase" } } }, "localname": "StockRepurchaseProgramAuthorizedAmount1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount remaining of a stock repurchase plan authorized.", "label": "Stock Repurchase Program, Remaining Authorized Repurchase Amount", "terseLabel": "Share Value Available for Future Repurchase" } } }, "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r16", "r21", "r22", "r85", "r163", "r176", "r418", "r446" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 3.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\u2019 equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Attributable to Parent [Abstract]", "terseLabel": "Stockholders' equity" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r84", "r250", "r252", "r253", "r254", "r255", "r256", "r257", "r258", "r259", "r260", "r261", "r263", "r265", "r270", "r404" ], "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": "Stockholders' Equity" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquity" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsequentEventMember": { "auth_ref": [ "r430", "r447" ], "lang": { "en-us": { "role": { "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event [Member]", "terseLabel": "Subsequent Event" } } }, "localname": "SubsequentEventMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventTypeAxis": { "auth_ref": [ "r430", "r447" ], "lang": { "en-us": { "role": { "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Axis]", "terseLabel": "Subsequent Event Type [Axis]" } } }, "localname": "SubsequentEventTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeDomain": { "auth_ref": [ "r430", "r447" ], "lang": { "en-us": { "role": { "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Domain]", "terseLabel": "Subsequent Event Type [Domain]" } } }, "localname": "SubsequentEventTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsidiarySaleOfStockAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of sale of the entity's stock.", "label": "Sale of Stock [Axis]", "terseLabel": "Sale of Stock" } } }, "localname": "SubsidiarySaleOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockBasedCompensationFairValueEstimationofCommonStockUsingBlackScholesOptionPricingModelAssumptionsDetail", "http://www.spscommerce.com/role/StockBasedCompensationNarrativeDetail", "http://www.spscommerce.com/role/StockBasedCompensationSummaryofESPPActivityDetail" ], "xbrltype": "stringItemType" }, "us-gaap_TechnologyBasedIntangibleAssetsMember": { "auth_ref": [ "r385" ], "lang": { "en-us": { "role": { "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights.", "label": "Technology-Based Intangible Assets [Member]", "terseLabel": "Acquired technology" } } }, "localname": "TechnologyBasedIntangibleAssetsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/BusinessAcquisitionsIntangibleAssetsAcquiredDetails", "http://www.spscommerce.com/role/GoodwillandIntangibleAssetsNetIntangibleAssetsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": { "auth_ref": [ "r169", "r170", "r173", "r174", "r175", "r246", "r262", "r403", "r448", "r449", "r450", "r451", "r452", "r453", "r454", "r455", "r456", "r457", "r458", "r459", "r460", "r461", "r462", "r463", "r464", "r465", "r466", "r467", "r468", "r469", "r470", "r471", "r472", "r473", "r474", "r475", "r476", "r477", "r556", "r557", "r558", "r559", "r564", "r565", "r566" ], "lang": { "en-us": { "role": { "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms.", "label": "Financial Instruments [Domain]", "terseLabel": "Financial Instruments [Domain]" } } }, "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockAcquiredAverageCostPerShare": { "auth_ref": [ "r266" ], "lang": { "en-us": { "role": { "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased.", "label": "Treasury Stock Acquired, Average Cost Per Share", "terseLabel": "Average price per repurchased share (in dollars per share)" } } }, "localname": "TreasuryStockAcquiredAverageCostPerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/StockholdersEquityStockRepurchaseActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_TreasuryStockCommonShares": { "auth_ref": [ "r266" ], "lang": { "en-us": { "role": { "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury.", "label": "Treasury Stock, Common, Shares", "periodEndLabel": "Ending balance (in shares)", "periodStartLabel": "Beginning balance (in shares)", "terseLabel": "Treasury stock, shares (in shares)" } } }, "localname": "TreasuryStockCommonShares", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheetsParenthetical", "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockCommonValue": { "auth_ref": [ "r34", "r266", "r269" ], "calculation": { "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount allocated to previously issued common shares repurchased by the issuing entity and held in treasury.", "label": "Treasury Stock, Common, Value", "negatedLabel": "Treasury Stock, at cost; 2,146,783 and 1,789,353 shares, respectively", "terseLabel": "Share Value Repurchased" } } }, "localname": "TreasuryStockCommonValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedBalanceSheets", "http://www.spscommerce.com/role/StockholdersEquityShareRepurchasePlanDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_TreasuryStockMember": { "auth_ref": [ "r32", "r266" ], "lang": { "en-us": { "role": { "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. 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": "Treasury Stock [Member]", "terseLabel": "Treasury Stock" } } }, "localname": "TreasuryStockMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockSharesAcquired": { "auth_ref": [ "r16", "r264", "r265" ], "lang": { "en-us": { "role": { "documentation": "Number of shares that have been repurchased during the period and are being held in treasury.", "label": "Treasury Stock, Shares, Acquired", "terseLabel": "Repurchases of common stock (in shares)", "verboseLabel": "Number of shares repurchased (in shares)" } } }, "localname": "TreasuryStockSharesAcquired", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "http://www.spscommerce.com/role/StockholdersEquityStockRepurchaseActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockValueAcquiredCostMethod": { "auth_ref": [ "r264", "r265", "r266" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.", "label": "Treasury Stock, Value, Acquired, Cost Method", "negatedLabel": "Repurchases of common stock", "verboseLabel": "Shares repurchased cost" } } }, "localname": "TreasuryStockValueAcquiredCostMethod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofStockholdersEquity", "http://www.spscommerce.com/role/StockholdersEquityStockRepurchaseActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_TypeOfArrangementAxis": { "auth_ref": [ "r391" ], "lang": { "en-us": { "role": { "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]", "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative" } } }, "localname": "TypeOfArrangementAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/RevenueSummaryofDeferredRevenueLiabilityRelatingtoSetUpFeesDetail" ], "xbrltype": "stringItemType" }, "us-gaap_USTreasurySecuritiesMember": { "auth_ref": [ "r89", "r294", "r301", "r500" ], "lang": { "en-us": { "role": { "documentation": "This category includes information about debt securities issued by the United States Department of the Treasury and backed by the United States government. Such securities primarily consist of treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years).", "label": "US Treasury Securities [Member]", "terseLabel": "U.S. treasury securities" } } }, "localname": "USTreasurySecuritiesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofCashEquivalentsandInvestmentsDetail", "http://www.spscommerce.com/role/FinancialInstrumentsSummaryofFinancialAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" ], "xbrltype": "domainItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r131", "r132", "r133", "r134", "r138", "r139", "r140" ], "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/2022", "presentation": [ "http://www.spscommerce.com/role/GeneralPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_VariableLeaseCost": { "auth_ref": [ "r435", "r442" ], "calculation": { "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail": { "order": 2.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Variable Lease, Cost", "terseLabel": "Variable lease cost" } } }, "localname": "VariableLeaseCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CommitmentsandContingenciesComponentsofLeaseExpenseDetail" ], "xbrltype": "monetaryItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r105", "r121" ], "calculation": { "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail": { "order": null, "parentTag": null, "root": true, "weight": null } }, "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": "Diluted (in shares)", "totalLabel": "Weighted average common shares outstanding, diluted (in shares)" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "Weighted average common shares used to compute net income per share", "verboseLabel": "Denominator" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r104", "r121" ], "calculation": { "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "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": "Basic (in shares)", "verboseLabel": "Weighted average common shares outstanding, basic (in shares)" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.spscommerce.com/role/CondensedConsolidatedStatementsofComprehensiveIncome", "http://www.spscommerce.com/role/NetIncomePerShareComponentsandComputationofBasicandDilutedNetIncomePerShareDetail" ], "xbrltype": "sharesItemType" } }, "unitCount": 5 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(15))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1707-109256" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1757-109256" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1828-109256" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(16))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1500-109256" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "44", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2062-109256" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "48", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2538-109256" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "48", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2538-109256" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "51", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2574-109256" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2597-109256" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2600-109256" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "54", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2603-109256" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(17))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258" }, "r127": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "https://asc.fasb.org/topic&trid=2144383" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "270", "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e725-108305" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "270", "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e765-108305" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(18))", "Topic": "210", "URI": "https://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": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(25))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707" }, "r164": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "310", "URI": "https://asc.fasb.org/topic&trid=2196771" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=124260329&loc=d3e26610-111562" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=124260329&loc=d3e26853-111562" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(aa)", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27232-111563" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "5A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=SL120269820-111563" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "320", "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27357-111563" }, "r172": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "320", "URI": "https://asc.fasb.org/topic&trid=2196928" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "321", "URI": "https://asc.fasb.org/extlink&oid=126980263&loc=SL75117539-209714" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "321", "URI": "https://asc.fasb.org/extlink&oid=126980263&loc=SL75117539-209714" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "321", "URI": "https://asc.fasb.org/extlink&oid=126980263&loc=SL75117539-209714" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919253-210447" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919258-210447" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919230-210447" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124267575&loc=SL82921835-210448" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)(1)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124267575&loc=SL82921835-210448" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)(2)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124267575&loc=SL82921835-210448" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124258926&loc=SL82898722-210454" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922888-210455" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922895-210455" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922900-210455" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=121590138&loc=SL82922954-210456" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r2": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "205", "URI": "https://asc.fasb.org/topic&trid=2122149" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r216": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "350", "URI": "https://asc.fasb.org/topic&trid=2144416" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r221": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "https://asc.fasb.org/topic&trid=2155823" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "410", "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r226": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "https://asc.fasb.org/topic&trid=2144648" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751" }, "r231": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "https://asc.fasb.org/topic&trid=2127136" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "12A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=99376301&loc=SL5988623-112600" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496180-112644" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(9))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=6405834&loc=d3e23285-112656" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=6405834&loc=d3e23309-112656" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "https://asc.fasb.org/topic&trid=2208762" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130558-203045" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130550-203045" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046" }, "r292": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "https://asc.fasb.org/topic&trid=49130388" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "https://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.21)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4534-113899" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126962052&loc=d3e4991-113900" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29,30)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(04)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.30)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(v)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(l)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.F)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11149-113907" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11178-113907" }, "r356": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "https://asc.fasb.org/topic&trid=2228938" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331" }, "r376": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "https://asc.fasb.org/topic&trid=2144680" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "37", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5227-128473" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6578-128477" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6613-128477" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580" }, "r390": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "https://asc.fasb.org/topic&trid=2303972" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "808", "URI": "https://asc.fasb.org/extlink&oid=6931272&loc=SL5834143-161434" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569616-111683" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569643-111683" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e640-108580" }, "r400": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "810", "URI": "https://asc.fasb.org/topic&trid=2197479" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=d3e90205-114008" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=SL126733271-114008" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(1)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(2)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "6A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=SL6742756-110258" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13467-108611" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13476-108611" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=126980362&loc=d3e28228-110885" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669686-108580" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e689-108580" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(2)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "17A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL34724391-108580" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)(i)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)(ii)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=66007379&loc=d3e113888-111728" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=109249958&loc=SL34722452-111729" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(4)(i)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(4)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(5)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(6)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(7)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(b)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(e)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(e)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(e)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "912", "URI": "https://asc.fasb.org/extlink&oid=126938201&loc=d3e55415-109406" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(17))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(4))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(5))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(6))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(1))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e557-108580" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Subparagraph": "(b)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126980459&loc=d3e62557-112803" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "405", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=116652737&loc=d3e64164-112818" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(1)(g))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(10))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(19))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 1))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 6))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 7))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 1))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 6))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 7))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 1))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 6))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 7))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "5D", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-13D(Column B)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=SL120429264-123010" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "5D", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-13D(Column C)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=SL120429264-123010" }, "r539": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column A))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column B))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column C))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r542": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column D))", "Topic": "946", "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r543": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "954", "URI": "https://asc.fasb.org/extlink&oid=126942805&loc=d3e3115-115594" }, "r544": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629" }, "r545": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916" }, "r546": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916" }, "r547": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663" }, "r549": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r550": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r551": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r552": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r553": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r554": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a" }, "r555": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r556": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1402" }, "r557": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)" }, "r558": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)" }, "r559": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(3)" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r560": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(4)" }, "r561": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(5)" }, "r562": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)(i)" }, "r563": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)(ii)" }, "r564": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(i)" }, "r565": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(ii)" }, "r566": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(iii)" }, "r567": { "Name": "Regulation S-K (SK)", "Number": "229", "Publisher": "SEC", "Section": "1402", "Subsection": "Instruction 5" }, "r568": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(1)" }, "r569": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(2)" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r570": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(3)" }, "r571": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(4)" }, "r572": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(5)" }, "r573": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1406" }, "r574": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(4))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(7))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(9))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7(a),(b))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.8)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3151-108585" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(e)(1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794" } }, "version": "2.1" } ZIP 89 0001092699-22-000015-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001092699-22-000015-xbrl.zip M4$L#!!0 ( %J!6U6CG"75!P@ *(E 7 <3-?,C R,F5X:&EB:71E M>#,Q,2YH=&WM6FUOV[83?___%)R#?Y<"?I(?&L]) SB.BQKKDL[QT.W50(DG MFP@E:B1EQ_OT.Y+R0V*G=9>U]8(5J".)Q^,=[\??'2F=?7=YW1__]GY IB81 MY/TO%^^&?5*JU&H?FOU:[7)\2=Z.?WI'6M5Z0,:*IIH;+E,J:K7!58F4IL9D MW5IM/I]7Y\VJ5)/:>%2SJEHU(:6&*C.L='YFG^ O4';^O[/O*A5R*:,\@=20 M2 $UP$BN>3HA'QCH6U*I%%)]F2T4GTP-:=0;#?)!JEL^H[[=<"/@?*GGK.;O MSVIND+-0LL7Y&>,SPMGK$F_5VV$ S5>-&&@K:+=II]E@8=SIL"".XK#S>X!& MUE#<]]%F(>!U*>%I90IV_&ZKG9G3.6=FV@WJ]?^7G-SY62Q3@X,I[.POO8YM M351-4)F163=HH"8#=Z9"!9^D7>=?R:M:BD=22-4]JKM_I[:E$M.$BT7W^S%/ M0),KF).13&CZ?5EC3"H:%(^]H.9_ MJ(@[C;N;?_!/4(GL+2GZ!AG1C\^G9X M,1R39E -[GNPG^T1SCRH;V1\?S :#]\,^[WQ\/H*D3NZ^:5W-2;C:W(SZ+MG MS7J#7+\AX[<#5ZU_?#7XCO?YX7W^_N'>MG=X-RZ2GHBD''+4[IWL'+*.,X>*J"(A-M]U:AI"G#,/7K31??3,G@^K2 MB:\_^OUI:72J;3L-0S*E,R *9ASF2$MFRC7Y.:<*<2X69 295(;(E+R1*B%! MO?(SD3&Y>7^#7)4DH"(HDV$:53%"/SR'"#4.+D(75&-<, +)@MRF8+IQF0?C1DF"=XI306(:X2-%9,(- M,=++;0FD$('65"VL2$)O ; MT_!<(-C\]T 02,Q3#++%RSJH9<0?BF.SVFCG:8P40FTUA=>1R!GJ1.!L1+", MH..6=C*,NX6LA;(0:TP6<- /AD;8,U>FE:U$+E @2@1+6XX[>R)J)Z26,BY M7J)T!!.N#=9XAE#[T-N-5I8WP*:7QFQ9^USPUCHXO(WO!>?%4:<1G)SJ E%% M76 I0L8QQUL7MB&A"AQ ,. \%& #20!1&0JNIU;2PB,E4S("AH\U.49@,$"D^>@/[J(I32= >LA)HUR@1-"DE:!]#"]=UZ#- M_)V_Y;9<3#U"K7YBB6L#N!Y(UI:]!XKO#13C0-;/AW!&"9O7GU W!?7.0XQ: MU'XCC-*#P6CKI%H_L?-P"1JW!!@NE](^C:6RS;81S?7^76S:"P%Q48SD$ZG, M%2I =IIQ[3@/I2!U>FRMO&;+3<95(*@#6I%)UV I%VQL&SDR)]JBI>#,[5)U M'FK..%7<.L!]OG#I!?>;*]C^.]&6L+SOMSW=ZH MQI4PX\RR.M4RI9;4J4:@V[(2'TZH8DLT(;XY#;G@9F'3^ZYA[=IRP'.8\LOB MGNA&6>IRQUWA4):K##&M73D215(Q9X K4">08I4A$-K8 IE=,U8$BV\/7UQ; M/$/Z?C8 C@X'P$LF'LRHR!U=V?!"'&.)R&<8&+VCU%M5$WO0K[_=7?TYP&)' MI$[M:\Q0YN9Q"_9)$'0E#;: CC^]YR'ALC1W:Q#\3* ]#F]V@.> .78XF%N2 MIH_F-BKLSKLHW5S+3NA]!E7:A"ZC*%T9)>K2$2KZPQ_D MD.-'NL0(8B2Q!]*%X;AA G=H8,\3TGQEUTMOU93J5:EAZ<^!'IC+"VX^"LY> M$,%O010G" _DRT^>HB<"_:!V8NV#P?G3=F+N2)$METAY35*6,S=ANN8K"[3/ MJ#VVJMB5:10K62.57J5[]P!5)@DW!N C&2&46%#8=L;1/J?D&,&,!*PMP>-? M6T\O5R#\D7,TWZVV/(W<03:[7+$ ;%1I.K5 MQF<.]-;F7E^RN>SKBDUWWKD\%?HLQ!5[%'_$L(/8*,..&E:\]B@ZBQ(5NR#$ ML)(L^P) 8_;7>8( P5ERSA3Y9.?YV;-*[H>W(^IA#H\5\D89PPZ.ZA X[GBZ M0%C9IT">SJ28@G;L)6?['PJ%X M.>H Y9O7;XZK=?_VV"C\SY8C%\U5UU0S;+NMU:G^4'^\N5X-'FW[A]36G,G> M;)P9G='T=:E96G8HD--M9'-?K_[A"33$1'_&Q;CW<BL/4HB2R__-9.V^2KZ"TW4WYJ+ MU4<87V!"G,8N-SA>M,<4]7&"8C*X@RBW>UUR[4O +3(Z 'M=GCDN#F.0.F%E M=%&WOOQZ5G]T3J^QZ@Q!O3@*7M5/&R=E]QG0@T]M_@X*:X["=V2(S:]],NF_ M=>KZL^(9;'W_LU[C+@?4UUUHB L]-]M=/O')4/'KOUYRWU&=_P502P,$% M @ 6H%;533)Y<@>" UR4 !< !Q,U\R,#(R97AH:6)I=&5X,S$R+FAT M;>U:;6_;-A#^OE_!.5B7 GZ/\U(G#9 X+FHL2[K$6]=/ RU2-A%*U$C*CO?K M]Y"47Q(GK;NLK1>L0!U)/![O> ^?.U(Z^O[LLM/_\*Y+1C:1Y-VOI^>]#BE5 M:K7W.YU:[:Q_1M[V?SXGK6J]0?J:ID98H5(J:[7N18F41M9F[5IM,IE4)SM5 MI8>U_E7-J6K5I%*&5YEEI>,C]P2_G++C[XZ^KU3(F8KRA*>61)I3RQG)C4B' MY#WCYH94*H541V53+88C2YKU9I.\5_I&C&EHM\)*?CS3:T&3YK:U0*89IV_M7"JIFXI&22K>WZO[?H6NIQ#018>:Y_D;&=[I7_=Z;7N>DW[N\ '*OKG\]N>B3_B6Y[G;\LYUZDUR^ M(?VW77)]+>M1[TKE'*X=LXPRAO55D3RV[=W6+(HB98A@N[*S]\W\;%1G3GS] MT>].2_.@NNNFH4=&=,R)YF/!)V F.Q*&_))3;7TPKGBFM"4J)6^43DBC7OF% MJ)A.:3$8B&A&3 MNY]%_PG7O%#B'$B$D4AI+CM.A!W!09/QR!OH]&8P33&X.48W1@;3Y6EX+A#< M^>] D)-8I BRP\LBJ&7@#^)HUDOM(HU!(=055+B.9,Z@$\!9BF 9H!..=C+$ MW4'605G*!28+.)A[0P/VS%=J92>12P@ B IH\<,9;T]$S8C$4DW,#*57?"B, M19EG"74/@]VPLKP$-C,S9L7:YX*WUL;AK7\G."^V#IJ-_4-3(*JH"QQ%J#@6 MN/5AZQ&JN0<( BX&DKM $@Y4#J0P(R?NQ!+0HZ-(=\^$B:0R.?HYXM1*!J1D M6D60:.S02F-WF[_T71N[+-R%6^$J MQC0@U.DGCKB6@!N Y&Q9>Z#XSD Q!G)^WH?T+=U*@?W,>H0^TWPBC= M&(RV]JOU?3\$8M(-N[.%Z;L5;@O#[7K8UJK(2Q8([5 M*;:$U)$Z-0"Z*ROQ<$@UFZ$)^!9T(*2P4Y?>'QK6K2T//(^IL"SNB"Z5I3YW MW!8.9;G.@&GCRY$H4IIY WR!.N0IJ@P):*.%9V[-.!$4WP&^6%LB WT_&P!' MFP/@&1-WQU3FGJY<>'D@WW#Y<_7G HB.HTX0:[7( \S 7L\WMP SP%S;',P-R/-$,U55+B= M=U&Z^98'H?<95.D2NHJB7+O8+V7/![0FREAT=<>4T&4B*/HS'.20[4>ZQ Q M2.R>=&$X-DS<'QJX\X0TG]OU,E@UHF9>:CCZ\Z#GS.<%/Q\%9T^)%#=<%B<( M]^3+3YZB)P)]HW9BNQN#\Z?MQ/R1(ILMD?*"I!QG+L-TP5<.:)]1>ZQ4L7/3 M*"I9J[29IWO_ "J31%C+^4/G_ANO+I?D3B1(-):, U-PFUVV7(\&!C2)5SS<^$TYO7.X- M)9O/OK[8].>=LU.AST)16=1HJ(+((9*LAP* (/L M;_($ ,$L>6>*?/+@^=FS2NZ;MR,Z00Z/-7BCC+!S3W4 CC^>+A!6#BE0I&,E MQ]SEP90.BU-V7; C3S*IIARMDY$*E$COX!=X^U>*A.IGO-RS?A-5- ^ /ZXK MF&I),\/;LXM#4'C"6]>;+4 )_]+?NK]?-J].O] +KKG MUY<7<^ 4<_$1-^O.R36GIL"5AUT&?]UI$IDY^I^9MWLOI+_07/VCZ9A_C?$% MYL1K; N+\:(U9JE[RZ/<[77);R@ R3OL8X5+*3Z'=4:"Q^3-G+(N0Y6XPE<; MX(Q/1=O%>8U[^SDWVCFR=*135+HOOYX3'YW_2]2I@.F+K<9>_;"Y7_;?#MW[ M/N>?(+;F2?^!G++\B5"FP@=2[7"Z/.8K'PTM*,%GC?JB"QV %W*[VN43WQD5 MO^&3)__QU?'?4$L#!!0 ( %J!6U6WM\E'/P4 %L8 7 <3-?,C R M,F5X:&EB:71E>#,R,2YH=&WM66USVC@0_GZ_8DOFVF0&OP()&)H90LB$:0HI MN-?VTXVPY*"IL5Q9A'"__E8RAK0T;>ZN;=*;,HP'>Z5]??1H+3I/3D>]\-UE M'V9JGL#EZY.+00\JEN.\J?4#4)(TYXJ+E"2.TQ]6H#)3 M*@L<9[E25$XX=K:KN)$+DS*:*5HX[^@E>&:''OW6>6!:$-9_AXL:SVJ)[*5Y%X M[SC&2&M)CVLLVFS%==IBT8UMS4]K#?J[$\/ MG71P>#$G5ZN$/:_,>6K-F+8?U!N9:B\Y5;/ <]W?*V;<<2<6J4)C$B<7/PL= MNYJ(O$)E2F2!YZ,FQ6Z411)^E08FODJAJAP>B43(8,\UG[:66#&9\V05/ OY MG.4P9$L8BSE)GU5SK(F5,\GC8F#._V+H(QHQM\O"_R/4D_"4E?%XO@ZB__9\ M<#((H>;;WL<1W,_W"#//Y ,YW^N/P\'9H-<-!Z,A(G<\>=T=AA".[HSDL7CN M->&U/;%[-CS=\PZ/VEZMX3YZI[L3Z)Z.+L/^Z4^5ZTF_9_#1<@]A= ;A>1\F MW?%)=]B?6*.W%_UWT.V%6N*[KO_/U@!/*486U ZS[[]^ZY\-;I!")-*419J3 M8-";<1:C=K2F^#6#41SSB$EC)\M9+X@6%TEC"Z=#GR6X?:6Z\F?6\XF#82*3.]MMQ5,UL72 M>%P;GA Y)2G+K=%-PE;0C926:#SJN B&W6BV[PW-C%"*6ZF5L%@%C?HG8+4> M$*V>70;QXZU_G!:_:3=T&D+,_GJ)Q(L$UTN$&$@T3C?8E>S#@DNF>PQ3[+)^ M7FV?' BP6OLTX--*;=(WZ!\74^O5:MC)5MMC:'_037]1UE-GN+JG!-3(J1& M17 FQ:>F.F6I"=? T= :) 049ECDO:"7>$ 8JI*;]-32 MHQ9) 0J!S&ALYI^0B7W?0F,1%9DFK!1/A41VLS"="44D66_!!C2%>-O%VF[1R2IL7Q4M+:_%MA$YBN[* MZDV[Y=XM=FWO3MDW4NL8EPNW,3,YIOIYI58I)ZS1$?C9#7@?=ZP:,#O)$=F/ M7T->':-YNE<_:N?F"MUQ[WS0AY.+;N_%!C7K1'PA1E='>,^\K$&E,>?:1P@3 MR$7"*92!_C1YZ\H(]W(X24CT_COEZC'EPF@,N$)3T5>RT] O1I_O@_1KZGXF M.7)9AF3&-G)1R _^4R8=PT2_B.X7T7V-Z%X,7I[TQQ?O8-B_F(R&O[CNRZE[ MP?5+%O8K0Y;D(GU,=+MM\ZD!(%(E%JO1)Z0YI%P>/_PX5Y9C2BT;!T_?7\_! O'N[>8B7HU&DQ.9H MQ#\JCD:^0:GNW&5O'U-GHCBD#R1+B%X3.P?76Y(T^ZB[G4*F2),+M3OE*V?= MZVMQ[&[^ #C^&U!+ P04 " !:@5M5S6EZ>#'2 0# @AD $0 '-PN?G _:AT>C!B.,W?IR\)*'*)SBH=#4F (8 M)X6C3A3FL-Z[0C!C$M-@HA?+X:76,1F; M6 HZ@B7:$NF3%A9L'%Z>KIR MY@:=E?[@\ 4CA+^X/&+I\@O(/\M;/#>'UF_+;]=W?<&XYLSU\?WSX;%7B7-WYQ M==?M'IX]9JF^& UL;YCZ@ZX=H=3Q5%041!>+BR\M#OSU*65+7YQNV[SL03T=?_$_S[8X_BEU;W'[XX2KT;K_,?]NJ!@I""OHM?#'P^+0VI/K$R4[=.5)+K^XH2G#P>CN M@?CAEX->=FSO\/>EV"O>[RRA_D8;7OW6C2/;R#\KXG_&[4^_+ZWU>R.TRF+W M_ 0?WU^\^WUI%,]&+\J!?/'J?_VO__7;J#WJQ%=Y&(JK9__MQ<6'O[VX.+7K MA_-7OX7VI\9P=-Z)OR^%]O"D8\]?]OJ]B#?0/GN9#XR#BY?M$&*O?(G?MQ : M!FU_-#.-C;%_M[^^<'W7=PL+M]U%P_PK\'QP?'AW0?WQ]T-TGS\^KI6][J M['_NP]:;O[I;>Z^[S>[!QZTW[\G^[BK@7[;/]J&UMT'V]P[:K?7F:?.U)F_9 MP?G^GI=;ZYU.J_M79W]WXWQKUT/K39-LO?GW48OMGS>/-\ZV]@Z.\!RG!\?[ MG\*;UVWWYKW7O_D+KR5Z![LG[=;>7YWF;NOC_NZ[\^;N1_S]*GZW<=KZC,^Y'O"\G6[S MS3MH4_%!>@/!Q5#PA/H* *0P"F)!."C#;)#*D*57 M!$V*&":-^>W%#:$^IXS7QH,!"OAU>^AM9S_:P48OK*-W66I<&!I>X6ST,N G M11U0$6ZO =U4 [JB <4'KI$0A.*([..8*JVTH+!.*:A:D![7TBC($_BE* M_XI2?!'_:_QD6 OX>P(6=P3,M&:$2UN@# +RJ1@++2(M4+9<@A2:ZK3T*@MA M9O+]$\_?#[6$'R3AL^9:EFXIY?/6\3N^]>Z#\L%&946AT8 +H-06+G%9>.=" M1.Y+D^1+K][Q*4IX%<4;2A%W[.%-T$[M,W0YR78RAZW%_3UQ[]P1MZ44!6%3 MX0AZ;*"(V6CC%D,DI8V6E"OEEEZ5 WQ'XB]N,K1!3!']K(_#>XAECC1>#DLB MC3K1*(.4ER.DD[\O#=O=DTYFU>5G1X.L,C&\(M+;YWS7VBRV\>-@+C7OOB\8='%M7J^LFZT0['@_CJ4@#EEU>GN/KNZGT^Q_V:R+1G MR)*8D0("9298!3XZ'9+65KF+$9T3!;PQHC=TZI$C.B[M^>:0729#7K[?6?_A MT20&DG+2.)(2.,*<5YH3'R0DQP2P.?!W?I\_7(^]?K?=N^^T#S6/&Z=X KJZFUKAPW M>C5N=!['C3Y\W.C$QDU'5#,(1@7F *AW$DD#%XP 1)%2O!PW.M_C]E#^,+EQ MI9&ZG!U6'X>;?? MVQGU_<>+<_WVXMY+7(_:]9W\J.,@\M%N^(9HP/N0O!%,(25VSEN>B#:""\X= MIX8OC&AV!Z7S.:^2<#RS5.D@4E !%*,(SB):PCF)08$R"R.;[#=OZT M[;#96[,G[9'M5$1,46G-N4*?FAS8X)WQC@0/+"GKC8D+(Z;M.++M7@P;=M!K M]PZ'59&/ET0&C 94U!AD!<<2Y1J1SDLK?/0+(Y]5[\?=<2=/G&^-CN(@'S>( M1_ELG^)FS_>[L2(B2]:!"M*"I :DJ5U<"%L\+) "Y$9;@GT2Z><)^5 M&<]>H-%&9V-B/**%,NHU,)-XC$BO<< O,\L+)=!GYM-S(%(OO4/H#20"V$@L M,KDDF%#"L^"$7SR1/C^]F[U4@T;8Q7C*":(@)64BHT%92JDD2M(%E.I,2.'L M!9VDX1J"2X82\(E:R:S6+H04I'/Z*N=4??E.,>?T^*F?FZ)QBD7-6"20\#]D M]<([BF^9U&"L7QC13#7G-"'A2$MC"DS@Z&M 4$2\9-$'(,YQ[4$MC'!FE'.: MD)B4BX8R=&'>($=1U!GT8IXX@8$R7TQ7$6T:Y M).B/G(\&P[V%D<\"&+ D:FEL%#XD] :!C M9"D9P?C"B&9ZG&ERPI$2HI%1<"H"<,ULY,$!A^@X!,/*LA+IY(ISSM.A.I2L,LRQ-O$"(HX:Q2G&)XS "T T>GM]ZI MROYS4@NQ;AI<2BHZ$B-'$@LLZ.B!J%RLE<]* "@[-1N0*UKPB.OK@J%&+8S>S8 R3$U,*U &NM8E M!49:S8!Y)PAP$AB[G(M:!#%-E3%,3CX2DG3!X?@3EQN?:*)]GN>PC 2G15H8 M^&@?!T!OT)%L4)S+Z)@M+*QQ@Y(.$"HW6>BW(1M1L_DQ38X@EWJFO&IB]0 M'81,&-X0CC0Z4NUBV9TL:2F#E%PNGD"GO&9L!C::^V *SWWP%(A,+FGDXY9( MQA"7M5@\D4Y_S=CTI4HX8Q[9(/') X6 =#U$;:2/P4L-:O&D.A=KQJ8O:.FU M2Y2JE+MW8%1F)-'.TEP33@0Q='I]Y*KL62?5X.XFN7?9KM!E.I^ *Z&UL0 * M9"0F>4D61C337#,V*>$8HYPA"?)J 5!16 \:$@5KF5=4F(41SFS6C$U*3,Y9 M#(ZCELD$H,(ZXIPWQ@<1DE<0%T9,4UXS-BGY:(M_(GA@@8 -1.?>NLQ9C-QS M$ M0G?H294$.G?5O],7)R.!H%$*@T%!#M<<,Q"DD,ARF/-25$F<[_AR1V&F7N$E$10)0D+R3)+04EEDB Q M( I[2G/!_\\(P NA+;-W"=9'D^DW>,F :F\$,!T5RQTSD8?7^#,IC=J-_JC7 M[_0/S_^PP[L_K @24:D(&),,511(XMI;*_%_*H5(*84:B2JO-[/'),&2)I!X MU*A141@- 9C7U#/@TEXE[B@A4%R]J*:2H3#C8'=@0]PY'V*T.9R@LN4,4_S/ M. >PG_#_\M;?-Q7KU@'/KDB4% 0>ID@W#GU*Y8>D(L4D+!,65,I[8SFO Q." M2O!,5F@Q\EH_;W'N1WOMT=$5.5D?#^PMC=J.?CP8M'N'VQ&%.H[?PX?O7G\X M&+W\<] /8S_:&NS$P:>VCU]=[_6XD]J=3G<:"C2#=<]:4\:)]PPQ"&1>QVZH M-4B2*$CGPBQV6JL5J$IMK%VTP6KFF+$>A#=:2T,$D1%#.LU4JE!"]*=7H)GD M7@-P3Y.7'F,QX$Z[H*0E21%NN8B5JC+^Z15H-D61/$:1M XV20@4M#.&2DI- MWF67)EBWA"4@I#8AN*B!\(1!.T"H /^IU6=V["<)YK53AC'# M(3<3PS^!*FL3?D)CJ #[J=5G=MS'D@!@4%N,%. -.$^H>((KJAT,52 ^\PY M>2[K?Q>1]ZC !!=&,0!T7$8[J[520BL(S'Q9BSW/O*=6G=EP'N4#4(UHHDP" MX,$Z,") I"!C4*[.^51"=6;"=Z2/D2EAC),)9'(6= @Z:L6\4)RF"O"=6G5F MPW6\UI(3+JB4''V41.Q12'4H, 96!%-SG4KR$"M)-$D2I3R#J(BA/I$0$WAO M$U!9\Y!*:NW%(SE2+M9"H)JHLP">M;I"G4VL3=P19@(4@@.E$@;K#<* M&(DL>>WLXOG5J5OJ#!:*,DD(PR"8:PQMN+$F&>[RPGU@3K@JM13'$6ZX=%[H*:9B]:WTNI@D&66?_L51.[$T?N3U_$YP/%9-IKDG&D>J0TF"LC3UXD; M(""EC4I&92^W)Z^E\;>-?R8E#YXLM899D%0;/__=VF?*I3!E"1V: MMLC\F+4NANL%9%5(74J*[DEF+@WP- M5)8XW$KK\:0_O#K?W%LLY<$&$H)-U .7"8-_JD-4DE CD+#.O\7.H7@FV%<^ MMZSF@*&@#, =TUXGPX40P(3(U2=S;SW?!M22]%P FG6=N).KB=JC]M/+@!^N M&1=]GMJY(?K)[P[8#G4![U1"H$C?E'C->V/?C+ M=L;QC_-F*80RH?)Z4#:V\^'#J\+F">F,%]NZ?KEO_ A[< ?G;^- MGV+G&W>UV3L9CX;E$712-[/9^Q2'H_R@=QL 5C2_H" RG3RW>=O-DBL89QB1XJ)6VUI.+.COJG=8Z@41PLT9I+_/:0&9<)'G!?1UN+#*- MK'(!!=-$ *4T*-1<8ZS60GBK+77.\&!EI32WYI(_D>;F/2D<*,&\3T!3T-HK M=- >"#'"1%8IS9T79:D,H:RRYN9V:+F1KP'$7&VLDU$$;04R3X=RKY$)*H9X5J:CFGFHLA.T9! M,FDFJ"GDO(4]S)'HH\3_: "JI(V: MH!0 1'@PS@T?^FX%FH\SHUA9P[G95( M#HFAN7V@ L.\]90;1K@V7FJX;)U3Z^S/KB9&@922(EVTR"!!..YM#$0FQYP4 MVM:1QB)3R KWIDB(8<"XU*B^$!C50D0'+GKTR)RI:A7]UCSRYU%\/-4 M)R5K7?EJFUIO'#>:6&\A*:=M4,2(''U$&^J5W36MG--XB&H@/!$:$W404:^D M4<)9[06) )962G%K6OGS*"[G()-PBJ=$@&'DSAV", &*.*PUJT#W[#G4E9I6 M/K_B6J\5B=:*Y!RPZ&Q*+C@NB;):0TT5:EWYHBL"P8UQP5+P$CP1V@1#";XP MG)M ZA!D7FGEO,0E,6IE:%[3E?]X:H4,3GF3!'C\IUKM]'XF>C))(3N29(;L%%XU*2 MQA/"972Y.&O^J>*?@SX^[^C\SPX.P6HOY*T/3_(Y_CC_DI]&RG M<[Z>S0I_%G;Z:71J![$B)%%J0AWC0J7 (05E(8+05!%K 4&Z @GX^9?6!*=+ M; 1)A58S%-L-B#_J<+=E$1B]) @U7,\(0>RM&@*4N::Q:TT"29N& 6-7U1 M3;0VG^9M&*-3"0RGAJK$I1=*.0@:*E";_W!&L952V\?K[_'8U^-!KST:5X;_ M>8*"X=( 8)B.%%VGO,(1<9 2F5O[+HAAS51:$UR&*M%)61DPIM(@L]OB0#P) MS'J+GJL*W7?:..#Q;?M3#$C';>^P[3IQ=3B,HR%&R/:X/UCKV.'P%L$8#T?] M;AQLQTZY%^;PJ'U2%<_EM3'!&64LPX@JYIT!E B$!4C,(\_XL)XU!(>:%N6+ M6G:/DAW*9S!:MZ-X87 D_^_Z/-??78]K^.K0KP5]]5,<( MHZ157CJ9G$+O5X6NZ(^1[V[T1[U^IW]X_@=RECL_K(B5@D02Z23#6#J #\[J M))F75BCMF)9JT:UTZE*>-B:@"ULT_\YEG/'ZF M:F$TRA10;)(!C\IPDY>' TF< )7AEI76LINV;=X0]!-LTZB(D2-AB@H/R1G' MB',T(=$MNT OJFW.TI=., ' A8F*V4B90FEQ&RB^Y#SOEFGQLT6WT@KYTHG9 MJR48T4C&?0B@M3<60(*6T5AE77(S$/F\CML8-:HD=)1(W40QB%\>F;Y_$<@.T=V$+>2L5B7%D$()J"H;[A.S).$]2] 245898PDHC95=&6NM)!?3D!H*QAR,8 MFU@4)8U0AD*R(7(04F@A#&@#3!/FA4@5P)Q)RW&B6LSHH[1X7C"',:DI]U(+ M0B )KI.SR@>NG??!*J@2YM1Z,B>8$[V!2%T@D3.041A%K$C!AA!\B!!JS'FB M+K%*8PZPD%=7&BM0/8*4QA&52'16.B)9,I>8HRJ .9L]W^_&:VUYV_=EWN>V ME@Q'6VG'=IYC0>QM:U=3MW8;G'**1"2L"IR,6DO"/7B!KH1&:BYC2U6!U/R< MB9,^7)R32[LSJJ5PFB>75[-&;WGRFEJ-_WDB6)48P9R)4I4+YKO MW(F=3KMWN-H+33OX&$?X>N/L!$_U#!5!LW>EADI!K*,6 H"'H)$.2::"Y3X: MEO2BN=*927XB\KC!630D0=MJY3?FV_ISL31$JM#7D^5 M/!/ A#6$2.>9<9YRPAU;-$<[2]N=OM^51,OOLA84+@4N(B^:%9ROBF?AA)[R4 M#LD5B0*C8&T% C6:+]-HT!#3HOGAF5OQ##PQ0Q\LHB" _TI0%D+*#7@Y85Z% MQ?/$,[?B&<3#2+$D"M5814!%80/AVH'VPBAKI*V0+UX]M8-P=XGW1O>DTS^/ ML9QJWSK)4E]$CTL20P%*RSR/(+PU%'QT$OESBMPK7R&/.S>"G,V\;7 Z1*,2 M3;G$FVI'?.0.@UV2.YZ["OG5N1'D3+RG(D0YDZ+5N94K"8;H) R)+I=MTA0K MY#WG1I S\9'6!,:UZ" UH%E:IP4SB+Z"%M<) W ML_-$!.">9LKCO!,D,HQ'@%7?0\Y&F#/QDXE);9,!$YR Y+@- >,/2O/>F\:F M4'T_.3/+G$4F%I)!V@I*YEC26Y FX@6HD@J\(=7WEC.SS.G[S*AM\$I9(("@ MFJA+R%Z5H%KGEANZPCZS7-ATGR3+N>T4!X.O/UQ$%\JYBF(I6$X-"RG8F# M]<0HSZ+UT280EELD3Y13ALR7@W5070<[5[*=T5H;KQQ$[KCTH)ET+":57^;M MU:2L4LWO?;*]D87_\VHE<<9.L@*\@"15HU#%BQ"HJ[E]G M)\\>QV8[):EG/L+P5!X6D**D4%,6CTFUHH2))%0B,A%?>7K_OCP4$< M]+=Z\;\O6G[8D3]:1&?)D/!8;Y*/2>1M!S!\(98'2VF*.I@J+4.=&T'.9L[3 M =51@,\[DRL=<^XO=^4QQG%B;-4]Y:PL<@8U09:(1*E@&D%6:&J]$#XISIWF MS(HJ+2Z=&T'.QD=*[GRP,1=R 576@(B16'!*@H^J AN$S+*FZWFVX>9)2.-I M- R#0LV,S-/2W'NNC-?T3H<4/K_MD"M94< GT^)84@XA6F(5\P!H4=J!$L+Q MH!S1NH1(:B[%B"]J,7Y'C-0\6(SYT F)47@9E8@@Q0##21Q?G _'2!6;9 M1=*-7%DCJ<7X76LD#[=&,C$Q0G080XC@B!' J3.@I$LQY:@>2:BYS3QK,4Z6 M=TY(C!$,RUL#1(IHRI+60+SVQ@6:._WY.XOFYU",P\'HY;;M'5[Q37S;M&?M M[GABC:9_9@7A02L?#/74\KS4WG'$9$4PR/0Q6 KSOQ'(??'(;=%=5)7<5VER M\[/R7-.:('N6O4% H+$[0[46 1SW2)VL3A&)L$Z,7,]Y535C4 G!SC[=$#V" M/0K?0A* %"PORV<,!#CB> 17N2BU.L)_EA WX(U'X05Q&"3E'J""97"6&83%3'H)G1E(2.%'!A2BU MKM+4]UH?_6FO[[VVWAQ__./\C]OQ1UPYN":ILLKT=/\7>.+;B:%+A]#TW M<#>X?A/SCA72ZSGCBYM-[ZO\\M]QZSWN\@XVGX1:P,2,U83 M&T5P$02A+CK/\PY"7'@O1)7Z9-::7A5-GTWQA-"<)6.=]0$LV=6W3"A]?<35V1Z\N:_UFA''#!'$ K$!HS3+:=[53!A# MH'87/Y41O>X/8OOP>R50W[V1:>839^^'!$]YDL%P11PP;;67@5$.3E.=(JE2 M:]C:A*9D0I54]"1<I[;[-R6T%OKQJ=Y^GS6M$KHN@_Q+=N ME!,\5-%?M,]>#N*P/Q[X.+QX>Q1M*&\^M#^]^@W_[[+-NXX86">6@HY@B;9$ M^J2%!9L<<$(^9'7_\IOAZ+R#BMUM]XHC'*FCT4M.5\3)Z-?3=A@=O:2$_)^E MFT?:P2$>/.J?O*0,C\OW5]@.#O++0?X]'CT\L;VKPWV_TQ^\_ <:"$GIUX3/ M4R3;;7?.7_[?713TL-&*IXWM?M?V_N_RT/:&Q1!'X/+ 8?MS?*GQ&N6[TXO; M T)^[;1[\>IV*2/_Y^(F0O3]"]U#)HE#DX_"N['S6)1;'MHK\=T1XE>BR'88!]^6!=[Y(P: WAX!=<\( M++UZW]KK/1 M6-MJ-C=W=C:W6C-\!/:@1]A;W?G79NO-[E9KN;&^LK;28 2IWC=O^RL3UC*:">+VUW6S\ALC6Z_=:XRZ>Q#[6^Y_>LNU/^[PY#L<;GP[> MF..MXT,XV-L7^WO[YP?==W"PNWW47#_"OP?'!\>'=!_?'W0W2?/SZNE;WNKL M?^[#UIN_NEM[K[O-[L''K3?OR?[N*N!?ML_VH;6W0?;W#MJM]>9I\[4^>\L. MSO?WO&P>OS_;VOOK8Y,U/V^M'WQLK6^<'NQVVJWN7]W][CYMKJ^>-H\/C@[> M-#^%-W]!^->_.P>L\\D=]\];NQOB8._=Y_W/36AUWY'F[A^=K;U-=H#7.3A^ M?XJ_/6]U7W_.M"++3DH0#)2)$'L! >3"(,44%.]* M__)%"J\>J$D3UQOR(+WY)6^2U]CJQ7\^Y#[Y-S1^5 +NY?&N/T#4+O ).O9D M&%]>O?@UM(I+S>Q==? M_.H*N?"M(_3AHW!UY_8BC'?_I:LT&]^]W=G-;"BZ<-.^Z*\ MXXN[QH')0_[[$E^Z^L&)#:'=.WS)3LX:]&34R/\R47**K\:]$]/E^W8O4^67 M!8.5^X:N?_)PM=K#Z^9K#Q\-IQ3R8SX_!KT;(T5$7G"^'4_Z@]%2HZRV&N$% MSD8O4_LLAF(T&%<3IEZWW9OWLKF^25MO_CIJLG^W#[H;YZWUHV[S^)!MK6] ML]O$]^_P_C8%WO?E;_[":XG>P6X?S_6>'.QM?-[O_KN+QY"M-_OG6^O[T-P] M/-__O$E:ZWC>XT[WX+4^?;N[.FKND+.WNYNLM>[%!TN=DE;I0C-J"^14IG#* MFX(2330G4FGGEUZ=?1/C+M7_^YI]1YV?HKJ3X@.E K][O[J]N[']=K^QO?'G MUO9NX\_WVSOO5UN[C=VM!O*=720U#D^;Z^].MW29IOMD7K?5#?K"W>7JP]^^C MK5W/6WO[:./HP]_LW_;]9P>[[TY;NZNB^?G=Z<'Q1[*U'CK[QW]T]KL;HO79 MTX/CC<]XKZ<'G7M\/^7.1!)3(170 I02A4O)%=1SJ@EW6CN^]*J_R+Y_=WNU MM;-9>OC:^=_K_+]8X)7W3X-^M_'A\D]CU+]^_1"_(:?RB ]+!*WUN]WV,"?/ M&ZF-7JLW+E/JSPAK&V6._#5>K%5>JY*H]93$RB;[$ U-G&A9Y'W."]".%8XS M5W"OA0DA&4I\GB.B!0=%'D5.IJ)D#!ZD9,^N3=OQL-SGL3=JX3<_G48U/W\0 MC L6F"TTT%2 H*%P5EZ,&0O^?.V66>F-[;6.YL=E:6WFP:MVG2^WN M86,X\+\OY8*=:_%\.*0KQR>'2PW;&7WKJ\N37FJ)$2=GCZ&^^7=++V:29K]V M(.497[9'>#7_D-3CQIGUHT96TSQ7\T5Q&W;8V#F)/L\ AT:[UVB/AHVUHS+J MK%":4JL5K?1C@A%!5SCE$X]&0*Z 5L\/F[B:TC@]O!RJBM==D6[OOSEK=?Q\WW[S# M>SPXPF>$UN['T_WCG/ALGI4)S_N2E!JBCT29(FAID3(H7QAE72&C,"39H*W1 M2Z_68\>>VD&<;+SRTZGWKCW;O"S'N=ABNL)4==IZNW%3;R$Z(U%S"\D44EW! M16&0_18\,9^(TU0DM_0*RCY@@C+UMYK['/FB:=(&_5C64$)L \/1/L:C@\;7 MM=%((V97;O"(!Z("'ZC]M?\HGVMP:'OMS^7[6W1GTCF6.1^?"X%OKFRO[*PT M+I??#JHGX9OXV6CU5^X3:R730L_N?E9#&,3A\/*?MW@#M)*NY]$Q[6=\_4$S MXH-CI* A8DBKG"O0E6CT'-S:&)@(/"V]XIPW=OKCT5%C)U>SYG]'@QA'M_W( M\O/GM.Z*C?UT8GOWP0H9HG.R\,2X BQ%L8$0!7B!HZ8$M90NO=H9M]&A4334 MV0EJ#5]N#7;[I]4,2)XBIL,/Q!JD7D842EN.PI$,Q61XD2APYEBPQ(BE5\UV MKQ?M2;_3'LY.3B7YV1K\B?$C\H:?++WW&5GY!Q- 1,%DX7C4!;AH"L,L*:S2 M0%20H$U 8;5NRVAJ(OJSCR%^YZ!]O^!46Z5U[H(Q*"OTD(5FDA> M,"6=8=I+8]C2*R'@!Y+Y\TCM+LCII=!S O-D@";9/K&=1CR+?CQJ?\IY3:1] M<;C=3O_:SSDTWQ08ND M P!Z&>.1PT&"PG )!2?>"A>C2CPNO8*#]JB-)QR4#Q@',31.QH/A M.,\XC?H8,UWDD"C[Q?TSXWDN=UCUHY[H6[IPR5QID)M-C^V<%N4^#GM+4> MCO>/#\^:>^_.F[N>YEDXO,NCYIOWMV?HV,'N1WYP_+K3_-SYN/_Y/6FQ5GMK M?>/L8'WSK/7Y/=W_?-!M=?$>_L)[O#VS+)*D7D9>B!21["'%*QR1KK B)4]# M$L["1:$@:G39!W2Y<6('C4^V,XZ-_YW],6V7X '-1&\0"CN,3C M"SBN+>(!%K%Y:T&82DX1$$7RWJ!%:%YHJTFA;(A@+'=4D[*8;FUNM7W.IC__ MUA1V,>9HV6&P_[F ET9>GAM'C;=OUQK/F7^Y5+UN: MGBF]NV%*;_EV)_YK^_Q@+YPX!K*U=]!IL7IP M'+JMW55R\ ;':/W?J?FY^<$R&< +2SE(N=596$4Y45$3<)/M*8A9.I5*L^; M3M_9SJ7VW,D9/7'V>=*F81YD&IN]D&?08\.=-_Q11-O(K7R05\:R#B1'ZX,O M):2_T'\VCNRPK.0/#=OIX)=YQ5 .__\S;N?@'V-^%R\/P'->Q_\\%V%9?E:H3RQY?/\,_EANV%QB_LXAD=&B1^[X[Q M"?+QY:'XHWP7E^?)BZ>&Y4V4-VF'HX8AC6#/ARO//S&R-AX,\/H72[:R-Q[9 MT7A820AY4C*1?2#.4QP^C3:L: %!L\)EOQJL!>.%2EKPI5?[\T MI.]A)G?V@U==';1MYTE7_-'GG"3 M/JS&>7^ ]>P5 %V,QPA$G7;HQ%B5^P@ M(@WZO4R\.N>-B"3LO+&9V97UY?38NAW91E[_=!N5OYSCZQ3M]AB/!"(NEPN, M.Q<%53O%;N.7O(99_PNS/AZNG'R (8Z5V!5>>%4!M**R3H2#$4".=5$+(&E=K7*TLKB*4V48' M;SLVK/>(JP.;P3%#S2"3P7L_;:"B%_=^,>PB(.-5!E>4#-&IBV-POIRY+YX. M"6,>HL/&X:!_.CJZ^GH%J7 L[RW$U.Z5ZX#+VH<\5KP[Y[ MP+?O[^K S'\O#_[&O5X=V>Y=^ W*7,&N&/W7-'YE$2?X](H"/?E^%BM$/&ZV M;48W^[ YSLFNI;B0X=11A4RE'CN3M<$:6NYA?W!^3X:H/*BT:7]Y4*631%O_V?KQ]_A8=/ZKC3_;HY 9OFMV#3-)85^_*[2F/5W80G@]! M]>^;W;VUTOW2HTYJ5GP*ARZ.FVC=1PQG;US/H7R5E]7.M[CPPJ#%LY.6<@C_ M& _QRL/A8O8,FPI-.7^[V[Q)4Q(0ISRS16!<%D!Y*+3EL:#.FT0M5T;9[_4, M^\GS2I8J]? M3L6,AQ=Y0-3PF-O_-D9?&@->SIOD^91\K"\WW6P@S!LY$XY[?"M4GW^B_WGO2F].?J\D>KG1'X]*="_7CHT:6W[4O^Y SBX[D)?3ZY=&_+J< MX<9SYPU.2Q.^N)FEFV8=G22.@:<<;9N(Y/*>C2)JZ07C2<&'S7QB2AA:ES=;K>\J5RFO:Y9P;^?(3ZX;]SGAT]R<7MO;J-S=X<6OM MYNUMPQZV7YQ:NOK-T>!+-',8"S>(]F-ATR@.7MK.J3T?YNZ=]V\J!_66;61O&,"_GO:WW[U&7*SWS+=S9EV6HURBW/+G;:@&U8@R;9+7 U/)\$TF!34K? M2TWY$SW<]]=WRBWOJO3SQ./NUW1R7NST1OCF*W05=^6&)S M:'_W/>"L[.\'[^7'[._U=1ZT[/%VL6#GEW'/CD-[%,,_'V6"CQ#H/=SI.W'$ MLZKRO?)\QBO>D2=&J#\J2OX-62T"!C[CE&2-)A-"$YE;%.2-8?/\"KXJ5TJ7 M=3Y_V Z"3&SL',4XRLGY&E.J@"FRQI0:4V:+*>:;F/(572G38]V303S"X_+Z MOKPW2C?6.%,1G$$A0XTS-<[,#F<8>R#.E--S1_T.7F)X.0O9V/C/N#TZK]&F M&FB312UJM*G19H9H(Q[*:NSPJ/&ZTS^M8Z:JH N*5M;H4J/+#-%%YX56([RG M4;_Q#9BY+^M;(TPU$ ;%JQ8882HSVU4UQ5'R,7=,_P?[$X(A^S'8?CS@6SW#J) M%[=4PWYUK)>:&O=KW/]1S3'J$O=YC?NSOYCJZ[-V^WAQQK6*V.NSOY MSC% V92@_N>@[V/(.%ZC=G5LC^F%@>VZ)'Y^2N+-54W\YDIC:_=?&]MU07S- M*::%:Y1]5<5?_;W\H.2RXFZQFOK1_U!#=85LK@:K&NP?HSJZ'H&OII8C8)[W_NRB71CQW8N M^E)=UGY_M5-?3NB]'Y8]6RZI> WM%;+/&MIK:'^$ZC!:3[)7$MJSX-9CLF5A MU/N3O*U?[+7[@Z\@O8;OZMA@#=\U?#]&=:">2Z\F?*/@FO@;9.0I(A'_JB:J MANWJV%X-VS5L/T9UKDI;10W;L[^7'Q3<5MG^?[-WT=D:3U4#=G6LK@;L&K ? MH3J<7 *VK %[]O?R@X+;.#MJNW:]4+A*QL;)PN!T7:0Z-T6JG"^]VME\TUK= M?;^]L5/C047P *7&Z=_AP9WMXZZ>\-;^ ,\WXN497[9'*%[_]R-2[G#POM>) MPV&Y.]#EMCR-?@XK3MO#O%_0?\;M01PNEUO"G8P')_WAE]V$WHWM8(2J?][8 M+G>X;?1[C=<8BI1;.RR7AYSV\U9P><4U([^>QN7R%?WUZI/Q\/8G_?'@^J-\ M@LN/+W?LNGWTSI\[UQ_E6>,O'^=VAMTX\/'J:Y1QWBJMW_CZR^7%%49@DIM"/,I3MKN'C>' _[XT/!GZ MZUWI/ARRE>.3PZ6&[8R^]=4M4B%.SAXC;ZY/SO+N1%]#C;/^X^&@CUZKN$2= M5/[Y]4SU@#YNI>;Z_WUAF4H-P!W5I5DLVB6>>XO8A\GNB+9_J M&OQ+=W'31?QYL;7HQ9:C._$$0]B\11V_W#CN>QNQ/FX3K]S3_>F[>%&^4N_C M5?E]O/1-T=+C^>?S_S@ERNCOM$][1LT MK#J[L3566^N-G?=_[&RN;ZYN;VY\>[NP>7F&M:W6^D9K9V,][W"VL_5V@.U'^=VS$KC[-TK[I=U#@M,?XRD"AL?QS".EN=P' M]9\WR,P//^J%$\& M8=['B"2L4L.PNK/SM7?XMG"_^;B7T%[Z@FP_N;UJ(]_WO [$_8G,KW;[:CQE M.'[ 7IXPI#\RH?O-;,%\8'49F'U?/FOCP0"5IF&'P_@5T?R1T;WUV(^2T'.? M8T*@TRC_)7,OU-S:/6=]?7Z1,]6?;.=&('&3CCSH\4FC$@K]OY_TC#-*(CWT MX7Z[N;U\8]QKC[9SHF \#$M7LQ3E!VW+M&><:&:D@$"9"5:!CTZ'I+55[L/F M569UJ1&B;W=M9_C[4H$VT;/=F,]8'%I[\C+KTFHOY'\VOBC2ZFC-#@;G.&Y_ MVCE[UQMPC],K.13XM6AN,72WLKHZ/ _SIWZ_U/;]GVIWW> M'(?CC4\';\SQUO$A'.SMB_V]_?.#[CLXV-T^:JX?X=^#XX/C0[J/[P^ZFZ3Y M>?7T+6]U]C_W8>O-7]VMO=?=9O?@X]:;]V1_=Q7P+]MG^]#:VR#[>P?MUGKS MM/E:G[7:INN[KWM;W8W3YKHG!^L?V<&;3=A:?W?:VCLX:N[]N]W<_4B;G_?/ M]C^_$P=[F_PMWS[:[YYU\#=D:Q>O\_D0FGOX_?$[:*W_T6[M;7YN';\G6^L? MR<&;)FGM'HJKW^"UQ@?LO=S??2?P-Y^WU@_/#HY?X_TP MM;O]$:]'M]8[J7E.SM[N;HR:.^2\=?R.;[W[8$BR,4A6J"!3 3J*PG&?"NNM M#8P;&W.C/ZKE,LLS\C=5Y-5__8-*\NM3C.(*]W[ .";IX6N,6EB,(@:2Y]BL-1]SY2>#T.[,?& MX5[PK39 38I$E0._B^.^^678:SR:%!ZUUNYPIB"YEPEXX11#SJ1L*K2(4!A% ME*=>42^1,PFR;'*GS:?!T=] PG-1IH>&R[4%3XIBU!;\S!9\FU&8Z"5W2A16 M.UT 2Q*C'A**X$7TCJ?$<\DAF&4EYLF"?ZY$TZKW^"RC86,0?43>[3KQ46SB MH:%Z&2XMC1* G;I%=?+FM(YLN6)IBS,W#.,3J=_:GL^EH6S?A!#>]3HH(7$ MGRYO\0"@@Q%2X) M6ZB4&-%<>B(UHM6RO"<9'Z#Z;EG'W?S&\N-7AP]BGJLO7Y-7J]] M785&5I2X48AVN[RO B!6+F^:BR1(*XYJR)HT9-TM1Y$!78PPM% BIT BA4)S M'0JP6D8:J(B$(1&1RTJKIX9-CS"9YZ8KE[?T)+I2(\'SIE!J)'@6)+A-7@1H MIY-'M4Z>('E1I- 6D4!+ZU1,E 230Q)8%O+)-1]31(*?JR9D/7=_R-L.^/ZP MK@69 G&Y&O"U/-XU3$T8IK;NUH)X+8P(B1?4 ](4F5RA$;$*;AUU #I8Y\I: M$)3M',TDU_F3>9VSJ2WXF2WX3G6I9(R)X N')EJ D+RPP4J,0)P(U%JMRUH0 M)!KL;IJDK@69CB%>M-S]SCJR>N)X4C2B'.[5@?&8:]M- M*L [4SA*94&Y],H+Y4D22Z^H6&8@YVBRN"[\F%<24=OOL]KO'0H1F5$14N' MR0*8@<(YIHN@O%+"2,,YH/W*90*+NCYE_J=;=OLCVVGXARU)?T \\[ >"@L( M4A.;9*GQZ5D6T.VN9FRZX!C'^Z3U^>.'Q(57PL>":*(+ .8+@UB%!(."()JF M$'.+76Z6F>(3"G(>W&.D*@F,G];@)S:74AO\LQG\^4V#1XA61 (I%/6\ &YT M85E(1=!)@88D(TUH\((M U3#X)^AL]/\<90_!_T3O)_SLK]*;JURDM>"/;XJ MY.>(FB9%2*Y&_\^.[8U6>V'C2@"M6,/5!.%JXPX_\98Z%%>N5$NF &%988-G M!4F2"!!)2*L0KMBR84]&JSH!,L>F/"FJ49ORU$SY%O/0@5(.' JO:"Q YKH- MB*1P2J,E.R\-=WDWCV5#%G#ARWS3BRVT"3O"VVUTHLW[C.3OBGXJQOCFZ1F1 M!<>FB4VN7$GA;1;"=KZ9K?1^&,OPJ :GR8'3YMT\B- B-\U&BI%< 2[SC"A# M(1SS"KF&BPK!R2PK^>1>9W6QQAR;\L3F66I3GIHIW^(9QIJH7S#/FKVQCOGG&FWX_G+8[G3IG\>QDXFJH:["9 M'-@T[_ &%JB,R?A"!ZT*X$P4#B@I(F,N6L%TY+E+JA08U3RY85"=H)ACNYT4 M/\_Q-"<6<=-=+#T2I%E]?12L3H%,4),\ M1S6 \![E_IE7/B.S[?>*R]KCFN%.=QET[0,GYP/W[Q!:E:*-N=(P$JD*<%%@ M=,U3P4*PT07C8_+EV@=0,$<^L":T\TIH:]M]/MN]Q5^ME=8CR!8L*5- 8*JP M'*!(#&(@T5E;KEL2R]0LX!Q:U9A$N^?[W=@8V;-Z(?2TB<1F.?:[]NRKR+H& MGQ\ 'W\W$V:XBQA %X: S)U36&$MI"(8#=0K!9IB\,SJ@M^%-M1)LX;:4)]N MJ+=80J)1"[3/0@B;"HA>%)8:4@2AE:$L69[;R-*G]S>:OPFTBE"$KW-==:IA M9JU26OV>KQ$?U!S[]XB#Q9%O"U- [.>C]>+>6F7%G M#7.%#\D7*"596$9DX9P1(D6A:5Z@B_MMZN;VSO_-<_-*/J MU\;&N_>;N_N/JN&ZVYF(HSQ"?YR+SF_(ZE&E60\-U2=SB]6(WR=1^57%>L/+ MMF:-3MNZ=J<]:O_-'J(_0[E?72)9ET@^-U9Z2D9GX5CW?<\XYPH] MPWWZ_KS0H+JUY*2Y]O'='BK!RF2(((7D7N?&"[ZP3IN")B>$$B80[9=>Z65& M%K"'2HU)"XM)D]XQL,:D9\2DV^N\;2(\UY^'J&P!P<1"!TD*@1)5FFHEHLF8 MQ/D\8=+/5<>*=C$8EPMBNB>Q-[1Y\.L*UF>G2!O=DT[_/,;MV+&C&-Y^"4]K M9)HX,MWM'".1%(7 7*'T16?;5&BC3"$("$^5\9SPI5=,+ROUY-W%ZD+7.;;G M2=&+VIZG:\^WF(9G^!]RC0+!6!6@/<^;_KB"$2D4@+0&1-G>5LH%;&];,:H1 MSS+3^)M$;%U#-\%,3![R&HZ>$X[NMI.)S(/ADA7!!LAPY JKI2ZTDLH%B" 3 M++T2RRC$.0I\ZE+8>647M1E/QXSOE,,J;UV(A0>.48*)H7 BI8(Z;5E>7L\9 ME/D+$'-DQC]7_N)Z'>X@?HJ]\9WIJCK6F3BI6,.3YLOMM4=':^,A/GP<7$'3 M>0U,$P>F]W>[>[ HN*.Q$#S1 GC*U()9?*M2$"8P%DG9X%,&H M37KJ)GV+:T1"A7"&%X$X5H"BK'!.N8)0RQ+EBDC!T:3),CQ][4V=P9C03CT/ MJ2JKHZ#GV:&GAJ?G@Z>[_<1<$$"-\(6RW!;P_[/WK4UM)!Q;5U['*^<")WC6BT&,O+:=%3L;Q4+,_6 MQ_5:AF@)^*2RU'!>@C-.0,I>!4N>D:AXP3)=O&E&2\,:JW+*U]\@>_T:SM"C M;97>E *I =AE,M5\,;(8)-?.1["ERP]&FIF*HP*1!/?41LJH+MW$1!?E:AP@ MNX<0R*-%?5-:I:)^R:B?U2>"::E)V6>1%% 0!MIDN9)]$)82,Y2HTM:+L*Y6 M354W6[ECH^V3+--R9XL>M/OQD[>0E!8X:-?@8=65'[/'O7.Y>(G Q['G<2?; MF+7BV#+6^OFR-XE1Y;5(D,K>!V:;@K4A0E)&>I:\H$F53"G:6(&(%57Q#QS4 M=[*164&])%#/GOL2U(GLE8-DU )J9T'+8,$*QA7/KW#'IJ!>N/=(W H0D ?)0XDVF+5URKNFMDIZ MT'A>\MYFQ?.2\#S;/@DUS9J#0\+2&,%& ]F,$KS R"Q'IIB=MCYC;*3! MCZ_:)S6TR_G 66II/92^VN:H+8H;Y:BM.1" *4I *(1 MV1<*$0REAK&8^8F4V 8SV1EJJBM3.Q*H&@Q[/%JX+R&!JL*]4;C/'B*3UDKI M"#!1FCBQY$%KGGT+ZT1B2)BAH80R:5V.>?%Y6B 3Z/>3_W>X?]=&P]/XOQ6[9>GWNB'IU\_ZL1OXR)>I/5JT[4 MNYJHLZD"(7 E90"'5 ,FFP4J4@[,.T>$$YED_)43]5&DU>Z/!_[#N\%AQL?H M?SOQOR>]\6G-K*V9M?>167MMI(3>Q_-KGUT"ROM_,A,3W,NH/!^>;SF-"J*Z MG;]];RUY'H?[[^PP-N(1;>\^FUU3OMS-!-[/[7!ON#\NE4/_L(+3SY87 M4I>7:RPOOX]WGGZSO'P,O_Z!X=^_';YFAQ_=^^/>SI]Y;(Y>T=U??Q<[F[^3 MW?>>YVM]?O5YM[>3_WV]N8%[?V[_M?.'/MUY\28[4(@<+;"$64890\#*R, D MY:/,:Q=:_WU-=C,>_/G2NGWJB8?70W[#698J.-D_&[P3 SC*=. MQ3N?BI]W7[RADAL5LV?HL!S^1Q5 2V-!2:Z%8\EH*;]#:9?.JR6Q69U7*S2O MHN&93RQ"MG1>*C5U8"VU$ 0-22D6@TTEYSNKO/+?-6AN.M4Z]HO];TIW2YV6 MVZ/129F2==;=UZRCNW^]XA#0FVXJ#BXGP)3@8>A]K8N82,YV^!>0D*/.M&Y-Z MGV* SW$XJ'M)-P7GS*8GT18-\[1D/Q1T945HC"(0*26">QFIX24ZKAEE/[FMU,V0YI#ZZDZ@_[6V\(=915G;1>/; 2DB&&4H1$(C\=$GP]+] M;JK52=3Z2:2H#ID1(A!2O/!L;AYYVW M;VB*Z)*SX&THM;1C:=O!%6@O-483? SFW@+0=5*MYJ0*/#!J=6FVH,OIX#*I M>-#@"%TZ(ULY(^GNQALDT1CI*;A0CKAFGPSR MSPDXTUPRK?*2FV M5XD!+:+/ZZK1/K.0YT;F":>ZRNBNI/,,^&W\^^=;S+_E$=XW.S)U$K9R$N+. M7V]AYQZ<)0P$(PZ922Z6-HM<=O.ZW#5ROCI8JUBOSKKVSSJQ ML_%&IL0<%]F7M263RL7L3409(,\\*UWBWEJ4=]7^WW=3O[% M<D%VLS+-]TYVWV^+?#_T%=OBKP]>\%>?/=ME?[PO1YSV7KPA MV>Q9FWJPD3I I" -.M6+YGP+OM*K#1RZ&:Z;I6K5&?D(F4?(\VTR7BTMFW'12->8:K7!JU=_OP3>Z M!'27)%C5"E$+8FZV, PAP5+CP'*F '7(A)UY&UQDV9$RR%GIXTV9[G(U'UGX M1TV/?! 8;LJ#JAB^$PS/9DK*TEW'>>".)D#A$AA!&1!JDI:,8B"XMJY%5[8% MPH^KM1[[[?[3ZNI MY-0<.;V=$Q@T>:*)SXY?V:[%F'G)Z4F8=E)^4B;!,SFAY%F3MZG]1@W3MC5, M6Q%]QXB>Z^;GL\6\!16"55KZU2I+B>U??!#1G136J,B^HX1/:,U,!D= MB2<0A"MGPV*"3,T.#&=H)26&"%(*V.LN6;R ?0UPW#; <8&*SF#\+@[S,Q\= M#^.[V!_U/L;.X6"T4'^=522KN]E"&>4'S=_-N4@7!MDK]GCZM3FF/<'^DVVR M&\=[Z!4R1_F6@?%-,_.5.GM)^5\ MUOKUH[,U]-%FA-]>CU2$MQ#A,RI%.50"$P()6')=? !-K0<5J6="IV1+TP+: MQ4L.0MT+PIL,A:Q*K[_15WT3)E5#U,\_ZIYP#3_JT?8":RIF\G4[BZV).2I7 M-<=5\YV&G;"B+#0@N7'G]9Z10K3>4AL3H82MK0NBLAZ9SY&ZG4?5C@Z #49/ M'BWJFXJK5-0O&?4S"D5F0PFA),2H):#T#K03 63@,1DMO)(J^R :NTR8E4!] MDQ$6KE9#PGS5KGB2'GU]27/-IHW3A_R)YW$)@Q-W&*?V6H#NVC>4?[N7L7DX M2\ 2>CYO]$-=$):Y(%S2"-HG$@TCD#W6+ ,)SPN"$@8X4FNIX:B565N77'6) MF0]++=09=B$@W7-,J_)HY=&62>G*HW?*HS/"6D@96>EP(WPD@#QI<$H)"#3( M0)A0A-K,HU1T-3:5WGB?/#J1W?\BOCK">F2';WO]R6?+;_G+QSSU MAS.PO/()%\?KC]#*)JU48^Q87_8J;?\TCTRG/QCGBX\'G?&[.(H%KR'V1W'2 M@7LRD),MSM3KV[[O36**^1>31L!/OCTH]M68G'\BGU#(\6 T25[\:1@/;3EB M]O-?O3!^=TX?7_W=F7G)Q9]8E^_A9#S_)WG6%(-<_.5D!N1!/+3'H_C3^3<_ MA][H^-">_M3K3\9B\D<_G]GL[./*/5_0 M57,+K2K0?;[?>;JWL[/U\NE6M[.]^_3)#TYJ-F*+\TO\B-B6SU^T3$O>Q#/? MH8J2/S+MY*F>9;G2H01>%.%2F+CSXL0.\R ?GG:>YRL.0B=F7@Z=_7B3;J=,_OD>Q]\N55]_+>:<2!ZM8S(VL11T1$NT)=(G+2S:Y) 3\H:6BJW3 M/WHWO!C1MQ'<,-H/8%.^N9_LX5_V=%1P\O6"F*%V]G!8L'85V7^U<%)VB7VN MMD1*RUH?IS>1A>)@:"?K3P9[-D)^5[X;VY9;Z;P;%CG]/S\VHUI;/Y@LDX/4 M>5J4>%ZV__5/NSX#HN]HFEG3?!_[UD9QFP&9Y'M]%R93\3+'@)V-W[CK7N6"R9)QKU;<02RB=:7*U<;JMJ M*,WJ[7JJYF:O(9&/_F8EWNZR]W*SU*@FQ>V5.ZKF.CID"L\["N?\4&-.-EWR MTA([._E][T:=K2(Y_N6&_US_1G9?'[ISG)]Y4D*F8X^R8S0>_:/S]Y.^/0F]<0QS:5Z71:.O&[EI M][R8$^*W?=HK ?,0AXPVP20/<6#J7%IP+MUU2<-&GWG.D;CJM.O'V#^)_IZ"1==\ZIMD+@1,EGFAA';H#1HEHQ8:(W+%D>HWFY, MJB(4KGO>=S+KG@T'1R6@4&[AS][XW=.341Z/.-SZY ]/RCANC$8Q_S^L3"+^ MWO[Y;MS+P]>_;OVUPTK[XK>?7AV\^.O5P6_O7K$=L7?P2NQL_G*T\_[#Z_#;4;XGOOOG-N[^NL5G M=^-VWF]]SL^$KX]V2NODS[ME]^_]A[_V-E_1G:-7GWF<[ M @Z49LU M?Z8YM;;.F>[J2WKF5!JL-/@8:%#'[ IC,"HPATB]DYG[N& $LVY(*9Z)05K% MX(K0()^AP> IBY$AA$1]ID$9P4FG0%KAT0BJA'=KZTRS;C;Z2M!@0R>_6LU; M3P>C<"#<>3:D07A:$9^,D,0,UZDA!44]*4VL$ MXT."2)QW1.FDHRR;9C0["/,=K2N&'PR&&P\%5 PO"\.S3CZSW@K- G!C$;(- M&>B0$"1+(G+"70JXMFYDE[1J&6ZT(K]LN4O_ZW P&G6.AX/4&S_\BG,KX.A/ M#/)\8H]*3DV1T^[3.3??.>J\IARQ5:&9 HN1&""]#%*6^4%?@PDY% M!?W# GWCP80*^N6 ?C:48"V-V?H)4!D-Z"(!RT0$$TVD1G'G>.GY3E67\UI; MMJ)^N>&'BOKEH'XV^&"<0R83@D[2Y:7>&W#4"$B*H$N:4EGZ6U MNWA)_^$V MHOXQ9!CL'<=22Z/_MA,_'9X:,*[^WG)61: ME?G(#C_$@JR'TG%S!6)Y^_'PL"05]L/.^>AO36FM+OV-+?WS!^ZHDD39H$"Y M4$Z:,)9%@ F0@N(LHJ/:VRSX1=;[37GY*ZKJ'S:>&P_353S?"9YGHW;:.>,3 M46"M"MF!YQ2,Y!IH8"R*P()E!<^L2U1372(JGEN(Y\8C,(ILQABI&OK,NOMQNI;M"B>MAJ!@)=Q%.W0OYO$ D+\ M& \'QZ5$?#W":8FR/2T>6& 2E!-$]1E1WIT_,G@;*XR#Z#R*92Y:@Q2@DF+T$@=5*&6N[EY*BQ[*K%3QK7 M[8CV@KKY4ST5U'<&ZMGX .$Z6L,4".0R@UH3L,)Z4%([HET06,X>4^Q*4_<8 M'S"HFS^U4T%]9Z">BQ!XQT/P-OL/S@(*+4 'SB"F2+5D,O$DUM;1=+EIJFA@ M!74+0=W\H9P*ZCL#]5SV .5*4V= ^E(*-!(#CE,-*F@B/,^470[BH^C2FCUP M7]C<.!KDF_D\Z7);"H#V^F/;?]LK#4OM:!3'M1+HW84*OK;%7MK^8HF-B2$J M535&5?MSD0*1I-0ALY3U1F2JX@F,3AZRLA39UTB"A$Q5K&M,W:!XP)!N/%!0 M(7UGD)Z-$P2),C F@;&0U8<(");'!#XK2R:(--FZ!=+EJ81,-'R$,'!8&P/ M.X/KU^^H18?N+F;PI:S*64"SLE5S=8\/-@I334,%[U^1W<\?WMC$I"94@D(G M 4L%R2QO;?*P%QQX(]AL/+E3L+Q?[I]]B7P?'&8\& M0K#9^^ <05N:]8I1T08=0G8H,_9)-\N9BOV*_:5&(2KVEXK]W9EUGT7!7&(! MBE^9U_WH08=HP?%@!?&1*%$.)4G1S?]5\%?P+S5>4<&_7/#/+/PL>!8CLBSZ M::DZEA" M*W\M+V@QM=%_!J/*8 TRV-97GDCL*S0GLIC1?_RPA85_4M"_ZQ^2490;0UXG@(@"@E6)@?284I&93[7 M+*.?=P5;.&A9T?^PT+^\P$5%_W+0/QNZ" P)#:FD75,&V1%%,-P1H+*D0Y5" MRKZ$+5F7-E9\H:+_@:!_>9&+BOXEH7]F[8^$FJRA;"?0WE'K1ZM#%WOA=')[G670[_;A0 ]<5I*B_WVUT8I0?.'\W M2U:[@_[@6[[Z;Y$$#;0%"A@G;9H)V1$B8I:;U%R,*/ BJ204M\!$JRY52B/ 6_ MMIX=PPK:APG:!F(!-P=M=0Z:0_1L:(!('U3(SD%B-"-:2 L&/86HHW:29UQ; MM;9.NY+.[PI43#\(3#?@X5=,WRNF9QW^(+6@J"';50 &8<$RJR&:1%T(+E!7 MRB-U\9*29_>"Z4>4B^!BGOFQTYO^-+:?;GF(XI%')1O/1[@(1CX;#HZ>YL_J M]4_R^.U]21OY96*YZ?L.BMVV/HV'-H]_KV^'I]OC>#3*?%?N===<$DIH8W2S M[FVL;EY#99%589$9R42]-SIQEEE$1:519:; M9U%99%589$:+>)UB("4_.Y:J5=GVF46DS%^808><*.77UKGN,KT:+/*H.FYL M?XGLG&=O/++$C?N/XF0N.XLS_Q+[,?4J7S7(5R_F(C Z2&:D3J4"A@+T,H#3 M(HL@SPTM#8,)=YFONI0OG%Y6]Y':"^8E!5,JF)<+YAGQD82-Q"D%)-F8P:RR M"X,L_TBE"MJ8;%Y7]HZX:%.][@KFU8AI5# O%U%\Y)B"Q7-RT7S;%Q 28,\PY=Z8@#SC 6M ML^R.*1M24IKI6JRMRRZV:FE^#+D=NW%\EM&QG,#+I8S4NE'XVY(>_L'0<./A MCCSOZB&Z99#O[_-5/ZF(1DH$ITLC(Q0!K/8&M/6>F1+YH*4 D.AJN7#EOU7: MVJD$5PEN>2&@2G#+([C9HST1I5=:0_;P4^GFSL!%K8"'% 6U"IG0$U\1L:EF M*97@*L&UX*GO,RQ6"6YI!#<;#)-9:GO)(TCCLH(+7H!10992SIGA2-;?9EH& M@=%*<)7@'B?!-1XIK 2W/(*;K?%F!1.,*R"..$!'#)AD.0B:0I[@+BOPDC=$ MNWKQC?A5RAMJ-2--Z[QD@!P/X[O8'_4^?CD<]O>S_*&Y(WDW&8L?6^C*;9,F MME[J';;Q#A]5>^MG@V'^L=_Q)\-A[/O3SGB8KW8X;7=MP_N3T?@H]A]=E^MV MU%>:T-_3K]GOJ[3EJ>&>GMGMH)AM>J\;_7!P8<2-+S:<)C0?V$]5:#0G-/Q< M+#SIF++M$6C"[$EY@F#1.3"4!RDHX9%-.F4SLT@=F.]PS@H<8WC@C+"\XDU+ M8X0*^IN!?L:[")C=0E*:9P=3O M+P GF@:/4&+3(L\&MK9M+"LA6R#\(R"^O M]%,5 2O ![/AU.0YHK4*+!,(*)T!;;@!9[FFREFC10FG=CF9CZ961G@0C+"\ MPE%5!+0$]#,B0 6?Y;W/*"!;Z MF-27[@S2Y-1B_N=O]]H9Z@KL7SS)OP>'96Q_S<]3"&&OOQ_]R; W[L71QK W MRB]MYA_[;Y_G(1N$BON;XO[M>.?I-[C_&'[] \._?SM\S0X_NO>#OUY]_D!? M__GRZ/7FL\.]/U^0W3]??-K;?)W'*?1V/O_Q?F]SF[W>?-E[_8>F.QMON$R> M2)5 BE(7(1 )QB<"BCHJG.?!L:P5Q'SB7+?S]YO,Q;OW2NND7,U)N;OQQEC' MT4H!/E)>3KH9,-9&D-P:5!Z5E"([M/,K6?=F_-AX]YPZ%1_45-S;>,.$87&8)AR"&BY_D'YO+JFGW\2Z+\WB9@IUD"I#*! 1 )-,8(EV8'1@5B9J6?3E&,G"A7WJ<=P6 M!\Y6QT^IP+\M\&87'>:37%;[=<&_WUE@% M_ET#?W:%%\8+HAD$)RT@"02T4AZ48\8YGF5=*, G+5GB[[HN1POWQEY&?VA' MHU[*]SL!]"!U_EYVR?[1*;MD,YMD^?OQH!/ML)_O?6[+[$9!N#OS]PO^9Y_R M8E^\U 7>V'NZ_6PPW,_0WTL71%$)X::$\.$'P;?CWN[[/PY?'?W^U^N##_F^ M\S.6^]I\]F[G\_;ISM$.W]O\@/F>WN\]TW1W\P/?/?@==_(SYOM]$R*502(# MKZ,"E(R B2F <2S_-J)/LE3RFM]!N^%NQ?WD==8INGI3%'@63< M _(HP,4D("E6>OORB*7>_27=0&^XKWMGWE.=C"LZ&?1*L3MZ_.V%VMOQ7RMX7\3'B-9 [GF8)YQ@!CN5\F2%9 M/S,4X(VV2@CG?*E'*&A=XE<'Z@_3Q:Z0ORWD9PO<>^:S=J<0&&-9U5,#6>$E MD)'(+.UB5O6T!+G;M,8WVMO.M+R4SL%@; \[@TM*5C70ZNY!-?YL?W6=<]9Z M/AA.F&X\'O;&Z'F?/J ?K&V.[]QEP,@Q,:B(H,HF!E2T\P,,)2 M2(1$E%S2O-*5*CI4-9 QT(Y*I WF#SU:MKB?V,>UV*(2PLT(8:Z_#W':$ ;> MIU!:3&BP7D<(6043KS07I?6>N21SL-+!HZ6#^ZG*4\7#'7/%7'0DS_O J(7( MDLGB@6AP@I9=D)2\T-8&439 NNRRE*#*%H^5+>XGJE+%PQ((8;9OKR;*V23! M*48 E35@B1&0#&=1)Q>,5FOK0K6>#AY#O\"GEY3[KIT#:UN&NTMMN82I+\+8 M5;@UQ=-;\U&?O/QB2!$<4E(.@+/,TYQ =%21D)B7$DN,NROUPEU<:Q>:2G?M M>>K[["-8Z>ZNZ&ZV:K0A"5$D<,&7@I$&P7$DD%A"XU3"_%\Y%-<59#5ZTE2Z MJW37^N( E>[NB.[F#O]SI91("=!$6PY$$;".:#!>*Q/0A*1+"R[9):2JNTIW MCY/N&N\Q6.GNKNAN-N@8O.*,.9#:E5T($T"3F.D.$X_)^;R&>W^!BBY)G#SUMA'L>,R7=V M>'6"81-)U_4:[;E&HWFUI.4S_1<[ZOE%B@ ]-&5\V2.NKOY]'H?[A;R:W=1A MLS)XZZPTT?G'36;5%XU+JL:]AL9],;=AD\T1DA,,LOMNRH:- !/10DS42HR6 MZ-+LDCS!^9XW*U_0KU+0 Z>@!3=:*@4MAX)FW.SL37.K!8)7G@!:QS(%"9%- MDD0V5]#1BD)!?.$ME$I!E8+N6@4MMOE1*6@I%#2[L4%9<":9!((;#YAE4*FU M$H"PH"F1GJ7(UM;IDTN:?58*JA34;@I:<$.B4M!R*&CV>)3CCCKJP20F2K\V M!WFU*!NL4F7WV3$5;5%!NDT4U%"<=C7"6)N]PY-Q#(L>$MHXI"HS[ZDDQJ,XS8KH2!$EJS6_!>)"7R$D+31 DU=A#T M(6;(UFNLT#4>0];JGY,?8NC8?%?V;2R%,H\R<4_25T>=DU%^:3R8E,_,+#KI M(E>37!_I-6J2ZY>G?I@M8Z]4;U,V6':5CW,NVIA2T>[)D8O#O311<:.]D_%H M;/ME2,\V*.M1J:;$WMNYV+N7E O-"7#.'�"HPB6?M9U)QS*JD4=;[4^?*E M< )C1J#7>:J4G#]M)3@M"41"#1)CM#=B>I+8S._6M&@#O+86;WZ=:+P\2L7] M_>%^)BC@*&.<, ]:DP#(B KG(5,WUZFTD6<\HQ[T35RX0V2"O-6P[SQLB 5 MYO<&\]D-".V8CR)HT%XP0)40C-0<6"GC2864QM Z7^I\N9"#-#EJ X@@$B#R M",Z&!#89$XU#092TY_M,>[X61UUWSWW5.>JN0E5GMIBCJLI2 MS;'4?#MNKKT3BKH\T\KIL)04.&-MJ0C%"7%2<4OJC*DSYBO_AW+TW*LL8"4" M!29) -;)5)WA+#ZHRI,^8K41BE1"4D2(W9C9 V05;] 73^XIU'C(1- M12'.5[JI:\6#7BON*LA9D7\GR#^==0>55=$@Y!5#32MA_7_Y6_G'_TD1V^[?4G-7WEMV#T,<_LX0SNKKS3 MA0&I?X1'5O"X'V/'^I*7;/NG>60Z_<$X7WP\Z(S?Q5')8^Z'V"_IR_F[2=UM M6]*<4Z]O^[YG#_-SY%\,[\$QM.7[[XY"=D^NEG\>ZS3SY[^,\RM?)D_HE:]]][+D"9-+N"P^R61[K6_>LB?OCS-)V\/Q52]].P.Y./YT&WMS??QI[9_WA5PUMY*J M@MSG^YVG>SL[6R^?;G4[V[M/9_#W'5&R@"W.+_$C7EL^?=$R+;&)9[Y#E21_ M9-K)4SW+HJ-#";PH\J,0<>?%B1WF03X\[3S/5QR$3LRT'#K[\3B3;Y8P'4ZZ MG3+YOUD0+UFIOOY:S#D1+EK'9&QB*>B(EFA+I$]:6+3)(2W5KYW_T;G@Q MHF\CN&&T'\"F?',_V<._[.FHX.3K]3!#[>SAL&#M*K;_:MVD[!+[7&V)E):U M/$YO(LN]P=!.%J ,]FR$_*Y\-[8MM])Y-RQB^7]^;$:UMGXP62<'J?.TZ.R\ M:O_KGW9]!D3?D3147T/3?!D0:Z-HQ)>8@\E4N\PQ8&=C=[.S__LO^]N;VQLO MM[?VKY0D;7F&IWN[FUN[^UN;^4EV]_?^L[VY<9!_V#_(_^QL[1[L=_:>Y9_V MGOZ_?^_]9W/KY?[_^1_-J/JYL_7B]^V#5^?/MS+RA_$G7#2O4]03B;>[ZO=? MXRCKO=9[K?>Z(O=JGB U*W*O95SU35RK&6>&T>\-%<1QE/E\:[D<;J MAU[/9+V'P_\AVNUZI4=G( M]UK$L3W\EQO^<_VY[07H]2??/[7'O7'^?1VH,E OX]CF7X;)T)Q7>JFSZ&P6 M>7]R='(XB7/N9>=[V/FFU63G/X/1J [5E(8&XS.L37CHW> P.QZC_YU.J_^> M],:G\_&(^3(R[!KKV+T6 ;G>8/R]U^^,WPU.\B7"J-N)GWPLO2HG>TK_Z/S] MI&]/,CW%\(_K5/JX;L/+=L^/Z8;:=8CEQP]\G3H<#V/4-HX&)_UQ0Q3SL(9F M.J'J?+K%?&IJ>;_[MS94,*<=:\=597(.;=_'O&S\=M*/Y]%\NDCAG 6ZJ]_A MALCUAN=F62..ITBT%MK1A"X20Y5(DMO$M;$AD3?;DV01^6VRR/;NLTM:C&=G MN>I(;]]>/7^][_R58_R>T3^G*/=@[>X\WF;O/[U=[YS M].K3SN;.Z=ZOSSY7_X[O7FMM@[>$%V-U^_V]O\Y@!.FRT53A^"6VV:\H5.P2\1]VUCQQAV+KOGLJ\EU)Z/0"-'-9\5][;Q- MW;:VY+:M"H%]GB&PJ!D-$05('4KA+\;!A^2-X*IQ-$Y;WDBVHB\R'''J>'7%B_G(>()N,^4S-D'5N72&/#I#/!= M*>NGJ0"C20%^"/D[)*7Y#H:4,C<;N[9.NU+)KI(+GW5:)?Q7X?*PAL"*#!3.20P*E5G$+ZND MUABIB1E2T]Y%X1D!$E/6;C)[;LYF[69Y,"8D&9AR:^M(>9?J^:.(5;E5:GOX MU!:5UIRKF'QR:(-WQCL2/+*DK#^B5<:O20R!(DJ:O0Q.)8HU]DW]=(* M'WTC7FDELIL1VYXF@0U* "5"N*B$YT&NK6<35K>S\M<# MX*\;T%>R#E60%B4UZ#1U*G".1@LJ!:-(JS9K!Z7-5L QRKCD@@'K3-9F+B;( M]K- 49B4U9E@RF:_4V!7H5D);=9H)6#>;E::H 6..BRQOA_E7.^W'X,=_8M,[-R^@';_N3J_QA#T]B=40:)-Z"J3K *3U%6BVK;:=O5L M>Y.88=-M%ZH"6"$%,!^*C")9Z4H/VD@A2T(+CC($YC&R9#G3N%H2H*&SHZL1 MB9R>MN^-1BNRFK34TU^?K++ _6\QE- M,=SNT[F3I4BX]3:57HHA^SA1>+#&:&!AX@OKF+1;6Z_8R3UN?%(D@&4^ 4ALP M* W0Z"@)(2EA[1?_IT)\M2!^.[>U6JE:J5JI31L%BRZ7U?%?:,V<#?T;8TK5 MB C",0F(RH".J %UT,9D,[N$:^NL:RXYSE=1WFJ45RZN5JI66OW >ETQ[S>0 M-)^UFZA46N0UDN9N'1T?#DYC/ M_'Y\, M_;N,D<[Q8;Z58HF/LP6*;[AI^( (K WA\'-[3=[T_,Q:S[.Q:LFBYIAL?[[8 M8K"&"8T0-*> 22BPPB-P38/R1$;O)R6+!),MZL)Y#SD"JP?WA9(\JI6JE:J5 MJI56RDIMC6E>J6VJ'W8S]3(;N4PJ>]7&2S"$9%^,, V6)PU>4<(<>JU2S.J% MDZI=5@O)E6^KE:J5'G;%FD 1TJM%"DEITRA M#*9MR^)CRM5]&<_#D:/2C=M/VUJ.OMO6\D%NJ5Q=G^F.0I+?U$F?!B(W_']/ M>L,8:MBQ,8J:[_&"(4J1,B7)4O $>21@6=E$D3I3E(J.>;FVCJR;?[EX+:>Z M1=IJ05BMU!)!>"GI1AN=C8GQR! 9]1J923Q&])Y)HTTEW;:2[FQ[BA2HC)QX M8"A=EH6$@.&*@$>IH] J\[&XDG0KIEN-Z1M5NEP,T?->WC> GOAVYWA^.AB- M=^+XW>":R*X>W[60/=N1(62O/3OJ 6QV^P U\Z!-I" 5L9%9-(*GC.PNH_,G M-ZN::BNFJYJJ5JI6JE9Z/%:ZB8II/%9=5NF=1A%(1+216&-B$DPHX5EPPM_8H MTF$M2HR&6& )"2!Q APA&B)A7$ Y[41,"H+6BL.VD6NN;;&*]E"HGU,V8W/!L/\8[_C3X;#V/>G MG?$P7^QP4I6@8R\J!#^N5,>Z 5&M5*U4K52M5*U4K52M5*WT\*QTD_2%H*VG M*2@GB,*4E(F,!F4IS196DEXGVG=%W_&]\;LX+*7 AO%=[(]Z'^.% M2?.#HLRG][K1#P<7.OVBD<2ZW\8\UU\CJ%SF%'2R=#M]3_&L]!4M]./XW(T M=VP_U6RGNME1K52M5*U4K52M5*U4K52MM-I6:G>8ZD*9_WMP6$;V5]OK%T]V MK[\?_.]U+U6F_HM>[/QZFD0<%"=E,-6@T8DP7+ M(@*WTB.G+G*,:^MLOK#]]9W6BOCV(O[NPU05\7>,^+EZ<4H)[Z,!$JD#],&! MX3R!EUR'8&GF?-H>Q#^F7*J7T1_:T:B7\OU,@#M(E\6K\O?C02?:83\_X.+1 MJY4-Q]=MTFJE:J5JI6JE:J5JI6JE:J4'926*-SOH?,Y%Q?U#P?W]9%I5W-\M[G__%O<>'4V*&Z#"2D!M M+!AF\X]:!ITDUU2V#?<-)5RU.8#UBSVT?1]'W''4ZZG8*[13*K MW& 8XA#&@^.?RNB/!H>]T"E/LUK,=HMZW$D:KC&X9"A!GZB5+!.D,YI M\F;[FF6XGT[:3GQ5A'OO9#P:VWX9O5J'NSFNVAK/5HL07"5&@@#I @&4!,%( M#)"\ -S!N/3JK9NRF S.0+)>69MTD"$](!>*7 RY/F:I&5, M*)-88;!'Q5Q5OEQ+OCC%HF8L$DSY?T8+X1W-/S*IT5A_;?GR3;G>,RUS]H%5 MNS2'_+D:O9&YE#26_B'9S4I)@ E2@=)2BQ"=\H*4AO&*FBZ1^)@(H$J7ARU= M;I1%=2N:^T[DZ3(14PM--^ ;U)2V,*3&3^TI@7=&T]BSX@<8YKCVH1UZRR6G.L MMC=;/D^4@J0J@0LE2"Y\ I-=:4@^R&!)PJA":0''NE(UU1VX@7.1#3*.D]X*<+,1)'<7]> 1:370W<5*1)^Z]01<8 M14J\991+@L$Y'XT5WV&ZZJ3>$^7-)#N)Z%E9DT ;$P 5C>#0,DC,R?Q[F8B/ M)1HGS'PD;A$G]8<@J8Q7&:]]TDZBUIB0I0P:U%G:,6]MC$FFJ&)4HDJ[MO#< M3')7)K+LJSH/)%$%Z!.6]$X#*5O4D!"\IJ5UN2)=P9:PZ;@TNCO+ #N_E_-Y MC1,RNYP+?[C]^!5M7CP!SS<8!B?N,'ZK3J]QE?J!]0,?]0IEH[XB!(=(!*1[#*:E"! MEF2&)+@3361HKA)S5?ER'?E"363HDA")>70F6BJ4=#9*EI(1C%];OM0,S3M! M_GR&IL$0% /GM 6D1H*.*7. QLS5S%+G_-HZZQ+$KEB\2]XJ$4"5+@];NMQD M\^MV-%KM-8VAD-M-/%/M(T7E/4?BD5%IB3.>1*,IT<)R63W3UM'<3%JF-U'K M9$QV34G6<$$(T"5+TT3B&3,F.>9*" [U/,E5Q[3RV^KQVTT";TD;1H4*V@ND MUNHH@@Z.HDC,ZE#%6VM8;28)D^O 21(>LO2VD#U0"5IZ!=J[J+RS!'FIL&=4 ME["%#P_>";D]IHZG$[B LZ-8GO7H./9'DS*5#57ANRJ3;G5V21=J7G;-D5C- M$D75MM6VU;;5MM6VU;;W="0_".8(1V$H$N]<"EF#.FL3$8P3,BGHSK,? M'^"ZJ,T].AALY)$K=V /G]M>V.X_M<>]L3VQ.J)-.>)O)C;(N-2$$YU!,)+_5SB [AH'5"' M,L\U@\R*M7751;9P=E.EDE6@DKI,5-M6VZZ>;6\@ 6S 9)D72FB'WJ!1,FJA M,2)7'*FN$N!!2X"Y8*0UAK$8'! E.>09D4#K8+/QE39.R$ HKI0&>$QM;:?' M #J]T>@DAL[QR7!T8OOCSGB0[V/@/W3L7W881H^K=^W-#FEX&4J:JZ/2<^2) M.DK1"J]H\IGZ//L!'5YR6F,2']Z>6.3K)MM34TV^_C)+A/4<1W,4]_O<&=3D M DT12\T+2P&#=&"TDB!XR%;/,U_YM+9.B>XR;&J[I44[Q@\;[;779+52M5*U MTN.QTGV&>Z_0-A,_;1%I4[VWZTF;V0"NU\I[YA0DA:8T0/,EB<2"1\&TT9IX M$29-1&13E34JS"L95RM5*ZV4E>XS/%J7S'N.!LSU-[82?7PR].\R2#K'A_E6BB4^]L:GBZ1; M/B &NS2HR9"*/)>%T9$A2=XDYXFCS'A/M9;J%D'-2YEJ8SBT_;>Q[/W\FZ$-[>FLZ";PZA'!0KOXU4K52M5*U4HK9:6VQCO/5>KD/><" MYWF6J-5%NZ%\F8UJ)FZ(H"Q +#7WD-DL7Y29)*B20+77QMLL7QKKBEZA7 FW M6JE:::6LU-:89ET6&_/JYR*7VB#/8@:,"-FM3S: XSP"T4)H&S47MG7KXF/* MQGP9ST.5H\X@E$,@\Q,"R=,]R':SE"3SQE'GE)=&ZY%JR+N.+=%*L.ZBKH FKE5JB M"2^EW05E8:7=^Z/=N58%7'HE'0/+C 9428-#;4 PJX7+G$L47DV[%=6M1O5- M2AXZQU DXDWD"HT-E@DG1 JE*%AR^N81T&\@/7'PSA']=# :[\3QN\$UL5W= MOFMB>Z8\OPZ&<"(I)!,0T,O2FMHHT)0+9XAAC/&,;79I^[2JJ-J*ZJJHJI6J ME:J5'H^5;J)C&@]95QUSYZ&AV? U0:*89&4?U^4OCC)P*0L9:S$2R2417+1+ MR#RFI-O=..[T^GYP%!]79FW=[:Q6JE:J5JI6JE:J5JI66EH6#I-"*F>B2$9@ M\-PY2J(W,HM?;[-G^%T]C_'".SW3YD_/I/E!4>;3>]WHAX,+G7[1M>&7F/W9>& _5<>V.F2I%>9B1[?8^B\M;U^)T.[ MU_\8ST);W4X_CLLAW[']5/.EZFY)M5*U4K52M5*U4K52M5*UTFI;Z3YS+:YR M92_T^+\'AV4\?\VJO/BW>_W]Z$^&O7$OCC:&O5%^Z>NB5+MQO)8E8E:%GW)S&A3^:D*]PKW"O?KP7TF M.D4C)=0I LX9 6BL <=\ JV0,$>3YQC;!O?'E(7U,OI#.QKU4KZ?"6P'Z;)( M5?Y^/.A$.^SG!UP\;K6R@?JZP5JM5*U4K52M5*U4K52M5*WT\*QTKQ5FOI># M,:O5+W(MG@T'1QM[3[>?#8;[V5_=2Q?>;75E;^7*;LU'KHR,(29D(%*0@,EP ML P]Z, M438HM&%MG9MV9%E4J%>H5ZA?%^HS4:N 3CDF ^CH&*!-!HPW"51@ MHBSAR:-I#]0;2JAJ#R.1RX..YQT.P5IBV1.N<$PQ"%, M'^TGG@T0!B?N,';*$YV_.AX<_U1L,QH<]L+TE=6CNIM5]9:&61:D>^=C$=CVR^C5ZMY-T=BVW--%)Q'X7UP M(//R!!AU9C.C.*0HO3>*!.]IYC#9)5QUC5RXH'>#B+KG?;I[(XVVL>[?[L/X M-S!ZFVAT7C#>CD.OZ)/U;G"8QVZT]=^3WOBT"KR;.E)TJ D=H ZNP0:D\CL(0V(EI'BE?( MNA1E5^FFZLH\ /*H@JH*JB9"<++Q,6M7#B@TRZ(SN"EYQ$E. **3* M/FE28(BAX*,V02ED*DR*M^LN7ZAZ>Z7.2IT/GSIOP)PT!A4(T\B80"F2P1A2 M%!J=5-H3LX@O6@FS.<+W2A*0$0%:) X8?(@\Q>A5:2"M5)>32IN5-BMM-NNG9WS)H+QGRJ!&[8*A M.F+VZ[AAPE8_O7T$.I/KYH-T(HA288RS0IN90-$XX(C2&(V6Z)AU9U=*4MWT MRIR5.1LZ&,NT9YQH9J3 0)D)5J&/3H>DB_ZL@K,M?#F3,)AB\C9;"#R-%I B M!\.R]+24!"8-I8%GOA1$9<9\"!M#DY3#?XYM_KC\;^A]7/]7_G)^RT=V^+;7 MGWXV^Y:O?,S3?9@O,_G;+\\XO=G\?(?V>!1_.O_FY] ;'1_:TY]Z_0FN)G_T M\]GESQY<',_=Z^3SIB___%)4J>??+9RT\F+\V,_/0UQI]P MP:]\F3RA5[[VO$/PWG. MTG0@.DV,1'[KZ-\^_K M0$WKE(QM_F68#,W661V2.C;32>3]R=')H1W'T)D<*NM\KI=1C]QP_\>$9M MXRB[]..&8/FPAF8ZH>I\NL5\:DI7W?U;&RJZUN;8^,4AULWHS\ZPTLD95K)( M%;7'>Z BNB242%8&R[#$R5GD)!(JN(TD<38)EQ/*.*VG5+\7.3]Z_WK;^]VW[_LO7[_2NQM;N/K]]N?=SX_.WQ]\/:OG8,/.!LY?[WYVX>= M/_]X__K@]8=71UML]]??CG;??\"=]^^.=M[O?,ZO'>YM;GS:.WB7=GIGR6W[ MY'3W_0N^]^(-(;$D(B(0AA:06PY:L00.C0_"465Y.8@ENJA5E]'YG.#;U=)I MQY[B#TIO+!'W;6/&Z^\:WNS95Y/KYO<%;T=TC^TZE!RI+ M/[8H!>A ">AH(DLNF\J(3&"/BKBJ>+F.>.$Z,2D8#=12Y-X[D@37)O]/LJBU MO;9X>\.^'0&^"A#T%%J8$(0P$00G%,>>++.2,T,%>4H4U=2WF5B/DOJ M >._"I>'+5QND@IZ.Y:KJ:#W17-\AN:,"E MHWIMO5";J4YII;8'0VTW<4HE)NF"R]Q%LFRC7!/MJ5#!,A*<%JDZI6TCN9DZ M0ME,A'%C04F&@-QHL"1P<-*KB,D8B:X$WPBCU2FM]/8 Z.TF(3=/4#JM8LSL M1G4P%%5>UKEG4J"PJBJW=I#:;'E)IJ6@22A@S!6OU!,P@G$0VJ?LIU+K3#ES MS4A774)K;91N#34F6(E&FA.T@+.C6)[UZ#CV1Y/.'0UT)RC6F3W>N7J[HPLU M;;_F2*Q>D>1JVVK;:MMJVVK;:MM[C/4J)"D2J9A#B]'81*2A@5O#4'@Z:6U& M"9VV-J,_KC]RT:YL=#"X..-8CC=N]\\.-DYRE"9ZZ>E7.^W'X ML>?C\_SL@_ R^L';_N0J?]C#DU@=D<8@Q&A2P!D'HGDS9< ML$SY4:04JP1XR!)@+A:I7+0Z)@-(@LI?E (3#"\!R6"E9M;&N%H:H*'SI:L1 MBYR>R.^-1BN_0:.TH11>Y9_EWDB+[ 1U>GEAD\V28QVY*:U-33;[^,DN$]?Q& M4Q2W^W3NY*FG'BU- 8(6'% 079IY:1!2^22USCZQ6EL70G3I)35N;[?;TJ+] MXD<*]GGALR#2K]@VG0?Z1+1_85Y96+JY6JE5;12O<9.Z\KYOV&BF:CX9YP MII%GCS($+(?@);@D Z3@ RKEM)$X73*;JO-3LV]OAM:MH^/#P6F,9P'NXY.A M?YGUGK>396+5K4')/MSP6] M41"&4B=PG!! KTJY1>LAJ< -]<1:KM;6F>I*)1K:UEO1/(#5P_M"B1S52M5* MU4K52BMEI;8&-:\4-]5+:U#;S,8UHY?".LJ <^\!E:%@5") 2[B36>*8X5G; M=#EM*F.I KW2<;52M=)*6:FM<;E ME I.33"T?:OF8TKF?1G/HYFCSB"5V@*EG>3HN^TD'^2.S-45GNXHHOE-H?5I M''/#__>D-XRA1BT;(ZE+FL0XE"H%#NBM*851)!C*$BBF,= 8&>%I;9T2T=44 M%Z_W5+=86RT8JY5:(A@O95T=A$PR6,(MQ4BUBTAE%HM:RB EEY5UV\JZLPTN MJ/5<:@7:9;XVTRA%[-NA74K0;U3:IE+@CI>3?P&T1/G+]S M0#\=C,8[;>K 6" T> N"EOKG@8L,^^ I$IE,3#2:"#&:JV,\YSHM75.NYHOW(&R0K@2;;52FQ(A*]$N MC6AG8T3$5(XRY-A+M8\IP?#88YA_['7\R',:^ M/^V,A_EBAY/"!AU[44?X<:4[UAV(:J5JI6JE:J5JI6JE:J5JI8=GI9OD+Q#. MF)KG%M!H@?[%:6H+>*.6F046+*.P!2P'"Q8GE;6 M)"YG7EZFQL_![50T?J$U?MI9%2A60:6(!'.V/NGF!+=(4B,HC=1R91=(XU]3 M--.G;C]"*\YB:'1 2QJ@NNWNMSAV334;W3C,QW.']D>)=BJ;'45*14I%2D5* M14I%2D5*14K++:7%=E-=,//_Z77RR/YAV]ULR>YT=Z,?]=O#=ARL]]L#N'0Y M[50K#G=2L5KO:+7NSOJIO&4JRQ?QH!7B3F%D272(<)N32@O+ LO'<&:3X]_> M:BTJO[@J__1^JJ+R3ZSRTXZJ)+$.3.JZ#@:7#EYY2A" OP&L-YPJN4 J_YJB MJ3Y&W[M!>RK-[:7K/%;P>MAK1-OO0@GE26FCW539;ISG[16S%NW[O>'WG[=:[7G\7+-:==&'?%F/V'L;L M]M[Z<'MO>UB?Q]RBK0TOOI"DDO?.(6>=03SRA*SV"6&FL8J"!&\<6+-,ES27 M+U;QGR?8JBC^TRK^IZN*;Z6*AB:/*(L:<0?0'O4X[-')O M7A*T79N6.TG#- \N&8*Y3\1*:K5V(:0@G=/XR]8MLW&_KOI..>'UAM#JAI]X-@YICU7#S'-"JK-#]5VIM@;P=&$H#2* M*N:-AW2?.!- . M[ 1)@<#27[!M,;#MPK,^W@(T++'D,4%:"X*XE =P(%4U& MYY4@M(!; ;=G[_1=#%,.2N*]X2Y0P@GVEA(F,0_.^6BL^ FZ%DA<<1 MY^3N7.&FH,NQK?B+Z*Y?;B-> L2+=C)H3.B-7"=>V]"%5N/KA52&I@Q-&9HR M-&5HRM"4H5FFH9E3*H9%-KJ+OU?3G![AI/U+V0 MKD2O/P:"3<5V8L@W ^<::$UL9RKKB,V"0O\:WI2XE>?Q+-GXY>)P%;EF1$25!0?Z$9TC)P M)%/@WL7(,:FCU[5I,L%>$P 4ZO*RJH M IQ+"ED-7$=2C%-,5GK'5]:T:$KUD+R>!=\*OBU*I^\ ;\8H9W#BQD;!5136 M<\T3X=92KX@P#S'-"JK-#]6FH]>M$A2L:H,H\#BPVY)$-E&./(Z:&)$HI7)E MC3/6I.)5&6\%VPJVC;'-.:MBC%HF$S@1UF'GO#$^B)"\XK%@VV)@VTST>J"> M*^D#(A[^\ A&JN%<(!8#C9(:;(.O$E@UL2X^]0)N+P;<[E2?PL(_D7M. ^8V M8,V2XM19X0F8K/$GZ%8,TV>"N>GH=32 ?"$1518,FD"1)G M#QSGQ3 M^/82\.TN*8L-3\I)XW!*W&'JO-(,^R!Y6_;8:O[UIZT MA[93A2I5?.GM);KT,8*I,6@/XV[L?VO[6!?J_!A][Z!;W>4_MC.*Q1*9GR7R M86:+C/$DK6(<&2LEXH0DI(G2*!@MC(O*2^M7UBAOXH='-Q4L608L*>M$D6V1 M[?+)]@X MTS]:ELQG]@9,>SQ]%%08@A&VCB*>$Z,[KBFB0;)$I#1"X,5;,U]3C.7F\4FG M=QKCV(EY,NK[0U"2QDD'FI(E\:T]/'U(P.4+0K!KG9K$,L4%,/Y( B=!&Z^2 MY];)ZIB?Q_=P:EZ+5.O]ONT>Q+SY\_OIQ5?>V]/\T7IV/M=NS_=C$89WO7[U M)(9L41E(9 38!%1'3E36FFH+(.6WJ+.DV M\/(AP8/V\8N4BI2*E(J4EDI*B^KPG-#4ZCL3AO,>.&HQX.9);J9]GH)B9HQ0 MB!J=,W)BA;1G,,VM=9%99D*,0&Z:0L^K]DO1](+'14I%2DLEI47U>995\VE< M M-N3^Q3,HS$7+\[G_;P"3D7+!)26R^\85:FQ5LV7U,PY\G.7GB4(XKV3.3$>,^9B#?#;M'JA=;JN^1,I#A@X$_""%<5 M(G+4\""%M"I2YZ6XLR5X1:4K^V^BT6][@^%V'![V;JG;Q?"[I6Y/I?=/+# 6 MO4(X5\SF%FMDG:J1T%QXS M=X]VX3%/[AJ:=F!G \69Y)&1-*),2Y&QWB+&<-0PSP.+9K&(S&N*V6W%8:/= M];WC^+H"<\MF:)%2D5*14I%2D5*14I'2HP7I")QPX#@F9RAW3-C*JR<2EDP' ML'3N;-( 8]NJ"-M?O<$M2TD7V^4VMLO!;,$N)YSW 1L4*75@NWB)C%,&.1IL MLLXRR7(*(M.DY,$E'XH.%Z0M4EJD<,B"M(^(M%->(L>#H"PY%"/GB">FD#%. M($-]8(+A@$5:0*1]37&.[WI]>-MM^%&_'[O^M#'LP\TZU8GBAKU()_NZ@A[+ M)D214I%2D5*14I%2D5*14I'2RY/2$XF=X&/LYC4\_'L;NH/TM7EBG M8V[^=DS-]S(SK]NZW@U[%SS]HNK#[Q'LV;AG?Q3#=GZ&[==KBF%[QKFU"EDJ MP+"5SB!MF,F!VIHH9XT6/)_?8WC6KBUAG 41"B(L/2),N;IHY%IIAQ'E)F?Y MBAP93 SB)%#N)9.)A85"A-<4#_6IVX_0BK,8&@>VW6V :K>[W^+8M=5L=.,P M'_(=VA\E7JKLEA0I%2D5*14I%2D5*14I%2DMMY2>,];B)E/V@H__3Z^3Q_,/ M8.79OMWI[D8_ZK>'[3A8[[<'<.ERSJI6'.ZDRI8MYNKMS=6C]5D'EI!!!RXC MLCJ0?!!9((NQ1M1CGIAE2F*SLD;X@[/N%W4OZE[4_2FU[Z3I/%;P>]AK1]KO0 MP8?[K9;645\V6(N4BI2*E(J4BI2*E(J4BI1>GI2>-'WG[=:[7G\7[-6==&'=%E/V7J;LYJSGRA)ON*,8,9Y#KPP&*Y9R@;S15@GA MG!=Z94V0Q8BR**I>5+VH^FU5?#*,QR[V&PPW&UG3'A(YY7K]$/NH[MH;!@(( MO9'KQ$;NT>3JL'?R)LMFT.NT0WUE^:#N;EF]I:&6!ND<#Y$KX:Q2C$3'*.?: M<4>^;-TRF??;JGS%I53>.Z/A8&B[>?1*-N_Y@=C63!$%RHR15F.4L#2()^&0 M-9@CJ4T45F+FF5U98[*)F6H:R>?D@)^'1CWS/MVS@<:BH>Y_/X?P[R#T18+1 M6<)X/PR]H8S68:\#8S?8_+]1>WA:"-Y=L7$J&[K&1,0H%%+!>P1&'45.^81R MU5 =$ES3N3+VO$I@O0!,+*3JX:2*IJ2BPS$RS#BG04?/L6(VL2 H\>'6I.I* M&N(QPQH_L#"J^:'&='T43JAC$4?$54B(ZV"1)2RA**VDEDFLA5A9HTW"95-I M5L"C$*I"J.;I@KL?@/[DQ.-UU*H<5IPC@D[Q+@($BS,3D>41;%(A.=+$2"0" MELYP;X 9KZP1JIM,S4:$W=ZY5J"S0.?+A\X[(">)005,-:=4<"F2X3&D*#1W M4FF/S4-LT0*8\P/,G2G*J46(SE*,O 2BR86*2 /11,(8X\%L#5:SE34N69,) M60AG0J523X0*;!38+;,[73H]>R:"\IPHL.E"_8(B. M'.PZ9JBPQ4Y?/ "=33-&C-($*6Z!=Q).D/;4 (H&,"&2DM$GX)U-*1]29*T@ M9T'.EX^<=XDQI*!E#&MJI."!4!.LXCXZ'9+._+,0SD7!RZF 065@M6.&H^!, M0-PYAER0 8&5;G&R)G(/=KK "A#S)6P,52&'_QI:>!S\-[2_K?T;_DR:?&S[ M!^UN]6QY%:Y\A-G>G]+#&WOX8 75OU)0FA5T-\:&];YW#&TZA9%I='M#N/FP MUQ@>QD',*AIB=Q#S4M&M!M(.X4UJ=VW7MVT'^@$?5.=D5R="G"O.W*X;C_-L M@F_U\,;Y[)V>#..O"0[W.>D-VGG&O^G'G"[R6_SM>SL,#R= >>E7XUF-+WYB M'0S]:#C[$U"6/ \O?EE-?.AXQYX,XIO)B]]">W#2L:=OVMVJ^=6/?AM/U?'C MQ,G,O*\F;WWYXLFKN'[Z..AV_.3QY=7JTI06U]<87:6,W7@9KY(;K_WTMGB5 MRD>X+5^EF-_JMK\(0;YOI'$EW?;Q06/0]__ORN!DX,]CZ[\"[+4#*=0&;+>[S;>[FQO;WY\N]EL;+7>KE[5 MOY]PVP?(8G*+7P'ZXP,>R=-2/%.?J_5QWEV6OY)[U>5W0.(:!*,/F<[EY:GQ M863[(('.::-.7=*(L%B%BS#YFEO,Q,I?C-@U2_GEOWD(*DZH=4S&)IH"F/(6 M:XNE3UI8,! =9QA_H6)E\J/#_L7('T3D^M%^139!.]_8SG=[.LCZ=)DP@$J. M^\FS3MZT*EPB%H1>$QMVLU!2>JR%MVX$,.E>OSJJ\P9 >0!WX+6V$5I2N.P MGRV,__JU&-7*VEZUGO92XVTV3JH:3'9M:NK\A/,1?0O2=SX@UD8Q%V(RHS$U MN9M!RL9Z:Z.Q^^GWW:V-K?6/6YN[-U*71>G#VYW6QF9K=W,#>M+:W?EK:V-] M#][L[L%_MC=;>[N-G7>-M^N[_]-X]]?.WS?WYR?J<]Z_I>%2"O@'H7,G/82N M&G/SY9_=]N?7.):/T]C;C<$M&=J-<;_F-HMI/8N>QOGR:Z*4QZT%GS2VX6N' M@\9F7AG_[?K_6KMRB.R*W?U(1/89>OZ/=A<(0F\$MPB#?S;^,>K:46B#X3KC MG[W. 7I;[\%B2_^GQP/OTML;U>(E#AFYBT;<]F3K\ZC*K[T75:??VL%A(W5Z MWP>-U.\=-WHG,3.H[D$C>^B^5:>K;S./;AJ+^4RP>Y_=GW\+YUK#@:^*!9\? MK3ALM*O#^0_)1_C,&SBW[.N==W 682?FEGTKY9_OM!W3VAUOQQQ].FO1+=$Z M_G"Z?[;%6WL?SK8W_CS;W MUMFVV-GX0%M_;(K/?W_ GX^WSSX?Y7NU.I__V/XQO1W3.MO$VT?;#-K%ML^^ M\M;&/K2ST_F\\?$8?G/>G4^=I)IHD-53+@+2UH,Z>"V1,3$BI0*AP M+A*<3V W,9E7F.+"$='%YQTG?9CL-0FUW="PQSUHW=DY*P7Z":1S>%I=C/\W M:I_DV,.74HAC"5QYER4$KSMQ7 =[_9*@"HK-#<7:LZ0DG\KTEB LL$%<1HY MJ!%A13 W5BI)$Z 8:9J'I^$I.9D75[,?@9H4S7Y2S9[F)U89!],"6(D/&G&L M-')12=#LA!DWDF-'0;,Q:/:#??>+EX)Y.0C*^A0?:7>'MGO0SG%C=C"(P]?F M)'E.*G)9%CMIZUP2ZY4@"E3-#:IFMQE9B%1BH9&0DB">$@82PB,BU#O+B8DN MD)4UU31L7BD&BGMD 55Z[ARDJ/23J?0T^X@&T#A$AXQ5&'%&"3+$,11XP#$P M'+CT6:45FU>Z].(=N:-FOL][;X.LD_D$C._'T!XV.CW0C?O1CE=A)\V==IQ+ MX5VOO]$;N6$:==:]AX$M"#4_A-IY.T,Z+,:2XN10Q,(A3G! QE&%5$HL =-0 M@>N\':,7RCPJCH]%)QU%H9](H6="@Y)(5@H%:FPBXMG7X3Q)R$H1LG0'B..]55N2\N#F>C&]4Y0U^SQ)X>TD !9CF!DRS M@1\B:1*HT4@;20&80%;&&(&X!DR""\0*!TQ#-&7Q;[QD79X[U2BZ_.BZ/$TR M0'XV,1(0TSX@'BA#5G$+:UH,CF@LL""@RZ1)50G[>":5K,K!-G.0%IDT46A$< [\ULHA1ZG)Y60M<]98'3QP MAH?OA!2WQ#V3%AS:[@'\Q[SI(U4+_@LF#AI&_WH8_M;3L3TROCC$Y]1NKK^P)J3 MBW'&C5C_=ZL[$(Z8>Z4I,9"C0?3/+2FER2@39!M ODHR_NCR5D)$6Y'UVYIVA)($QB M)2/R-#'$N?(+U]LG M9A6WMAUF-+@PBSFJ]S2ST$EA31T2,N1P?FJ048HC$HAC@=.H(\DIX 31Q>'Q M',RB/YK'0:/78?L\I8=C\_BDTSN-\6,N7AO#7Q>15@6PY@=8^S-\A#.E!)86 MT1B!CWBFD,,*HP1$Q*>H*="2?$22Z8< 5G%Q+*X1\00>CJ+<3Z36DH2:PCZTN\QV+0D;%8"E(] M"E+Y:V@(]X)SCD*@!'$)-,0(RA"1A%%LA3.)9(\L9F(Q[*;B$UERG\B,>A<- MOIL&3W$-3BTSAH#E0)A / +7,,YIT&"7F&=1$0U<8V%BMUZ5W^,\I+0?O\7N MZ+4=8EFL'96W\+SV9RJ M(1&DC>!(I\A(,D>4:95Z+:)R8/.H)7_!VO M@(04=7X&=9[.YY)4B%Q2%*N:65&".@=LD12,6!=I]"95E?\6*IWCJTH!UWIP M@>E;V$VNUP^QCX:]DS=Y8 :]3CLT.)C-W6T"TGH+PGH_EM7OIY\&N:;I M193\N;@*L,T-V(YF$\S!2L2TS^EIE98Y/:U!!IN F/+&!<*(TV!,*=GD#L=6B)GRFL%A;F[60HH/!,H3+$=P560AG$D(\EU,I1%-CF'7 !#)F*!HXLK M:YHTA9P-&EM$4)B3[V6A^4_6G$;J]+X/&JG?.VZTN]_BX+;4YQ9C\6L)/7<^ MNSNV<*[L&"_X['@_ZOO#;">6&MB+D(GFO3W-0S[8ZZWGG)+]^'XLDO<=VQVN M=\/F1"IEI9O?2C>;_\YP@:4*.6Q2 OTUD2(M:4(>R\03\5:Q>B\!Y%W"HU^F M&Z!X1H+RBV QK[ /'C+ M14EJMEJI3=DK?$8>4N6JV+H01D&H^2'4;$8\[HA/A%B$F6-@:&N*;!0*>0KR M=%)P0GBF'[Q)U8(DT"K[A,O'/XI2/ZI23]$.&94-PA"4F*]R:G-DK0DH8D\= M,=9P[E?6-&]BBA=#IU^5)V3;#D?]RALV#]ZQO";2,U? AG$+@W?]WO$N@ W8 M1&.QG.ZD]6^VW!:X2OCTBU'WQZB/7=3]V=5]>I./8,HT6!S>Y?-U9'":OB9[<6[M3^T<,Z"SV>T6Q[ZK8IU<56UGBN<,* M:>P9XBXRI'VP2%#K8KXFO%X!WJ$IH;^5&.MGCK$>#6+(M3/O%&3TVD(I%R/W MS0U!E5L3R96@RL=E+A-[BSB*8<4B*)A ."L1#IP6242Y2*(9'6VMW!3S",I M>0FR?BG(\'AI<=:9W:7=OU)=*Z1%KGV?$QGEP.;/*]X^->;D3/?WUE.XP+X;)[ MU^M?2 1L^4HHG4NHIIDH"480'C(@2$7$L/+(L%]^UU]0T_HA]WQ[$S$1Z)UD,@\:PUYBHSL/9R:O8 M<7C<^*<\]CNU;#;'XBJ;B'.$L=DTD5Y$KVVT2'$.W,0;,+T#B?!64*J,5)ZR M7/N3BP>GS2\;B8NKUH\;YU34^M'5>IJ=8!:-B $9KP7BQ!KD-,7(8&FLEQPL M$;&RIIKXFIQK+V0#<0D9RKAT3,U!+IC)20=:-_:GG;XRQ\E"49-\:+5L ,P1 MN&:31=* .:Q %FD E9RVVB/MB$9.&6 HEA''12Z.(:ZIT57BKE^,+C\^'RFZ M/']=GB(A6+@@$]-(!IM)2(R@U8RA) CP#ZYIX#S;%HP\.%-D<9/<\^#YV(N8 M]:#20.@!O,\O!^U0Y1J[9]G05V$V/=96S;M>_^VY,-Y>EL5Y8OUWDYW6FT(3 M2D#F_8#L;#8SI"$A\(@IBB$7#A4>K*D@*9)*VWK;5, &XBT[%3%\PIXMQO.)UQU_?*?2H M1%DN4/QU0;9'1;;-&3[#B+'<:H&TS)L^4DADI V(YMT>;2G5+%<@E4TI'E*" MM,1?OS!D>/+XZX(,CXT,4YPG2.Z%P1$95VT'Y\07C";DM/141B&TIMG]RN0< M(M5*^/5#E7<3E,X/(C$D01P;4C+.1$J'/(E[A@_.MZ;]1"\Z_LA&J/ MRQ$V_A'&!0G_F=U1E6\J%Y6H7L0+?2H^J87B8 _"QO?0\UZ8+4@Y1LS+*%PC M<[%>YP>=LSFDM=+6>ZM0D%XC+A-'-C*#.(O44^*HB7YEC9(FHP]QV1>_UA*@ MRW-NZA5,66),F:)C5"2L./<(DP1(0G% 6E5G.9W(DX-++%?6N&P2,GO.JQ2 M>\:T!->1KX8=-EP\:'>[>:,PU_^JM*U$.-V$C=CPI)PT#J?$':;.*\VP#Y(G M1P6G7[8R)!+*R"-"XIU-T *(\P+$V=S8R@L?,-=(X4RMG$O(,BN0$2FZH#75 MR@+)PJHIQ"S+*L%0+P8:F,=<.JUBQ(X3'0SA8(YAYJD47%A500,NT/""H6&* M*T5G#+.<(6&, JY4Y=$F8(0)@[$,OB[W0;AI2K-(T/ :7%4_I401/K^1#-V2 MKM:]>\- !J$WF0 MM+;*50O&+8+DRX*QG O&;"+0E(SGQ#.D2((% T>%M,8\$TJ)<70JN5R64LLF MS)OY6MTY1C'@G-;*:.2,!1,?IZ"-9$$Y"HAL1%/CV=S,RX?(%?7_US 7 M78+_AO:WM7_#GTF3CVW_H-VMGBVO(J&'F1O[4QI^HY'R8-77O])\FC5_-\:& M];YW#&TZS0[.;F\8JRQ7P\-8I;CJAMC-YR7R^?%; +CHV-,W[6XU$M6/?AM+;/PX<3(C_DJ& M]>6+)Z_B^NEC&W#\Y/'EU>K2U&2NKS&Z2AF[\3)>)3=>^^EM\2J5CW!;ODHQ MO]5M?V$1W]?PK:3;/CYH#/K^_UT9G S\^7;]EP.Z>G1RL-*PG>%-EZ[.0"9. M?MQ'WDR?_%CYUW-IKII9LU76W/>[C;<[V]N;']]N-AM;K;=3^O<3]O@ 64QN M\2M<>WSX(GE:RGGT^0GYF/R5:*M>O0.VTB 8?:C.V ,0-SZ,;!\&N7/:J/=Z ML_L%8'@WG@#XNMAO,-QLY,E_92&]9J6Z_#>+LV(\6L<$*S:%]3IRB[7%TB=XUK6; MT/[2NDGH-?*Y61(I/=;R6#<">&*O)I)O0-E!"/ M:(U=E*8T#ON9F?_7K\6H M5M;VJG6REQKY[' =6V;7II3H)Y2&Z%MPFO,! <- S,5JF5&3FKO,(&!CO;71 MV/WT^^[6QM;ZQZW-W1LIR:+TH;6SM[G;V-N!CK0V-EN[FQOYU>[.7UL;ZWOP MYMU6:[WU=FO]K\;N'GRPO=G:VVTL?*_^\:FU_FEC"SKPS]FVW@YR\G'"7T[% M9Q1:8[U196\@OS7&UG-K= RW\W.(0KQJ*>_T#VRW?5:I_=MS$@YOP-Y]WP>2 MWAU6;W?2NPDKWSTGY=D@[O0&HW[<@S;]WJF2/#^GF7NV/3%SCS]\WZ;;^/,? M8.)N'(!9^X%N__'GX>>C=0&F)6T=??H.OSOO^T0'>V?B$P63]OG\,S]_X>MK*O]W['=KX[G#[[\]I^VCS1^O# M%ZV3"Y1&Y*G)IRZH1EI$BC S*N)@371^I7'N/%C/S@*3:&1:D>1CXM$'0W&B MF%'NN%!&D95&''A[DA6O/X(UX8_8C7W;F=BXXPDQ!:]P;?R42FJU,'[YI+5' MFF29-;^95.S;@.[TVU76S?LPBB6KJ'X99U1W?M(>P /A;H-A$ZHU+8K]Q9;G.K='. MK@$PJN3-0/QX?LL+!M [!I7PL=$>-&RC$VVF^3E-9CX6W*^*B'1ZHX"CD!%BT/[3M;@.>#QPVXV0#&O"M[:%EUO=[,":]4;]QT.DYVVGTX]"V.[EH M\/=>_^MJ8PW#R \'<(NO\.1A(]I!&YZ6^7K]_=@?-.NGM:N7!SF;7'X1 MVMFIZ4;#7GZ7MU<[O0/XK.T'C=3N'U?.EU[?'V;G9SZ(F?G_I99"A]H [@U8 M VRS47DZ&FG42>U.)U]O5E4%NW#WTPHD^KU._92![>3N=6WGM'K6I*/'W78. M#^W&\YZ.WPY6&U?&-\1.&XRD>FS.!R!/H@,8>&A"!XU'L7'<@R\WOA_&?G2G MU??;F8W LQOQQPD86C!PO6X;&MELC$ZR2ZENH^OU!L/)2.>]Y%G/>[H%(SV=<+R48)^C\Z=7QAN$&XVDR M [HQN]U@>O6ZZ*0?CW-:^D$O#;_;?JSE"W.MUQ]FAUQ*^69#^[6*6.S"[VW. M?'(R3@M4?Q3/!W,\EH/)8#:N-.][G"@3&)VU]7!9$'FVGI]G@;NV^^F:S2J!_#&,T_M+%+.W$;S#9ZCY$F$3#PWYO='#8A.D(4PP>-_'CP^SQ M,#_JKQ[8JH!F_>#0^-8>M,>]@ZG6.V]?K2"@:/#98>R<0!\R&:J'Y'[JZ?-\ M@08-4CXRG=W8,,H3I8<75:G;ZSRBT[3@<6GC[X!(@YVT[GUO5*6)*DOZ>$G_ M_L5@+WCP! F"@0Q2%9 FTB%8Z*6R7' I\5(NZ5GF>86X;!V9$8=>TH MM(?U%L1M-R,:A_9;!$"+74"O>&+[=<8G^%U>4C),?&\/#ZL'U=H!7P,T:9_D M1?*@YO& 87 ]N]BJWV;(_-2M&E+95]5 KU?*:QO_R"!*\6]_K*^_KUZ2W_Y9 MH4>[VJJL,7S\M.J'EZ&^V=CJ^M7ZZW!U,'*#=FC;?CO"&KS>Z=2KYWA(+NZ2 MOP\4H3NHM](N]_E\[3AO^5TVMLW6UF'=C U M&RH'6C4T[2Y _LB?UW>Y<+_F$?XX@E4,WF&2Q?8Q'HPZ]2UWT?^"=$ 8_['G,KC/H\? M'/9&';A9A!O;B8(.Y\XL;7;1PW)7J9IDHK'?!T.W N%7D!.XZ M&=W_[]RY?1IM?^S0WHB^\F?7N\*,5$YM^&OSXMN!+YRW:3?Z4;]*[U,]?'+& MJ=*I]F"0VS_1R=W-MQ.57&W\'6LU.6]G'O-N'NK,?W,NE(K/AB,@$'7?)HEM MX;M=:-Y@8(&TY#) 8U8$W->V,R.^@-RJ8!!T_F*L)GN8F=4,1IT: \Z93385 M\74,YF#2@AC 1JGO7!&3^G'C'PUF M?Y8)9)Z$D\Z!?L)W J!:WIZ=S,?)?:#C,%TRB_?#,2/-ES/]KP3YK)SG4ZYG MM@ED[3CC\ROD-ML'7[2*QBF=4- 8(\Y=0(9K"RS'!QC=H*U/R\AM/M5UN,ZE MNV1KU/MJW2V 7L--,KY/ ']PV0, *EBY'>)D*)J-HU$XN$!B.QB,CB?U MRK*A8^ND3[4>9R#.N'=\SD7@^W'\T\XX=VP[UK;0V'EX-+ _8L(%6Y6G?;!]UV FSM#JS[%Q^# M%-("@'G/$;>.(R.D09I&ZFAP2C!V?Q3[5>S&,\#;I8G1N)@9CM:].R3XEI^O_FV60UI MCML9>_\NVT3]>& KP^LV$^87>/]3W'A6A'ZO2Z\]/4L M7.^&M[6";'4O?V?BL'C-:T5K_4O2F#/'-+(<1IHK2I$QC"*N>4S6A4#TS%;M MHB\'EY> *W,A(UAC/\(B$7K9,S69V4L3 $OQJI!R[I&JA*P21>=^6VI6C;SY M\KU;2U>9OEU<[1W'EA/]R.&Z=631T\1+_CH4MN).0[ 58#6X,2?'DO9K8VQ( M;8$]EW=!7US_K@D\>"E=&XONX\1A6\'U"^SH))]TOY M^5L?Z?E5,#O5S0V]ZQRYM(E1_I M'WN]$^"_&HM_-M!E"S5S]!Q,G ]T-=8O'$/GG_UUR4-4.6,F5P8UVW\["26X M=2S_?&?)]3I5SY/G.(RYXX>]'-)_V5Q[M8-1;>V!Q=0-E>OSW!U:NS5SC>/J M@QQWX7M@ Y[5P3#'T59N2S^9A)<\EN>?77%=^C%.@YUO&VZB OY"!:HKU6Y? M%9!43=U:)R26S4:L<#!OF%1&:Z=S[4T&D^W8RDF07:_C96'B$NW'ZBS%ZK]= M_U]KKU[Z?]KN*.^V@2JP5S\856#$9+I4[G50C<&8^C:.[6F]L6DOO&KMXQ-[ ML3:?%P>W5\'[^GD:X@DHW7D &9B6)]%G%\O85S_9$9C6KLM*Y6)=6ZM6K=6? MG$V:#I@^=]-<#I6^[DQI=::HG"DM9TK+F=)RIG0^9TI5.5/Z%&=*N1;E4&DY M5+H )_E^?ZJ3?!/+^I)AO7#G\_*FR[?/W3\//Y^='&_O??JQ?]3ZVOICBVZ? M>?QY8^ML_VCS^WZ^%]W\\7EC__MGN-_V6X,__^\A]L?_Z=J_S6CG>/]':^]= M>YM^P/M'^V>MLX]?MX]:[>V]WP^AW6?[>^^^MHY^__IY[\/W_SW[A'?V/&GM M'?QH;:RSUL;7+X%1P; UB"D9$'?"(<=T0E@D%XR4U@0Z?5B/"L%EHEQYAKF* MU(!^6G-!@?W.+KWR^?>/;KJ,7U-OT"@/R8QR4L6 M7K5Y;G[_.8(5C9AZZ6KFXROGMOVE\-K>:%B93ME J<,L&[WOW=@?'+9/Z@C) M.*CCD?Z8BM+^Q\KY)RO_;%XZ,E;X-F50N1[.3@]Q3Z,/;E= M#B[YZL!O_WMKPY]M[VV+UMX'>,[7+\98[D*@R/+ $6?PRKED4;"!DJ"B9SZM MK/'9,KMUI *WK:#QHEMAXO*0L-\$C(?UZL#\-K528.C*C!P- 0_OC//QZ4 6 U]'+^3Z3AM7-[\#R:R_<*S/Z=DFI?\H4[J-GUQS'OJ16 MV[4_,\NA)NM7U E T[\)HSYT/PQB]]7IT&4"L?6]M>>_@"$C8_ ,21%"/N % MVH0C10HG)145W@NZLM:#520[8J=7_8G[N'(YUT&F,-PP.[Y/HLXNS?1;G3U] MW+7^CK$E[R>S^GTUJ]?/I_V2K?E_GX/0I8,(ES'(#F[PY5*C0&,3BZV?V\NX&2.,T]M&Y+[EN8AVW M7:TD>7_P_'#)X!08V4$5BMZ>9/QL='K= Y1I5'48N#&PW^!3^,;WP[8_/#_, MC= M99^_7OOR*L5J[6U^4<1[*7U"BGF*.+8>.:$8,I'A0#RL'#K\-&+P*0_#7EIY MZ@V)T7$F1&?5+FB\ 48F&')+:!J?W)B&G#=+%UVHQ:JZ903<'>/UL+Y==.$C M[5D\;6A/Y3+^1X6=O1'<(@QF:ATN<>!2U;O-<[UYE_7F/UEOYA*JM! 2OD6L M#Q^7^'B<6G,+GPR^ZO]]D\$O;;KWJM=W\!D)1BSE2F 6" >;U@8%C(8Z9JFW M3I%Q 8YI5]%,NO=K;-I9,I/7BUO0F7%V^$OYX!U,?O._?QZZX]#9 M.89V'6W]V-Y8Q]O''\ >_O"]=10./V]\)=M[GX^V-P[@GI].MX^V^?^>;5Y4 MU3C;!"+UZ8OGD7"A'-*"2<2U,L@&H<%\-C(::ZP2:65M[A4U2KW*>^OP^B0+ M"-AG$?0 5.?UE*1\$2@VZO?A!_4W/YX+L6#9W;!L:P;+:/1!V%T0&(E]9S(EZ%7MT2K,X3*'6J MS);5L*!>0J/!V*M6V-9C0==-FZ#WQJUS8?Z59?DQ]VHG?1K4/RT0=B<(^S # M89HF&Q/18#&2"'S+28 PSU&**F@M$MB5>&7-,%[XUI-J[&2+KG"LQ^98DY%> MBCJ#2X(SGV9PQBE'72(862'!KM,Y#[^5 3'+A8R..>T!9RAO"B$+6WI2G=N: M#B$HY&B9[+H+\5TR[?8.;;< V_R!;7\&V P7@DDOD9?98:6%1AH^0H!G44K- M/,P3 #;ZDV!NQ#E_.\42]XUC%DA;/U?(AW$2.>_9'_>V":/-# M-#^#:)($$X.S"*A90)QQAAS&"F%+0J)4$8?ERIIH4D,*4WN>;<,3>_H*]PS_ ML>0X-O; 7[XP%NC[6IX%NNX$70?GT 7W_;&]]^$+MR!1Q@QR!$Q-;CE'3L:$ MC YQ7>L.-@/*O;%<2Z)\N:(!:6F%>' U5( M$7'*$G*86<0]D"^LDP.;\/K(AL*RGM A?^E 8R%=2X5;E]SR5ZS#XIN?VU&? M[Q6@5<#V"7ZS>?K%>&8YC1Q)#W^X81@Y%24R7@4>2!(LXNR<)_PAN+9 3 Q7 M3\8-L4KK-!QW/*4T/KK,X":A-\I!#M5)I7(.\J%#L]C@NCS8.@G3N!9C6SG$ MM0#J8P#J]@]H)_D2>-1>.8PLR[4*B=?(*J*0F*TO)F$2FLQZOP\]ZN'_FR?[9P>G^63ALG6WCUA\?SG;V/GW?IG^VH:WM M%MVF\+S._NZT6^#=4>OL/T<[&W\>M>@FVS[[ ,_+ML+ZV?[QG]G=P/;//D/? M_G-8I51J7]H\.EO_PK6.GA"!K!=@2T@OD,8)(TX<32I@+;5:62.Z2>E-J;P7 M*ZO2G!#RT1>?IURV[X89U_H%!%$2TY LM80KJ4P2. ;"\N0),(5^DBU\@@\3 MA7]WLS=@PAS&Q*%F"9DD7)M(/"?%+FI_*[5OO;VJ]D&G()PAB!#K$#=!(R>= M1#X%8X6,1$2_LJ97\4S2\3SH#RR6>[\-W>=C9I.)VQA&?]B%AQ[<''ERAW[? M"#DO44V1@\XA$8AF7*(2:%P9AI170.W7@<SI0WYZA9<8PY47@2$6P$SGC M! $MEX@JQZ@BUI(J]_9]O$G#YU:[\ZWMVM"&/KE)I,]XD!J[IX-A/!Y,2GI>7+EE M3<^3$]N/G2I8XB#"LVVGD4N"'N9F5843ZRJ?@Z>K[BEHTI@G%C4L/U$8S0.G M7A-/.9-6CN.+",8<35Z4ZIY/69EP4^QL?/WBF$J*I("8)@R!O"QR@G)D;0I) MYMK!/*RL\9L"!1^ONN=4O>ZI6L=7D.1RZ?5)9Q/EBABB-%5RFX7UW*GV^)5*A_AMGR5XMO%-SU2%$Y=2/OXH#'H^SK7 MP'FXXY<#NGIT;C:W6VVF-O%?=K5_)8G*+&1?78P>X7&\SZ7GT^0E-07FK ML)UWL#8V"$8?SJN4?AC9/@QRY[11E_-MQ&XN5CE;%WG697-.6>L1NO0WB[-: M7[6.R=A$4]"16ZPMECYI8;E-CC.,OS"^,OG18?]B1 \B=F2:3T*//K%P3ZWW91FM(X[&="]U^_%J-: M6:M"N"NJF[E@-P>OV[4I)?J9(:!OYOW61O%HMLS*6FMG;[/QMO'__)>FA/SV M\X+:#P^='R=Q>-?O'>>1RJ3J;Z#S;RM>!-1_,8+@SUIOS;$_?M?=@;OM_+V% MLU]A?^^#V-[X(': =7[>V.3[Q_NGK;\_?]VF[XY:Q^^._F(?._%_/IY^_CN< M.,IEZWA;[!]]8*V_6X>MC:_?X5^Q_?>?7[?W#MN?C[8(M/ML_^_LRVBE[2./ M=]:_8(>5\$$C)5*N0J$X,M)3Y%U43B66*V;7Y@;PP1C6,\]WAD<3X%\L%6?: M:0>B$ HKD%*01$_'R7^#8KJPUKJ'15U3SVG;\\KY3[3!2D6!3 MY$1KGKR'A3%2G@ P$B6.B4<_EK+1'M@#,&7KK .Y2G$EZ44Z7?(\BO7A"XD^ M4F8(1>=0988)A/EA*DX7CF9 M,KX><3QX%KPR5U&YT6*Y@L? M@'R[?L]X$N[;V]OLPKV8(2-S/H+V8@:FS*4'SJ47GENPZO3'F$N]7C("+K'_ M1SD*,O<(@=+"16_AG Y(U"%V>,$5ZMVHD]J=3MZM?4@<]L('%%:=O7U X75= M7-C 0#QQ/]XRJ -+(E),PE)AN4K$6N>\#E0((KFG^@%M^MHZ^_2]=?:QO?/' MY\/]L\_M[:/MG":&?=[X1+?/WAU/?@//&GVFG^3^46CO'[WKM/[XP%I[ZZSU MQQ;_G","C[=.H2_0CO"UM;=_MOWWY[1].H[\V\6GK:,/+#L(E6*4)H."$PR! MB!.RA&C$@S942RLBTRMKAC:-F,V+O/2',@INO5#ML"K<"T9(%!K/9"8\XPPRYD#"BVDB0J^66 FXI MW23XP<58"VX5W'HBW'+1!JNIH\9Z+KS16AHLL(R"*$U5NG8WM.#6XN(6F<(M MBYFP)'B4F"6(1ZX MT1$6H TG<7!IZH(A6@*M4C%5@MP%>#Z&7 %SCQ)7OI( M%6=.NZ"DQ4EA9AG8$'),N$@A7$L"7&P*N#SQCG+ +.UE+A)-. 75<@:K:(4 M$9MH ;@H;RJF%PBXYGK,>-%==.M=VSF%UKRBZM!W!2K)8A1)ZV"3Y(%P[8PA MDA#CO-(DN>+16B:@.D]0< %4F$4M/75(.V6 80F+C),.A62Q"9Y9P\+*&B%- M@Q_LT9IC\9QY;W:\>D7G. A/DU71:1Z(YP2%N:O%@0E(4?7$5W1A.B ";0UC,A=0F M!!R9(H^XS,A,1B"*>)88\1ELCFEH4. ZAP+*Q.59&6-\:;F M#_;U%D5?7$5/@OI,ZB@UC'OF\C^!*&L3? )SI/@8EDS19WP,,3BJ4T(N9>>H M\@H9R3TB2B1/L&/>"5!TTF2:+9"BOZHHH)WA8>R_GC*7=\4HBP/G!B#)2,$= MYQHSGP"=!%-$NAB*>V&I,&IWQKW@DTDL)(I$# HP"@P.*R)'AH?@N:.!FVQU M-*5Y<*VUQ=N^*7H^T7,5J&#"*,HY&!U&.ZNU4D(K'J@1GA3OPI+I^;1W(7GE M$Q84):8#XEY[9!B)R#+)B <2&E6EYYR]Y&3%1<]]X$3#.JU,XIP%Z[@1@4?" M)>"_*P$9RZ;GT\X%)J6G0C.DC!6(&Z>1U00C(0'%!:"\SO42>%-+5?3\Y>JY M!'.0*F&,DXG+Y"S7(>BH%?5",9**;V')]'S:MR"%T(+(B'P5>)6L0M;"6\() MM12X.\OK.6]BLDB\_74>U'M(],(#LIHO-8!YK27##*:X9&"#2* KBAI".*7< MBF"*XV&I *P]XWC0+F"=P S1E";$+5,(#$T@*H*P((V) E?;G;(IQ+R\H\N5 MB;N@P\UN28FC21(KY2F/"AL"QFV(B7MO$R>RN"N6#!VFW16&>\$$RV%.4B$> M#47&&X2Q63IY*MK#$LFG1N&ZL%'5X( M.H#M( (17% 6.=@3!N#"4,,$Y8Y)$8MG9,G08=HS$JEP%">#P&0$=,!<()N?,.$E3$$1C98J38]GT?-K)@:/U M3$N"B",)<44I,L3"'YP(ML:%*&G6*O6#(]G_97!,!F$&HV1F2 1=TE9 P6*&@2>*(6$P-Z3EE3*%X4 M_>4J.@6C$U.M*-.,!V:L288Y3*3.E4(<+:Z')5/T:=<#Z'(00EF46 1MMY0C MS81&P2G,DN2>,9:32C297J1D.$]=NOY9];6J7C_Q,CQ+F?47E@?H552@O_,& M-2SL-L?:">VX-]PH&;70/ +7 Y*GBX]FF:!^9S8M!V<>9$D\ M09$HE:*/7F.9TW)PL-[F=8KW!929+P!; '8^AZ=YWN<5P*PL!@VS6M.47$[Q M;'5.ZUV<8TL&L#,10)))0I1#S+.<&X$QI#EP:9RDTAA+BR-P::.:6C_X)$/! MUX*O!5\?7L>TX.OBXNNT4])PL$9H\D@YG#<9N4?6&X&P-LGG$^$\ H%E5#>U M* !; +8 [)Q+.D3'/0]&!>HX)]Y)0%4F*.8\BI1*'-JR >S,"3TNHLE5:"*S M 8&("BU<4'JZ=KT"U^)^^.D M]K;MQZKTMCV&41["2SML]&/J1#\<5!= EP=M&,VZT/SW6/W"C_5N9#N=TX;M MAD8G'E2OH5_M82>&QK#7;-@!_*#3R?^]] RX1_QQ @^ [^2E*C^KV6AWX5-_ M:+L'N0YX/Y=;'<0&=.];V\?!ZFT+@%\_GB3!]/,/&\_JCF_:0Y@2_N>U&^G5 MTY$?IP/]?M*%A9HBT\<[Z[DP Z"3Z;7!V,W,#WVR=Y?HQKN?LQ% _J^30: MMCOPX*KH^Z5B=,W&>=KK9C6'JA15<+^3$YA(,!5@2D O[$',WVZ<]'MA!+-R M=3*@XVD289I,KC7:@\9![,)LS7,1VM@[Z,*30P.FKFW '*XJP3L+O6CT0,DG M,[R:S(UA[!\W7 19='/'>MWJWA< M+UQ9M&$6^S=AU _V=#E7Z4[\GX^GG_\.)XYRV3K>%ONP>K;^;AVV-K["ZOQ5 M;/_]Y]?MO"(ZV90D3& MI*G"(@:33X),KT19VC^3HDI QPC!VLG(:8@NYSLSV%NF'1/Z^C0I18KWDB+_ M$A0FD3N#O/863%'/D&-2(1LR009.K'+.$C,K11BOP?_S7YH2]5NCVP/$C*L- M /L*I5+# :#"RT'CF^VW :;=Z86V9SC([\\Q[O0D3F,$@$YL5]@+B&/#MRS# M!L!!Q@#XY&?SYU[>DTOSYWR1F2R2=:]VTN_C/OT%Z#L8EJET:2KM[*V3+]YH MRB15*)>;0ESCB#2W'!&OO&'!T\#\M8"0IU*>-!G\)XN9BWDFG<1^'M\8;D6V M%HBI_-&&N5,OT;E7URRPYZMPGNMYI7O,.3W!PCV@$]OV1_MX='SMS/T.5LH@ M=E_=[/WZXXOBQA%M+,J'VA&W/B>#3RS7U4K*8Q"K=2MKO6YLG$;;GYG#(, . MF/;-;$HU=2]\FLVOYC)3SPTA+:J/,'*:Z;*(,XA"- M3AHI9C,75KQC$'_F)MW8&PWJCZ]:*[>2GWD6\5W?_=VZAS,GR99#>+N7Y0.X M/#B)OIT C;.:1>L/LS"[L78PV@M*90X"5O1C M&G5#99B=/P#N!:AA^Z?5$[(M=LE0[5TQ4R=^AVKBA!H^P,C\ULXF'UA)@R%< ML)V,4-]L9P1T;#M_#+/NZFTK=+KHQKCAW0QD>1).M?]V,W!!19@U;]@>CL!: MMF ;@S'=KN(/N_$[_+=&Y4;E7JN7ZLEP7K)^&X,VV.LP!2S8^VF435_ :I]] M2M_&-OCWWJ@3*G$XD%0FK=_;@QDS'+YX/EU&W;Q69(2OO%.Q#^M$NSNQUL?8 MW9SXJ"Z#QG?@H)-'03, ]N&G]B#[)48GT)ES4CWNY&IC?= 8C/QADZ: [#Z=O(,&?CQ_^$]H]NLD*RVX M=^OL$]G9V"3;1]MGV^M?.$O!1(H16,L)<2XD,M)&%+F4QJFH::Y>,_S>JZC+ M8(:[?#]L [*UZ]D&IDW[N)H8)]705\!4?^.R#E5* S\YZ0.Z=8>S\#6%&X\S M:R;[+]=MNN2]EN%Z-_S5MF"-MH>G>UD9]^"QOW=Z_NLKFS;;1Y[ 5/$L,I]$ M1%($"5,%_IC@(TK>$ZR,P%'0%9@#WI[ \ [[H[CR,\P?[UV@O$'ZG* /:VQC M[$B-V;LXGI5C'S^L<]] _A,3\Z37KX!__/8<]2;DN3.9,#5$YL40H/D2?+YI MW)957][&\172PP#5#9UL)]7[0GG/P9X,XIO)B]_ ,CCIV-,W[6[5W>I'OXUO M/]YC$BK3/ ; M+^-5GW\R#\G74BOLT ML0YZ"NYF;.3Z',UA/\;&=MYI&30V@7*'?[O^OX#ZG@SCL0.2QG#SQAP>\SA. M^-(&M 6?W&4\;SDAGS64Z'8]_T<[NRG!\ /./_CG0R;-K2,<%GLJ9(KYN,-P MHU:]JD$FCPI0KVHHRWQ]\OGZ&I*I_VX[>;NA>3G^)(V] H^3I.UE!]^^FO#: M&%SR6'-CA>':6$T"H\I1HSBGTO,O6Y4?1_XJJO8ZK\ZY-^<5Q,\>[?-MNGGV M^?CS\;9/_(GVT?'9SMGP5HPW\ZT_&SK7QMKP6_W.?[ M^;X;ZWS[[.OW[;W_M%MGVZ<[&ZVC%H7^_OV?M#V;(-Y8P[&6 N$0\P$P29&A MA")-,?8B>N)2+GPOF@R_JA30!>8*S%WD@F14LTAL,%'P7#RWEM)&):.R M%M:FM)U= M56M59E;F2E]$X)3R1IB8DP:!-">Z FXM#E5IKM)<>Y[Z.M6H(CEF<] F.?#" M6J5]@8TQ4EG0?$)SC M6::X=-#==;DHM!"Y=)%I%M.8<6G,>YY!P,((9-/5< M9DAST 59K;E*;:0W/319]@ M@ ?-)+&RI,'(2(G+4I*H4@+G5<2-J\A"=1F[M:;O0^H],.$GVG*">KWW97\0 M4OPQT:+V(;C2*/.9N:0RWE"$2(6AV0//AD;=M.&96^.NR;M;/4N!.4NY/I^* M;^EXE;861EN7=!S0EDEG Q$\IZ)F!\0&Y"[J(MK32(B64% VT1\ MRHI$'\ [FF44L2!:E9/;BNC'BF@&VG$&(;%<6@4AMEV43B='K;7)\KEEO"JB M[QO1TQ$4;[@2UFFB"#T](^VA 6>[Y;"F=-*4'= M4/U9E?O(;9"11Z),$21(W!/CO2"*.6D3S2()7[P(0V?C C.)W#>AAP?02/F1 MP_E.8P(5SG<*Y^F@0- R)ZF ("$7=1PCB)/XAY#@/8N1*9D*G#E4.#]2.-]I M0*#"^4[A/--7, I0UC@"RB&<>4P$44QQD3G/?1 Z:=ZX#Y3-1@0JGA\%GN\T M&E#Q?*=XG@X', M*5K;S,I$(+MB;7.#\)8A2I9=YFYIQ78YGTV1^BUP7E!R M0*O]_V\52&DOWJ#VZ&(-6FT+<$=#TVY"OP:?>\A2F,1!^X3VF;9&@(O9! ;4 MA1C/ZI9^V0V@IH#=#XN_FXF9,&62S$#SR:H@O6!*,.NE$?&L(JH2:&L( M=*8BR@-.H'7$QV@)1.F)+4+.I;FV$@:L8K&IB-*E(+X2:"702J#5 GW"!#H= M%^2YM*F(0"A3GH#,FC@7,@D2HI:44:=EM4 K@58"K19H)5 DT.E ;$S41N45 M"5H9 MEF8G@(Z,?[9%@.5'+]B"S0Q]"YKZCO%D'T4>EC-IRTJ,C?=75G],M] M^E%=_!Y:^E1=\7D$HM=$[]-'BXY>5IZ67L2.0."&V$@]4=PEGP(MO=5^HB5> MVAV4=B838?PK)[OH+N_A]#87F;1O'+KQ>)!+QQ0W[C3"]J4=W_%V*MW??FB& M$M-E'\!;(&+S=8%M-@[ZAIF7(!3V?+6(FB9;T_'I0W/)NH/G])WP64 M__NB"/894=#O'W$>:>'H;J#BX+RYS.ITU]1V*M M$UG[W4^=\2A,>.8;^7S\Q)=W#CXM==SP\*J7+JY (0^^WF2^A3GXNO3/B[1_ MY3YW#V*)NG3@^.M=Y\5ZK[?V]L5:M_.Z_V(:D5<[#K>8B_-+7*:X?J>*D3-[ M(BO+TB[BF>_1%%>_FMKFJ5[B;MEAE+PY;W3:>7/D1CC(PY/.9$D MDSLS&J6763T__+D]^CXXGQ+QN 5\)B[C]SQSPV-W,BY+_D>S"%%S=I]08',5 M<[62IH/DUN IV'_4D_XV='98LK[\*[<6VYE<[VJ%AB_S4P M)F7K,L_1)'#4.*I"-M*!RQX$I1_1.&\:;103L'A1I0W#O_[I5J;P<-X4Y,>M M>6)P6:59=#D!,P9R" B/Q"'C=V7.O)!73NF5;; 680 W5YR_#5;O0F.O_>F> M8 ^LI](53_.MQ])9=[.#T7Y.:)0UK>XNM*LJ#3.+?FSY.10Z*PV5RI0OS]5* MHT5#L?%C@^(?.N1,FCY?')K!^,X;.YXU0.]XX\Q4@@V.<*#U@2XEJ2(Q1"9638TAR1QT'_9^7&Z:=99Y\]F-?S0 MH?NLQ5A<[GRX_T:1NU?B^(=^I./2WFS2FZRYOWW<&@?EGG"=G%VK])0[&X[S MQY_+ZVI6UR]W$*&7?DX'S%P-?^>27 C\+^].V5_?6.NL=IK&Q^R/.X7V>3[H MB]*?;74R_4>C]C2P.CD':]SMK8:O_=7WM+M7?V3Q]#KT= MO-9J8.7W,V#EF\?]TS7:WWASLO[AO>BOQMT^__?G3=[?Z:U^.NGC??=/F]_G M_FFO-*NV*8I,E"@E49P:XH,'1&K@P66MF%>3@#"NNQ2?%Y(+*@?&K),T:? J M.&L EZ#@24IF4Y[N=G4^[)UFW&>"<=--S6;MEU]^X5TU0YM=-<_WXED:<7-_ M[6J =N_KY\U'STW2,DF2HW0$M&;$<*%)#-'J(#D-3%RC^UF+3))OP=:S;H[G M+<^.W;B$Q_+^<+A_/'Y6^Y8]J>Y:]68?2]^R!]4M94'MR1[K\-1F8_,W&WLT M[8/FZ=%TG89+CV9@YND#]B0'IJZ8VHFK=N*JHN:WDB#,QG(F=31! G/.)!E- M] QDYD5"9-Y.7!>B"B\F>1;/]V)_?^\LZ>*!I,3=+.9PEA+W_GCSM+^]R5_C M]3^QK=6WG_L?WLL^?RTV3]]N]U?+/;P_[;UZ?3R3$K?QYTX)6&_N;&^OK_[] MN?_J#=O:^"PV=^)._]4:[97GW>@=;^[\>5DW+LJ$!P&":*,9 9,$<51[8D!& MG31.:(Q+*PJZ2MU:(KCV;ZA4UYZGO@;59>=!1U6Z-5CPAGD=A0!K)%.2,V#S M=N.J5'>?5#==?^8TY59F19CFFH!%EG/24 (Y&YS$I("&I14IN@9NG?U;J:Y2 M77N>^AI41RUD[97U-&?PE/N@C: A*LB>2YB[(U>ENONDNNE*,:FUL2EXXB5# M@HL@">Y9GJ@< L5_0G 5ZBK5/4FJ$P@%Y8U.B7I@Z+$RT+CR1>!* M@G1ZWJYKND^JF:[I\8C(S8XF116M;!4UP*BV1.*E2XKR"*E1'N](^# ?V MB77F:C 2IY(,:G.N*W4!(V3'@]32> @6O1B5C#200&B!J_UF*MP-=9W/1:6K MA='5;$V*X[O" M\4R#;N%RTCD2(17:U39S8I22B&.J;:14.\A+*R"[ME6-,9]4RZUOLO.+\/:? M2!N V[O[8WQ@_.DGE3SGTU():E$$=4G++\\YN:+Y<:)Y :Y_1?-O0?-T$(#AG$D& >&;) '%T'E(U)-(;;"1 MJ0RJ. ^J2SE4-#].-"\@ %#1_%O0/!T*<,E*;[,GBE%#()E,;,Z:1!VLX]IR MH1BBF7:A+6BN_;:J6'<5ZU[LN0PW@0MJN%42(N,V.@TA>1.S,4[[>;L=U.2N M^Z/RV9Y;ACJIM*7H9EETLZB5Q*;,"?4Y4%_"8LDLK2C5E7*V$^K#$^RN'0\J MB;:)1!44F4S@F3,&1C//@W-H]:B<=$I:SMOQH)+H?9+H=*PJ\R@2,$<498J@ MT6N)I8'B/QVSV41F$BRM2/1NK:@D6DFTDFBU1)\\B4Z'" T@34;%2; 92=3& M1 S-AM @<%ND7B6;JB5:2;22:+5$*XF>D>AT9#9$"A*GD7@T.=$2M8'@;JA( M! N&6J\DC8_($IVC_]9MM*R!MES+>NVNM:S/4?URL.?VPL -7^^-#T?X)7LM M5+6FO6\2]'_O]#>VMGNOWD!O8_,4O^=S?V-3;KUZ+]=7^[N;&R]WMW;__MQ; MW3R=427^T&/]W;7CK=5/7_L[_6$!8']G^!E!"#V.U_RPM;OUX9VDMSSH&*6P MB4[+&'\;_LX/XW\#=>M??^_%^RP54TY&1[7*^##,&Y]"L"Z:3"EN$C]MT'(Y M,%CFAH<[:N=Q.51>N/%V9^U_CP9?<&O9.YR(_;_>^Y+&AV<#.35P=PBD=V$[ MQ:-A6L_EKLK_?K@QW"??;>^/#C?2:/>'^VN3\O?OP-C7C\QYH1U3!/\G" @I MB!.\U/1IY&J/WI\T#T_ZNUF7:6I=#K[/^WEWEM0$QN-U13. M!H,U@W$M->!6).-4K?2?/??W J02_UG(SW>Z.$=U%&[Y4;[(V[G;U4 MQ_!Z8_C2#4:=O]WP*%4!]HK/N\5GYQ__V1^/T_C_5* N#*B/JR' Y8\^[?<_ MFV?IW%PJ;9XU=>.RAGJ']0X?YQT^*97 WOY>.NGLNM'G=-C)^% SD@'7>>Q' MFC#P. _^LX\YARPL!0HR*,MS\E+$X#4/ZNS@?X[LJ>=?W&!8HL8O]T?O<&-; M3?[P70I'H\'A('TOS"IVYY]N/!@_B#R FQYWG.4!K.'WAM/^:J"]C=<4/S/8 MW CX7=N[^#OHO^K1]8V(U_U$I_, >AMO3ONG/=H_??.UM_-VV'_U[^W^Z?;V M^JM-_-TGNGGZ1O9YCZVOOKU,!)%+I8WQB=!<>NV*HH5 P9)HM(4LDO61+ZTP MQKI@38O46NXI*ZJ259N>[3>0U10Y35'7\Q".=H^&[C#%5R-T\;X[?L7O*T[? MGPG)*VVXKQ=9+ ^^IDA.TVB_$MCU"&PZI9X+1RU$5@J12HFIL,0 SR08I3/# MF:9>+ZTTV2_\CTI@E<">&(%-4]9W,KM(;=7*6B!)S30!24$;EB.1T0(!&0.Q M6DA2)/%M3)P%:ZJ554FJ%<]VG8(:K9,WVCOC#7H+#O^CWDKO!5#GS=PMBJI+ M^!O):CHU/-HP900FIQM[4!:Y@4@L<$Z >D6\#)J$E!1#NXMSF:I+6 FL%<_6 FNKNH3W M$7COG6OJ[)37/W]4E(D .1'#?2@5>$TM7B;.!<^$YU24,N;VF5E/(O&BW$O& MNSG$:^YG1-/!_GAP=>;.X]1LO%91,.3 8A!1)O#&>Z6X,UPY*@WS0=2SP;93 MU"4ZZ4$'2;E"$\HH3\![2EQD@>BL&"@?T(Z*2RNJ"V)66/EF[1RK'NLCQG;U MFUJ&]^FC-+#2*)D8R4JX(JS"T2)QC##&E-*9%Z7DFCT,VSF^$^F%&@3(V[C=1=_])AF(KI(8W29!1 JNZ28B4FC M&VHE*%./:AX MJ>/:I1R.(>)$NXSFNE)26*,542KD"+W,J&YOK2BNUS=^E2Y M8OOQ8[M:Z"W#^\S)1L2=G#%!N-&9@!2,> J&2*NE3ZI)H(EHY21N*>S]FWCCZM5RN4' ;VFT&FB MB_0-##1TY"55<+& MTKL-ND*VR2JIKD9+P;W X$(%]G6 /7W,YQ)$;2F0H(PG0!TC3C)/7/*6*W0A M8R@-D\6M=;\KJA\_JFL X3<@>OJ(#WATC"M/= )'((I$7+""6*>B34:80$VS M58-E%=2/%]26)YLUE=GG#"DXYX6)R5*AO&*0P#@GCGCBS9J%@(1&B(! MX2CQ $"29-%YRPS^O;0BH&O-; _E"NX*[FJ'MP/8TX=YA@?((:%;'2W:X>AN M$VN\)AHT6EX.#%?E\+YBNF*Z'N.U$,\SQWB:629T=$2%F @D'8G729&< \,Y M=2%PF.S4K3+#GY1^X?OE=\N=0]S3QD>CDQ_.]&X4W)^WH/)ABYA#=C*9F%?^"-#0QPPA7J?2@MIPXFPQ!/\(" MVAY2*?J(JZ,KL!<-[)HUV#+$3P?\&3"MM4C$"%_T$*(B)EA9[#[**2L99+PB MOB+^QEOY?.Y&!?1- 3T=[_A_']&TZ:!_X)0F)Q-QSB<"/FAT MKH,A5#AK6(I<.E=V:["V1;OU;1/YY]8Z MQZ95N,BA>33DZ+@)7%##K9(0&;?1:0C)FYB-3ALJ2=Z<)-=GA<2;2?8V$+#.H_D9D5\]IPJH-4BWBRSAJ&1:R;22Z=U:J-5]OPJH(UTX0D(H1!P9(IMYI M(0P-PBZM5/NT4FFETG92:77V?\^[?RA MSE"C\*[_:!I@X1N>C1+N^8,OZ8_C03SU3Z_2/.XX,='C38.]\9.7!S& T M@S5Y^?LW+]/)MY\E/YQ]\]G+R\U+4U,[>4WP92[$E2_397;E:S^]+%WFZ@XN M"\NQ^ZHQ'X?\NC0_&@9S'13]^XLL[!Y^6.FYX>-5+ M%U>@D =?;S+?PAQ\7?KGQ5WFRKR:6V\_YI>2LAI'_=U?[SHOUGN]M;,7]V$E[,<7.NW1PF'9]&G4$ M[7;*ZK^PKUQ&W#_\N3WZ/CB?$O'H>'TF+N/W/'/#8W8YF@0EZD55R$8Z<-F#H/2C7EK9:/:\_=QY44S-O096YXN)W% MW5SQV> 0ETOX.5)X679OB\D[0EQW7KK!J/.W&QZE3J\IRT^[DS'Y<3PN6"U3 MYW$!F)(9M,@"N)?.&0L4G&9*B&SLQ]5F\'M\W=A.\6C85K/Y6:: M>WD^'J?#\?.]^)^!\X-A8YR?W5Y MGFQ]B >>@^I_Z+'^[MKQUNJGK_V=/MK9;UA_9_AY:^,S]#A>\\/6[M:'-\?X M6NYOO#GY&*7*G!E%&"Y. CH@*8F8"'.,)TBX.KEN4G7. M.P,$UQYN_>JJ57N7?F*S1C>0OS.:H/O'99U.+-68#M&3&S?PB M!N8CZF^[^H.QK#E;1DPNW 36R];>[*H_?PVHJO=:[[7>:[W7.[E7LTBO_>HJ M+#:/@S793.['P_JU]US&[1>.TQ,;C=44S@:#-8/!9KW(Q4=V?L-S_F.PAQ;7 M_A%>(HYGJB O.S&:-Z[:[OG]3_J2AAVVD >>IQG,8QJU>8BACMKTJ(DZ:M<: MM8W]0S=Y:4'^WEF3$7/[4D\CNS7HX7CS3O^4B MNK%L=KW#>H?U#NL=+JA'YT.6\W[AQMN=]+]'@R]N6$X-:VO>>HUZC7J-A9FR M$QJT+:?!WOY>.NGL-LW*.QD?:J:?P74>^Y%FMC_.#'41M%8V2!,]!Q^2\R"$ MI6"M4YK%-'N,6??>QMO!TVUS<;SX][&&];; M";"YTQ.]C??0WWVYW?N ?^-UIU/2-S^\^=I_]9KW5X/LK3[_VE]]?](_W1[T M3L/7_L8GOOEA[>O6QB>&U\C]664DR:1/P45BN$X$0A;$L^A)<#DRZ:CA13V. M,=8%^PB[+%=6>J2LI"%QDX-P0C'(7!IMO>0T2BJM5=DNF)4>F[3\_1'23'-H M4,%X94FVAA)0 ,0I:HG%#27A[$4+8F'2\I60*B'=$R$QJ;+*03(>/4BCG/84 MT'*B7B@9C:Z$U!)"FE;HT3KJR!4G24(F()0F3EA&.,N!HGU$16E_6PFI$E(+ MGNT:A)2Y2!J4D#0PX,99*AT#R46T7"E!J]_6)E::EKCABO)L@B'HP%F"&TDF MS@1%T!MW.1E%DX[5;ZNLU(IGNPXKY> C=S0JHR!2ZH1P3'HF,O5@A9M;[Z"R MTCVPTK1.#"#99)TU83DJM)6B(]8919+"G:8H5AA6U R%Z7(J*RM55GH@K!1R M2DI)ZY5BP RS.ECP,23%E0X)WQFW*O*2*UAI).+ MC*0ES8EG18IT'@&F W$L 8F1!:64=0I,9:3*2*UXMNLHU6D#V8;L*:[F@.O8 M.963]99S!0$6S4C5<[L=+?6G#*4DK$N)H8V$.PH!%27Q.7MB:4CHBPM#P;71 M=7M:V:;E7C+>S2%>T',#97 &(L:06S1:S=2!O3BF?=61*?JT7E+\#N=RR.LSYQ&2[CQC@ '2KQQ M196+"RIUD CAA;DZ%<'M13#(8#UHR4/(P'(T)FAT$ )>V$J;>$5P2Q \G?S" MF$:VY9YDT.68F3/SRX9I64-T[0+Q=')%U((G:0-AVL62B.J("1S_T%(%I&,> M!()8=[FZ=<)7!7%[01RL<$PY%B-D$%(;(;FVT5&5(T01ZLE?2_ [DXO@E;4^ M2D.R9 9W816($2P1Z9,R,7(%(E=C^@E V&O.8Q(Z.B_ T%CZ.VD1O,XAQBP7 MG>18(7QS"$\=WDN@+NDHB*3!$0@.B(_4XS^-1FM*.!%XA? 3@+"(+FBKLN'2 M@'7"!YU%CA)=Y)2"S]64;A6.IT^[00+/3EB"<,ZX%4=*K)>)@,R."F.9EZ9] MMO1")47:?M;=:\1$)CTDOK4GO)5J7EOTM.HUZC7J-6YYC87F_;1=7NG%_NYN M&H6!&W8.W$$:U82?*\OL@5$O9!3>2PA).IJI\8D92%H(O^BJUNI:W";E)TKE(PLD:B,).EF&>*4]85IQ[50 JL/2"D 7+*LH M?KPHMH[J&*,*2C( ZSV-ACI'K<2]V#A9]^&6 '@ZXPH^W"88S^C#F(AV MD^1$)=UGG(*,2)M=]^/&CF#,=G&!"))4!='3*.%P,TG%O%0^T M'C6V!,#3V3Y"I^B1@ G/VA"P:$W;Z!,N*+2P!7/&B)IY^R00[&D*2>'_L0CH M1KEDF&!4>\8@XN9<3QK;!..9I)^$'G'RT1+F!3K$$:!TI@_$.>&"D3AO$996 M!'1MW8@?,XPCM<%;ZBT+ ""C9U%%"&@_YQAX7'3"0-V(;X[@J9P?\,%*AUMO M3#JC*1TBP95*B0]&).DM(!?7G?@)0%BAKTLM<\&#!LN#"TQ87M)%@C(01-V) M6X7CZ9P?F84U+C/"+'#3\W.O">5U'H09.2U:"48NC,._3O07H17(I49<^]DL;50'L;^&A]MO-. M9#1I$8HG8!D!R)(8FQ)1*G(EDXH)'K,R847P-\EC-!V "V40QQ Y,Q(=1O I MH%\@N%ZT1DU%\$T1/'W635F4GDM!I/9%[=@"<=E;PJE'=R$''\+B0G05P>U% ML VN3'P6C@;@S#O'!7@G@Q),>%$1W!8$3Q]V%8I5S_X*2"8&: B4Y8R\Y 8 MMV,@=J#KV4XGC[G%E$* M!K3(3"5+($1/G$R(Z*R4!>U2H]G:MHWXMO7<<_>9.?NO/.;^-(LMN'5; MFP7BYS!?NK)GF]AS.L-!,XC. M>DNT3(R@[>B(#<*5FJ0HP##EE5IP%6$ESTJ>E3S/$LX3\!)433YK:*(P%)3U MB5/&-8V+ED*IL;2;\N9,VQ1KLD"2)('CB$*FB7A@F2@P#@W21)E=7"BM$F\"UQ5]JSL6=ESP9V\E0R2(U&6;GW@7!#,.)4M MM<$%7\]_6L6>T_E4S&1GK:5$0,@$J)#$*:Z)RHD&115(RY$]079!B\J>E3TK M>RZV/Y,S0D4O33 20#B?0 3ELXLB2&-,9<\VL>=,&IOAT5F<(9)CY@0@9>*B MST0'!SPF&W(3\D3;T]+*GI4]*WLN]K1=>Z4"5Z < .5H=B9'16(Y<8L6J*SI M@ZTASNGT09RSY*TG)<&(X,:GB$D&T +-QD0'N/>)&O.LS%F9\XZ:"E)O2]&Q M$B% XL:XS!5C)E'!N R+[@M:[<[;T>=TUB;N=(:F((EQSA-P"HBAWA$C(@N: MAN TTB%P#F[ 5(X[)E0#:'^",\KGWB!N&V^ZMG@$!\N_!S)O"#Y74J=_OYAZJQU M#O<[A]NIH+<94W>88BT^!G?(B_V$U[A^/.8"\,CR*^.MCK[!^-.L_W M]H[P'6_3P?[HL(-T\!(!V6&4_+\"S>:B)\F-.FFO?&@UA;3KTVBR-@3K=@H! M=#MNC-\VQ#<<#PZWFP^]6WO1;:Y0AK6L)_R2P=X$[85U1NF3&Y4!;]Y]N#W" M9QFF+VDX[NQG?.?!$=[LX;8[[.RZDXY/G:,Q7AX?<[<1X.NR]V%KV-]X.^RMOH>MW?[.UFZ/;FVLB>@D,.13U_CO7S^NK7[GO5?O3_N;VSO;G+D\E.\SD;<02X] MW=SY._O#1Q90Y#D72RA>+B2_%YV=>R2X;F MJ*D('H)D1C 7\9W69ZN2PO7;P#?HF0Q]9S+V,VQV8=U/ M+?O)]/SRVU=^TSI:WWLYH:>]3V^15 9?"FN/-\J?3WB)R8]2B%3D!XB@CA%( MP(FCF1-?E$*9EC19,;UD?K*K-1OH +E[[])-[1YLSH:[-I#CW86%'28+>]@L MADXQ.;X,#D^Z%_8G%P+NM[@/C+ZMD&YG+QUV.\>XX90]9[]<\X<.GC]C;G[1 M5PDX)&F$XW'6#_1LEY\8*#@N0W;KZSNN-M'O&R]:[D*>=IZ'JHQDR=AT4S%NFV.I@V)]N M6+;?+GI3N&OM%=\+7:T#O-A^O&YYYM,,$E[OX1]-&)#:HGZDK*S$>8A 9W7F[W M5S_CY]Z?;)Z^/^UMO)'KJUOXNVV\_O.2?,-['][3K5>;?#HTV,/[6"^^Q<:_ M=_H;O:]X'>COXN]>X;.LEI#AYM<2GL2GS+W!3 EC0C^",9D)18^50&3H8 B@ M).14)A(@T+BT ET.BZKG;L?!R2_T&BKK5=;[KCH3*"AO=$K4 S/1,M"X\D7@ M2H)TDS)#6EFOO:PW77H8):>*1R 0N"9@A24^E_YGV3E(R3&;7<-ZXM:G(??" M>K?5M[C0QH&VG*_^&NU_&8P+9F?"1S?JY'#)6#Q&V9T;!'!_1F;?9N$2,JO< MM3#N.IFQV"2U3N$F1&0NDI:11N)RQC^,$HE)9QUEZ-=VC;FUQ?83EJC]HGXS MH$WR$"!:';D'8,$K1+' ?0T@R9Q3 VAV#FA6 =T:0,\8(U8P$6(@*I>:BL 9 ML48*HA3+04>;LFZ,$2ITBP"]T,Y1;3XM-K M'_6/WVEUS.="-=.UCK-5>6M1O-6_I,=45MH%%PD2%!HBT@;B*6@2,P3' PM1 MR:45T04S6\LP/IVV MDH--!HSSQ (-!,WB3$SIT^I*C1P-(L=D2O1.47@$?#I'8=6MJFY4RZMN7MU7 MU_?0!"^6I-;.YL(J,_'""HZ71VQM?KF9&OG.>OQ_F[OU=II M?_7UUS[>6P'AYL80H?_FN"F:W'F;US?"QU1:FN/(DABL1-]4,&*DLJ2(H13] M9R.RG:Z_<1+MGBBE!N8@X*>C96D=*9L#.>K^.'4P?!E8> ."E80 M>8LO6&'+H.5#J:XI-VL645W3[JC;'=637*..XD%52UPL'BKE1'.6G#S6 3DO M@^^<5\ _N5J2UV5*]MQP>((.ZYCM; _0!#[NO]H\GA&GV>GO]#9>TZW5B.]Y M(_NK?^]L;FQ_[FW\>Q>?ZP3-:;F^^ISBO>02.)D.2$N58K2*2)X5 85.75.! M8O#7PF3%7(A+*Y)V!;MU&YA:@E)YKCU/?9VXL:',NS>>H]/2V2D[3V/I6:Z1YYB*Q$2O"6AD.0:>>NZ;=E?6/ R>>]". MWYP0?;&_>W"$!N[W*,HBG!U^J;/S0/+#KE,XYQ(H)H.6R0+CP21MO0DR9YUH M,'/WYZNL=4^L-9BQSB(24X:<2*34$P"CB$53FSC!.=J[ M,[4J_LX/ A)3W$4C7!$E*ZV%N9/.4 "AA9*B6@VMP]^TU<"%5QJR(]9P5I0[ M.7$\ 3&)QIRE"ZXT>^.V*_@UR[U:5 32:A/@/\F-T_;^,'8&NP>C_2\3^.49-DO@OP[S@S%;#H67$=3)C.$@3F6%4$)=D M+KW1$_%44:)UIMGH!#RQTF>M:_2BW)T6!6\JE+^5B "+3G,KLG;@632,9R,, MCT8:FFVJ-DCKH#QM@^ RU=R82$2&TJB[V" ^",(TLQ:$]-2H!LK*R!9!^2G$ M)]9S'H3T/3K19'SDHQ'B\6BNX[?J*YWQE-7 .&9W!"F:9SD(%J;6':,!5 MDZ-=/-5_,6-R!*VER#&3%*0A(')&XX-ZXETRUM" NU Q.5B7R6M6TM=8Q=UW MMJ,(-:$L %<@5#(YL0AH]C.JK'5S=[:K^+LW_$W;"11,\=8RR2)Z C)%8I.. MQ(C 0#*?P)?FH+1K-7^PL8H)\$3+[8*K,D##_GB>$XP[]7=N<7#]H!EN4;64 ME>'NB>%FY1NK"^#16E[4/IS'$-+2SL,TG.6 (I"312:"E3=2H' M SX:CRBE77H-X:X:@;DF/#?V#]VPYOK(VJ.C5W-#3MWC':%*OJI[H) M+&X3N"3]1CJ9K-2$<^D)!*G*61@01J.FTGDPPC9YNY8ON,5%JW6^*G]6_GP4 ML;[*GXOESQDCVO"$TR>(B$P1 ,Z)S5P0JHQC21JI<>I6!.M:NN!JK1;H>OU2 MT6M&Y^@,)ZI8Y0?[XT%YV[-10D]Q\"5]%WHI(/KA4V>/2K]_Q'E\L*/#V8\\ M(%4:P9>YF*\S\;4N2Y>YNH/+PC*G\VGHW%&#X$G/^MU/G?$H_-^E\<$X?).E M^OB)+^\_?6N M\V*]UUM[^V*MVWG=?[%\46?L9B(JOYJ+\TMX=7<8)6^:)F9%A^O-D1OA* ]/.G\UFMY%X3O%S@7)G_1]1#\EXD?)?28NX\T]<\-C=S(N0/E1Y ZQ=O9P4,!V M%=W_J./(+YF?JVOIU$OK6PT&^5^[KPH%FE3J^2F% K;++'Y/_#X9#-*M?[QVZ MO4\#'+?GXW$Z'+=/9'/]W;D97:[Q_J2_^IZOK[[:3WH?^ M]M:'-ZSWX>]A;_7E<%KO<'/GS6D?3>(^FMV]#R]W^F@";WUX?=S;>?UUD[\< M;JV^_[KUX?TQ?C[W=L+7CRF"5BPT+5U*\:%W: 332**1G/,0M.NW5EN=CY'<4Z/[LH#=/LP51O[ M^)M.#]^V/>ZL%2N[D;*\*&YY#1W'5N1"W9&2Z=QAIW;/^)PRI;]^VCD$3!_/ MD#T]-=-O[;5\PEUK#V_[!DVVJD#?TQ/H6]2!S[E!^3 .=V[H2YSU;/DW^@E_ M?^[O]OCFSN?CS=,W7S/2VWB#G^Q_7E_]<]A#GZ2W\;*(ZDSWP$HF&48])T)Y]$:B MD\2%Z-##!2U9,")9]! 9E-Z&"SX=?Q3GWY72G@*EB4!!>:-3HAZ8B9:!QI4O M E<2I)NH]]%*:;^%TJ;;4"5O,JBH"0/+"*@$OI0[)1KFTTISU\C]:A.:%5JFTW>YX MN3_"?^YU0M,I-IQT#D=XM>'/ZV ?IZ;AM:I>;V]RC/&!\:>KF.IL8EZ%T$D1I4[KZ9DF<-X+DP)A7*C%7TG_YI3UI MKBJAJ[JE#PKC"S!"%H#Q"N.;V"#G,/:2^Y!#)E9:0R"+1#R2-F$A2BE,S/AJ MZ;G2$A _J9#'V[2;7$FQ:W1+F[A'D5C.+=; M?JJ1D'N/A/QU-AG/O\W%\[AS-#YLI/"K [4 \NJ_F+%!HL+_!!/$*V8)>*V) M@60)U48SGBBU*;;1@:KAD(<2#OD%K"M\KP/?:=LC!^L->$ER4AE="*V(MQR( MS,9YKB@PG*85KDR+H/ND4GS27KQUCI%%/T1?.V>]F3"Z3E:!! M>"(8=P2W5TIL*#TZ33!*:YS%2=,:V;7TUKS=@K+O*IM1R;)-9*G &,C ,V<, MT,OQ/#B'XZ1RTBEI.5TWARP%B*/UG\"7-E*XVU;]/N-;PM-0:)JV= M()('3L"B"V:C#D1P996RP5+I'F*MX4QQ[ ,K.OSA_MU9<>]>.BPH&0_&1949 MG;$BA# I/BQHG>+-[L?)>];>DJ MUP^S=G4>/9C'4:KZ_W6>:+%JT\>C*4E^X4:C$[SOYA_/?W[Z6:M8+TVL_Z'K MP_DH?M,G[]3!O-9@GB6L3);F><9@\Z^-.=(&ZYA>JD4PGQ)X';%O(_:A^0?B M^3G>E/N4.F_3KALTM=H7P/W7[,'.4SC?>G?DQV$T*!;"1( 3_:OMP<&XEJ_7 M6L\K Z]<,<>7GK5W\F_=W>ZMO9 GN]E[AYW?B967M-H'UD4L2LY($5$K$"2\)LS+Q M%+(4EB^M:-L5:E%]VA_3\51EN@?+=-?)Z[X'JOO!Z?C1(JGDMT#RFRF UT$Q M8V51J'0$$J?$63!$,N&$ #O1]!"R:RYI>''M;._*>Y7W6O#4]\-[4V4L189] M3O9[,A4N]T9[;+K")4MG.-I\1F9-0 9&3 8@$:>ZJ(#D*,HA_"7=J"OG52#\)J;[F&4!3F0@*9IBUGE*C%.6I 2)9FE*%<32"HBN, ]# MUFC1A;IS7*/U<=_K(?_2]*I@K(W>:NNX YZR#5G+2'F$S /SXM(:F;E1_BW" M?*&[;1-?9A?@CX\6GL6CT4ERHPKX>0 OIP O;)+11TV2\8P 5Y%X+BQ!^"L7 MJ&;.V*45M:RFD^\Z92-IW#%+;W\$L_G=0"V:L, L =PZDD M8LX)C)56*Z>#\BI[':16-;(5C'&/"=16"!0:,)%+]'E 4^E]%E% MO;0B=%?(6[?FJV6Q+8YHW .::R3W[O$]4SBKP;J0')HR"3JK)6E MU@2!^+9=:_DM@AH5V8]WFUYPA/)1RUO<&\RG(Y>0(@0 ()KZTF%79V*54NCH M1^>42=1[4^4M*MH7L8W7*-UBL3P=I>-4<9^Y)LY'3R";0*P1F5#EI(TJ2&'$ MT@HO)OGL0<3C@?+M0@L/+.(&JD@R*VZ"1"*/WIFL>, )U\9SHW2-N+44O-,1 M-TJ/.,Z\1UB;C1NXBX566!JBSPD&18:N3OOICJ M$D4\F8#[$#D1PIF2X$J)HT8C9T46'?5<-/:_.R"2SP'1DC*#?G0AHSXCA' A:[8([92%8N[0"LFO8;.' 3?/( M*J-61JV,>G-&K5FY[2'4Z=BVXXZG)"3AV4L",0KB> ;BL_+>L"R]LXO-RJUL M6MGT<;)IN\S3>I*P6.:!KS(WTNBI05IO$I>BJ453;L: M9D__GZR'?X-LX-L^[@,^N;B1GGX]N?C]9#%]H-5;["5@UGU!JO>X.\?L:HW6/4&JS+#8B.UWFK@,DB?J 9;NC4$HZ,/ MUI:J #>)U#+&!:OI6+\*O_1.^A_^O;VULSUZ=O>'_CY:"WL28W=[9V M\?V?>SN?CONKF[,-8$Y?L\W=E[MX?[*_^OD4WX/7?_VUMS$<]'7Z0T&R,%$ITD(P1!P2A O3"*2,I; )A,-7UI1K,OU@ON_M#L:6YGN ML3/==4[X[X'JGG#.U+V1WW3.%-?<. Z>&*IHR9I/Q&D.!&C622=EI-=+*]QV MC9I-1:W:6Y7W*N]=Q7MWF]E4.7%AG#B3]F2=\4F6/%*/3.BS)29*31CE/@H9 MDLW(B:PK[.+22"LEMH4"8I\ # ::1X7!"B2DY M2CD9%W)F5C3:0[1+Z:T+G1\2SU4YPHM0%T+QD"/"77$025MAF; T%P#O7>/[^E ;\C6,!]+?K&/:/(' M2;QDD41<><%XX7(HIUQ=+4R5(WPXR+Y'8%G;/?CQ0?E)RA%9(FS1WB7&-.!4N,OQ1"*,@.OQ=C;BU%+PS#4 $ MD\+D1'02O,C[9_2G/>[+V6AI-3AC?(FXF2I'^ /^ZI20<-6U$+67EE/:JD98.;1RZ((#KO= HC7@>O>T.M/_!;R+UDIBHBV-(40@5IA(?);@G 6E M4\FQ4%U%H>IG54:MC-H"1JTYNP^$;:?CWM0XX1S/!+*U!*P%8K45A#I&A,DVW99K_6<8;'<.7W.$+B-,OE,8E">H&$JB )(L+\JF,1)+'<5_1DYS8HP:<:W&YA?%"J<^]*_FEPM=S.)7:BF\K.7O M&D?-'?QD9;L 3,D,6F0!W$OGC 4*3N,HB6QLL[+Y^71X-$H_+O"UKP=I;YPVROAMX/W\.=P/GQ_FJAZF_WE[LO4A'G@.:G/G MS6E_XS7M;VQ"[\/+G?ZKUW+KP^OCWL[KKYO\Y7!K]3VNTO?'^/GLGLY@C#\A%0Z'^\?C9Q=7]V-5"#5R63-S-VJ+?)%JBP]!5_"ZJH(_ M>;;V.3R76+%/0?1J8CW.YL[;[?7/[Q%O]T\Z2WNB9ZK_X]W'K5'_1?K-XOU+2PBAIM@B:&A,H M TJ4 $F )T.\\HIXEY7+3@9F1RDT+YZ;9N%)TB=+D*7$N"+27'"/.2$THNF]< M^TBC]+AU\ZXQM^[G4.VEZW'3_J$;?DME^ $DOR4']W&>5];TY'NV09](>O(] M\?EL4([[A+.5/&&% M#*XSI*B2YWBP/QZ4-SR;M#3[DK[G5/WWQ12XLT>EWS_B/#[8T>'L1QY0 IC@ MRUR(A2> ";K,U1U<%I8YA=^95S;)==W]U!F/PL3*_9:S^O$37]XY^+34<FMO7ZQU.Z_[ M+Y8O9E#>+ _N5W-Q?HG+DC#O- 5P9MME95DROHB'OD=S0OUJ;IO'>HE;=X=1 M\J9LXIW#[=1Y<^1&.,K#D[-FF)VT%U/LO$L'AV<]I&EW-EWN,N+^X<\RG\WV M;TS*UF6>HTG@J'%4A6RD Y<]"$H_2KYT_J'MT?<1_92(1\_^,VF<^V=N>.Q. MQ@4H/Z;O(M;.'@X*V*ZB^Y^D^3;S<_5,Y'PG"XS3_Y[AHU^CO-1KF?.R^*3;IW./[7/]W*%(A^EH%MKDX^ M=R[)A9C8E]<_]--:?,I[85! M&J\.QF&X/T:'L24E#JPW.#.C=SZ=]';7Z-;JYDE_=XWU3_%[7KT=]';QNT^# M6-]X.\3O9_T/FWRZQ&$=36V\C\_]G=<<36"!)O$QFL0G6SO#G?YID'V\GZW5 M]PSO.// GQ1ZJ=$>A4(:,F)44H1J;E4()E.^?%%0E.)ZFD M*#(4P%TVPL>LE%/:!2V2FRZ)^&$6.FXO=B[,PZP1.E4?\Z-!.IF@7W__Q?N- M/O+( 'TU4* C0]\M1N#")\6L#?!3"KL<)RQSP\/M<-)<\=G@$.DQS(&<_R0W M3N/[+!]JOO'%_OBP395 OP,F)Q^EULR!=R1;, 1DRL1%*@@U8".DY$JZZX.L M! K[NP?[>PTV<3\9EBG_5OASG$HX[:E5]P L"SF?NW3MZIZK/_JSR_[\-:"J MWNS#NEFY2&?\R@)R.X_;=)_UWO-5A#69/YU)HG1GK7A(__*C?ZY<\)*N42?V MV(:GC[^YSN@\X5+!U@L@S/?AIYY&:>#1#QA;!$8]Q8.I:NN5:>@HG MZNL'J82H]CZ=N00!W< [:F#[J(_+G\Z!>(3L>)!:&@_!@M4J&6D@@= "F#F+ M-^@+\8:?G8Q_6X'?PA!M.?"^:0CB[,#[SV%OHW>ZOOKFN/]J:[BUBI_9V-HN MX8CUC>'VYFG_\R9?^[K^8>UX1F+GU?NOO=,>]%>?TZW=OS_W7ZU][>^^W.Z_ M>B/QWG=Z_.W.9I'JV?CSLL(XJ;P%H13Q7)5^7Q&;Z M#=IH 'PFB@M*@-% K-*,2!:MUYR%I.32BM&BDE@EL2=)8CNO2XWOAN*=0 /BW&PV:,_RK(X*U$O#.PF'GHU\=R1M1 MT"7E']EEG Q%@HF %!0$,: \48*9D+,2LI1_6'5K1[+%+7"?/$P7'O"I,+TE M3*?C/3*$S"47) KF"1BFB2^M))D!0/>6R\Q*%TE]ZQ:2%:;MA>G"0QJ7P+1: M^PO#\'1$0QB%"_<::\H MODL43_OL.H:*4F,L1Z]!&8]@Z45Z!I; M2;.29B7-E@!6E.!RFISEYPSXFR5A%T$1AQVENB6%:,@X$H^-**[%*Z MX 3QMFHZWHU$3"-4?=Y>>CV_.SHX&*:B\..&+]QX^^5P__CUWF29X\B^G300 MWMB?:-A,Y&2>N*;,Z4<;@W0B \FR+%5J)?%%6"89K8SE+D/,#T]3YL>ET FX M%CH9%T-G\'TU_-A/NDDE&W>.W1/L(JW9,B*JJJ&8^11/GZ@:2I7[J'(?5:*A M2C3,/G0QM#H'#B>LZ,NZ77RV_:U-:2K O_E17TZ1N[(RBZYL&[ M7R+8!OOB>R2,C;<#OCAJ! D)T1K,\.O?K"4Q26 C$"#!ZG,VUK"T5DWY5&96 MYI.^-".JP9QAIWNW M98N$P!P8[ YYAT4VUBERQ#,DN.=<12DX8TNK;)D]WAD_?R&L%3*]4F1ZXC3: M"IF> )G&8RMT2EBE(%'B.B+NA$0V&%B_V'"J+2.&F!R6RQ_/ZS1'8;F+ #)? M\FO426C0RS3:N:97T7%]"Q>6YED\]0?V:#^6]MN8=G@O$ZVJ!#QKS:JLP;8UFJW-HXW17'WH=&]BW/^.YNFLPK$I<.Q:8.WYULZNJ.__<(EA8EU MQ@2+N&8D1SH$1 DL"X&M3"8MK1KVZ.2"&=;]G;6;X,T+],P5DD<)]'6M)35. M8T#GL=NI!'TZ03\?$_2 E4H<1Q0U]X@#:",;)458,!N9EH)$EOU(FA+ZYQP) M^SP>MO]E6_;(QZ\',?:K _=?'KCC'["-L"B30XH9!PO/&Z23-0C>"642\80O M8!&7&P?N;K@>BEY>$'<=NH\[(JOC]^KX_@#%IHE07SO1O;H%1>F>XP8^WJ6/77VM 4Y=-_ MY6&\F(NUX51\N9B)\LL=F =R0XN'KOAW8= ]B[:[F!K0A?)^MGO^#==V]FE6 MO.L[VV>[^U-[=Z=U6%_?('L[GQI;H(A/*N^?FG#]Z=;ZWB&TC=37/S5 M8VKOMO<.MKYOPSW_;M7:FWSW_*\$2OO$.4C2@G$C$ DV(6Z\1BXRBIPU%M0H MKCGW2ZM\A8[KQD4>\T=%&U2'[/<2+6QX4DX:AU/B#E/GE6;8!\F3HX+34K0( MH8Q4HO6BHC7NR%><,6:]0Q%;AKBT(%6",R1##& P.DF=RZ*E[R%:;X&/8C,^QFS79 M2\\9HA5$_!XB)BNX!,TX"U8B@'23.2LCT@;V8<$2#E$2(8>[+YZ/D[Z7$(1_ M/DC%J#B\[@\>TR@8%7B\''B,ZQ=12T]#DH@R31''VB"'74*!4T=(8J#&DPH\ MQI6HEW#X7Z6,]GHQWG$\5;/]01?^?>M^_9,?7CM#)-BD4CA0G+T)2',AD0?% MF4@J.:%B\?SZ:_WBTODX%$"&2X\;72XZ@VZ1!C#_L6B#4=8>M(OC4:P5@#=8 MN+?X^-]D+7^DI*,4S%;><%CP[RF+LN M3\TV\3H#:A]F6-]&%O&+G?\BK/9RF6VE#XVL'.^6OK=7'VO;_-3@4YWL?ZYE=@N^V M00UO[C5 A3ZO-[\T0!VGM?-PF_=;!&ZP%0XEDF/4I)3(,IY0=-%Q+N$#H3./ MF2!BW@)77KDS$,2*52Z_N8"E]4&LPY-W3F+K9QQFKE>@-#-0NL4I&*AB2@G$ M(]8 2KE4H#($>1*(X\98PVW)$Z8>S4A;)0!,"TJ\"MZ?%U#*VM'.2:?"HIEA MT62:9*0I,<;W&G<@4+17*:- 9X-LMF9OZT9R"L M?^7J9):<=T6C?3SHESP_H,O$7O^-J99_S!MD?3NZ2 ^)8>/4PZ5K)6-NA5^S MPJ^M20==!UQ]D M='_?:;<;_9O>@\M.91EM' U*GJ#Y3HP@= 0XUYL\$F<7:" - M_@' 6%;G\V[9.$I=V^MW!SY[9I8+/^C!LHG=(<$2-*=WT#@NH)-VO[S!2"S[TR^W]BI/D^&(-^*LU,,P&^9^GAVXQ#MT7*_)J05X2 M"]2&F2Q#M7SX/>CJ]P-UN9B@_HB\IUW^PXE$K/0>!1,YXIAZ!)/DD"'<:A># M<@:T:[4RJ5L7()8M>#$I_BMWY@7=(?VK)2G2C'\UDG<)F/_G<:?7R$U[-Q2P MG_$J*^B?-_.X1AL%OOJ)=; M@!D^\9,%2F%B=(6R^W%T375;O$+E$]R6KU#, M7S(SJIS=1GN_Z'7]\-SI,K_RQSY=:1[O+Q6VU;_KJYLKD(GCTX?,-]/'ITO_ MOKD_WFFX/D/^ELI49I^_%N^W:K6-+^\WEHO-^OLQ67\80]GOYN(&$(RE$3YI M$MND\I"7)6&SZ/0S6F'R=W-;=NL#[)$%P6B[U!RR&K ]L%T8Y=99\1GNV F@ M]N2J4#?X["9STVY3>Z_]S?-9[K-:QV1 _T]!1VZQMECZI(7E-CG.,/XAQ-+% MCPZZ5R.Z'Y'K1GN(RN/V=[9U8L]Z65"N:YT@:Z/.\2QL=\']+Q)5R_FY>R92 M>I(%!BKWL!&@G72ZY7[ZKLS&S5=!:^R\-*4XZ&:E[A^_GT:UM%KFE^=$QO=9 M'RP-"#NV<_\RAUC?;2A8&\5,#(7;K9_ZULY&\:DHF83)G\43)^M_[7?\X4&G M!8/J=?$EFT.KD"V[RDZ->_7JBJFWQO_: )OVGN[FR>PW-:M696 M4_?QUL[^:;WYX6#O>_XN'(ZKJK7F 3RG!NVK']2:]5;]X[>S.JBI6^O;8FM] M@]:^?VCE[^KTRS!%7PAO"-,$,28)XMQS9"5VB#@J-#$X!,R&%@=HHC&L977? M*G&+G#C_1@KI!G9P8Q9D5S_1"KFM 50(G9$X.P%2+O M9_X^TVU?A%1-?66-515'SOTXC4\Y/E<#$M[PB'P[&L %/_' MMH_!Z,Z"E'V-Y3!=L_?*$7O#HW1#KGZ"N5 JRUFL/@SC_.^0KH=&I3V([?[V M86LW0FC%%\L6)>;"6?#LA37F<#SJG9]#'WX>F&I ;@S(6$&:&=68>.84FQ<= MS(D@QVD2L^\W$.K>45DO.A)3Q,=@S44(1$F)">=&.F*D#L(X1[&GEMT1'Z-N M/46XV@9&H'>EA VC8\ABA#H^T(LY"G7<:]:^?VELK7M6VZDW]M:W3[:^Y_;M MGNZ>'XI:]R6OK92$./,[RIX-A7#@D:**($Y&04S8A:FST07I,8UI:%7@95M]$ M:$V%/@N:X/?*D68BB/K&\4DYULKA[0C M#/Y0+&RT22M8@M0L2_)HLKXG2NB[E),*X2J$>Q*$DT& D!!NF$^<1>,\3M%C MKJPRV&)ZZRGOG:03-W!NZ*=8.PHC'\65IE5AWZRQCX]A'S?.)$(Y"H(*Q*W6 MR'I*D'0:,QNU),QF6W^9:?.6L.\M&NS#Z:S_>ZUXG*/K]^GA<]CY[*1XE#MK M(7O]>!_-0G9[;; _Z/5OK0+QD$X_"#QN&;@+#\Q] IL71F\P0AG"DPT1S'9]3>Y_2QJXD>!H)'C>C"6 N MEDPCS&%R>! @O,IS1%*2TFA*;:X!_+*$UD\KO*_.1@ [>";Q'HO5ZS+4? 91 M'8O5Z\?:@PO9Z4^#UEGQRVHXS^0_>^TFMW:\P/%K#*!7T*NZ)A<42-$TI$A&QC(%0X261X#LBS2H%5,Q$G03I:Y4B]: MB.'%#YL62\<85Z*?*3+A#<0?O,XH@UEA^.VJTB6KV97.='5-I3W-'N5/:Q?T MP\W#T_K.V@^CA)+12&04<8@K2Y )5B-+-:.*^JB"6%KE:EGDRL%S@_.W,/ \ M.,7^=XQ33YY[OW,07S3!O7<7_\6+C\R+#LLU(H-+:@)WEDDJ,U'4269&F"[Y M7[Y [O\C*/4X7A%4/T66/D#+DZ1GSYZHC] 5I1Z6]5TU]O>--;-,?+]3B3>+ MF0=95CXMAJ7ABXW,2U?2@=[@IIM%FNB"#D\=/IEF=%XI?<)R$4]]S%&.>1?O M7? H#]\6MM2A[\6Q,/=!D_<;G/L>&?RVM_?Q";R:(;M/J.'+#,Q+"MJ"KJ47 M'C+RU*>T%&R:B%YI$SQ3C1H\@;=4?DS6;]PR]/$4J.B=Z:_^\@Q][AOU^_W10V]EK M[*T?BLR,6%__1FOM#;)[7F_7*/QZ?0WO-3=I_?Q#CL29J&[%I%?2462IT8BK MI)'CVB!!K18.:XT57UHEF"Y3MACE^5[@H/ -(T'B,7DJ@E,V<\Q:K6E*CL(K MJXFUKD0"$2WAG1"^M<@ " M,Z^I;140O*!*\!!:XPH(Y@ (R!@0*!F<<5(AZN$/=PPC9YD"O2!R8KSG3( I MS(1:YFS&9=(J)'@%2* CV 0\&!6HXYQX)T'\F:"8\RA2BB.5@%0JP;PA 1O/ M=K>:$64],B8FQ+G@R%'/D9$A28=)(/GXF6"QK,EB& =OH7;WUPDO!W1ULGCW MHW.'YJ[C]P\*NJV+"PK!MY0Y?)QSYC<1GF5LYP7ZOH=U58O]@\X]<7BAXX"> M"X?/)IPT+DEN(Y.(J1OJ,*J%XH8<218)P333PE I0O; M+4LY3QK56P@K6H/&V/U<);'A8QG4>=WC=B-KXTGS\!8$>!^4AS>WP/LY=DLW MZVQ=;_27^'L!O:.%EQ'XJAG50<>]8;;^=<+!!M-D"4P8F*P6(^Z5089PAQ1F M.G@AO-F1CK8*EIX)EL;=:9)9&JVR2#N5$ ^$ M(VM21(&[X$1B!"> )6-6A*A0J4*E!4.E1[K5*E1Z)E0:=Y[9 #8I(09)K3WB MAGIDG:-(ZP!;"XLN1 K*$C$K7%:P5,'2@L'2(YUH%2P]$RR-N\ITL E+P5'^ M%W%A6,YD"0CT6R4H-9R0,E@-KZAYTI9NX4H9-:X^:,.B]\/W>8DVC@9V2(R7 M&2S*-:)U3,8FFH*.8+IJBZ5/6EAND^,,XQ]"+_V:]H+H"T9Z HWY7"]T?.M#DABW$KO.^WC>-0K M1_-+;-G^T*'=*P7QK^S ^VS/VO&HW]N!)OS5 LE]8:'<>C\2RO:'=OWCYFE] MIW967__4JI]_:=3/0Z/V. M/*M]_$;K.Y\27'->W_\1 M>>"PS4L$@YTM$ [R1$A"WCBGDXK!)S?$3UB< &OY%,!9$I0T F3$^LN-6^=NA9AB MMWO'Y>LW+N]WBM@^;G7.8H0^PWB@B[=%@!W;]SO=(7W#< Q@'?4&K3X,)HS. M0>=RG&$2?S8\S"[<;]!;*;[#^+9Z5]_#^KB\[[!1ES1&><(N&[?Q]?/GB\:5 MC^68_''XKZ)M^_Z@;"SL)8W,571L\^[2.,Y-62GNR70T+XL7A@?&MK-_!+^Y ML:YN+.5XFE_'8O@5?#![A@BF0;W>)G/J!<*78.&KTRXKEH]*[N#K^# M?;B4@1%'5!:)DX-&'D[X\')6RA\-M;0\SF,3"RL]4WH)15(_M6H1_E1L/MDN8%'=6,?GIJW'70YNY=K$NYM^\6!!8$]ZO2+?9#< MS#,2&]VKYL(7T,3E4:_&>G]4V-P9U+5]FT<2OKX$/+P;F&/YV;S9HI5CK M_XKNZ\FYQBZ98X::&L/+-^C'7V+M+N>A WP[R7^F3):CVE.&-36@L 9"32Y7 MX:/3(6EME;N#MU%,\#9>ZBO7-\ZU;C7T..1&VTBB9YJ=M MM+(&^J'3_9A%ZWYG^O*-Z43UG6U1/_]&MM8W>&U]G_^P*3@#R@62F$7$#7'( M8BZ15DIJZZ-,,B?/LY7),C0%+,A67B@7Q$ 74U#"PQ#?P. ^;3'&8) @N_< MY%,:(ALBBTHYY)L:UUF2QQRI8D8CG8.XY9@E5+D8K M"/$ACBO8\Z\&?/W=SE_R.0Z7$EQ2,FS%/"HA?QM*;2PGBMFA:@C_E,9;UG/S M[;KQ *[+NB[HJ9UVG)8:DM#;B'T6BBV2KS#!GX(F$.N'\A;^FM/P84R)56-? MK+&B8HNLV"(KML@I>WZ#+?*9B2 K\KY%&[**"+):2Q41Y$,/@[.]F4V";OP9 MP9CJ/0TUQ2L]]+]GYQ[BC9&%JZBY%-\T!GR:B>RO9Y[6/]8/?\&ZXU]\]JZ]NDO/?Y7@O:BO<^ M?FK6/^[BO?5/AQ/U5.#YN_1#L[ZS?;:UOGE27_\[]X/5VW^W]]:_'.ZV:WBO M^>6PUOYR*]FECT%)'Y .\(<'%9&54:*0A,5&6$.SOXXNDYD%+BT$KU6%>Q7N M74MA<>Y%)NY1HJ5PFB47.>?16Y:\)E;#_WDL*)^: MY*'"O6?'O?%(]> C"\$9Y)55F;]0(2,!]S)O(6,".XT!]^0,JZ16N%?AWAST M>@K<"\HH9;A/3$IN$S/.!*)(4%@%0T2:FC.BPKUGQ[U)WE:N(\\50Z7E\(<3 ML',U*'W*[-9Q[ XC 2]B Q]4"?KW/9\_M+I] MR#(.7CE)3%*)J(8DZ6C?6:U]"K1GD/1 M5LH BL>(A4^9^?]$>]R4S3C&34:"DO$)ENU2+>=JU9^0470RGP9?8B[;K#T99 M_3]CJW.<4[P>Y#FX+\WY0@.5Q%H:HB@#?.+)69=PX,8P(63P5L3*WP@_D7[7'/@8+Y(HH3I#0VB$=01$S # D:P.Z@3/.0 MB?Z7B7FT>5&)]OR*MH))!]."@RPKF'&BP=!DQ!)M8#>W3%>>@_D7[7'/ 1"L M<0H^(*"..^UUY3F8?]$>]QS@)%,(U"#&HD"S:5NDXL*'=.&KT^CG0ZN=$=9[*R7D!5=X&;A2#IHB$L(P!D8D)83D MW$>AV!PY.:OSBUF7"&1@3Z9 &0>34C)M@];9=R!<"$SR6/D.YE^TQWT'U#/K M*'?($>90IJQ'H$^"E<&X,R)IJX7)HLWH/)U?5*(]8]%VPDOI"!8X"LZ4M@), M#-BNJ88-G,=4^0[F7[3'?0>:V #*ET718Y49"SS26@F$@\'4DT"PRQ6@EK&J M1/L5B[:DU',1!>;PK^3*\I"<38G!(E"A\ATL@FB/^PZ(E2;8Q) V5"/.3$2: M>HHL9R3Q2"(G86E5+U/Y:-_!'$4=3%N+?)18-J))9=#JT!EDTM4RN>QM9JK. M#40^LO1N!9$O#I%GDYD28*82AQ.R2OJ8!D"4@QG M7P$S HO,B**YJ1"U0M0*46>KHSZNXG&%J'. J.,>.I?S.#61* 01$5 'G5J)#H26OWG<:?7R!>\&]:5 M_!FO2D=EN;KVJU%7\=5/K(..#?J3/UF@.E>,KE#&9E[@B.$5*I_@MGP%@&J6 M=9.FW?&&!0/;^T6OZ_^_I=YQSU]JGC_VZ4KS>'^IL*W^75_=7(%,')\^9+Z9 M/CY=^O?-K>9.27WT'O3[ ADJLQ1]_EJ\WZK5-KZ\WU@N-NOOQXHLWJ, RP/F MXN(6M]6:>](J(1/[,,G+DO!9=/H9]0OYN[DMN_4!MNZ"8+1]6V"[,,JM MLV)8F;*(N0A5<:, U8UZLW<"][6_!]VKP=F'+:P;[2&R"9[SSK9.[%DOK_GK M!0=!;$;MY%EN[D+N7Q0F+(?Z[D%-Z4G6"L7_'#8"])].M]R@WI6U2_-5T!H[ M+TTI#KI9:?Q'0^N8C$TT!1VYQ=IBZ9,6EMOD.,/XAUI:W2GWO$XJWF=]\ZC? M^\^_[>J8/-Q=B?ZWE>7':GH:;C 8B]')?/BKI#&48QVBBQ0^H'[ICN?\MA;H M:ZC^ZIMM5E<]']O8-5V:LJGQ6:^G%JGR^__ !?W@_+9'^$^#L M?V%4=9(^V2QHZ_AG*B]?58_/X3['[1KS7JS?KY-MG)[UFOG6Q^W3VK- M7;ZWOG:VM;Z!Q\^)]M8W6;YVZ^/N68W66'W]FZA__'!8.Z^5OZDW#PYKZYN\ MMG-K.4_+(M$N1>1\"H@['Y'Q&".EDM.8^$"H7EKEDCSVD.@!PO'4Y^MCP'SO M\_4*ZMXVU.%$ >*DI9Y%+GPFHO'122YHBLPK_V1!G17430-UXW&;QF#F9 Q( M*@50QYE!.LD(RREQ;K0R*KN(^>-Y_RJHJZ#NE4 =#4Z':%0B*7"M057 /C*' M%<=6:^ZJ:,OYQ\'):,O(,=$)*6PIXC0H4/Z\1H(ZGRL.I2LF>=]B93,GVF#,A-4=8$%# 5&+("L(0S*YRT1NI M9:F "3ZE O9T>M04]#*O6QZ)"#@E9CV+FH,V8)T6U"0FHS4ZJ%0E],Z_/(X[ MA@+@*4W"(AF"!#6 ! 1(2Y&A((K:R2!2*DM"\"E99"IY?')YY(HYACUQ@7ON MC':8.D*U=#BIB".N'!3S+X\39>(TURH8@@1,(LBC<<@PHA!1F(H HJF\RPGV ME$])V%;)X]/758DL"D\=#X%S!Q/IC=$F:&R7SUX3A?[F<&WZNCKP]OL O:8!Z5L8:K MD#2)4C'&"5%&&ALJ^WC.\>:6XNZ6<*\-Y2@HS!!W(B'KC4!&>JX998D'DXN] MJ,>7B;T=#%[R *(2[2LV0L>=U=YC$3CS)#O!G'<"1VIR0EAE:L^_:(^;VC[R M%+3B2&CB$$]&Y>+N#$5I).9""&MR#,8R9K/RN%>B/8>BG:C4-AEN@A,\.0:= MU4D0$CR8"S:%RFJ??]$>M]I5BE)(%1',(H@V0#1R'C9Q[JGB05AKF721!!BHJ3*YZV5!V#^97O< V EP=$3F+&@ M).(B:62P2PAK'+G P;&@0;;)LE#S)-NOY23\R]>U7O%_;/OXSV*].A1?:D1M M@U?*&"5$ H"H4D,06B)G%$.& M.ZJ,$3I%GU%D2B+RRJO_Y +'F(G)!F6I"]PJJWG0A#'.G$^4JJ>CL:X$;AJ! MFRAJ%BQ3GE%DHXL@<-JYR93-I>6*.&\U!X/"4MG8E<$]?/51HG8R,'EO" M+2,&!^65#E%X+F"K>S(#N1*X:01NXN2:.2=DX(A* @(7B$26&X&TL"EI1T ] M=DNKC.I*X.9-X+!1GD;KHTU<6&:EMH01&JEAW#K^9%9K)7#3"-Q$\7#'?+)" M(4&$09Q+C'1P')GDC,Q%P1).6>"F/"BJ#J;O(5T;7S]_K@ZF[\R<2Z!I\<@< MRZ>65#H:D\HO2=!&REC9J', *+?P(21%C>(2$"27^"8I($<\0,-9UMT-:44*T]RPD:.JJD^7Y%^UQ QY@.;&@&>(ZP1\;!#)&"B2C M2II(8;@I)(V81(PKNWT.<.26,M>:@;H'NC^--"*>.$::@K+@M2.818H#SSDJ MT]8/K#SO3^\H8]);;Y*/28!"Q[5.V+)@"4E1!Z,K8WLN!&[P\;-]0NDA%4"]^N4:<>)CH)["K.D=,S1F0%'9HQC MV-C*0EX :1RWD 7!+I 8D$T,+&2)(W+,*N2%AA&.H%PG4U**5/(X=_*H+!:) M$$$UZ)Y"$^N%\$DQYC2C5M#*K)U_>1PW:XT2P7D5D11)Y-TQ#3;:P)/-_ -".^X--TI&+32( M$E,,U)@JO7O.L7%K,KU;*1V4X%H.@M@+;"FRGSLKE,7D*B@MHI+PLODI36=!*[=-%^5=@.S.P'7?3 M8"RS SLA[23/?E&#+$T*4>,E? =&8CY?D.0 M*Y88V(<",-9PS*TBDK&D3>6%FW^P'??")>J(R)D?1'"&># "64P%TB9@P9P4 MFO"E52J6Y;3G4!7:5FA;H>W#T59'QST(I K4<4Z\DP"Q3%#,>12IJMZP"&@[ M[F,E5#$O0:$-W$O$2\8DX"V9!E>OR:T+=VW_^Y;>"[\&QH_ M5\O>Y?7>.!J4RV_U/_#Q16_:MKO?."K;)"_@KG$4XE'_'9,E #^S\-(LO&N] MHI.*RZKEP_E@>+G(VLYRT3^(W5B"#7!JER;3X>D MM57NQ^:MNI08E^Z-]G&K3J=O6]>_ M?]_I]>N=_FZ$QOG._A$,3K@?(,C%!(16_+]?SO:^AV-'N82VX=WF!JF=0SO: MWQC8VWMK9/*M]_$;K.Y]2;6>3U+=_>*N%3\:CA"-!'%0F MI*4L&>*P(\$%ZS+O(UV9+(M0P IMY<4!:VIPU+T<[V%H&W)Y[F"I7$U.$8<( M#5>#P!:=0;>(_QTT^F3&6@>8\._"H'L6;??-K6YXO_;#8$,DM019 M0Q/B4EIDDTB(,JE<"H9YFK>KEJ$O%OQW="[\)SDJBF M_G%X7M[Q70/60\/?0/B)RNGTJH[XUE@=\;+U3[O,O_J#& :MN)5N7^%EPT;M M6@/\^ EBOY.WTQUHQ5^@UQV^M15ZOGE> X5*F82EL<@S N8K##UR6DFP9@UL MJH:&A$&H(VQ2QS#:_>X@+BV HK$%T-Z[5M*^L*,I+[4+^/_4 5W^I/?N/@(V M[$:I>UTJBT.5#[K3LL>]^.[BQ9^AT8/MX^Q=XZAL5/FC/T?W&FF0H"!.!(/G M41M^_>=)(_0/LK&S@H<&S^C0?O3DT=]9UC_G1%+YCX9 ![D(7:?QY#68Q(R =3ELJIG M%:4&EQWTB@V0U_ ?U_WWZJ5J7EQHY3>LI<>.U34_T97-1&X83+^B0IB_41QM M*,4?__A7<6<6Q32]?CM#]_U"(UX;:L3E^MLXC5W? W],^@(L2@_^^-__MW+ M6_J_IEF*D]:\]S&F-"W3QHOZNK8&_5[?'N7V+H/E 7O($;S,-L/0>G@0$<=H M'.ZWBA8]\+)<.+WQ\A&&)^6D<3@EGFM'>:49]D'RY*C@M'08$$(9N>XPV*Q_ MF- Y;]4TU[I=>[0?VR!Q?YU=7?+9GN6/2@-K!!O7YA?48D#=^WD*\&)JJD/7 M87/CM-[\NY7_JS7]R=[Z-JFW:Z)V[@4\"]=V#@[VOG\XJ#<]'7<=UG8V:/W[ MM_S?6?W\K\/Z^C>Z>WYX7C]O0;^V3[<^?FCM?H=KSO=RX=?Q$"3I#8Z"6$0# M"Z#IYM1B%BB"CY4S,NO!^510>O^S ME>DZOZ#X..AE-TX)4C,!2?J$$'FA,(STA0M5H=04*FR<#AO'(X:29#9(3)"Q MBB&>HD2PN@-B )G) V>$N_7Z7.]\C(FR=0_LI9ZVT>#=WH'[N=7J]2_V8&<9/)XL[KI+R.")M, M\A:U1-J'7-V 6Q&X#X9$@#BSC/6C*XS] DV>2L<;>^2#"&5>(1C \$A&F MUW1Z4P%"I>W,#@K&M1U#3!)<>.2#\KG6<$!64XJ8%4Y9'JE*9&F54+HBIRPV M_*10,".7UV(H-1<+_E%.K@5$LC]>7*_)QV:;O=X@AO5!%T9OB$ MSE"EMLP*JVZIBQIX\IA3@Y0D@%4ALO0& I->=_C1P^"P"C]:#!0?1XW:]_69$[VM2R^!4B42CGKNNCGA,^B<[7: M1WE3O<+V[\[7GD[#$9(Y'VSD),%_RAHN8L26.R5!LA6^;Y[V8V5Z)+EYVJ91 M<-Y>?O8W4EO[P:4"V]Q1E'Q*B(M<25R!EH*559$:DK C2ZMX95(YN4S//LE9 M_?%JU%>*'5ARUQ<;_'/]@LO%=V##;;G3\2)+Y+C,$@'#Y)=\ 7=L,0];CS/? M8JXMQ]>\Q3QB'>Z2VOX/0T,@6AH$DZ80)_#*^B11BE1+PJ0@22RM1215<3M,W]TK3?_Y$]^N+XGJ(QM^V->2&6>OU!NWA M9V\]Z?VL?O*#2DHP#%2WK/N^H$LNWGJ,(B MV'XLDFUTBY^P)$I0N]AC]X?1XT4H@WU*;? HYP:WA[G!,><&WZ4"_IZKYXZ] M]T&H^82;\"]C+\LOUV$$/\ 9I%ZNYMQ?6=;U,^_D:WU#5Y;WSWYP85(TC"% M'$P;6&[,#DEG':-*)BU@"G-%(+QB;E$0+[?EK!$V>N5JBKT^3')_2*Z3%V.Y M=&&]#A?RH'>Q2/]J@6V' T[+1"A$U.B*WBI-$_**\=LCWD+R[D M UW(A[U"QGN1062VE\H%NH+U3"@79G5\\B(E%@F';OYO M5AS_:!P-U8.)$^O'!N]R-K_.S++_\ZHP7P+X-7UH8\3NE?7BUT9?-?+K?8-K MUT[VVC5:/__0W%O?/JM]WQ![Z_MDKQF@+?OG]?._FKD-XWZ]^@ZT>?VO]NXY M]/9[_;"^OGFZN],ZW%K_NUVG?S>WUFNL]K&6^YMJD\&K)H0HA&(HZUN(YQ / MZQQ&AB8NN65$L9Q6N,(F'&>/HGJX_:1W?N'B[TX+5G"KT3][.X%CUW%B4G,\ M&CGF9JDT3M"Y/EAIO U&QG3&JRG] OK+I;Z(: 4DOP>2R8 Q;G5@4F(4-':( M$Q61(X*!FLD,E]8QCLW2*E.WN"%?)$KD)83IGR_!C_-RH+G>^-D(.2[EK!%; M;RA+Z+4!YX7^=3&?0[R\?B*3&J=@L)W';F?1[>[GA='):).HA;&9 D<);G/< MK0-KG41$752)1ITPETN F)H2^N>\G;2^9@WP2Z-WB%(WQJ*1W0FQUR^Z( >5 M.KBHJ)8G] /,Y^9H.BLM<&KXFJ1PB-(2$B)H@:$T)WUF4R8>"8-C"L&XJ$,^ MIJ&5$OC(")6YXI3^'+NE.G#D8U%*8/$-@*&W7'P!P8).9&?QD'>Z_+P\XQWR MF"^7K]=CBMWNS8ONR?O[NZ.=.Y?.W16ZC/JS]XHRJD\ M<3CHM'()@&[L#[I'F1 Z5P"PW2')/W0H3_EI^>Z.GY2\_GG(/3RI5YY0V"(U M,L*/FO$K)RAF24CC2324\92C''E4AGG/E/&:I/'2-"S3K,UHNRK__)W/62YR M^V]W>YYT8'3CT6)N58^B1:]O_V"6F4@I0XG8F+<:CIP4&%G#@M X4J_EK_W< MDC >HL564<^YY4X[KH1P+"B'M2XKO!,SFF)X44WQ,T]QH#P9'0A*TH(Q1!5! MUGOXHSPAEDM/D__U% LOHQ*1"^,4#YAH[S3S 7OI K5T6& *7T@QKJ;XV:=8 MRA!A9E'4WB!.@D5&:'@EDE92)JDQ__44\^BDMR(X; 1GQ!FNI$LQJ11\Q'0B M8*>:XN>>8A\E[*4@MH2"%"=ID!:1(NQ%A'\I-\8MK?8/P!9#^2!O\J1INO^ M->B-2AOE3R8?NE)L#F]1=NUFM,Z5VG>;DO;B.NOUL@(OH3TN7]=S+U1?F)!2 M&QZ60_*UWY(BA^N#"R?(/ET3/>!4R],^;88RC@"-\]1/K>IW6H#_YDP6*;V)T!61K MYO%-#*]0^02WY2L4\UE6JIDVVW$8L]S>+WI=#X!UW/.7_M(?^W2E>;R_5-A6 M_ZZO;JY )HY/'S+?3!^?+OW[N3:JWU>OQ?NM6FWCR_N-Y6*S_GY< M(N\.YWK$7%SF M%* N@P[VCX;6,1F;: HZJ8/%RD?%S?FX>:D>$&2\G @B2)1R6-H1R#LN BA0_H;YP+LT\5F8B8O/*? MEY[QM:,P]DGI*J^J)5XDCFS_@&'V26"!A+$,M#_"$&CM"<$T4^ZIIMKIQ4L< MN9CA$@NSXQSLHWR\,OJ[=G&. N^SG63W][MQ/X?E/Z"8XN+'SRNR K+V-/'S M"U-?,3?V?LIP55^QJJ_XX%'\1U54\5%%%8LR=ZU<>CF!K\UL=O>/:OOU*&-GNZM M9]*>-3(>L95_M[=^>%)O?SNKT7JSOIXCO%J-O>8FJ=&-D_KYWF'MXS:NK?]] M6\ IIF#E*>^0 9,*<2<,RE804DI$0AR-*K&E587I,I%5S<6JYN+;KKGX,/"< M73+\_:'SU6?(/S=P3O#BAI"P,1$%D:N5>4F1YBI7*[. J%ZI*!P IU[!;"%@ M\TW5 :@*,OY>4>2"L>@,T5H$[IAW6%N=HO%:)XIE?,8B +^%O9OL()7".#/< MFPSQ)U+'Y*1$U%,%N!<",I%:E+Q1P0;8&2,HC%3S9<4FZQU591H7%"+NUHD> MB1//J!R],0ZAYT:*"0T)!QZ#<"AIZA'G2B)-@T?)^!Q6';6,*A=QE"M:SQ%0 MO*DBCG^/@NF.PLTHIV& T]O)V7Y(E:1%4I"&\UPI2+.&O5OJ04H6, X*-"(> M*.),!Z2E$,@R)4)@.&?G@8(D];*\I1!<51!R;N'A5>M&-P&BTHUF#!*3!:XI M)]AJQ'"(B)NDD.,20$*0S'AM3*!\:56R%3QW?/IOQ4=4U8I\=5K0Y916BM#, M,6Z2$@PL.YCUI!&.F7G6FH1L!',P:H,3#29HE3U%9)F029"KBDC.+4"\:CWH M6G7)2@F:,4",*T&6>\8%%R@Q*A 7.?F7YM+9C 0O6)+.TZ55(U=T55KR!6.O MJM*23WW4%CVG"5#1\B0XT5ZS0"D%T7#8L7W[!W').L4M?9?=@[ M!B71)*RF?G%@?\81:\QRX09#WI@[V#W*:X\Z_>(L]@L7X]'H)'RY.!YT>X-< MX*C?&;+ZQ&Z[=\'^,\Q>/BM7^GXWE@MFO.C< O!X;K2/6YVS&$<\G)\'77\ MZ[WXW+)'+UU![[I87K2S;.9%*W,CJTSH$>]6;?^'A/7#"=7(L01;)&=%%TU]JD:*ZIT\[L3?W=*%L!?YYO?(Y?ZM0[//;+Q'Y*(_Z)>GOOU_(^2 M:;(S@%MD/O1XZF-VL97ZZ;T*$[Z.Q/@)JH6*2^ >0T9F 1FO<6"JM?3(M?06 MCCG7VM"!?J]D51HY!(Y'UN3$06>5#_Z6\\''*QMQ(G PPNA(.4[>).>Q(]1X M3[26:N3C4'?$LR V&]]C>91PX?\('SK=\M-+%R);3,?'Z&QAD]>^;T.[-L56 MOM_YMMCZ7N/U=@W:7&-[ZS5<;X:#^L[^Q-E"K;E_NK?^J;W;/.30]G.XO]@] MWZ>[YP?0AW (]Z)UND&V;J?$4,YXRUU 5C./N%,":9T\TB%8ZW-% IP#^-F, MCUX7^W"U@K\W!'\LAVDEA05/E"?/#96"J!2BU98YX4;%<=1%<9P*_N88_L:/ M5G4BE@IL4,AIW9REB+03%L4D.2=6.Y5RVB:KV( J^'N;\$$H&<8L3J(:4(VJ] MYGD9$*>75MFR>'Q&>X6.%3K.3Z^G0$=/$W;!&.ELX"H:ZYV1D0IKL=%2T/'* MB14Z+BHZLO&XY2"=%,:#X2PYX@'41XNI0PG^&$^H&F:^+S,B%P(=GZFH^8L* M]M??N#W?:B[;K9&&CW3[S;XLV /Q;;&#CI\)WR:IST*PF!"7D/,J@&7,&#(! MWC+AB<*12)MR=?-E/E?Y:E52ZQ.0:#_. 58!P6(!P;B+S)% @_$.!:D3XF#V M(25M 4AE!&:8B8@ "II;%XTV>"@GF&@D>Z?:HD&"QD&#<]R&(\Q8GC!+L M!: 2"(R,!& @4>*H-5B*2H%MH):E$G.$!*\A(7&MZ'?ZMI5SL:9,'#2&B60% MYEYRFYD::=+)"8R%=IKIWR4.7@CJ>DRQV[U33+\W^@>;1S",C3"PK?=ENEF9 MN?0E0H]_E@+Z89 I9W*5[US!O,H0O#U#\%!LK?U@)%$5G$-49RO;F<-Q=[?8"4S !=EIXM.D?E^H;V'\9^<0R+M2RN MFRN.WA2281+MC:IL^8-. B3,[X=D0<6@E]_D;X;I>66"[-5:>R/U2+58440_ M37![DG;K%")@I33UHA M;GS7N>0ZN;:Y;)P>QUR[>B=VV^2&E@.]]^_"H)LG;S$WG9$%$EKU];UV'3:< M^GJKO;NSS>KPK#K=/:E_W,5[S4VV]_'+8:UY<#AN@=3I-UQO[]+:SC>\]7WO MH+[N26U]G^TUU^!W7]JU9CC<^[A]MO7Q2ZI-\HYC6+3*88Z"$PXL$*40Z+<1 M.4.XUYXEJ4UF3A 3&OZCTCX6\,SS[TX+%G&KT3^K3CN'0'$T(G6;I6^3S3LI4SC%!-&&3(03S%F$%'($A4(DUP;([)# M<^71M.2S<6*\A!3]\\WER:UGWT6F 3UKQ-9;JPKSK* Y.[*Z7X'FQ7P.(?.Z MKRDU3F- Y[';>24.X6="TLDL,FYX6>,*2484XI()9')!&$6Y#5C ,DEV"4!3 M4T+_G#>*NE>N 'YI] Y1RGPQ+B+U^T051J+3!1=4&\X1^@/G<'$UGI0M. MC6"WA+L)1;C5!AF MAT[/^UOI[7F]MENLP7/J8$<_]VJG;?:>SOU]M9ZZW#\Q&(/9!F>>;#;_!NN MV^Z#D/^,">%PQ?QV0%:_YY-!W^F&\D"D5!T:[>*XV_G9Z.7;E*>% MPV'JYV$JW%EACX^'O*#Y)U?'+?8(GMTJ0&F+F<>P_$&I@V1ZT7QI]H/"N*&0 M/SONYH.+TXN;9X9=&YJ#WO 4YF8# HA$-_:'=VST8[LW:C0\M3$\WAD>SJP4 MZXU\7!./?&YJ[)]DNM.RF9.MRH_L]6U_T.]TSRX_[I6GI<B#XI&V8KAJ*X4:[#]Y.60VS'DXG00!R.2&^']H-M;SH,"ZSJ?PG7Z\/EP M8'O0^T:"C1,N3"UX^,7:/[KQ8!CXB[OG,86W>26N%)EW\W*A]2:7^HC%N5= M$[JY,:.I6RZ731S20H\FX98.+^<>G\16*_\;1O$4UR]8N67KO MU1L(N&:#! M<:=73NJ[;LR.PI_QZCCOGS'@?CJ)];U.JU!?_(G"W3VR.@*96SF9X\, MU#[Y!+?E*Q3?CZ3TB0@ A^$:[?VBU_7#%,1++>3'/EUI'N\O%;;5O^NKFRN0 MB>/3A\PWT\>G2_^^N3G>J38_ T&8RHEBG[\6[[=JM8TO[S>6B\WZ^[$0EWL0 MT#U@+BYN<=OY_Y.RI$UH#B0ORQS%^_A./Z,=(W\WMV6W/G2Z[8)@M%WB>MY0 MMH=[ .P;0]KZ7 0* /D&'V\4I@Z_-'4.NE>U\]WP3[^V H=O\=+#W?1-/A.31&H4VGFWM;(K==HW5U[\P#,,D*"-^B,/17C7W*QLXD#O>UDOM7M0^J MV@>_KWU0%3NH".JK8@?56JJ*'3Q)K,)F69NV/*T:GK]4%0XJ%L<[61QMX,E2 M+Y30CGO#C9)1"\TC9XJ!H7SO"@=7,1L7RV_H@JC'_KSP+3[4]3 ,T&KOM6OG MW\@NA>VS^OE! MJ[[^H54[WR?U\]#>6_>LOOY-['W\T*B?MVX+,24INB!-R 1D&G%.RV!]CVP@ M+#"LC ]T:57HQ6!;K+AH*Q2;-8HE'I.G(CAE,=?2:DU364VLO7^A@@K% M9H9BXV1J7A'J.39(2>L0%]X@9Y-!.L$L\2!@[OS2JJQ K *QMPEB#SH0JD#L M24%LG @N9290&0&_0DZ^#I@A2X)$D@HG(RC,P=NE58TK%*M0[&VBF(Y@1_)@ M5*".<^*=!.AB@F+.HT@IWKLL0(5B,T.Q<1*[J!/5-B9D+ .#$NN K)$6&>^3 ME='3@,72*N6/SOAY3?3][48(K?A2F8P1&I&CREN=7J](W4[[,LAZ&(CMSS*I MD[>]8>Q\XU)H>L7!0W.Y'Y7R^*+#]L!RS#V\&D>N#\,9>C^:H)TN]&C8 MGH^VJ5+ ;<328X*AY"\)$@:41.T98,.<(!^+QS";ZT M'-M,XTW$))__Q&'ETV0W7DK+8O'V+HR0S\!!- LAK^1X&CF>J%BI/)C%(B)8 M5Q%Q[L#X,M0BAK7D)B:8- 7&EYCDK*FD^%5(\0P\)-56/5*3=( M:"-A@RZ-$B>0 _S6#J;>,9=+[\ <5T+^.H5\!@Z$2LCG2LC'W0\I2A.=9BA% M$C/MLD"&4(%83"XEXJ)/,>OCW$PZ(%Y$R-]"V- PF6"4L?W'**G@7V56P1LC M@IL/Y\&O,WHJ")H"@NJ3)+J*!>.Q\RA&GDN8:HT,Q19AAZ/F'E0.HP&"V&.T MC!F2MSZ"O!G:7@3M2Z$YACFS!BV@;$N9+93E<(2R6L850Q M;T!)5H_QM\\?H_%0_MB;:Q0$[J0VE<6E5 MFLE*I5.[66)2.:"(@(Q:B/B8+(@*QA& M40+Z"R.MN?&8Z.._N4"\X2S9%7 51. M20-HF]PAG)P325ML?-5;(6 *Z: @*-LPR2HK.(-[Y)9'TJZ=\^]OEXIL>7T%^VU_!K1V&]D0NHA/DB MFG[^974.:!.)@B6%5)E:JW!"VGJ#(M-<> ^(Y!>0:7KG(,*B:A]WCLJ,TIQA MFM\.^L-5VDF%RPMA6+9IN!0NZ*CSX@?EH>CEY5*NKU,?%BW0H<\49SY4"JF^9:/?T1M?9=M[;0.:N?;I_7S MO^'>?T'[-D[VOF^RO7R$T][E$\<[.[G>W.%)O>G%UO>-\_KZ!JM_AWY\W#BI M[?S5VFV&5OU[O;'7/+B-E,H1+R6."FG#">*1:J2#2\@ZH135+GB;@^O%LI;L ML6EMCTJ%?Y%C[PJ1YJEO+YE86R'24R'2> BDB5QZI34BDB7$F:/(1:T0"RD* M8A6G(N?$DV7.385(%2(M""()G'#@."9G*'=,6,:B5R)AR71(7$U-JUXATE,A MTG@PH1/.^X -BI1FMG4OD7'*($>#3=99)IE86F5FF9(*D2I$6A1$FCE%>H5( M3X5(XT%YU HJ*%.9* @0R0$VF609$B0%6,4.5%P/B$26-7LT&DM>)'7 MXU&GW3AZK!_Y%UV>/]"Y?44]MU.V&K)JR*HA^]V0/?=9Q(L2OGXOW\106&B5 MW2^C!]N@%95A%;VB,^CW^O8H]VMY&#KXQ@I4W*DM#@?HJ8NT7DS/VG!VZH,< MY[.5RI#>WM;5Y)3AO95".2N%\A:*!B\)$YIAQ%AIXFJ%C,(44::E]F]F"H!R$+7A<6F+K*2;!]OMB^]D4%#&H:0;$4_IA %I" M)Z E+*.O4,\F:I\&@4H,9@LZ_?T6#NYDA@[[MNZT//QY/49H9U*>2.,B]0OKJ(_93B+&0R/&5(X%+K),_3R"O8@?#;I&IG0(./ MY %O/DE3$M^QYS(AL]:16=%%BN/9+CBQ04!M57F:H6XIFF#XZK0&X MK^"YP@]J$/BV3:G_ZCU8GH*U#YJUMQYH$*S]TJP]&V! K]$P^[X"5I>IF([N M*T1SB&+90:BZQ-<]G+IEN/,]D05K'Q)K;SV8(%C[I5E[-HC@:]3JA[ZKZ$$( M!KEAN(IC6KIB!:ZKZJZI$3L K6T\.X*P1=;>9@%5ZR,('V]^S63I4_G?$_@O M]E8[@]]%I53K8@>GK&7C'=PU?+C(L@+_>E,N3\BIU>74_"EI/S#] 2(HAN. MJYAV7U=C]1 \'7V^+KV9"!2BR7VJ:F M^)J'A6I&H'B&IRI]774,RPC\4#-07^_W<)S@Z\,,&0B^WA9?S\8+^KIA@P'6 M5P*=J&"'AT3Q0IAM]72&B;V#3+5(@9>(KFJ):IN:'CV08KPG6U^2G+6PJN M;WL\T]XS:D>L75[J$)<0%B\@+&:C7K:IA@2PICC$LA73,WS%<4)=L?M^"*YR MWPRIBV5PLKI 6 C9<.RRX:7.\@C9\ *R839RINNN8X>>H_2-OJ:8/O'!PZ:Z M O@E?3?TB>KJ@F $P4PL3VK;9A_TB.U@X:5-0@4\BT!QX#^^YYLF575N>2Z( MM@KM(K3+GHZ,"6'Q L)B+GYK6':@&X%BZ"103$JHXCFZJ8 ?H5DZM4W/\IFP M<%RG$[)A2\5@K>YH>+5@@N9&7=C*O3 *8 I@"F*T# MYDN?(=[K_G]:U!;QV6<16K?-U7N"+]IBN[N /M83O)J@OMUDD3YKA"\V#=M MK>]YZJOW:L]\=OWBL\Y/;#:6X EW6HB@ Q=!STQ!"1&T&Q'T,"V"-%4C%K$= MQ>@'MF(&H:-@MEGQC'[?,GW5<[001=#SYQ ($21$T$M;0<]+7 @1M!,1=#5C M!5'-[/<=$BI!B"(HM&R%]+U0H42W=4K5ON&9K]YK/76_;5V$"!(B:'T1],QT MB!!!NQ%!#[..F.T:OD$5V\!S9(%%%4\#O\RR')>XEJ4:NHM6D-,F$?32!]GW MRGIGBXO-Q7"[ Y>?NPYDE70E).A:$O1\+I05NA8Q\5!/$&JN8GH.55P0G(H! M:.OK+B%&:+-0EIA"+H10UX30KD-90@AM*(1FS#B[;ZJ )U_13<=43(MZ"@G! MH.OW?=T.#1<0%+!@UGZG6P@A)(10^X)90@AM)H1FPUG$,2R;@-31#,=73.KA M( XPAS32=_JN%]B!2E@XZ]G]#H40$D+HP,)90@AM*(1F+"&?$MVP^YYB^9ZJ MF'V<[N#:?87Z?TVB2$6$#K#6O" ?\&T=?Z?,%5,0(2]RN*+7_= M@GZWO^I_W%X80,+6'V<_A9>?OZA_ZL2V;"WT%$/W#<74 M3$-Q/-U6=-A?%K/#0KK1#% SL@92$S488TCC)86T1&$60_;#*^855SW:U&^-H3FYEMZL;.O&U,[#U,HW5GAD\.!D!?O+#.*K^ M^43]XS.\\_,7X^K,__OWS["VSY?FU=]W?U_]]J_H\L/5Y\L/\)W1']%L".SR M[-/HZO.=?GWKJU=_7T57'\X?+O^^,Z[/+K7?1Q?WO^N7][__?0)[_E=X.3\K MT+7" $L/%%M7;<7T=5_Q +5*0"U/<\W0L4/GU7M-[;?TG/I.RDV%1-A/]S0A M$?8@$>9&#(:$.H'A*;I'^XI)^K[B^"I1+)58%O'5,+2Q;=JVSMH)@7 X F'K M';"$0-B#0)AM?:4YU+(L#TR$T#:PFTV@>"IQ%3\DQ'156S6# -P+?5M'WX1$ M.!R)L/4V5T(B[$$BS/:WLD/5,$P;)()A$SXGS#-\2S%4!U!I!J;#YH1M:U+I M;@7""NET_!W).HH+PAOZ-9*&)7?8!K#/.,DBO.%M2C%K^95.TGC?3V=ORR2@ M.GF$>+"Q(I]_I$,Y1T/OZ8:Q]623H?9T>P>O-7L@B+:9PUHW),:P&XWNI"SU M08*.,[\VC/Z\TWN?QW>O)#+,EUV:ID##&G_;!-^&,_[VZLVT-EE:P/("PGUY>?[I]%R6+JY.>]-)^Q6"X1O@HGK%HKS_3B.VAH4M"/0P<:A+5(:KMAXY%3!)ZIJ&J?_9QR 1_:)!.('I' M%2^EY(M"0EC<6S*\)P\9,DJS8@1XK=R_Y M(L#82E*FU=X"MP,2X"Y8#6G+4J1!BI;D/U9 XZOWMTQ1)J&$LZEP1?Q+P)+$"\):5XQN5I:1&/?M$O;[]8EV=77R[/[O3?_P;+^.\A6+67!EB\ M]]=G_QK^KE^8^/?94KP_SG[_=GW[Y?Y2_P7N^^/SU8?+OZ]_ ZOV;Q\LWA/S MKNW["ABRCN):IFV"FVL;Q.".#5B M-#C!KKFN3=2^&MBAZVAF&!!7"T/2MTQ3=2C@PYHMW9M 76J ?=[4;-+JC-G) M,?/DAQ\3/+MS&MD;WT8Y"#5_!7K_1+]2@.7 M^.7^3QI8@69H&I!_H"NFIX-/Y^#Q5.H$Q.S[EFJJW2Q''=,4K3@44*$OWP),#Z9Y* 0VQ*(D7DLX\!L3(_$Z"]:?EHV7I*A:7-@8C2GDB M^44&YA5-,\DC&3QP'^4#5O5#I5][-SUYDXI4#L3.N(*B_%0L5I2?BO+3EH)G M1^6G1U5.)BKP1#6GH*66T-(Q5'.>S=CNHI+SJ:0L/XHWDY2U7<,S;"_0]+YO M!K[NVIH:&&H_\ )J.XZZ;K.HTR1&!N&ANT]1]N5C[3II=:I5T;OI59=GE'\Q M\3#G]=D7_?K#573U^1?K^O;"^OWS3Y^O<(WZI]$?G_&])]K<&>6SNV_7O_UN M7M_^;L)[]:LS^/9G]CWU^L/YWW]\^&-T!=[ZY=E_%Q5HFL1W39^H2E^S0IQ4 M%RB>H1'%\FP[4%5+=SWKU7NGK1,L]\H6WV\T'$14?FQ#R(2Z2QR54"OPJ&FI MFD<]W] ,WS8LW[]UF4$+(;%'(S-9\6E: 9\]]Q2"AHYC4)8IG>9Y"0\L) M?=76O; /0J;U-9]"R!R7D#$MQ]!#EP!L I/HGD?[ENL[H>W8MA.ZSKK-GH20 MV:*0F:TC#6W+[KNFJH2&V5=,UPH40DU;L35=UUU=HWH0"B$CA$S;A(P=VGWB M$K#"5<,TP\!5'=,-^IY#-#?LU\=<5F[F)(3,%H7,;&EJH-' Z.M4L4+J*F;H MJ(IKA? ?S[#4P+/ ]/2%D%E%R*Q0%]OZ].]21O]"L]#U7(28X*R3P5-_J:WU=-U^]OTKF6%S* M@"&'5&HBG[6H EQ@CK]*STL#4N?X,RF*L3$5X AO64]S$-_154]W54LEIDH" M O\:&O6(;;FN:@KS=$M$<:?^V2>^;7B.KU"+FB#W0U]Q _1@-0^L3<^R@63P M'/,<47S?DU;M!]::XJF/:3(&O?$@D3B0SO\JHO$(J. E:JF82&L44M7TQXJJ MV*).XJ!>TA7-C[RRZM+\T^I3HH>ZIC@.-OI3;5/Q-*!4S3 ,!P]'6?I!5%:- MFU1)*Q*06;<^P#VKG")@(Q4>"-R(I/S&) PCG_(;@!^SA0)YPP9^7:J7ZFL] MX#-1U>.L=L[GN5-]5L@4=RH?/%VY@K4L*R;5#Q4@9]0OX:&QLR/'ERV_0)3$ M3*J2X1+I+#+H&X6$+"/43:#]JP M+T\K7\#WOSS\_O>%?OG;+]K5V2?X_HEU>7MW?W7[\^#JUK^_TB\?+D>7QMQI MY<__'5S?_NOSY>??O_UQ]JMZ]>&_GR_/OGR[/CO1+G\[UZ[^/C'@O?#N(*P' M+DU"0HZN]_40? 'X%_Q%'#?@&I:JF'Z?.@8Q+3NPP35X]L2EPP\)B;CSBV;0 M+2_TK+X34$\S0]_V0A [OD]0L!!+,V?BSIIN:$+(O)20FZ3L7\B(?@RB'X/HQR#Z,;2P'X,C^C&\ M2#\&6_1C$/T8RGX,E4&CH+!XV]=G(N!*_Y'$S(Y[-EP -TAZCUMP\_^])#'0 M+$996%>'_KM,.HLRO\@RM/TQ#',2D^%#%K',XL]13&(?Q^, K )F@K![/M&L M&.;LENLQY>C(Y@/@*W*6^^IQB+]L@F%IVFM9R@% -9%-G^@X27,)X#218&@5 MDBC&5$%Z3]) &2;)%YP^E.4D9[BH8;?BGDYA<5X:+=N+MN%>I#67L6/0-@ZH MCRC!EGE3^9>/:?05X"=-.NY)_X%_[GA;"G!7$0$G?HX/::YK]1 E"']I'OY2 M2N_@"OZQR&0I*5+)*S)8499AD#(;4Q]N8JDAN)1.R#^IR5_">4]9X7V&6]EQ M>U"F@'4I!:>6/UK$Y=_86L&F!_7E/4@ N0Q8+4Z>6=WBE<%J@B@,04>.8,,I\#-0:CG/"E;!OS0B#Y+'AU3Y MT9@EQF!Q6>$/'J';'L"9!-A3 'Q\-K]^ \96]9VQM=?3Y"2K%*9?[/R><%2\L&B[9W'PWGWGL_=6-I\\7TCGG()>J15&DZ MRO!R K^G.+5M3%+>X0*N1#$(J[L'&?TA^/+=@!$BD/MC^"_%<_D!AOR>=!.! MB",@T>7FK8Q1 IKY:>1Q?@R+O #*1Q"BW&#<#PMF2[Q+R) S!OR;S"ZA%D>+ MUH3,R!Z"SXR P4IN!7F+;,7^A16#(80Y%%AVS'N+PA*B&+N.XNMR.J3C ; C M[A"8GP+S,2GQ!M9V3SU@%9048QJS=V+JO/! ,L/FL2OI(!DB8\N-&7E1##M# M,25S48@HF.5\!J(G( [O28: U66B<4[R56(-]EP!G/D 3XNV67&&,J*4(U/@ M#AA &R)E"I*#Y6NMJ '_#O!B]PY )N)S)6EC6%/ZF0OXBL#)&$1;BCC'E;F/+U6.! _RI@MW/& M2C9MK4?HT8 M'AZ3P2CO*6-HK*DHT8UXBL&VB"8=D>0*_:6*K.3 /7QB6A45Z1T2(ZAA^"TL MD"IP)? Z1"$VSHDJ;'T%/"1%QC>69 7.?V0$ ?129#-DP1XO8*'DGT"!C,$+BP&L0A" MCKVJ)-T),59V0ZW""3 #VCP-"Z:WJ67NZ$]8YGOL37?]E::(SQ6[%+6E0HG% MK( $,,LA14CLPU)8@ ;]RF@2&SL-DR)0>)NFK!B/@7J!?(#L1K7[)F6X?R;1 M?3 !,X;QNV'B@1!)*8BG(=8X@3;[TI.NX=*8MQ=#TOX"7\XE2K((OA8R'L7[ MF;!G7XO8CW=IXK,?@#%X)ZE:\H.2C?#,.U(]ZF/@LR3U07]B(H=RBWVR4MA0 MA%XIB 0".A(CT\#'0V"8(2_&0KT2P]L?F"Y.DR'_2D:&C'O 'V7?JC8ZBB-D MIIC6.RU_1;W=A&\ IMA7E A)$P#(%7< >)0*2@E%:93 S2B%4@ILC_='O%)A MB**/(H./DCB"1MTM\&V3P@PW !3[:: M;K&RKJ:X!!4N5ZA3\ 9P@PE644!,<6HNBNA8 >4Q0I&6)6%^SRRBF%,VBE30 M V'(S'#"] )S$- "(&/B1<,H?RA]AAJ8=>RB!*8TM;Q[6C$3:$L>[&DB JD5 M='L*#, 6&J4UCSWX<#.Y8]\$2AV#^@,8E3=-J'0(ZF?(Y6]&@8CR08K&I@SD M""1&)ZX7FRN% A$?E;L#4INT9^,, HP&?QO0X1CV@#J)@V0S M]D1/*(,%9> (T6^8XP,H5TP//_Q51&GISW6,+'_CIC=3]*6#A3\#;.ZGG7B@ MKK!(F<(&@Y>RA'-IV2T3L+#C+Y3;@8@R#K.R_IX92=-4Q3OT19-OPFVX#AD% M2#EN&I^HT84F0"6X9F^*9LJDT,3W&=?(\P8:D 29#+&I]%BJD4=$@-!BBGK M6)DIQ_P*[C/B&X""N<\",!@7:080)#Y0!,\X5J.P05:#61),]HL^%OC+:"'! M2_CJ.2'C"E)ZQ]T18/_F?4QRL#M",*/Y]IB1M+F-8K771ODW?6B$4&_1=96E M2R ^ILT 7E<@&C^':/_08$9Q@"_:$O^@4V'-8;YKXZ[G/$]\S\ MDX"'FR>NR=8\GUD+_/Q47NZ4M2O4N<.P?&_'.WUT7Z5?TS&RODVX4BC-5PSS MU!"?W9B3S[!^F2;9RKZ[B2 J!I,#X!J.-3 M09F,16SR:"C:3?6]DQ6-2MG!A'L9?>12FT>TZD>J&^M%%QFZQDT'F\GH(FVH M01E,7(R98Y=:L!+\B94QV?(D>%X%O2>K8T9RI87S%)@8[Q^6ZC>9@:X_1<\+ MH]E=,U&NI\"),,^6(H:9,1C1Y"9KTYU@(3J2\S,M49+6$3 F(Q&NW%/*RH # MFD4L90(Z'5,-0!ZS-(CN)]H"158:ZM6M#-F4!U3Q%?0;]?FP6F[RQOC]QIXB M5L.'UW'U8*\R3,W0X]2.YZF71VTX0<)>,79?TE=I63VP.^Z!;H$SQP*$ H9SY:@CJ-@ MLL'V:DHF(]!MT=]E$(NS,UKE7_'$$=Q-N>E7C/%^W\=Y4/@[Z,T!XAA?@3H, MO,TO$FZ9!3$):-&\9$9,MO! ,'BV9;8,05GO [M% W:9?][<"L4I55D98P>/ M"U46L$@*]F-1^FD\ 8*\C=1_B;*WT3YVP[* MWUQ1_K9Y^9NH9#OF2K86&K=-V>&:;933S* =K 'F$19K M::/,-LX3>9&)";SM%\,J+8IV5AK4]IR$7V:1Y"<,5DH9D',4@L FPMS M!'%E>I=N'$_EI;0*L#+KB;TT9WG]%/$?3.(@BWQ,;CQ.%Q9%,68IX*,8;<^K MP-Y%[8V5,"O3G2Q="%^"-P^CZC1[^.@&RVJ 1FW%TCNK+?)<.=\+RY:**$L; MHBPKAE"=]H90MUII:FE/!HN7%NYJH>[H_HMV5)F?EC%1]V7XL]3YF(+#J 'S M U=^3.M8).5VJDJ/.WRETYL]4I=965!5P 0V$K'&'P?9LD-W>]8.NF"X/=?> MK!'(RW?L$&L5:^W:6K<:8EE^MEV;'3E22J4N3QUY3-]M:Z#47F[=WI"PPYDO ML^.1/(<(LJV,=^KH1+535G2[R="TO3936FUSK[_C[G92P$N"[(>ML$8GT/I= MJP=SM3:$OAB8WZ._-#.\:JO+L'KZ"@M9D!A$L"MZSYEWF; TFH=N7VL_K)T! M.)Z);()1!*,(1ND\H[0/7@O:(QUXY\JR&WXV2RCK['%A2[C6[72.%];:8KO; M>FF:*9N.O5F#LV>V,=M7N\(.-B5D ?"](&G_O>:V1"%"+G5)+KE]V7'Z0BRU M&TM"+ FQ=%1B2;-ERW6%6&HYEOI'*Y6>.W*C"P+F%%L,3$)/N^2IP]-(X,F7#- 266HXEJZ<)'+4; M1Z:LV[I 4KN1I.D]=A:K#XQNEV\J=;Z M-V6/[*!L5PL;>([_W4%-I5M@:>Q15PE[8B4LZ6L'M06.7AQ'LMH_+I^KDUCJ MK9L,%SAZZ12>K%L"22U'DF:N7;'0/A>W&U;J)YI1DF+;6#!4RV$%V(;KR"J9 M-$W6#%')U'(LN:*0J>THTE39L?:8VQ=86DWX MJJABVK"*B<9LC!%KNAO@\ LVT##Z2H\LIJK9,+@GN:P'^UB\U$-S7&NR!ZK,W#!L*YML_^C1]GWT2CN&LZ 6?*!RFR:@Q MV?(Y =Z#DA^:*]ONAIY<.P3(]/0U@9X6HT?M]05Z6HN>M?U"@:&79B"]Y^Z%@8XH;NO1 M,$FI%/'?3-<#LI_U1S9=3]A<9\N.YO.5A+UFR8V_H 0K_O07X,]:>,+<=_WT?F_W^.=.EEA&( MD'$'+^,TV31%?6EW99RVIV[F0L8)&=<1&6?*IK9A,WDAXO://L/94P7"_D5< MZ6%7BZCNM!CZMTT]ZTV,- ">05)@.\+VCXP4H&KS.[H*JL7Q+[MS 3#VQK=1 M#E_S5ZDHU7Z03D:PK3R3HAAW7HQB:40>I#C)I3"!_P0%E?)$8GN/9B:6,JB] MR0G@&/X-HJ_O?X3_5-L:D?0NBKG"U2O01'% X_RM83/8+X""%NJ.[N\("OU9 M*.A\Y-57&A>30L^7QLWB54G*CM>SC#+XURN@8,@TI22C =!#*N4#*CG]? "T M$F?4+W#B@O170=*)-$XCH(\'*21^ MGJ396_;BZ4?](DVQ_UCU$K_(@'=HFLG2_2#R!U*424$*WX_+MP$4).\!5Y9' M\$ @>44&&\LR"5CW/N"&^L_$_ZN(LHAU:)#9U=E5$.!?&<#\P$LFD>S(<4K! !R2EO9JA'F$?8)9*T"@H5=Y:Y@P_ M*9JSC*%V3BK_\P]'U^UW^Z/6:=AH9H\954B+<3'R .Q)^!@Y-2A($:VDT!EX+<"=+EKU$TO:D!=#9 M)[$S6G],T1/?1U^G-&5=XWLFYEU0^B4EYZSU;;V9CJ%RG[!'0")1R&CKCZF/ M?L'PH2?]!O8OF.-^-"8Y A*,AGQEPPQ?VC26I7O@L=J^;THD9E93B7Y#EX0R M7)8V/QL+1^_ TTC@Q8 Y9-$B99TFQC2F>=FAK2(!;B.L)*?:[=6>)EF.FZH= MN,SW+3 MMH&69\)MU;?LL\"-[^ZC(!^4@9_F4SPF]5:=/$*\+!D"'\T]\OY';@O43[)H M'Z!Q2,89?5O]\"Z(LO&0/+R-8H8,]M"[DG/*SX&U-QL<8ZS$+T^^W%/YU\O@ M7/GE\G*/79K)(?!KAM[3#6/I9;6G+;WVZ&O5GF[OX+5F3U?-E5[[1*G>I@%) MAMUH="=EJ?_/5]DX\Q54*JIKJ'_>Z;W/X[M7$AGFRRY-4Z!AC;]M@F_#&7][ M]69:2"P-O3Y;>C@SPF-.CJI]U+8?;Z33Z\O+\T^GY[)T<74ZPW^/Q*"?@8OJ M%8U'T NEZ;8-X5D@S$E0#QZ1?,T=E/X99MZ^>+2*@?L(-J[? N !/N M60]JR% DL^O"? MK_X1.0X-71+J8>!0DZ@.46T_="QBDM S#57]LP_F ]-YH)]/X8/ A-F/;\C[ M&7[HK)EX4T?'+NOHV'DY\4.8C+7)N#"(R,&T9>O17L%Z/ #WY!/-*$E]GI0Y M T-\F(Q'&&==B?AV'SB[2J0,!&D4@JJ"5?D#$M_10P!\%E&:EN]>OF7V1.P@>0U,8 VF$7? M, ;"0K/,(6S$;L%ZB<@0UI&$849S#,D2"53@TI=Z)(#K7EYOYXYE5$/R%;0F MFU#*@V89RX-$7\O/#X<8XX%78'3E$-AB=D;KQ61&ZPF;T2J4X20K_M0\6T:+ M96X>*9"GV((%-U9J;9)GJ[/S?C+RHIBLGG!K-X'QYK;G57-;/(UVW!152R6@ MJ!B@D32[_V:LP 2$+49LPX8U%<5?:98S2Z%LTK9(YA7Q1(!A?)G&_@.\FFOQ M@Y%99:N-6_*MHJLC)ZFFD(KF^I#,:NJ)?)I5UABR_%:]@6GF*6K%0 $0$PHI MO"^@F/YD2812^^,-G.SR*L]*003F\*E[D@824&D^I$C$:RAO9),D+C^&A,VS M'6B*8!(/=LAD90]HH5Z:!^9+&(&3X'/!)-KY3Q>W9R?2?DW=V=64 I>9 MIG%]5AJLWO(V#)'-XUH& @6&\2-N#3!F:9H']6V,J!2/"?$FO4[N #(?,AJ[ M(T#K\+5A F3,LKK8E!.\L8DLA^=\DG'O<:(2,G"VAT!Z\TJB?!M/NW!-PS?& M'P-:C2ER#:M)A)L)6, 1EC: FPI&"V.LCM4NH$ ,P5!/[C%8P?T&\$.^1@'E MG D(]Z-A5)MQ#:0#6\^0Q]M5V>]5AY)$?:WG&LLO;YK-T?2>ZBQ_]+'7/G[- M5.W=+':UC-:*J:>EU?GN*DD"GN9XF2S!TQD@SDA8_G')RS_.40/_Z*5OWD_E M!!:=]=EV6F@/6W_-K)VD@%<$V5SOZ47'+E8]9==NE,]E>#;=[2HG50X&9-HZ M7' 0$VLVZ"GS_*FPK8/"ZF>1U]M\N\]W;M13IDNS< 4)'SP);](RY$5(>$L- MR8ZJ96Z'^P)LT#)W.XT!1/.&G?9CW2*2CJJ)]MFC,;4DQ$#.&-;[P"YB;)D5 M3QQ9IVUS@X&JHK/IB\MV>^VA0>WK;-H-L3%;Q#"7;S\RNT*77?>X!F9W$DF& MNY_FGL=G5]P\D80[,@.B+[OV'KMN"P-BM=%+SJ8Q"F% K GK3U4*?L/4^Y'9 M%YJL6<IR)QFV"IMV,:9BR[6S8^WX;X-FS_2680S#'(^$Q6[:,#?-N M^V2.QYL#BU8UDVNB58UH52-:U6RM58VVC4V+5C6B54T[EB):U2P[L';)%K[G M/B&+%[7C4[AK FZOQPR;QPIG@054&*',\AZJ7HR]$H R/T/+FM,RFOYPQ'9(@';$$DPCI]*B\[Q+CH0X=UG(^#*LIXX4?)&O/'^,HK MXC3?ZJ\5I_G$:;X#/,TGLQ8&X-R7LH+W@UHD+,2Y/W'N3YS[FZF38$:$./2W M87)W-4#TNS'H$1QTV73LC2;:BB-X@J#F(.'V9H>GZ%H6T@%;1NAO@\@?+^1 M -EB*>UAD=2&Q[<>3\D^([JP_0K,]M&,L>%YR#V5&NY?S>_A[,41D:.^;EGXL9/C MXV6WG:GUN4IBA95\E+VQQC25;M@,V/TVS:[7%4W6Q6?3KM(^^^D>V(MZ9S>' M9,QU]-AFV^S-^F+SGMJ\7"?%Z;])'/ 2E6]2-!H3G\,$;VB^&C8S 9/_%WK_0GD?XJ<(QRR('#&L6QMOD9ZZR?4A!%?L&)9$$[?OK-'Q8<)SAW(TJQ M#[^7)%\XYB9OJ_"$$YQQ\I44Y73$1W'D45[DU2OBB@L:",5!!OAR>!/2&I4\ MFM]3BA4'4?;D$G$A3;YJ7HNRBM[X_(%\,#4K@*^]6OK"I74-W\_KW!XODU%U MU9<^';24+&[O;8V::@H&J*],)(V::C8UI9H;97)MT9!:-TEX< M2>MW9&Y?O[1N" C1<55T7#TT)!U.Q]6V2X^+V3082^$U4E]'9EZ\-F5G3UT^ MA6FQ(H*TOB/:L.XJJ#V=^MU--?ZAA077VWR[^4LW9$U]7K?(@VB6*DBXLR2L M]66COVYRYD5(^!C2HC>\NJ[(>+TAQK2+G"ZO*7I.+;0XD=3MV,5/)(O\(PM M&+:LNAM*IQ:IT4/'DB6[]A[C1$<5A#CCM=='%FH 0>!J>QQL*N(-*V&I+ZO[ MQ-(1!AV>:1ONX-!N6QL,=4.\+[3RGBTJ6K?-M.AG>*7M0O2VQ=5$"37+9(S-QRZM_OY8/-C M"/@*\5S?TM.\8JC8Y)H8*B:&BHFA8EL;*J9O8]/'.E0,\1D%_WSU] @K2W=> MO1>CR,0HLJ;6G]G^/KH1P5^F^@M,&((;4!57P&9Q#!//G:_ZE+;4H.E2>Q+6 MH"63DB*5X.=BR$M1DS'E9)35(H8WX[VK!TT W%[KKU9 M/Y27;UPBUBK6VK6U;M4'69YKU69;B)12J#:$VUYNW5Y3I<-I M%[/C#CN'"#)M&PS0T09=IP,2W]%YE_$P6G!])S6;KM2&F MQ<#\'MVE='JNX%:78?7T%1:R('".8%?TGC/O,6'?$QZD>*W]L':$['@:K E& M$8PB&*7SC-(^>"V<.'30YY/*R;MS!]M%=5B72@\,W9$=:\/9#BVJ23SPZGD6 M_]X+DO:QVYW,=1%RJ4MR27=TV=+W0_)"+@FY).22D$N+]F;:LF$(>8S?ZETC&<]JLMUIWS]1KF@:VT1X[^XG6!RNYUD9OC\V=!8Y6 MP9%KRZK9_>,^!XXEPUS;R1 X>FFE9,FF(QH"MQU+=N]0FO&H+3=2/Z381WR< M)F&4;V'D^8%,D<:>@L8A#WPZ<,_:7E^ =#OZ<5#LISFV;/:?-\E=L-]^V>^X MU!G]@/8L.=CN%\#4_I1C?56/[EL=V5]CY=@K4.MD8 M3T!*0&IGC1+;[GK?D"&\#(=TC4CZA:(\.;*>N'U3MOK'Y:AU$$NZWA.E!"W' MD6W)AK.AS2ZP]&*<9!Q96*J#.')ES1%MVEN.)&W]5&O[7-QN6*F?:$9)ZO-I ML@']2H?)&$=%'EDUDV'(NKUNAV*1.'[Q0N]])HX%CE8[,R&;EB@Y:SF6!">U M'T>F[*B"D5J.),W>9WWM4054/]"8IF3(+%42C*(XRO*4M5HXLKBJZUP9 M^ YB2;..K$JB@S@R+5D3<=6V8TD[MGJC#N+(E'6U^T/%#AQ);F_#HF<15ET3 MTB>C!!;S-^MUCH=$HS@G\5V$WS08MAE8U8V>U7)S]3;)R;":SK-* MW?NQ'9K1;$N&_XM3,UUU?2VUMZ[$[W9XXK#8S[3EOF"_#K.?MG::5+!?:["G M.3)<$-S75>[3='%D=+<0OHC]9$2E,$U&C2&7SPGR'I0 L72PGC)?@OOWC3S./K%CWH+A/TV5S[7XK@OM:@S]#VV=: M]!B&.%WG YI6,6=9BJEH55A/$]5D6U/GAH@*I[L#J%-[UMJ(ZRAZ#HWG3-T4 M/-=%U F>ZRK/.;;@N XB3MMKSY,C"BU[-$Q2*D7\MYQ\>][$F8.2'I8J6Y8( M+W?6Q=:L(ZL\/BCN,QQ9=P3W=9?[C'U66@KN>W9X6>]O.)A(<-_^\6?H^QPK M=50-)"YJV[D*-A]9XPA-DPWCN.KP.H@E8T]C8P6*5N_'NT%*5R#IQ0\0[?&T MNT#1BBW.'(&DEB.I;ZWM'XH0[UH0OJ)Y&=C=C0>WD-!:!X7O=K3Y=G.7XQV>^?,PAK&8$(&7?P,DZ3'4,4H'=9QJUKI0L9 M)V3<4]8LTQ7YLU4O\(@.FI&DF2_>#R!](428%:007R[?!AB3O =@C MSB-X()"\(H,U9ID$PN$^YV/>X(;ZS\3_JXBRB+6KD-G5V540$ SDCLZO)I/& M-'UDD=4:[ZE$AADP)@WA?N!0DDGW9#BD8.H.2$I[-:<^PI? A94H4U! M<62XLF6I$LD?8^YM2,!'X7I#QSG%]7/3W%!E25=U?:\,SOC7L+ C4CO!HS5D M0:D3L_E9Y!(-PR0%;8H,B4(@!5J!94UH@DV$+'4J]8'%IH3%/G$@),:N),9O M#;G<$ HFDPG?:2H3"D W3$O$\$II!-\99!(%D 8M9(86R H$&QBQ-=@R,J*H M.J,D0/V*'-N;-AON04-.>)CD>1IY!3->$0T3M!09*F80[4F18MBH8)R)^AW_ M\(B\7YF!5K.$=P[(3_.V1T-C]3EU&JK5,R3X^A"'+G2*2,%@&XV!Y0+<"*YZ MGU3+(+9/($UA:XF.ZTD+:&*?4&.L_IB)17P?W5?T ( T7>-[IF!=,+=*!LY9 M$^9Z,]TBX'V"'N&(-"&CDS6F/HX$'#[TI-_ \0 _R(_&) ?).0!K+5_9(L:7 M-KT4Z1X$2^U8->4P\V>H1+_!V^ [B,K2V6+S">D=N'@)O!@PAW*I2%F[DS&- M:5[V":PH@!MG*PGG=LM1N.,$7E/.@%[ M$W\"IGJ02Z:9!"K8IK_2#"OARAA$F!+@H,+/"[:2\1AG*@&S(JN,83L@(4>R M%- Q\''$1RV5YSH:\ -C"):H54OL2=WGKIO:F[NLO;GSLF._X+2:TQ8ZO25] M;)/I[(;5N1[/J:LPSF*N4WMN\^&OL!'F'S2?E"A)8\X"'!;UTM@K63P.!^J" MY9G'CWH%)9QM WWJA$< WK+M@:I]=Q\%^:",TS>?XBF$M^KD$>(Q+V7^D?<_ MF?I)E:8!RAF2.6G\-9&S.Y#,;)_/+D MRSV5?[U,JI1?+B_WV*69%#"_9N@]W3"67E9[VM)KC[Y6[>GV#EYK]G357.FU M3U1:;UI0S; ;C>ZD+/7_^2H;9[Z"%J/J&NJ?=WKO\_CNE42&^;)+TQ1H6.-O MF^#;<,;?7KV9EDM+4V;/%EC.C+R:$^-J'\7XQQOI]/KR\OS3Z;DL75R=SO#? M([G#9^"B>D7C$8SMT73;KOTL$.:$MF:RNHMM;/H%2RSLIW#+MO4SF":2IBJ_ MU&[<+P5(69J"MOG(0S\S[JTT&[!:EK=L_G>03H!S1Q4/],,7A83PG;=D>$\> M,J3YIHD#;%.NTT2^62:Y%YI"#5 O!VH8[H16,&#)%A%0/^%>TUM@7( GW 6K M(6U9BC0 M?K/5_^('(>&+@GU,'"H252'J+8?.A8Q2>B9AJK^V0>+A>D\4.>G M\$%@PNS'-^3]##]TUDK]1#.P/WR>8C$>815C)5-U'HK:QWJ"QWEW8 MC,:T[;<7FW&QDW< T86LM%RMF'$KD\X99Z- MU)ZS:;BC^>@:X0Z,^7% SNXA34( %KM1"BG-2CZ?^)3HGD7X%K@29C1'?XZ MA)H2"UIS41Y!">;5HNL >'IVH/;%9*#V"1NH+0(?DXJ=IX:/,SHLZX:0F'CZ M/UAP8X/7RQJ FKN!VKTH)H>B-'@3\O.J"3D>R14455%4#-!(FEW:EX2MBS@D M7\$H1@K"=I7@,$B88J&Q_P"/^@,@+RIA4D3B/Q\"Y91MA6[)MXI\I'9I^&BN M[]$L]B:B8%8Y88SM6_4&I@\GFJ<,U ->41[@?>#1%CY/:944@3=P"LBKF@<* MTB:'3X'Ü,OF0HIV=H1$0E83UN,I#BDSB\F-(:SSWAB;+M X^GRS- S,G MC$"D<7L'A5HQ3O@.)HN0$B1QFOH1UZQ,O?.E@N9.615D M ,^?QO$8GM M+@"]*N'SVI)]DG^[ZUJT?8)&EI)64LTP5I8FQX-V3_2PW0!JK:TK;QEF,&A+W43X Z7GV MJ%"&M<("P"I":RCFAA$/.?+BHXR?FUAWCWN-JG9,.J.I'";#87*/L.0Y:"2* M**#<9@-U[$?#J$980R6#P3>CO-]6N^],,KNO]5QC^>5-L\Z:WE.=Y8\^]MK' MKYFJO9O%KI9Y7S%%OO3TI[M*,I.G8U\FF_ETIIKU)T,SX9*KZG-4U3]ZZ9OW M4ZG+12?*MYV]WL/.7S,?-RG@%4$V-Z!FT:G>57LYM!OC[RD'H@P&9 MM@X7',3HQ@TZ%SY_?%7KH+!ZQYOU-M_N+B(;=2[LTN@N0<('3\*;-*9[$1+> M4MO;UK3[>(G!#-WM/K718(;M])\2/<)VVO5_BT@ZJEDM&T;.CF^@BRL:Z+<> M2RI@:8]C=X[*EI@M%)NK:3HRTZ(ON\9QC??K))+ZQAXGH!Z597'S1 7$D9D0 MNB7;:PL(84*\-)8T6>_OT= [*A/B4U4!M6'ETY%9&+JL:GL<82HLC)5\$-ET M]]/@_/@LC(O9NL.ZH]ERL7MD1KT*.;^E[0ZYJQN@!HGQ70:KZ?*0G=,*M8XT!FS\P>5+QD"]]S$Y\EBVH>HIR]!6 ?!;PK M8MF#M5<^)O/3RJP5-SO \>'DY*,THB3#!J3PJC"*2>Q'V#*1IMA]%'ZC\K(C MFPL^],S3,>]9W;UXR1HO$9TK)]=$YTK1N5)TKMQ:YTI3=*X4G2M%Y\I-.E=V MYP0PMP:CC!>3E>;E_,G?\LK;58P9I,M7'3(;Q!EA<4;XZ>./XHPP.R,LLW98 MX[P2%;P'Z2)9(4X3K[];<9KXH',GY;@@<91XPUJ1U0#17S^.N0](&+HC.U9_ M%;DA#O8*@EJA3M'194M7%TG5F5B-9G$+?;S74)VN85BFR; PH"2-?BH#C M,Z;[\RCGT,3K<64F-&BZ M?1WJNB$A=C,JH[N-43<9E2&ZU[XXDM8?E2%ZV(I&^*(1OK P1"/\EX7UYCVP MNZN?-NN!+CVPA0'Q_,&^DTQ_(T-^9!;":TV3K?X:PS&$>?#B&-)E MS5IC/D;[;(-62X290E^1X#JV[(!MR+INM3$[(!)<@H17VK7IRJZ]8:"P$PFN M5M/<#3^G4&3\Y :FMHJ<+B\^?,X1UUV=[=[B"=J=G^WN<@#B)Y)%_I$%( Q; MUM0]1LA%_&$E+%FR(P;ZOA"PS_@IMB,+-H @<,T]AKI%P&%%+#GNNJ>Q1=#A M.4&'9]J&.VAVM_5W')5X7VCE/5M4M&Z;JSO;B[;8;BFH]?KKQH3:IZD$R76+ MY(QUZ^S;IW:[(:"7V-_/=NM:M]&UXZ&=XI?^AL,W6Q15$"37+9(S-LP4;4U$ M+VWY) 9+3JZ)P9)BL*08++FUP9*6&"RY^6!)Q&<4_//5TV,,7>W5>S&-4DRC M?*LYRSON$$*MK5@XB_LQGJ81XT_IQ/>Q'0;VW?F8#",_HKSOUGF61R.2PV^= MZR449=AUS"^RK#Q?EA1I8X2ZC_T,Z^Y;*G5@#6'PNH)UMEI\MHLAS^PVM*J^1!=(WXD9+X+D':!&Q$O/<7_4J&!=S.L++*DGO2;Y1A<_J)JG^6 M3]+T 3^![V7,[(/NPM:;?!OL=8V=X,$C(+$\21G_X$;2B/7_PAOAXE<".@7 M6G;?G(7=/38*&T8 #02\AQ D61*C)(%-PPJ)GQ?PXHHP1^2A;#+&#T)QI$ZV MP417W88LG_I@DDZHO7--P4XDOQ)29"*DQBBD'G!G%0B069.8S(>JO=Q1%O6ABA\1F#U58 B65)F-^#[.(,ZQ498"C#WG@C#Q;& M"0Q%'()WE&3Y!%VP[;# 1HF,-EGG5L[T3=9=;W<=H]TSWJ26]>=C_5231D_3 MQ7U%=1EO3[%5;HI599(_P.Z8V$"2*Z!ES,!D4D.P]5A_6330$73P0!0#PD>< M]%-Z1QB1//U.AK&)?,TH+;LIUJJ5BYY7J]L2KW SKRY)3'C;S__-I+/)Z]C( M6ECP0Q8Q]/]<4\CI%(5\FE#(=4TAKR:--DN G<0QRM%/3$$A3U7:]-^U(_! M25HBY8SZ39QHO->KC.T7PVA(&TKZYGS6.US#]#=?M=8D_$\$4@_ S!N/GI(Q M-O=&8 ,P_>[9@2>,0#;IEKNGQL+ZHK6^%+1DKB% :OG1BB70 X;"F"R:9 MZD/7[ ?4E"#5:]69#8#9%- BHZE#V7F"C>)!+GRG&_V>+L$.AA4[8R_/4OZP MMJD47EBZ5=\9=L^I;N;64?.MJ'TR.@25N=C 3J;N+TT'F5\CTET"^X2/C CV MGXAB7-YPB@?\D@>8\9!^98*&KV*=O>,J\5 ZKG ( >]R#^#6H$^P/?3+P"" ML&#M"M%:P$ZTE8D:4!:Q+=/YA8Y6PT1#$QWA'PZ3^XSW1,[*]K&9Z/BZ^FM%QU?1\?7P.KZ*OJ[K M[U;T=3WL,E0P+YC&+'NJLZDLI7.-XP*X%@9O39R*/;8CA7U;-IT-CX.(4[&" MA%NP:T>3+?MY8^7$J=CGZQ9V+A8,,>[Z/JY7#OQHS6M;E2UWC38_[2LI/W0, M&;JL.GW1;>6EI$*9[7F^5.CNR=O7ABW;EK67YE_B;/1J&)(-6]U?=[95Q[PN M!L\^IKH"FY\BF__,0K&L/N&Z]BM/YCA]1ZM^=(U=RUNQH7+43]D$ORA>S7'G M PK3"+8$*Y*"-/I*8[RYD41F UM9D0Z?@A>-6!HXE#*:YWSX8B/ICJ]?6/\B M-[[#XO7L"V7Z)2UFFOZOE*!H/4U?U#:MH.E-:3J*9VCZ,8=AEIX+5BQ%D,;^ M*B)^@H$ED"9U*628P"OJ+#V?$%CG_JI,TV'0X\^U-27H<>OTN,A474R/^=+7 ML.'@;-I<2L=%"C(RP\*;396]^O5=6 M]I5L4N"Y\_UTJ^YTX6)?"E2LAI,1+1OXXU'P<@ZRB,^T>GW-V;K]Z?94JRLU M?&*M8JVXUJVZ2\MS%/UNUG%^) ]EW2I8/K!*EG N;]"@& ]OR/+* V\+&KXHEX+8!W"X3,%5KEA4PW 2&MW@. M[.CJKR0JRC&%A3< MGET[5(VLP<$6@2:!)H6M"P M03;-=4= B\.K:X%X/DFQNM%9%A/-3D06#LES0=-NKM14V5K;$MDB>+KACPOF M.%;FL+5U1]X)YA#,<0S,\?QT@^ -P1N'R1O;2&0([A#<<9CM=!> MF*.;K6Y^+O(BI8VQ"&Q$S'1FI#N'[4*^FZK!?=K8#1LX]!4;M&> .]:*/LZ' M#]7PH23#X23WTGA(XI@&Y?RJX1 ;U5,^ E6"+<3/T_29GWC2J>Z$$XED2DH MA=[V]1G(*8^-R-@QZ% AZ7;-;2^_A&G8:&;/0ECX2<9F+ .OM)A,F9(B7 J M$3L3&L.7QVD2%'XU'&L\'N*$@;( -80_/KP3V-D1=C(R+.?@\$D/6.J;UE-5 M8DKQF#H;F92RB6' 1C1/JS%)Y70(?/R.\"9+=)RS&1=)^#AJZWEC;(08)PV! MYEVAF7Z#A30G#C;'"?+N6[_V;GJ<-_F<+3Z?:2AX;V=( 3X; P+X6#]L2Y9' MJ)60W?B\FR6L\P[_(K"R(ZP4)4)*ZP,[>#3Z>DV=B4"V^$$=(Z_)8E8+\-^5BA>QQ>"19[-$:U4P\,G/H& M,_*P24,4\^Y7=>3() M*YRT9YL!.(.=EOY24;[S.;1<2O0X^N?_N[G4 MV!2@FJH^!=$V*;Z+\O@XUVPW-$8?B4W97 R$5@O#6S:[O9I*FU2#U[,JR#+? MXID-G4Z9AU+.;6V\0:XZJ4\FO(+BL)_W&;2P0#LPH8W/C&>FQ^UDO7_[G1DOVZJ0_T\/PCO]+[L'Y2&7) M(_B.A,N&F##[GVD#IG31[O]*AQ4,EODI/-+4\%6FAL+C+%]0G7$RV0A;*=L MRA]I8L&R/A*XVF3*1F6M-\$79WWD4V:O%KQE<66S=M$%G-:P,4N&1$PP3Z$+ M0)^ST?:X>S2Z63O";G7^VZ=.[4FW2(.H^.2&X 'N-Y24RC!GR(5'R[)0H'AU!AP@VEP C$M[9 MK(I!LC V*W> &QO9\0 -IG1VQM1)D8&? :_G,;%3$H/3 ;_PN\%Q*AN(LTHU M]J6I,#M&-K-BF&>-^59L7S/)&X*F:#ZQ2K."^9NL.*-A;E;C7QJ.W.,1UJKZ MXP&S0"0 <9_1.AS$P<)B0+PH:_G;IU_ZR#B91\A,[^^U\*PLADEI="( D9ZB:LQH1B=F Q +&B38EZW9DC;G0DP8/XX1G MSP 4X("T[H8%^*"E*?I?!\#Q=63(1!C)MTGQ9"'*1;'EQO/UXGF MFOQA55AVEE5RD0WOFSC<N;#;G$(W&9))SF)*_Y1 M,NR>F/JM5'8( M7#;,BY6S)ND]28/I)&D-H$8&%@ ^H,$=K0HH6"R-:9#EF,>\&;J2@Z2X&]0% M>XF4)=.J8>.4@*;:!Y 3,)?F!-AL%'"\F(3YF"8^#3 %T+F<]3E(RH)4PPTG MR0SI&1MLD:3D>I;EIK%2B/\XYEZEGX!9Q >\-0HV3P=1#0$4Y[Z!8MB7V/!#DVYTJ:W,BUX]!5%-7EVX()_OPF_L8U_J37L.Z ADR/ JM_*M ZT@RB:-9K M^@.[6[."\K?)KFY@@2FWLVN_XX3G^C77,'_H-6EGV;>Y<8Y%_CPO 286$U5E M6K-15<#JCM@]'I4F=2=E:5G*\ ,**L(J@947B)A-&$R/PYOR4G1SKOX,O%%7Q-6Z(_\1VF!7^8&J; ML!S0M,6HX(F::NQ0$4=^E;F9)KIFF>+FQ /Z?0C.!]L2LVE]1JQ9HYBC1L"$ MH'K23Y,,4533/CPH;[H6I).R9*,N %R!@N\QCU23O\B!K)<#Z9R&.IUXI1<\ M7#"LE).$$KQ!5UQN P%W3$NQM!2GZWC*#>?YYG+3?G/3M;5;2BN6$IQ4WOS% M=5D'JV[VR1Q<##%3?,['03V!KA(KBR49N#0>7!M&7U"&YLG\ _)ZV.M:VOHB MEJY@+Z.R %[C)9]^I;B!!C_0."HRZ92B_S)LC,UF/KGTKP) A1A?\&0Y:9!. MZKJECT6:81U.52S85+EE@$:Z*\ 7Q!@ '5R;:*,%\,EM&,C.&>^A?B98* ZT54% M'/##9 Q?&@.UY[Q&)*;X63S B5'$B5/>L*:D8EPZ[4V LA!IY\(O(GBW7O". M?JN,UI@BA>=8LXB)&1[)YR<-DR3 XD7Y<6H$^]ACK@M0%99:QJ]?!P2G M0D+\_3WTXK@1/T@I)\I6SO#$^YJ]\S%I%OFO7C M=,Q=G>'#,^\"_ M1+!E!9(6HP/17'Y'N+SPAN0S*SNZS[**#\47W_='Y((4S1I ME*%[6A^ECS%'TPQ9U0=]>M))_,!3.>7[P;\%4[WL4\6B)4.P."2P_J-6NFL/T69G[2,E;"V_>PZ,]4]4=5*I=X97D,">A? MF):$[V5%R@)B+-=)L$8@E9B0SGCY74!'_-M53PL?>S3P8[@L<3E.4/8L1 [_ M.J("X?>,4@'-.@06/EG*PUB?*?W,NY-UC'UY9H*1ET>!RIMGMV;R%.S03-F# MK=FZ;9*]G21J!Y0?X=JQW[XTT_1([YII=)7'OO<:E2GA>Q+'19WC:M8F_+LV M/ED$FAN<9]0O[4U-+N/SI$J8UQ4)-^>SSL@Z7.L< -?J2YGVUSBE=W@>$Y,$ M-ZR&%&3U^5\%UK@U"@U03O_*NPN56GHC'M?[O?[2KDU;#*LMAL5K_X<7.NV^ M^/LW S 2'EG S@& ;%5.(%NGAJLST2S3Z/5-9Z.PT^/73-7>>C!+TWNJL^F" MQ&(/:K'6CF.:W"U^F9C2T_%"YBNSN-'2V8?SNUHZCJJC &##D*2K LT7EJ\ MU%0(1'KL2=-J=*=@Z:U8>@52&N9FF_)6B=4 MW_*%U@P)'D;KUXI]P=!4+SSP"8TXV[Y0\'WN4C+:B1-A]?05 MUK @8XV6NJ+WG'GC&KO=\.S :^V'U_H/:V>GCDILGF"]U[<((S]MI\,S=HI3 M^B\9%NB3MWVY7,*S2&K;EWI)'J3?:2YYK:>!>0NQI0O]M0J(MGVAI73?38QH M/^)]T[&R*T^J:?5T(U9\K4E*%1[65_ 8UAXFY:\R%WDML'9D8K+NRJ[SO-FL M!S$F[*@'@75[U)>F&3W#.F 2%L+I4#$KA-.A"R=;ME57AF^TD8K7-BS+VOI&,7@"^CDAB2Y-U=]TIY8NI9:?R]KBQI.E.SUY77PHL M"5X26)K'DHI:>P/-O45,;1KXZ9)^GAPW82IZT9&3/;A1'218795=L[^9F=DB ME^C L:1I3D_?,%@AL"1X26!I@B6S+UNZL;ES+5SHU>#,2I'V[327D9"R"-D M= 5)@27-+!IR4&%/3=5EW3 WLSNW :<]>Q;/]B9:QT&KQSX7;;'EU*KK/75# M8FT1T0E9)&21D$4=ET4;6X3;#MI,-\A8>JYN!DPOT=:+?6KU@Z;8CVR4X#3$ MA:.4\;1GNT[&9LO.Y[40N-AHJRP Q-/J6+?6'#1]E>2T9=#]5U<@6S:D]A,\ MLXH%_XL',, 6X _UA/G9J=Q;GJ']Q GC/1Z>?ZW]L&-">ZP-S11<=+-GF B( MZUBZ]O.$=6UUJI/A;#QT@L,F #5!E%)^B)]4AP_8(6=2Y(.D;))>,1921(/= MBC'^X3M+[:D2;&C8Z'./C%K]2)9JH_?EBTS/.SR$="RDT"C M 4C512,9T[@:>,NFTN-\GZ] >$!/,;U+\HA19?U>UKX7M,J@)YWDS6__;X8= M.:*T;&9>YK9U6RZ[TPZQ PB;&?6=VM.:&RMB-JV#2<//+Z=LWE*X1)ST>D*__$*?7_AA.<$O(O%]]G[8 M!7N5O7-VQEPX/SN&[<]Q1050C_IDU.S@/\-Q3-IPYLE0)32Q:F[>KT+7#J!? MQ?(A]6W\[[%3^)Q X8;/92@^V*PMZ>3]++!4RH,\'[]]\^;^_KX'R^S= M)5_?G*3^ %SD[ T-[DCZ)B Y>:.IKFZ[[AM8KJ:Y!D;F5!F;S^C\I*'Z0V^!9=%@ M[1DOSN)Z=5NB;]-;MZM8]BE75CE'LCN=(N3&GN2&UCAB2^VQEV:!M+!NJ?+;&\GM:7\B'O<^['@10H 027[YG+A1EP6%RN/\GE/]<%?H++ MCX/+=:'+#XO+]66Z_'00T7"!'D>3GE][G/LU1_JU=],[[2&W]T ,6"KGZR 9 MEY5B];TWY8 Q5[5Y+3#6L*0>B6FF7'\;TH=*.NBJJ@N)T":)H*EM%P@[VSY. M(KG W#7A58MGX"8#4Z#2^SBC!B53M9!^/]&[8LA9[$:Y743)NR@MU5;:RK[J M6MG'L4;T__WTZ3\XH3!G PJ#Q"_PQ #\ )_!<9%D/,9Q9F5!ZD+(LU+2(J,2 M)MERQ69.8X0Z",E!0/XZ+X-^L/K6H D((D1<1(N:Q"A&S)'XVCU/"BHC) M\8!'C\/4I1U_\;MF*SIXQKDJZY E7B28\W,W#>KO2J)8;UO%>H8JBO5>IEC/V'FQ7G?K\O:]E)V7X,U6VZW,_3NNK;NY M^'!UD-(G^G]*\B2OEYZ#K>\51(E#^( XA3?-6 9%* MY^"8OQ/P\],I-Q/A,SC5'C &%W"*.WS&HP,R##'=BB]BY%3>@(=(:!'#0^Q] MDR./*QU+[5J5HNGT7'7YY4UMIS5>NPNG;1^N"R/M,TSBOZTR[MSGJ([5[LI$ M>0D_=8D(6FZ&+8\5:+L,%JQ(3+MRF?=!\"QWV [-\1FHT@W*_H,%NO_+6C%,3>N'HCDTF:X[^1CU-T:1:AU?!8 MMD- <:X)Q+C.#$]:O[!.(;X/OG/.6AEQX/WPE.LBCG^*B)*(*(F(TFXC2IJ( M*&T>47KC)<$#_#/(1\/W_Q]02P,$% @ 6H%;5=.'!ZKF$0 ,;\ !$ M !S<'-C+3(P,C(P.3,P+GAS9.U=ZW/;N!'_?G\%JB^]SD2Q'O1S+NDH?J1N M[;/'LGMMO]Q )"BAX4,'@([5O[X+D)0HD00)63ZSI3*91"*QB\7^%L!B%X!^ M^O.+[Z%GPC@-@T^=_L=>!Y' #AT:3#]UGAZONB>=/W_^X8>?_M#M_N/+PPVZ M".W()X% YXQ@01STG8H9^L4A_!MR6>BC7T+VC3[C;O>S(CH/YPM&IS.!!KW! M8/,M.QLZY'!R/'2Z)_W3TZXU&/:ZD_[DL#O$/9>XQ_;$QNZ'Z9E]:+E')Z=6 MUW(S@X/74')]8IL0\5TQ=^QNT9\3&"A@7\[(5_ZLR$F)\= M''S__OWC]^''D$T/!KU>_^ ?MS=C5;23E/5H\&VM],N$>6GYX8%\/<&6#T/<)L\E'^' @6]P['?92 LF.:BJ@ 1#$-O#Z0 MKV4]O6ZOWQWTLS4Y8DF6K>;P('[905@(1B>1(%<@$"G+4+N83)2UG0I%U M4 SI36ACH>Q4EN1IPW+E#X@GN/S6E=\^OG"GHMLP.Z]<-W[HIW2YD6'4V,QE2 MNE?*4-BWRFRABE)]YS7%*.ZK-960$LC6'YI4R(G]<1H^'SB$UC'\S>+R0X&I MXR (A:*73Y)G\SD-W#!^ (\D8&PW&!8V2ST*OK1P9R% M<\($)3P[D"L&,T;<3QTY8'734>I7#T\^@B1ID5P%ZZ8G7Q\ "?%N5BU):27Z MP!X \$BLFR8W?,Z(:<.!A,,LH8#^GV^_C3W3]@.)'7G_'\UWB&O:?""A =VB M]9+Z$=XCZGSJG(?@A7:0?/;T<*UU)52M$:(X$8JKV2FP:.O\!@ "&/0)ED"DO!$6:8HX8IBMGO ,CJ^ MQPR:-R."@L [16^=LQY*V?VW@1+]N%;+G]H.[5*!/'3/0Q]:.(,R])E]VJ@NO0E8L)#8E0GL^WXY M3&,1VM]FH><0QB]_BZA8[-(("KCK83_L]8ZV@3U;T1]17-4>YDQOQ'QVY87? M7^UV%3/5@WK4ZQUOU9>!/U(5M C*KR0@S&@H3BDT( SZO7X_7I-0;GLACQB! M+PEEB[3[)>(T()R/;!@BN.)JTB4*R?5ZM_IJ[;&F]Y0-RO)I$0H/Y)D$D8F3 MF5+H=7W:5XN#-5TGE"W2[@5Q"6-RV.9&R^QU.JVF^V#5UJ:F4WJD&+1(X52Z]5_W%?>\9KZEVQ0AD^+4!AYX"G(%;\;LG,P0RIN M0LZ)"1*E++1H ![*:5U#8\D* 2\4,T,QMQ9A&0$9BFX&3 5 MC/3XP/AUDG-&$X8*GQ5+%/-L&T[GH' JU!@.^H!%DJ#!E,#X;C2@Z;AH$1I* M;VH3H0PW!=(:OQ9A\ZJ8B5E(!) XA>EE$XF6ASM4\[]@%9KPYR3@2AY3$/(, MM$!8PWX_MX)6C+J*$\JR:A$8<8SU$;\8C4Q9*JW:#\&]RBV@D[BN(F^1JN_$ MC+"X[=(?>I'F9K**+J;7JQ^L/K>F5GQ2$)0[%;-J$13@C21)#<+&,\Q,8,C3 MZB$X@O7V)@3 (P4 N"#%ID7J_TK"*5K MZ0)CQ1=1Z]4/]E^1/2 MQ:%0Z&,I:_1CPKSMV%UAROZ.O8B$;KPH42\9<6!FN*%X0CTJCVW#N\@GSFX MWJY.O14<6W4#XETDZT=* 'FP)!8!I3*H*3$C!4K$V%M,HL#-]7&JN-W81A5W MO16<6/FH?)D5Y);C*Q-H(]1)\F(<^3YFB]!-OO/)(GTC&,%^K!GSI$I-OEIX M^WTK'_5/DRZP\(BKD'TZK01-%LL"<3TIMBV$=F->-<=PDX$>+.B.N73 "JS< M3-Q"0)9](LU<)<_3V0=ZB)0TF(IP3,33_(H0_NK^9UZ7'N:AE4\I%/;)97HN M?;NL&J5U(Q$BJ+W[-$>R_C::QEHJU!CL(FH]?. ]YU(-FXG4]J%0E -=]B!Y M$ED&'9^QET2=KX-GPN-XL3%DKZY*C^^IE<]*%"=EUSJK.FV=J3E)8"SKWAO% M!E++E[$ON;Z2N258JM[!8K7T"? #L2/&8-C[@CG=L>'L2ARM<0UZ5CYW4L.X M5D42QWMSR94*B+!86ZP%"*.EF$C)V49#+-L"8&Q"%8STX ^M?&9&NY>@?4"5 M[ $P7RE7,-(#=63EDS3:W00M7/WJ\__RAF8G\@A,R#-X1S@-X.DY+&$6,!"- M_# *1.BF/(R[X1M4KK>(4RN?%JJS50%&\408Y2/$XB :J)>I1"@62998\FQA MW]>#NOEHQS93PEYK%<.>E4]*U;.*?"AM#_@&(I=<4%]>:W05"5#M* @B<,[\ MD GZ'R5XDH552V'BB'"3QSB:_)O80H19HAV;S9L*J3>^OE60=:ME?$NA42PU MBL5&61&6.>Y$SK"(+[TZP8<=9+HUM@6MZ]# M;TJ6E3^:I=_1I=XG%QAS^CK)4[,H[F\_BG&;"7WOZ6R8XO!PFE M3?,9[NUDT)O/H=7/!32KS"?K%F5%6MU:M[9O(#,*Q8+M;:P&OMEK@M_3SHSD MT-L:+,URT=>M;6WMCN.]O6UE;[$+<0NU^I%_CQ>J^%/@$'8'ZV65I'A+,S.M M7F]=QU8_%_LUL:[$GTK$0:D\2 F$EA+M;6JGH/[:?V>K @'V=M58N]H^BV_ M5(__B=4W/#+1\GQ__NR#VMW[0.81LV=@Y/@WC&+;K(Q M>54)DK6T,FAM1[>@34H/J=1 *]\G(4WK:F]$.?. MQFP_!M?CIP?ST!KDHO>EAV[V(V^!OHN?;AO'VKX./B%G/50'\,(;0HUBNO)C<][?'\A\K=^B3-ZAI7$E'QE.! 7 M6)#,N8-8=UR]@H)RBW_\9$>&L ,1]!9S8@UR06Z-Q:3RH$0@I*I%4J2-XQ") M6"B1ZP/*2+8WL52E]^.G!_EW!&N=B_'3CJRFF*O>$$ZM02YHC_ M&7U02S6H:0_L<@1/=]!=CN_O=ST[:'AK03[L68-,^H#2]N0X=XNY\TWD0HO6'! MNC\7RM,85F:J6,F8_-(:2)DX)DI.I 3M)I*FSDHB*U+"MGYN*3S8;VQ,.BYZ M]&$EF0ODE5\/T#Y\ VY2B-4=U]W7I; M.+&&N0A@X94$:YLEXE#O4A8Y%"AI8L&H-(4WJ6EVU^W^-]4\'+_P,S^<4]"&? MQ-^#((QE5X_@"8FW "E+D #^>AT(PAX9=LAXP07Q.8QOM\2?$-9!>,(%P[;X MU!%,_NIB@'TB?[>CG"*0^X4G'DDI7B;,HV=SPFCH2%D_=9R(*8$ZB$? GHI( M?OO*PFC^J1,7I\"T@T1<7+"N_,3/G-#'-+B&=Y)1YZ"T13 R*Y-0^ZY@@'X" M=?('L 583Z@?HI7+HX)GH^^8.7P$OE%RIG554J^0-ZRP"?I<.R@,6$?R2U87 M+O;X4ADEI4T:$K^;Q%O4X 694%&S>?$3F-:AJ[-%C<:-Z32@KG2)QE5B6$766+Q@LE#JXO4QRY#LO%FF M:)TGCD3EY%-4L@F#9+K,N"OXZ7IM7ZI!V)Q>M3:X)^=>ZLX%F>*-G0S2VTR2 M7@+"WBNARL?\4,J?(!"/AVYWX!X> # MO\$"_.6*#FC(Y?T[Y548L7\1%H+E_4V-^+=8V#,]HGJ:)H Y GM;P&*[HKOE MBC5!=MT,7.E6U21^;P?KTI][X8(0)>1]9LNO'J]*LB;@MWZ1U3),9#BY%1(V M9$J[BCP7))$/*P:*?,$F(+3J)/?2=0\$GLK/R;TBHX)?/:FQVGX-SX;@NG&_ MWM)#7GJ5E::KH6RJDYW>L0H+N0D-DN.0J?-\[4!9ZE*^MJJ]5- RYP('+:MM751V^VII$1R=SVD1%C\D(66?3+8E4D.5ZE I/Q M'):YF$ME^Q]G.$BV_?T=_"K01>);70::5=+O*8,!$"8SK MZ"B:,%#1I%$J:I7JZ^U5' M63U-]4X?F;H#>9%L'Y&;A49JN'T/-@F-H<#;/V75[^O==>-^!>$;*^9EG^W$=ZW\]%5-.8M^36 MU.C=1ISW.G@.88HW#Q 7$+YB"'_CB.4JI5;KQL;'Y!:].,AOFCW801T-"=DL ML=7/=+EB39C7BO'0WYZX.]Q?44]#L"_:;;S%3F9C-DVPGY(L" \F/WPBRU5X-/6(W]^G23VN1\+\)!A1[J45E7W_)JC\5,4J/5ND"?U' MSGKWF*J%KOHY!KEM7YV%N\[:R9V[YDS)<'-%!F 'C-^[W^6VEU6-GR7%?U>< MU=$?#C.=CS__\%]02P,$% @ 6H%;5;BCDL%=( "D@! !4 !S<'-C M+3(P,C(P.3,P7V-A;"YX;6SM?5ES6TER]?O\"GWRZY>MVI>.F7%H;2M",U)( M:H_]A*@E2X(;!&@LDNA?[ZP+0N).$*@+7LK3T2$)((A[LO)4Y5)967_^UV]' MDT=?<+X8SZ9_>PQ/SHZWCY^=$_,B[^>%3FLZ-'_YC-_QA_"0!_[7[I^>SX M9#[^]'GY2# A+OYT_JO,J*.5&1SW'I20#"*/&F1@!8M-,87R_S_]FK0JQGD% M*N< 2B8/(:4(6GA?A%,>D^Z^=#*>_O%K_2.&!3XBX::+[N5?'G]>+H]_??+D MZ]>OOWR+\\DOL_FG)X(Q^63SZ<>G'_]VZ?-?9?=I0NB?=#_]_M'%^*H/TM?R M)__QMS+I9AFNH#%N-?%]V;;V8I++LQOQ77HVL_45_!YF-0WP(N M0/)?OBWRX[_^Z=&C]7#,9Q-\C^51_?OW]Z_//7)QO$BSHR.<)_R%_O&D?N;) M\]DTXW2!F?ZQF$W&N6KZ69A4(3Y\1EPN2)3NJYJ<>C-.,3Q9+P33)/K MY7^OQLN348H16< ADLB>R$^!R<=9"E*T$HH#.K\*%9)%R1JI_<2%K%3_ND# MG]3A?8*3Y6+S3C?@W6!OBVD]Y$UD'B7#9$I:@)-6D'C<0$S,$R>9$PDY35C6 MGWCG)3E#GZ?S]&@V)Y%I?7O\Z"O6U>ATJ5MC"?-TB5?G)]KI)YXL5D='W7?" M>(E'F]^OZUZ/3%C.V@SY6J4DRKXZ?TX3;KRL5J!*1W-L2=:"K$8%Y+B0ACD. M&C6GA5H)""@+,%$T2U84[V5C#MP 9QM.B)^!$ZU4THPC5\@G33$8E01I(P-E M@B8;S@F6]#E*ZS57NC$U;EOOKF:$_!D8L:<"FA'AZ6)!]G:4,SEZ]'0(61M0 M07!PV0?@2?OHC"]2I,;*7S^Y#?[GJ_F<)M<(,2"/DAQ/J6D(I=7@$W. 3D1A M?'!*Y5[$. 4P)".W@V8ODG3WP6W&SW?SV3'.ER?OR#MCA:WFE(FRGTU7A*$KX9?\'\>KH,TT_C.%D3;%$7'1%MD\^N,WU^WJ:9D?X,7S[P;?BLU5..6", MD8]A7 *7@@7'C0KT$^D3[TG9E]%LHWG[\#2_Y["W<^V6GW%^BF$V3:HC49M$[&(/*"OKE+=Q60;93O'H[R]Q_L9GH_FRWU+CK.N80: M:8(B,."5T^1W!,^2%-*6UM'[M0GJO2391,Q<2B^"EK2"%EI0LZ69Y#P-N4VF440\I)[*KM&W+LNXQUPU3[=#D/:?F/\?+S\]5B24OI?(/MY,S4 MRIP9LJP2DM0TM:)*X',1I+X<).,A1=>:V5M"&U+.HA4[^M!*3SF,*V$QSRCV M8F"5=J!LHE!:Z@+&&2=L8H;9UJO&K:"&E,MH19.VFNC/(3XC;^>>11\)6( @ M#;EG3%F(A5QU0R&80DL_L;%OK_@\I"&E0%J1HZ46^G"6-F:/(4N&I(&LD-Q MPP2))QD45DJ.Q7N->& 78X=-G)1FJ^ER\2ZS$\3W.*D505=)JK*7 M7E6+S20H:31XIS(D)CR%ISPQ[AHSXE90 _6@6I"CK4+:[5FG-%]="<N?ML&UT!]IQ8L::Z6OF.P#29C>2G.!EK*'/EV%B-$ MD6AELQZ%"\,(Q,!*SLMXZ%EI'YS?A:2_K;_/9XKMJ2=1$8\W!)$LAE' *R ,L MI F5-0N,I>:)JYL1#!83%)DSK0G"HVV]<7,G@'=TVN&!\J@WG36N/_T.0;)$ MGF,"ER-9$I<3A!0C>*^"M!95EJV=M!OJ-W?P1,/B7L8*C$+^*2BL2)@YJUS6E?A&%*BHAT' M]A[Q/@J@ON=&N,LZ%HJK#2<.*ILA"!& 12E9$:8(V[K^[3**(>4>VNE]S]'N M\QR>*$'9Z"W83.Z(XEI"="$#9N:$#8S<\=:[7NW/';^;GTZL[JO7+I9TCJ$0 M%E2N=852"/"9<<@Q:",]$Q2 -!;L"AA#PUW,Z5_G&-8K.8G'8XU MI#4:7PSS6GE *3BMTU*#1U_ I!(\#TIA,HV5?QV6.SJR_:9]&K.@R?BW"V]R M'MX#.,IYI=A/AU//RTH+EL=K;J* W+/QVF\'/$L A,2 M 84GL:W+X(464)+S/DH3*2!K3)7;40W),VY,E<8J:9DTV>#H/'CB[O$[V;R;%ZUH4[D M";W4SI9>\B2[0VZ2++KF\:]F@%O9Q^ M>H?S\2Q_-SW(C#6$'V0MY%<\<_ J"K!))6^4EZIYCKTO68:4YQ@B\0_*E=Z9 M7X&_QS0)B\68_/(+T_45:>3IV^>O::)_"!-\6WY(^,/KXH(+E0J8XLC#BY8\ MO%KN7[QQR4;C2BX'7/+W$F90Z9TADO^P=&E?K_ORVW'U6!O, MN38UK6TA37W)1![[_W@A'[TB6SMW\+\#SSSU2/G;0BI.#"1-*Z4 M]K3&9$D1=E+:R83%M)Z4UZ,9E"NU%Q,N58.TT4##3-@"Z6MJN=(+_(*36==N M;0,I)DQ,) ])U#PNL[0@1.=!)J:-C!IU;%U3>2.@07D:37G13@_M6IWAE"2< M$**G^6@\'2^65=XON &EN659J@A<6E./*M?V!V0\$N.FD,,266I]*O@62$,J M&FI+CY:Z:)<:/:J^Q/]TH_&V7&S?-2K,(HM!@\A2$B;IP7G&(,J2.187=/-. M.CX6(YJ@_/J^$&.G 3"D,![%F@]+-;:8DQ*K8L5 M>Q2GF:_Z ^.(6R^M+!J8=Y5-)H"+3I/33-&C)7=:VM8C= 6,(?EQ0^'CMLPE+LLW.8]E8%V]$R [K#2OUQ*0-&:)-"-Q;,CI99IU;EU-<"V9(+N!0 M*=5&D^V(A X4?G*Q%O6TD!PX2)444+@7O>^M*T&[![@XROYO/ZM F)Y+*6@*WTI*Z M*!P*12C(--Q<"M1.V-8YBQ^/']*"N*^^+V4H=ASE'C/VW)A,83.#DA.)@YI< M*!\8-LQ&^SJUM"B)$5!SQPK'G$8!W@>7 MD1LNL?5ZNP/,(:W*N_+E\NYHO]IJZ(HL:.J>PAT9-!K)\R&1S%1=V'^+[K^ /B\^O)K.O[2[+OOK;#U:M?[4\C6KT MZ[=?:*'S'A=D"A/!.&VQ<_Z-,Y]<5U"22:U'%/$%KO^FU^N%@E:,SV'Z"=^3 M,"]+P;0K\31,TWE\,J:HL#8H%B@IM-,& I)W([16RO,4 MF&A=N[$]NB'5V#U\>NZK_G87(70BOBUGQ7X[W6N OP_EB_'B>+8($XH 5L>U MP'6\2.MM4\P_=DU'AD*R[!0#RR@R4"(YB%9RL(IA+DQ)(UHG%.Y?ZB'5)#Z@ MZ73_BKL37>_#R,!M9TC:WWEB^ M%=2@?QQX M'"'+:!EY>M9D1@91Y'K*AX-6//%HDBNJM0.T(]0A!0&'XMH!E-K?$O9LM1A/ MZ];(>F^Q\X76/\FU)MCX4AP$12Z80N^J'X; 4T[:T9BXYAV+[H+OCA[RS[FP MM=+??:0S0LP^A-JL2\F:;A$!8BX*I*0!PJPY#T-)9^P^TVCBO\?CU9S"D06^ M+6<[W&D=O+;DQ$C9)9FT@NBPGO!-3FL,+,76YR1O1_40',]]R73=K&JDJW[\ MA0KC[7$78K[\AO,TIJ$8:<-RY":"Q%AO!>8&7$D4+T=C6? YIR+[] RN C6D M//6A"-144?WQIP92BY%B*HFHR-70F;"0\2$824/@EECN-!K1>D/S:B0/P%OL MG2EW5TEK9Y!6O?5AE4_THN[HD_SST\* TROPKLQ&HS+DJB)XHS.M@UZ 1Z0( M2CB3C%(LJ=;6>R_ #\%=[,FP'4##??N/5^TFAX0A:94(D'6U^84'YRR"<"+S MHI*WXD"[M;<6$^Q;T4WN1T[1&4*D2!6A%N-KU&"##(Q+TDWSBY@&6]'=$T-N M+O"^BP*:W\%SW7DPD[*TPB1(KMZ,KF*&>L4I,)VC5EG3TM'Z(-XMD!Z []>: M)RV5U) YQW-,XVZ8Z-\3/.VD>;8?R"@$66*@51U+I$@F! L.G0(G.'/:>\+: M_C:GVW$] *^P/8<:J^M0K7PT>B9S03"%T[+(Z%\AL4 >0XR.L,KB6Q\A>3BM M? Y$GH8J:AEY?ADO"- 5M[V.I'2I& Q@,7I0AB*>F$AV*TUTQ:MBFS?IN0G/ MD.Y..!!EFJFGX?6C88[/0E=3?E3MYWK-BTS$P$R$@H6$#%E =!0+96YL[4FJ M>/L+R*Y$,J2[$0Y$D@8J:7O4L?;&(+G/-ZY).GI9U[.N#[+"X""(H "Y5D)Q M:3 V[[YZ'9AM2&+O.<70FB5M--.R9\F%.K/+5ZN.;!U0Z3Q85AL'$SX(M9^6 M8;2X,99$UJTK?[;!M0U]W$]&G^;ZZI%)WR]HI87Q4W>:P?A09**E+X;:E(<< MF1&V=:NSC;(=LJY\=^>B[MK;0#V+9WX:1;*$V22E5BER0KSU4& MKRGJDU9'6W2UNZW#\5M!;46CGRQWW%93/1+HY='Q9':"^!Z[N]$VVT&=_$+H M5)@%6UB]5"]@#0,-.&-#=[^";+Z_=Q=\6]'J)TLU]Z:_?I>H^>H\,AD=2YD8 M3]S/H"0*<%$:*#Z:;%-!4WIH9GDKKJT8]9,EGIOKJT)6_/K)%E%-? M+T8\,N;(6D/HMGYU9 2'!RA%EYB9]_GB>:G+/3JV>]16#/E)4M$]#'[?;5PV MM=9=@?6BN[]Z\2J,Y]W5YK.R#@TVU==A>G8-I9^MCNJ%QEI-!KUB-F@>SX[BN-I)^%[3+-/TWK;WNN,T^6XC,/W7;(-SM]FL_QU/*GW MJ5S&2S-B)!RBCS("9K* 2I<,4=0K@G,4ME[%HV/K0IR>1-G70.\(ZTHXIT=P MSQRZ'6E>LD_UOJMD!*C"ZD:W%&"SY%P964@)PQCH+24:4@G5$&;'15=A0'QJ MYL0VE:F[&G>Y_N2/Y#B92)^-88Y$D>0XJ7KQ?32> 1.1[*YW7F+KTX&'D&M( MI60__7QIP:WASYHNE3ORSA21O -K R.9LJ9!QPAT^Y5H2 5S M_Z=FRMWYU"9F;2G0^8#K?:7(VT*A7O>K(ZU%L5H(2+F8>O$O!6(V"9)-:\65 MBDS+K6+?@T$>4@'@D";#@(G3K@OUZ<"-& :=Z%&0G(CD[#E6G3U'9JMV?9#2 MF.:7W&V>/:1JPB'Q;R\=#=*UN%AIVUF#CY_#]+N(7,CL2HX@:]V34BZ"JW-" M8I#D1ADCY9 ]\UL%'%)1Y!"Y/ERV#7)";:IV/H9OIV46RI=$SI6'%.L:(2GR M<$G56V.X]B7RD$SKD\J]"G3' M%_3IA[8],@)\AI\''V!Q?*2K*(N@1A@7NI M:X-E"U$*5C?]4>J@'7?1J Q9UM:C MEJ3RFGL0DBL?5"B%W;I3=P"<@ZKR'=(T&!I''H@9V=C*S>4IA:,.3">0VCE0 M*=*\5C8!-X&1Z"F4W#I^/JB PRIM'M($&C[?ACFEPO%X&29=*NQMG(P_K<_* M96=%DJ6 %:%>"^@U1,YJ;Q^GE"C.:C'L3>RKI+IK0?<_)\\],VN0,^9,>';6 MN#JMHQ7* Y:ZX6@U@^AX!NU]\+)@8KEUS]'^I;IKK?H_9\P],ZOO2L+3;EMA M\GJZ6,Y77?/)#U5]\Y/UY6EG*E?"-)]I7+VNF=NE@'#O9S:J&VPK>Z-RP8M] MFE]@7/[HU7S:8:,>A%\LGX7%>#%"2UY*0@VI<$D4=P*"89G-:T.DD9/> M,1T0F+#U)+B1X)F(](?-+B?'+;9NU-8,_*#ZX?9*T\M-B>Y#_^TZ%UW;>OV\ M8*,4>(R&); 498!RD=4S!_52V%BXYRQ)V[J#Q+;8AE0#=U#N]:*\OJWZYKJ2 M<.:F$G*,]BCZO^4;&UGDN^!N9&^OO=FE.I)1Y")+$%!LO: YUZ)#BQ$DTS[8 M*+UHWNSR)CP->F%=_=W=NCE"IFT6T0"/+M?.X@&"3!F29:JD4!?*UELV-R,: M4J%Z,YYNF>?VOW0':GYS0RE?O+V,B M4A1-W'TS_G*Y,JB24SM9I-/$"YL1E+ >0A:6'*3 U'#&-/ZB/W-B/9=&V_X M]O6*74J(S&@.6$*NNW(.O%?U5B]EN$S&E=0ZQKP-TY ,:4.^7%S,FJJFF3&] M =69U?=<@]W()A:U .RD#>#ZM:Z*]- M-3C/$P7:YUM4B4CP0.A9 B%A9H[E^1O$FB(PJ.5Y',& M$6ZSBTT1#>E,40\LNS_MW:\7]G*Q'!]U4JV6JSD^G4Y787)V$ITV[SSM)[2< M7?R.#ZOX7YB6R]G97^K+E^L5[4$\PL.-]V'\2J>%%\45<-K3#,N!0] E !H7 M@U7%4]3QL_B55ZKIB.8\+7YORZOQ@FCSGQCFM0HR(85](&*]X2$E#K'4KME< MHN*2@D+7^A*V!K ?D'=Z%];=Q8_H0\$'<6 O _\[S?^/7W'R!?\VFRX_+T81 ML[=%6K"\U-LB> %O)]^(0#@JC*-3 MP8-5J9:1J@2."0,!K(^M>S5;D'$0L+FL/ M7G$/RA:$B$Q!YBEXCU'@0;-&UR,=TLGT07'NSFKL/WET&>C3LL3Y=[3HDK$> M)0134UU%$UHOZ*7U,I>8LA$7\OL[Y(MN 3&DT]\]\.F@.NH[*U2O,A^OJRC# M-'^_##:-L9;<'L^F]2>STE69GPJS>U)G]X*,.1?"QE%$-*8^RFZ4LW*NTWTLW\H7\/\Z[D_@<,-+6DP"(84S*Y M93P!O2Y 6@HREJA,:'WAS2400TH3M-'W?N-\CY;C0_J,>37!65EGM_]&QO)H M=71ZZ?CB]RZ/=KZ?]^?H&TXL5CBC0*C8E M#9%\8E!*!'"),[#"1)-J-_;4.L^_+;9]E[6MGG-U'IB%%&(1%M"1,Z=YT$!YGKY5-* M45S#L%[OPGGV&A-+K%MXZR*[.T(<4C)_4(3;187WP[,N RR2#"CKW<(EUBM%*-B)S"GR M@W7RFK#KBY>N')9I0TOB#X]K=U;CO;"MR]0EAR;)S F6Z.JW8DW2%2@I2L\C M$[:'O,S=, XI>3\XKMU9B6T2^-M"/)\6CLQZ&6@.2&T*J)K0\<8[B(*72'.% MR72AM](UJ?N='C^DI'VO/#J0AAYB^F5T8@+V1>?>>L3<]= >9 YDWW8TT(E?=OAKMWZZRF]QMHF M8=\M\IN^KI%%W!IQ([/V]]ETME'D^K&GSQRE0OY;O3^*Z>#),R='SM=&7"X0 M)8M )*(TGEK7@MG_6N)-.ZKUU];J$LF]]TR00*8V"] Z0Q")(@_R2Y7+JDC3 M>K/D"AA#,CIMN'#Y,N']QKY=I> 51\)".GLD[$?OHY2Y0F\L>,8M+8S20:TG M Z^*8B*@JS.O<7G@]O"&9&OZ(4U?NFKGD-1U^GK942MM:Y]"5?LZD(DE)XG< M(Q!1JF ERUZWSDW=C&A(&?9^*--0(WV[)5W3B0KN'K M9?><6:E-N1*]^6(\62V[CIWG?W-W9Z8]B$8N4,^CT\AQ^DL M3ZY=7$;[TV(SVTMS?([5H0R3FD"<3=?@GBZ7\W&DM2%.\..L>X] 8CX->)_. MR8GXU/W>8H0^JY!,M08^@8JURCL[22:!@EY16#:^]6VR^Z,>DMMW2$H>6-^' MY>GWI/=R?(Y=%6ENR (J('$VNJ"$PQ^I19A6+RNBQ?82Z%^0A M>9F#8V@C36_IG)Z^7_^(-"O^^J?_!5!+ P04 " !:@5M5VR35[=1! 3 M\@( %0 '-P-]/X?'<3I3S M?*C5U?^29JGGTB ("F0(#: W !(RN62 M29#:.PY?9L8Y__U__75Q_LTGG$R'X]$_ON5_8]]^@Z,TSL/1V3^^_?VW5^"^ M_5__\6__]N__!\#__O[=FV]^&*?+"QS-OGDYP3##_,V?P]F';_Z5 _YG_IY?CCY\GP[,/L&\&$6/WIY.\RHXY69G#<>U!",H@\ M:I"!%2PVQ13*_W7V]Z15,?#T1]_KW_$ M,,5OB+G1=/[M/[[],)M]_/MWW_WYYY]_^RM.SO\VGIQ])QB3WRU_^]NK7__K MSN__*>>_313Z[^8_O?[5Z?"^7Z3'\N_^]\]OWJ!%@.)K.PBC=O(!>GV?7 M?_$V-?J[Q0_I5Z?#OT_G?__-.(797#T;6?AF[6_4[V#Y:U _ BY \K_]-_??/-0G)ADB;C^"^?G1/'\";// M'_$?WTZ'%Q_/-'T@0B;I,B+0ISBJ &]( MXWU/WY_FZV=!QA(NSV<-*;[[[*;TCB_"L*6 [SRZ ;7S!\$%7D2 MHG-)Y"J%]9'3C],TOK@@$.'?Z(OOYA2^'(\R<8V9OIB.SX>Y;K'O9_1GW7.G MX_)^-DY_?!B?9]JQ?_SOR^'L\V8^ZIN@[K[,2S8G>)?7W&*+\#,<#>N6](:^ MO7I7I?\ #.)?,Z1'Y&^_&>9_?#N,)<6,<(YS1Q]I8;E1,0]V>6'E M=,GK^3A]\?[SNAF/K]%S'B*>SS\=7$[A+(2/@^N'DW#P-7TY':A8D#GGP N6K74['0 MX.Y\O1XE.O*G^ ,N_OMZ=%=T[\;GYZ_&DS_#) ^\]CEYGB RBW1D,PW1,@%: M.50R$]?>-F9Z2Q*_E,@-JE],EK*YVCEVW%JJ/=04&[/QX52R@ 7Q]^TWXPD] M[A_?LGT1])*V@_&"Q/#+&Q(&!4P+Q@H%Q1XEQ0XK9GF MZ+/,L?G^>?\)^%01L:?4[^) [(N#WRK/EY//<\JN #O'Z@"S,=8I!Y9%(HS. M?7 L&L#D?0K&:!]X8SBL)>9IHZ*-#NZ"0^X+CA?YORZGL[D)]]OX1[CW-R.S*>-R[[U=A=JNB>HS9?!&HHE*Z(8LAD+JS8CND*+0QM@P2BC6;2R MN?6^/97/$FBMM'879Z;7+>W'BX_GX\^(\U_Z]7*2/A#YOYZ'T72@DU4RH0"K M%)&=.-FD(GC01BD1(]=H#@2V3:0^2\0UU=]=V-D^M[>U5 ]X] J#L) T!E"Z M* A:9!"8O?-1!175 7>XM80^2\@UU-U=P+FFGNQB=;Q())8)Y@$=[AFY%J"X MY&15:@E!&@E0LDG013>P5*VOH>D:@::&9>T*F>T?6?\$9R61\ M@6_&T^F .6[0ZNR\:XR3+PAXVH#87=;W:'[O:/G; MV0><5*-^@A]JOOP3WA!'W.+P;/3R7.\= M_5_'U^\C$NGY\'\P_R>)DPS GT@CE=FWH_>8R"2<#>E4GPRG]*/;%B*MVK>E M,L:T+TYI#5YI!LH[!!>"@Z*UMRQ8B3P="-C[\O(\D7U0!-P#[;US%P\MV7>8 MSL-T.BS#M+(T7Y$R7KQ]^9I$^SZ4!XPV MBL0UV;CB@)OV7LP\3W ?%@/WH'OO/,6#I06,;&&EA0?GDB/K.#((23B(4B9! M9K-*JG56K7N11Y-2A8@EZY0E:(T%E#&:[$%/SF20*%!J+V4O8:('2A5:IMZ5 M59+P74#RD(D]:<$A)I""F(Q2*8:MV>N8>M^C4.^W$,]Q$&2P9+Y+LGAHN2@F M2L6F!Y&169-]]OZ> M$V17IS"AKN>+?JL7LO0MM#C/=5#WVSJ*[]>SH?3S'_ MX]O9Y!)O/AR/9OC7[,?S^0O_\>T4S^H7S9"P6#YU7QZ/:B;YQ5_#Z4!$93BB M!"DE;5JJD+T0I8<4A8O).9-2ZU/U08(:XN2!&OD'<+.#HM=A9F^!]U" MD+3 M#W/KH1-1@Y6J_49HN)>@EO;1NJZ#!S"PO^+&?4G]8)!(:*4JV@!R8\G4>Y'#+P3G$N6Z:1T-8OI MR1'0AD-!%>O6F$QJ;0K=(>+P3E(#Y:RO1=Y!LCV4J7]A<%Z1%&)@1I%7Q5@( MY+CH",':#"(H482*)AG6I]W[=-2]KW1[6-MKJ@6OB,L^*>Y9@2QBC?"+6HQ% MW](6)U.V/CO3NHCN08*> @C:2;R'PO-W."/^,/\8)J/AZ&RZI"HY)FTAIQXU M[4JZ1L29]Q"+E5Z9E VV#AS?3\E3 $ #&?=159[2Y<7E>6T17!>@NR(T6<-C M,1%2R*56E!B":+;@,HM*.V-<\SA(9^*> C[ZT<3:LNQ__VY%5F_HVSWZ>+^_ MG!*ZIXORDNG\B=-?PF029D3^#Q7[Y],OB>K6N-OIN6TZ=;=G8:4U5P>G57$\ MT:I5HB;"N2]:*1]0%Q'#H-,;]EO0][SB)NBE14!K$YTP=,Y [2 &.F4$))9U ML*)HGUH'HQ^B9]_-:_EL6BIQ.)IG#FK/\Y!P/O]FGO M.)E@Y@-4R?GD'6 J MQ#N+=,1:QLE)H[/71LD,FIYX[T+?X;>P9DA9WTY;KLF8@C&4Q"Z7Y:B?FW4VL\]N> KZD6P?7;?I M ^;+FE.\;UO^_O.M[Q;A7Q>T%DI&*+DFNI3*$'Q4D)/RA8[X&)HW86Y+XZ$2 M*KWM';TJY522+_>P-@\A:BN%1[+DU+S]F/L$02H/B;C**8?$L76UZQI2CI9P MZ57]:\ZI?=30P[YT'UF+^EN\L M=JINP0)4J>%E\A(ADY=BO4Z&ZP/8_8< RH84SG%PLHWX&^)C;HG]]/+*SWT] M2E?Q Y6M">@Y^,3H?-:)]DR>Z9!&5 QE%LG83A;MW6>?A/VZC_3'[437VEMY M3;;(A'RGC.\_3ZNA=4.68SIZ0UY3RH;,KH .G# :0JW+_XTEI MMI$H^W!*+N,4__NR)ID_U;H3^FOS#4IIQ1//"B2O;K(/"AP+@M"G E,\2-8\ M"6P)IJQ+HK$C+ ^9>U:I_$/#(A-53N'Q<,6XNX?!\LS36LFI2#K5G%' M9YJWX"U'$*IPR6W&Q$J_&#B6#=%(40^K?PQ6&DWE;[[B\F$YQ M=MT2'D;YS3#$X?FBH6@ZO;S W#AWM]O+^TOP-1#&2A:P!(6TAZ@LM5?(O(L\ M*!^9<5(RQ\N]6<#=R.@Q58C.*\.3@^AJ4PVM%EH?P8*3HO*6DU&MSXT#IPJO MQIW]#^;7F5;QL RKV?BE]%_<)_V78?J!?E!+ #Z%\UH .LB%/!'CYA9FG:50 M'0:; EBF8HR A^/H*\OY@T&.9-) M?UB2GP""3UC'/903_S0>YS^'Y^<#[91 'VMMCR*K2'L#3K,$+%I;I/&:^];N MP_+=3P T>XFSATG,+?'[>C0+H[/A]2_/=^#?/H31-;-92:45LR!%\: X)PQ[ MLC6DT38(+JV)?;F>!V'P"0'T=('1PY#HELS^@(L"V-_"7XO?'NA@!"H10/N< M:>L*MRPOEJ.^N/J*\K[@D ? M\]QW9'$9%;J7U5]P-D#ME%;7Z':$RM?\=Q4 MV7T,;]^Z.KT4$I72!7BJ]V?H[,'+$N:]1TZ)S)EH/C7W,383[P.V7I5RZLW$ M!DL,)AO0KA:XJIHRXI)!!LU'*4WM N!7YN) MMU;EUDVBN^CA*( )47*6C0?KL@1E0P9GG0(1//=:,9-M7W52CZ.9N%^<;"/^ M S03RRQ-PIPA1FM )5O J^1!HHJQ1)^#77$@'W4S\5;2W]!,O(WHCMHPLIJ9 M7UKEC5M#-KVFOR:0K1A<:?= 'B5#QG/R60G&?"B&1<$"9VB+4/>V>VQZ89\S MX%CT1I%_[XOVA#I7!P=&"_6&H&"D88&UOO3AL31VW&B%_ Y3,F.%@RGD2]*" M) D9*< Y)S!&9TQZ'$5(IQ8-VP9_ARDWVD[9/?1P+.E\536#;X:?[A9#_0MK MH2>Q\@DGX0Q_GV*Y/'\S+#CPVL6%WG(5BH\O B6Y0A0<(2J>:&A%)Z8")M[;Z'V6\:A] ]:J4 M4X]7\>A])-E!]C709YD"VG@+R.QC5LH0IU^'W^VA_H[QJFW4<)3P0Q<"O\:K MME;EUG&(7?1PG !G5*$(S)!X<732,H0@$CG<$NF_*J'O;?#SXXA7]8N3;<1_ M@'A5P,!2E@BVY !*24Y6OA*04%@OB'F4*V4]CSI>M97T-\2KMA%=#U[2 V;V M]Y]_#O\UGKRLE\A>A6"YCMXJX&I>4V\(TCQ)*%DH5Y*,KOG RRW(>Q8&1E_J MZF&LV@.DWA#Z2[BX2=5L)K735F9M<4<009E08E8(/J7NI5E:N7/#;2 M0Q_7/6+Z,!J?C\\^?Q^F]XCBZF8R94W"H*$H2^8>9@U1F0C&NH+1.9U*ZX!, M)\*>-FS:ZV;M'M,Z=7S5&_+^\N(B3#Z/R]7WT_AY^9/9!,/%(L>Y2])XNQ>T M21?OP=1*HEA&\L.445D'5L=6.ZE<3%X;$600,0^V>]4>;O'5XZY29U_&KTG@ MJ:#C!%M.?R3:GUS2 827)0:4Z%8ON5GC'S_PDOVOJYP_^A4MU)?CT6P2TNQ? MP]F'Y8[[XU_I_#(/1V=UR="_M>!]P&I"GDYZB)%KL@ ".<+9%1"9# -FA4?= M.@JT YF'V]N: N'N79?]*JCU:/V[ M*: 22^ #]V"+,SQX06#LE%*G%]S:)^B[FSUBW;L/'1IJI\QQ0Z&VC /?T#-] M,FF\;N$'#9.TT9'=Q7>2, 'T[Y@$0TK$C#6$?#).(@Z M<= Y2".3+:9TZA [+:VO"9L<4.G;R+5URN?5Y7D9GI]?W,QE9RR+7%B '&OL M!YD%'UF!$JQ ]-SET.T0O_/H UIK[>0];B:LUE;8BU$X_SP;IJ63*U0PO@0' MQB4!-8\%'LFA-C9KK95PJ+LI;N7!CUYM^PBJ]7J;3VE;AK4<3U(6"Z9>]ZFD MSA!BTE $*J_08>YX5>ZMASYZ9>TJH![R7/?Y8C]<+BYEGA\%7CEK137SK&/D M$]3N!BXDD/MEM SD*+CF\>$--#UZ@[@7X1\8'%=KH N%/>4]-U-WG%1G6ZUN M 9D]5-)'TFDSI27)8@*=3YB)/B5]3<%9#L(;M,;RZ%CKAO=C@69#XO+8F-E& M$ZW-!=I2+R>3X>AL&=R^.AF+#+%8+2#+X(DFZR&Z2AUMJ3SI(M%O3 \\](+# M)XU:*V+<6(JMK?>W(_R-EL *1;&@5SEPX,S51OI2[TKE&:S!PKQ-2AG6S22\ M[_%/2ZO[2_#0J;Y?PJ2R_@GWSNFM/JEI\NY!,E>R=%;$^74F*3"NLE8A!R=] MUB1L[K2\SM*M/G._\_.'X32YZ*J&G%QJ?G)IKVVBV6:V>YGEZ&4<+S1:7$KS@9CO,@<:NT,PJT8^0L M&98@,K6XG=NQDIF+LM/6L?E=A]]'FBK\BUVDL63;I]I6CB[:\NB[M^7[X3G] MA;/IFS##Z>R*4H/&9F/)P[*&-C^C-=3AJW4"GS=Y[G1WNZI\J]<^)3CT)^_6 MIN$2L+_AY.+G\-?PXO)B8'.(R1AF/MSS\*>D MY7UEU_I2H_&%_W,J;I"V*WPV(*H5^/)S\/I_+09X?AR>F70$OT#YZ)7\UL[ M7$R@8@G@3 I@!-="6(;9BDYJW_[=3PD//4N^AZN#ULAB$4^-K(3HHP=;0^DJ M95DGX& 5AC?<>&-MZSM/'J+G4 WDO>"CN**P>K7;J&^\KQL9U&',BKH(:7EZ(;CU"]$C^0Y:B,+(R ^N4,3RV A\HFFFK MOVT$UEAO/Y.DR'A8=O/&@!P](P,2J^MO&#BD/0J+$];&S&SNE(_9H+DO7GK8 M9/[.8A^WD%G+P$DE9&'Y+0L)4')N9822"EG_:"*X7"^LU4ZQ8*4MJ5,X<)/R M;K_T$2IO9YD=K6=FY9Z5Y=BRSXLNLM'9;'SM$K;KH]G^I?WTUNS)_$HDWTCC M&-)*Q205*K*GG4AHD:MB7+'B3K_-]J_?TS7Z\GTO)I.*^8OYQ3M+3Z ..&=. M6MIL0B&+C^#K!4:(49?L2O+.M+[$H -9>T4/UC__W?C\G#S9/\,D#[*+B#&J M:NKF.FS"090Q@M'9)9FD3R9LPGGWUQTA1M!8^5^$"=J+N(C M3^-APGR]^0XT+0H>;"*_RY(91D87A!1B+7A &;W5@76K,]WTIB>C]/9R;9TQ M6.7]8CR9U7#W#776ZI*2T2!T[5,(3)#QG2PQSW@=;)2BV$GK=U_UI-6^IV0; MYA*Z[41)9ZM-O>H[)06*:08A.@W2VIKA8M&[(QX$+:V^[S__1L]81/H\2TD@ M2N#:U%M&O8:8> 0=4[1D#G"/[F!VWRW"#A8B[\D\ZD\+QPZ77P^0H-][6VXQ M- ]=.>53]KKVA$CBQ-("BIDC,%9LY*4@2:LQGNXEY&AA]?;Z7AWZC+ MOD5.[6GY93P*-Y_\1E]-:9NKPVFN8B1=R.VIPG]+4H]3[M] R:M#Q ^@H1, MEHHAL2PX:&MKZ)PG<)8QB :Y(+)Y1OX4 ;6A%>#X>-I&,:T=O6L+=%GJ;)3B MFHYQ8R0'58*!Z)('5HH0EM?073<+?^7!AX_N]*J%>PN$=A#AP>X4>C4_]SC8A[K:L MKT2X4RQ))6]EG3?FA'#T3\B(J+4W+*C!WF]O=#>1^;**W[ .+MY MS;5;_G(\G7T?IG0,",Y3LK05L&1L'7)Z'&>:?)N/I]/?1!,-Y9> G$OL;^N1[+.,) MUE%<.3CA4PJ@N7%D?R0#M*T:2)9%IYSB68K&P&M&_%-&Y'$TW(?WL%907[(X M0*+&&\7 LEIP@22W:$+-13!%)DW"A*TOJ^M*VU,&6B_ZZ6%FP<,+8A'3L2%S M\IXT>./K7,'$P7N>@1>C$S(FT;?/H&\DZU!QU%/9G+;7Q:G$4[\/Y[6#[OT' MQ-F;^MO++GT3R4LW00)GQM09O+2'IGIWBD*KC592J-:GY#I:CA=5;:SSU=ME M6LB^CTN'[J'K^L*5S93U=3W56JJ.="]5$^UU@,0>HC\T.)*,2C@PP7BB,"6( M(=9$+F/)LRBUR8\<%)ONH#HX)KI+O(^Y.%_&6*Z"=(D<0>T% YUM#=(Y!LX% M6P>*^<2-"-RT#H;?2\@1+JQJI*G56J:]Q=RZS?WG,/D#9_4 O#D?EW7(NCBE M5 $4K/989PXA:0ZH,@;D3N;<[0:R]>]X](IM*<-^;O!9C:O.-S&!9-/H9,'H M0HCCW$#(MH 33H=BT'/5>LC\&E*>JD780O(].*+SE$[!RX>VQ\@JZ4=Q]9N#UM88YX4:ATC%.-BG5&5P6F5 M08A(V[TOFA;ZLT/JYNO+3AVHW97: T!_'H_P\\($>'4YRM<)[IQX1%& VT14 M:4:'AR*W005G70R:I=!ZC.3]E!S>QCJ>=L?-5=-'/PE.9L,R3'6>T=OR WX< M3X?+L>8^2Z/(T(14E*B%?08<6@29R%*43J'2K5.I#Y#SC*'32DF]S+"=%V\0 MR[^&C]+__?W MOTTP3"\GG^\XIYXIM(Q9"$774?%(AS?C#,CI0:\#ET1L8\BLI^89XZ:1BM9V MO!RT3.[ZAXM[(,,H+SM2YEQ5-C&'V:LPG/PSG%_B>!2N1__-RU-Z*J5K1=%*25Z0S*:THW#.ZM7S\[:#>3Y/Q MY4=ZS36)[V=TAE?R7X:/\U+6FS2R(^CX'!)MR%@-P>#!,Z^@B"R5$CQ'V?S" MZCUIWKNB9:ZP:RI^&$YKCIK4-; V,XLIURM@>9V_1OX<1@U2,,9T-$*'UC/. MUA)SA*MS#XFE.V4L3932@ZMR(Y7/]\GEZK*1H&R.PH#762PR8B[6>;T.O0T\ MRO9!E2YT':IRY:C(::Z@4ZEFN<78U7E2G_IJ@O]]B:/T>9&*-3$J&PSD7-O MI8H0@Y'@I&*%\^@C[Q%XZ\@Z5D:C/1368ZV)2OK(=RU)O(_ 99JO XD]92TZ MD'>D9$1KU:Z#3F.]' E"7O.B91+@DM*@0D;PJ@C $@6+,23;O#SF:-#9E!TX M >1LHXX#(69Z[>XLHT F(B=*B#)-VRTS&5R]QA2-0LZ-\%*VMJZ[T'5$0[N5 M0CL 9B]M]&M67W_YGT.-:KJ:&69@$N%QBH5DF]>L;J>G.<&D%VT<* = M1%Z19CR2>X %I,T.E"\.@F&&=E7IO1<9_4%V$/D\ ;*+%GJPC&\&@]2,_?QX M92RBXLE#,IJ3JY<5Q+J[69XT;J<:/,O7Z\I U2":B M09F8Z78ES2.L[6ZMLVX5V]L(_, 5VX@JY*@*Y& R*%F;Q'0B2AEW*JD8.7O2 M%=L] Z*5Z ]6AQTTLSKJ#%C'&:H8(EG ,D*25DLA@\74.FA_(G78?2-A;W$? MMKHZ!&Z#" R*K\-1(^?@5'20M'(L&"N*Z'3CW".MKNX9#8T$?[":Z5\G8P+M M[',8Y3H X&,5S"\X6]3!3G>I=M[PQ#9URMN0O7JME4LEU.O9F:#=.* +@KZ1 MTMFBLT(^V/#L_1;F\N&_DM<[>W'K#6^NZ^Y0R8Q$"$3'"BCMZQC;:"$G+[+S M0B;5VHK;3-6^&]+:-\Q'[0VR#\)H'>IUK'1D>K*A7*!5XK,B1]_I&&SKDKF' M*3K\QM08&:L;4T,%]&#)WIJ]2+;4!.DXG4_ 0-IPYF(?Y:N!H?//US(SX,P* M%+1MV[G?Y^R\?-4!HHYQWI?2O/:R%>U/#G)'46H/!O5:PNA4&&1>6&9*0*KC MQY6HN:F0ZA6W2(>*42J8UN;40_0\.1 U$WX/5O;-<,BU5"Y"V4QA0%,$",NQ MWK3#(7BK0*.5V65G>&I=F-F5MD.U(_0,DUY4<2I-!VM96MR],P]X6EH*A7L% M.9"_HD+.X&1=#^2S%",+"M>Z:;8#6<=*,/4#AZY;TXYJ.>3150F\RKEV(;&G MM%,'\HZ3=VJNVJ[0V5,O1X)0-C&9Y#UX(HQ6D2$_0A;ZMLXM"28XYUK7V1T- M.AMR4:> G&W4T1 Q\Z&#K^D$G(S(%/C\0RW (&+S^W&9_1DFR]OH+9WLW.H, MML0$BI&]YGPRP%#5^@Y?,*^X:&OF-VY\U0D9P[MJ9]R;:/O(1XTO/EX2C==< M+R.?2<=@=( 4,!#>K8:@B>V<@DJ%2>9%ZQJH-:0\'42TE'D/I\8;#%/\,#[/ MKR\^3L:?%F5?RVJ]FA9--3=O8RWGR1:"8AR2B;3$-3=>MX[1/$#.TX-$*]DW M])CG^]?;4H8)K[DESE]=3DC8E]?[%]-&)LX4&%XG#AN/Q'6(0*Z\UR7PG+CJ M=#1L?-73T7H/HCU8]NFG\3C_.3P_G]^=-@NCLR'Y9(NI$[_@;/6CW2?P[/2> M-IFJ_5E]XLX8@[1ZN1_L],:]YSD/9_AF^ GOO/(F MO".#=X$H!JN](^.$8.BT]5!*$8YLE>B;C_7J0E>#6=;KWK%(K41KM%8E@>,) MB6^&$*1CX+/ P".+7#3ORMY TQ'*P%LCY)[!UNW4T$<3R7KZ;N5);N=#!G5) MFQPM""(#XG?GF[W<"%3.:?*V!,GG?\!0@N,PA9:&&SYZ6X3M97*XJ>$+:. MIZD^&KW7\U&S$(YZ4$$/ MS2X/4/<.JP"'H[,O4O\X&8XS'^2DG$C6 H\UG^OK[=L%">8Z)Q92,R&T^B[H[ M=0>;"]@WCGI2R*DDXQ]@ZOO//X?_&D]>GH?I=#%#@=CB 1.@4#718S0MC23! M.>E,L,DX;%W*N05YQT_.MP5(]_UL+T7UT4"^GM0;0G\)%\LX81=R^YJ=LQVI M1[O$J!_5=X=8,[V= -Q8T#+(4@"MK>X&F91.2@62#$E4EN70_!;QDX#9YAN( M3A)EVZBKC_ZSR^EL?(&3=[CP6JB2V2IADBL1U"*S$3O;+WB)D4; M;6'9-^]*7$_.21GQ^ZMR-3/<2 \]!$-_P_1A-#X?GWW^/DSO$<6"2%D2UYD+ ML"S4H%I*X(7FP(6*BKOHM6\]F[(384\;-NUULW:/:9U.?#\;IS]JXALGTYH+ MG7U^_R%,Z!D?+R?I W%3,8CZZ%N2FHS/)N'BQ>7L0^TMG><*+D1] -](.MZ?U!(([48@>5-+'2;CL%J[DUE;R\6@^&&G@'#::"+UU&N\+HGX?7=+96ZN$_OHX MG&"^ ?*"4.&$2#9;(*C*>L 3C3%J*#I[S55QIL1.V^,V;WTR..A7WGTTFMV[ MF=U$Y:]WM9O?6>YO.:H@8R2!:"_(OO<%'!HRU'269"5JGV3KVMO=J7TR"#NP MXAJF\#8*9A&8U2$1!9%#[#5MY7DJ MF9#KNZ,6C-1*]/&HUAHO;M?(@GR+6FDL=":.8B D2P&FD'>(6'34K:L 'B3H MT-F./A1_9W=II8 >PH K-"UOT^E 5$^9BWL).DY^HJ'BQGU)_6"08(I(4RA MHW!UYB]"4)@@A>)82,58;#V9[(!0V)!#.#02MA%V3[/IQJ/Y7KB\25AKE((V MO&1%(O_;!W"U+Z$(&XLR22K=0V_8ET0%%D1U5+YF((0##')VM+4BQ=3YQ/35/T2YH(_H^'-E[*5O"OP-M M/=D&#]%U)!.AD0X[06,/!?1P2#Q(HRK)2N\L48:R]K'%ZB!G\HW1%>>L8M@\ MGG%P<&PR&HZ C6WDWCHT^D(P[N\/I5R==<)(52]RH)-3%U!,$)WH)+!8B0ZL MV(ZM"QM?=7A;H9U:QKW)M*']L*1.\ >IB]'&@%%!8?5Z*A\C>$5RD#ZAD?1_ M8VU7C3_\JB>D\88R[6&-"_$@=<4(9WG.H .QJX+T$*WP]/M9+K6'.REC&->?%(=)#H3Y^5+OX3)A+[XA+NW@7=[<,/"C>V86*G8 M$-F8HK50S!:%6"7R[HP MR2^L/YV^^$0JK/[@J_'D)_J[LX$/VIJ0,G 5=)V%ZL&;Z&AO(%&R$EV)K:-E M??%RI&WV<&B^U\ ^-BAZ"/7\2)OO^#/B>YQ\&M:[O.YC\Y?Q?/(^YCE'T]_& MLW!^^^BD2L5FA3;G MYM_ZOTZTWKB+0["01)<9#K9 M(/E2B"&A@?Q65QL$;7#UR^:7JC9GXMF!_K@PZ&'*04.&_H7#LP]UJ7_"23C# MJY^0LTZ[PX!'H3*M6O#SLB.+$H*,&9CQ/K!@)2WOTT7[0ZQ]70,G )D^9C)4 M'N)F-N,:-M]>SJ:S,,K#T=D*F]>EDR_'H]DDI-EE./\-)Q=B(#63SB<&6NMZ M77"RX'3(H%GF*25FDV@]5?0(;#[/%7/"4+J[>O2QSY5Y3&#Z^FI RPK7\Q_^ M$&9X?0?W ),3WB4)69-+I5*@8S26!(:;C-8P44SKZ>T'9O%YKIH3A=#=%6.. MMF+F?_R3O"S:!I;SC(PJ:+66H+TCN6>9B9=,WE+D07KI8BHG$Z^^A_ZO6#^4 M\N\"V1X-R(O(\.OI]+*V;"^X&82BF:?%"%P47[-[M9/-.W!68(HYIUR:E^"W M9. KE ^F_KM8=OMU$.W*R:(&\O5H.IM,H#SB=,D8'!K%NG6EOA 5K216V>(NY6RG( 8E^-M ^:33<1;W?=P?_ M 0M.)FL9_==P]N$U>2.?AOER'LY=%FV_PRE./LVGO[ZZK'/[ZV(.(_+EK;12 M>?)!ZN!W8DAC9<@ IN1M)@]%Z-9C4)HS\6S@?AHPN"?GM7\]_TW)^B;13M?) M=E':7IB2DO,(Q5=.=$2(T7CBQ'E7T 176D]%;$;\H:9T'ML0.8JR3Z6Q=4'^ M\K:VH$HRB1M(B I4J1-"M(O :F==]-69 ML),@;M@8Y3I(Z=:PKBX\]=GVTIB?X[3+[ &3;7VP0^GXL>#7U.$H3-;YW[6Z M0+H,/GE!.A.15GC20;>^IN3QX'9#)\^)PW8;U?999U4MXX7#=U6WCAZY9S& MR((DE;('5\@8#C%AKC?]F-6+XMJ51*T2^Z7E?/M)>B>JA,_14G93RY MJ [4(D2VO TOA.R2*2!1$;/.U):*>@LX5R3<+-B!X MXXTM$8U8+6E>$ZWLC<1G#,D3TGT?A9B7<3K,PS#Y_#Y% J)/ Y2$"=LM0DNLA#:QMN'3'/V]]MHZ,^P'-#3EUD;\O\8K*0JFB6C8H= M*.S+D]U(W9'&.+11YRI(^M%%'Q[G9DH+-\7G(B$9;4$Q6BTN>0O6Q:QTT2+G MYN'@(Z%ETUR'8X%E&Q7T[>=='97&.IL-S^"BK<(IQ=ZQI #AA*!\*[ "YM!1?1<%)>1 M=6IRHJ?>TC5]=Z/G+U[X/*V,W67>[--L(?P M5]6WA^1:>LJKY"25"8:U;CH&4%XQ\"P40..$TM+&[#OMV<=6X)ICN@?];2&P MQGK[.?PUO+AZO/8 ;>EM6^X-HQ?.N25XU92VYIWS*VV$??"\Q5%!8,V KF_MB:5 W@D42?! M+$JF/9;F%2=],'*H8M)3@OKQ$7$J5::O1V3(XO4% &^N^)P[EP)+EK'8.M0" M:XC/@<_D8::BG>0L*M7-D]X"X0^0<_Q8V=&P,NY'9SULM6M(NXH9=R&NI]3< M@X0=)RO73(W=X+&'#@X.%$3#; ZTK2M#E$8AP#$1ZBAQ9,P43+:U47D$@&Q( MQ!T'']N(OI>[6::SMZ7FGZXO>9:2.ZEHIZR7GBDL9#QJ42!YC1RUM+PCD%#)=VYHV4?"?=Q1PN>G]=K"$?YYS#Y VLC_)77O(QQ9N]Y'0$NY@5+ MQM1:)95!.AL\)H8AMT; )IJ>$B":RK^'+:%V(](#/\QKVC[A^?AC%<"7)'K- M%&>UI+?4V;,2,SCM"UBB$ZV0Y&&V'I?1@:RGA)+66NBA..PG'.$DG!.%+_(% MB7HZ6\P@_Y)(J[EPG [,I$W-NV"]S@P-Q$2?)TX?^-:V12?"GA)8VFNBA\F) M7[:]Y*"UTMI!,76,(S)32T\,6&6R#LH)BZV+3T^LP?)4W-O=]7*,L;&[%(5W MX>EKL^56S99;P>0076N[Z/BQ-%LJ##%;YJ&@I-4MHX3@>*W]"X);Z<@Z;#T, MY/'@=JMFRY.#[3:J/6BS92AD0V*E)!0'R@H+GB'2V:)<\#E';!X2>NK-EEOI MNG.SY3:*.F"SI=+1H4@)I"A$3"FL%DI)H%7F!0;Z,+6^[O5I-UON@YX62NHG MTG"WO>[][TOO-BD38^$0I*VC;$(!IU@"PUQV14O&9>L6D0<)^HJCA@IKZ#K, MVS?OH^RAIDQM6%1U+J*U]9Y+&SQX*3*(1 YR'<)@Q$HUP9J&W"U?_(Q!U+N> M6G8K5%J_.'-_75ZE2()8QO&]-EFH E+6B>%%VUIM9J H%VU40>'J%3UK,+3A M1<\=,RWUT/#>@SEMK\:7D_\/)^.W(_Q_%NU5898^7!&6?9*\& M\"A Y)B)9UUDEIT \M!;GCLZFFE@[5#_PY3K;YRW/BZWY[33+TZGEQ>+3UI7 M\S>@I<]B_]:B6ND%2#XF*4*4@0P6IF)(JB1?DE%16"G3FEZ !E0=_=I62TXD MLT)!X9G3*@R!5@ZOIZ]CG!Q):?3)W+'UINFUK;O<-G*MV5N:K"F7:M[42T7X MH* EH4D$KC3)TV0DXQC)D"G!6.7)A&'-1VSTQLT)GC1M$=WL&IJVP.BC!F17 MP=['V$% 91DBH\;:Z:>6Z-.OBD MP&;[,NYCZNN"."I,3NDBU_L8?#><_O%J@OB:[-\)3F=S!HF;I+6U];:2 M5!>Z 5KK.C@J3/JX^+79#!>NHXTB!PA11%!99XC. MDP%HF8QH36#MG8)G>!7"7F@^BK)/I4GMRYH)6X2)23IP,KA%*[4/2==K_IP/ M,G"/K6,")U:I=U ,/%B=MXTN'DMU4Q>>OE;G;56=MQ5,#E'FM(N.'PM^I1*1 MY2Q \#H22+,$L5XF*67,ND@5E''/%K=;5>>='&RW4>U!J_.2D@:%9V!L[1B( M3H$OQ0)W-8NF1+:EM0GYU*OSMM)UY^J\;11UY'EAO[[__5W]]T48Y1_>_]XZ MIWC_X_M,$W9@:"7SYXS@7OJ$3CC238X\TW;D7";_TOO UV3^[G_1T9-YFBN; M!8N OA8[YYPAA*B \105\1A9ZB7Y=/QDWBX4;+QU]'H4S[OQ^?FK\:3^I8'6 M'E5. KS5FG:-;,!QCI"L#SY*+Z,Z^.'?E,,3W-W;(K]9(*M_ )U2(K [M[]< M+BX%JA.G99' 9 GU&HP(GKD,+M!1&)#)Q$XFV[$M"\E1J%= K3S*<1>$Y\R@K;,!NM*.LI*V@-@ MIY1R['AS_#6?UF1?LB ^732@BLSU[D4!7.OBC=7*V>:33@[$V]>%=)2%M ? M^LA9]L8G::'@\#:K@M.649B"(.JEC]PY",IPP!124EKQ8EM/+SP@>U^7TU&6 MTWXP:]CL<7AC-@>7168>>*S&K(@"G"CTK31!IV"4$R=3BKV?OW226MA8S7][ M\9!SD2(/O/H<]58(FR%Z62#IK)2V06K9Z2:-T]+5-B)X1/OCHPD3]0;!1^7[ M=A?'0-O$HLH:=*S=7HED$"PGM\4%CVAC\*M-O4]B&3ZBM7<*X#_!A;P5/%&0P7IA]G MS'"S#)QA/D>70.=ZZ8".#H(C7P-5%BBX1ON(SN)=?>-C=GTY%@0:PI\7M;B9 MD7T86!+ @C:Q\& B\J]=7\>-Z1U%V:?9]171<1>- !M5G9P4 SB>%.W].B7Z M7(CFDV">6-?75AAXL.MK&UT\EJZ9+CQ][?K:JNMK*Y@__&S.SH.35-$D(]!I"!@EJ((.HM,22N)(XF;%\17[<\TPRMY(/$%?NW?X MC$].]PV;#*:3V>!=%>5\G7LM4%D,P*0E+YSY!*$8!(-1F"B5C;'3G6'TU%N[ M)7UWLU-^\<+G:4'N+O.6([F71%Q?5+:9C&V,O2X0:+^G;+;+]A#^JOKVD%S+ M,VF%'"S*%J49B)QKGCHEJ#V3()%V-L,3N=K-UG"?"EQCH+37WS8":ZRWG\-? MPXO+BRM":/]7P00BQ"D+*O,"@;,(IAAF(JM'5J<(_@;-??'2PQWH>XE]W$)F M1V[>?G]Y<1$FG\?EQ_>__OHBS8:?AK//K5NX'WI)GXW>.SI-U$UT( MVJFDC;-%9+)[O)>&9QW6M',_]+JC-W5+EFTT(8%F=: DG491*G.$Y,\:N%R M/)D"F3?[-G7/S>*=7S]/ "SO"\BOQI/YIW55QYB]KU,4Z^C=2-LZ.I*@(U33G(]7ES5'_WHZO:QAC4&*0B<3(M A3!YML @A:PF9R5A8CB.*@ISG(,@0/MZZ;:M0$B)@WH9&!<&*%E\ZEI1T++AE3X MT<"RC0KZ'FUZ'6[U*IJB(*$.M1 @@R\F 9=<8^/T]GP8O[1N-SR,GZ?#D=GWY^'] >=YO28Z:)&^-?),-$/?AYG M/._QIL1>J.LSEMZ_.%>"\)PKI1/WN3BFK+%>928*LUD9Q8M:-U.U%SJ/'KU7 MF&5.G('T 4$E7Z^JI66="V9#SJ_WH?6=YL>+WG]!0=Q,05REH,,U>APS6=V2 M=D.GR.S.\XGA2-LD>J,Y)J=U'_+LA9M'&5C:!M&'O%]Q"V"<4CK@(3 MQ7M3XR'!FUJ>H N$8#APQPP6Z7.R)Y,)[,[6\UP$)P254QHOT?F.O,Q,%3@# MY6SM;G.9%KYBD'/)1=#WUI_,(,2#Q&>;?]D+S491]^ODW(8HIK)Y%,D@ZD+*M#2,)9"D*I8M%.FP- MW2>*ZWB8MJ!SN( M24AP&0TC0]B%V+QY];'EWWH&RS8J.%#^3:6DR/Y+H&TB[PCKP)QZW[;#&%EV M5L?FSL-CR;]MI:T.^;=M1'VP_-M/.#Z;A(\?ANGU:-Z(6I_Y2Z S>#;\A+MG MSCH]MTW.:WL65K)520FID0OCK5(21_+>_P$XXN\%^[FZP1$&K'?$;+E"5$"M]Z&MLFFO;J\%@, MA7];_N_+R7":A_.%]_9R1ALS_O[^/T/^\:^$T^G5*VEY8IW>E\@ #&LB[O!R/*B63 MN5!JZ..&-#Z(#IEQI@;^= )5G(> 7@"=YTZ$4%S)K3VNA^AY(IAI+OH^&AGN M9WSA.FJNO,0HK6;*+M.+&:MAK=")<&ZC@&;*)/RFN+I%55 M@YO*@8OHP.K@-!>TG$SK5HWCP&5#L.:X:-E&"SV%]996]R\XNPHD\CY/#&;%M]W1/ VT_8AW!NOO]\/42/NRQ5 M418BRCKAJQ"S 1,DH[)3EK.P.MVM#_/CV,-;#VEY["3Z'HI*[I!6"5N&+3N0 M=BA[XX:LDS$U=E/A)FCL*?]#&!BW2$P>"ZL%@9877T<#DK_'50'NO'(F:>5= MIXE>IPR-[JK.GV MT#K&O)&H$S R=E7AN$_Y]V!KW!!(9^IL,HR7CNR+'7"D+X&O$ MEQ>5#3K)N&QM:JRGYLE9&HT$WT/5WOV472V&+K3U9&D\1-=Q3(U6.NP$C3T4 MT.O!<@^-C$>;#-*>1@L$R#F+X'31]&W@,>O"4;>.D1X>'!N,C6-@8QNY'PP3 MK\83')Z-E@41(FM,5H-D-7+#(VV9*CJ0/CFGH]69'P8:7Y!U>(.CG1X[ 61W M)?0V)ER;@BJ66AKC JCH-<1,7WFA8V;"*?2=LK2G/B:\N06QNQ@;WGFV.HBW M"QE/;_+W5L)?,SEZ%\GU./D[%OH?;0%@M:WW:BE'AY./$#0SZ$WB7G8J#CRV M CM-_FZAOVT$UNOD;V3(?>21F;'K<^\'E9--@).9\-T=8XT+M?<\)H>JS>W87"EF--S69PVVC&E%2H= MR8Y!S$5&(4)AYOYBS@TO[+FV,P:DHU_4.Y!XK 5T'D(T9))9*YQ4V7G7.KK2 M5VUGI\HPXX/2+D@0FI:JDD5"K$V)@NQ0YFB=H?>-^7UD17G;(&*KHKQM1-]# MB/%! UB6$(Q+H8XHJ!,+R.D)QD@Z@3'SHKD.V+H7X5$4Y>T#AF8"?S1%>3QG MSRI3+.?*5$#PO!1P)K-,8I,)6T^4>Y1%>5LI?]NBO&V4<(SJJB[T?2W*VUFC MVY99[:*.H\"FH.#&%<" M2?>U!LKR>7PF*-@9&@&VWOB_%$4Y?6+EBVT<+"B M/'(1 _IYT4 =;V_I*^=8 $:4Y<"M=H49T?PBHD=6E+>/I=%(\(BO"UUN$WAU2X*.'11 M7N"T,ASY8<:$7$?;1/!9*]"T7V9I15#R,#O':1;E]8:-;>1^2$S,4Y[+V^=+ M<3P[65-"=<\4"AR3%HIT*BJN<["M1R-TH>O$RO*VTF17B.RJAH.9'5^6#F9C ML'@RM)Q/G.PN(T@&3(,JE@Y=C=$WS[0\OOK-]D#970EKMY0U52M7']<_ZG4, M__%O_S]02P,$% @ 6H%;56R-\8V3#0 +0X !0 !S<'-C+3(P,C(P M.3,P7V334;]\'\.^8L2:3?8F1G2++##&6B2+4*6RK[- M_)AH(=MD#S%9)VELA=0@NZCL6?^X_GOM^7^?ZZ_,Y MUSFOW MP%'N(T>X1?GXH0(28I(P"3%Q\1.RIQ5.2"O+B(LKGE%25E-'(!"2"CKZVAIZ MI^$(C3^'@#@Y.;F/<(LX.4 / /,$@:8.$%@7E!S Y M$@! K*"_ _PK(!8PA)6-G8.3Z\AA0]TQ@ 4$!K- P*RL$,AA->JP#D!X6?FD MU W9^*W=V*4#!31B4@LY9(QJ6@6O#&[(PMV#8CFYA(1%1,7DY!44E4XB-+7. M:.L@SYV_8&QB:F9N\P];._NK#M=N>'AZW?3V\0T."0T+CXA$W[O_X&%<_*.$ MM/2,S*SL)SFY1<4EI66$Y^4O:E^]KJMO>-/XMJV]H[.KN^=#[]#PR.B7L?&) MR;GO\S\6%I>65WYN_M[:INSL4O?V_[A !CT/_FW+MY#%PL$ H:P_W&!6,+_ M-/!"6*74V?@,K=G= OFE-6(X!(Q2"VM:.67@5S8$W8,&N81D$7-RFW]H?\O^ M?[#8_TKVO[#_6!>0$4L+NO6"(+2G\O -1EO_";]$K*:7IK^E64 M-\6) K]=SY9-D_]-0,7 M-?"P62UHL7'V@XH%+E:N+HPQ0$LD)[)E.W?5[1\[KHM:*"%?-($6$Z)4DK1= ML!"KL$?S,WX?D5\I@]D=EKFG$_+(J5D?_M1N%F3,#@0 !+L@XO%KQRPVO0;: M/^^66S?LJK;3VA)*PU]<]2'GO>N1ZKX9 %UPHB]UJ/"-\X(M0]H)64\D\]S+ M\KGJ#$3J;9ULN5P[TDP<+T226O@79P[R55B80(.ZPIYMG^2CL#0DD9)1#:8% M5@>@>*!;Q&GPL'J9YU-6XB+?)JZQ\VUK/*2 M>&OX=MWKRU4EWL)[=C-.;4,,05TFX K/.]"5<*52;KU379'I5M&3JG+56JA. M!0W;G[NYT;M0[1_*,4^YFAY(^XS*1-L*9FPA?U-OI20XP(3$/O]F MD%+,H7%H<9]ZP\!3V,@2F3WW5Z&HA]4:PD-K!3KLIH2]#(:^"=F9+G@_\$W\ MNRT)FSZU-)RJM!YRDFR[45D=0&1M.R;[J)F,PUJON[PK)&OM+^9FAS$!I8-: M8RO%J=87,)6-7^BUW"X$R\ZQ:T++5@<*XTP N;7.1E8I)O>DJ3MB8J5SK$"7 M(E Q=+CSL'778*@T4?M0M]&=:=:OW/'B2CA!A=122:BUOB XCS>-S.YX]WMW MIYYK1MDZYRJZ9C;Z'J5RJ?V+S*4!9>+95M,8_UV< D6>U-[IO]-R_%MQ"+^) MY-P#P5]G;\2X9*D$N:T8H@\/C_SNN3XY?VHT2J*EZLW"7UC/P,@YTM<*5*IB MYFBDW-D3#(=/D;>S2L/+>H8FG,W M:ON<:*PS/6ZQ(AIB>%2N',R4A2]D E> MVAN\WX71QBC W!9%_>M>5'01E.;3IV<^?O=+S,OV6G"8JHWJ#)FTQZV_7M7] M-7QAYX, 8\U,DM5^8!>5KYI,LO1\^5(H#!QRN298W$TO:]-CF_H_'3;U'N"SF[.7L>21IHVO[P+&WAJO\5@N5XVM 3F 7)WG_GF,!VY#F\:;+?LB8)YUB>*4RV1R1S=2" M]S?QZ.SO46^8P*/0'O)6%]8(1?2[GU"8L.,S3;;A_FM:%2!K_YY86:D9CT!3 M?QI(UKSUZB.=U:&XM=(O"*9N4/JH5S11K:>>T[;HWE4H7E:QVH0UC(AYP=!] M^5T?5B^/6K;MXY*Z"U< M!A.0"%>O_(=8;F3+)Y!-I6F$#9A5VZ-J7GC%8- M6Z2U/H3=A+3V=5D^_4LZLB-:+CQC_HS0VHB,K>;9^W0H MJA1-)R:7)F%45 IC3$22649?N$XZI2X40Q(8G:&>_?'/?]!P&F\V+B(EXZKJ MCAH%ZO>>/^_=R)$4P:YOMC1NKS_G=V"IZOIPAQ+_4"Y(JUPV30V5CX9VF)&J MCHATPVXMXS\>CM+L7[IS>7A>"XUVY8 2[>E?G.3Q:-N)AQ6K:K_SPXMI.-WC MAM9=1EE"R!)\Q8Q-R6BS;(Y4Q.L*^^2\$Y9:&BT71.F6 0Z1I4NJLLDS:1UC MY3YX**+OC,/I:8MN%Z/J2?QC,C5WR]EH*.J,=>YDB/HG?OP=7=Y5^]@"V)H M:NYC\,F(/N,RI?7!$#K4<-A W,&$.\C7QD*YP[/8>/+N/AK_^2T&!5U!1A^M MQ-])0JI?;%B,K(*]^4))W/ZJ21]Y?N^QR%WV9A319:.Y"5/F)]2CD+I:FGHC M3=[=D#T)%^A$J7Z2T]EKJ[HP\*O=2QL9G.1FWM?B2E[$Z >X\C\YBK)R6;1# M/43M4Z;'LFGF[[9"_1P12Q_B:\"C."K77-_WA7A[NH'F$A/_Q:]Y21VJ!18=S!U0_TX O!]GA]![/0FUY\//D< MAMNF79N+*:'Z1_H?!>OG: #(#(84#3?GA(O1I Q1A&H; ^H;SKOA0)(U^S!\ M)KI5='8LG=K7ABN]M+MCG>XFU0>@1IYN,X'P@;'"V JNC&DQ@C-.!EYX)?GJ MO#?1C@F,S?8[%)'>M4?KI[7)OAH57(J),,O.MEZ.,B%3*J>A@LOP[B9-BU!8 MRE?H#[^L>IXZ)8>*RJ7"AQ\#*/.ALGBO8"; *]U(LM3J&N*4#T\M.9E@=9:= M0L1Q>$.?K<@I=$^6^6M6V/!F09-\15@!;"A8Z>81=:OY M6_299S^MJ&)DO3.%G<]\S'Q+$/U;AX]MVG]#@M43NN/+8_4]:]ITNNH@3,X( M!=&,]J^INR!@_Q0C95U[JM#XQK[DB./Z+@82#I>Q?=R+54QLY M&>Z-C=$2Y'BJU2M3%$FV>TN0'&)_6Z^-)%B%M>DCIL_Y]N5^V=9K'ILK*Y8? M#HWT!]:.":,&[.CX]GP8<+3]FU/#@>7KZ',TOYJBC$WJ(WH%6M!"J6FF M2G/&9-8-W7XIL(UY="^5"MUX>>-2J/XB8Y<.+[+U&=R5$5Y.9P(/D1:)\2IN M/I5RID4NE:MW3ST8)=E@JCY/6CTL2KT7*-<#"5RE#Z[Y[E/EHXS<4/&:/E4B MXO'%>Y>Q^.NG"+7#JPAR(&L^*< 8]8 -3J'0_+S?(D)=MEN@5'G^% 7^M98@ MU!ZC'70CNV;1E&4. MFM^5A#9;@M)60_DHMZ:BS3^*7BN.3R1",B'$$VGGY)?\\Q[#\;T)31>\IJ8F M7KL7O8Q-4"Q1*TI0!/[-!C,G_@E02P,$% @ 6H%;582/I\R@!@ 2$ M !0 !S<'-C+3(P,C(P.3,P7VG K9)24%%CIZ^<5ZR6FY">EZB7GY^I7)!;H&^H9Z#/8V%<4 M)"9GIY8H)*6F9^;9JK_?O5]=(3/%5CWU)%&A(CRLRE*2;,*6V"J5EF:F6*4EIIDFI:28ZB8E&J?H&AJF).HF MIA@;ZJ88&Z>8FQI:&*49)BE!K4])AMM>4%J4 [8[)5D_-27"#>WB):, MA(P6R>#_ 09!#@95!@UF1B4&)D%&9D'&_T<8Y!D8&%D9P0#6-6!D8F9A96/G MX.3B!BK8*L# Q,C,S,3"S,K*P@*4K07*,[ (L@HI&CJR"0RT\:!HT,4/*L9)14V<7&+B$I)2JFKJ&II:)J9FYA:65LXNKF[N'IY>P2&A M8>$1D5')*:EIZ1F96<4EI67E%955S2VM;>T=G5V3)D^9.FWZC)FS%BU>LG39 M\A4K5VW:O&7KMNT[=NXZ=/C(T6/'3YP\=>GRE:O7KM^X>>OAH\=/GCY[_N+E MJX^?/G_Y^NW[CY^_0/YB9&!FA &L_A($^HN)A869A1WD+T:FR[H0XU=Q=--TE;_B%G^R8HV/[@I;7?G-NW*6]IP4 M9YLTL\2W\_:W%FVST]NR8?.6?1L_S-AV>4EIY[O+21..-S$PZS;QJ_0\WII5 MT??:]2/OZMN9US?ZKKJ]V#];=:?.Q4T\?Y\^8+X\^4[YT5P=D^#-W5]WE7WU M_G,N(SE=X[-38=G+M-E?46$M?YIP<->DFS/E3,HW286M6Q&ES7W@\N,?R0DA\Z_4E<:'?E@WT[1M MX6J?RZ_*>44F'TB=LFO]*:^6P(.R!I;K-E4D[VQ\.%?,XTG0NAXC";D%UPWV M<4V[TE&RMSIPTZ;S?ZJ5VVZ?=TT^U7]NUXMK7IK%15M_K'V[;/GLCL/;+;TG MS[2;E?$V^_6R^Z5]:?FLKPI_^/N+1TWQVV!U^AOWXB>'&IYLVB@S[>3KXU57 M+Y26;O]P;W.A:M]\GK"6HR*SJ@1EWO8US(N>Q%;];(O\P2H7X;^+GIW['+E3 M^?V=LWO^,SP^HAN[_:+<,P^Y7QJY:]=Z9$=+%WYRN7\_N4=,\D$R\YW/L::& M!BNY/>]'O\W?&?\Q759&U"M4GS4].[]NVM6M2W>K/]U8?'B;4.8\Z0V;9S#J M&&CM8+?(*?YU,4I06R5KW5M%V<@&EG\Q@7$Q2YZJJU_YGGG4B4L[I3W0552U M5230@16(Y?_?! !02P,$% @ 6H%;56 XD>PHU0 7 0) !4 !S<'-C M+3(P,C(P.3,P7VQA8BYX;6SDO6ESY+AV)OS=OP+OM+?_A3^.?@3D N^%/GB]M_^].WK.XC_]#_^_>_^[E__ M/PC_]ZO/'\";)7^\EXL*O"XDK:0 O^?5'?BKD.5O0!7+>_#79?%;_D0A_/?Z MIM?+A^]Q?;66D/Q4_W9] M:9D?NU _-OSI?__RX0N_D_<4YHNRH@MN!BCS?R[K'WY8 MR")?BB\5+:H/E,FYEKY^6O7\(/_M3V5^_S"7JY_=%5(=?^R\*':>:J0D1LHP M-5+^_:G!?KI ?$_R5H>R>A"N5O>C+QF[,/WH3=ROFA_D\ )O#7.QR,T+]78A MQGIWUT-=+/KP$OMZ+985G8_P6FR&V1)Y;G[P0?^M'<8\J(-,ZW%:ZMX257ZO MY$+(ABUW'@UR\6]_TG^;/9;PEM*'V<]R>5O0A[N#%N"Y66M&"GYFC]HJ?N'GZ M0P5WILL8ISW5KY8]WZEF(K18?P++0LA"&]A'5#QX]]]()8M"BM?+LBIG,0F1 MBD(%8XQ"B+(D@31$3/\-)W$29'&H4A=6V7GZU!AD)1S@1KHKL%@N('_4/UE4 M;ORQBZ$=5_1&9F!>6(/RN@'EHW[KSF#BS 5'=??TW>\^>]1O_*A:^]_S\8OZ M?;NO'LM\(+/J+K_[9^[O!\+O%_P0M)2OI'-?]\OOE1+_MO=3T)^-EFNPX9T#P!^:B 7!WIJJ>Z'FB,-?11Z6VGM#L M4U[?Q_2CP@^:7*7\]"#-)FEQ^\&,^"&G+)_K86[HLSE,*-\\RAF-:18FG, T M1IH#8^,X2;B .$&!",,DD8K-JK4OZ.QG:#NP$_F=\'CY_ AK=Q=0C]5C(<%M ML=2FP4,KK1N[62-O1VM#X#DPGS4B7X&UT*"6^@JLY;X"U1(P"6YH+OQQF"M4 MGLC+>MA16RZ_T^[7^7*KRHZQFA"8T4A&#H5*) M<02%$ ^ UL+V<^T> =?-SWL9 M9&,Y?1LI@183-')> 2VI?\_O:30\NX&/#/0B/N'3"I]R$'?@498H*4%1EP[DCB#;#=!^,-K8'+H"Y4U.=@A<8082LG_ M?+M\^DD_H.$$_9<-%9QY["@T8*?:B@(LKW;[_,N'DL_>TF*A]S/EC2R^W-%" MOJ)ESJ\7XDT^?ZRD>'OSY9J554%Y-6,Q$F'*.(Q(0"%*@P02F04P"B5%"">$ M!,*&#QS'G1I!:+Y=V0YZ-PA*([T=*[@"WDT3 \(X-&^T0@,M-:C%O@*UX$!+ M#EK1@98=_+J2WM*E[HJP:..(Z\B)ET!Z1X )('XY9_<$JR%Q9\<;V?-BI?\3]87ECW[>_W375ITOUEU9^>JQ, M*H3)+IEEF":"I3$4B8P@0@Q!AFD )0XBF0;Z5\@I(N;,>%,S9M;B@M+(>]68 M,R58;D0&/^2+]L>G_8.]L+?E'6^(#LXZ*S"_-& VPH(M:7T2CA4LWNBF>[21 MR<9*]4.JL;O-\S+[LSD\G84A3@5/%(PSHB#B)($L"CD,4DT\J0QD'#''LYN. MX:9',XVT]4(L5Z)>U?&USL2=LP5J,4=P8;9@65H Z89;!K6 MRX[BUJ;+[ET]G#*?I;9]EV1IL\U?]PS8)A81I0$,:PH"%,401 M2R A+(5)'$F:QC@1U.I@N,_@4Z.:SU^N2_"/]/[A7\";+]\L#W5ZH6[AGAD0 MRX&99R-Y8\R 6LS&7;!CY;2_.)L7=#G>#LZ: 7$?R6.SA7]MF8/'&F:S (@= MD[W]Q7VMR)\]^6]ZXM?IQ'%]YGB>G)[:[KAS^CZC=V1WB.LLQ/9!F0[ M.],3= -3?6_4^D15G\/#7P3UR9'&CI8^I_*1R.BSM_0P*J^C("0U#WV6#_K= MN:.EU";L;4'OVP4V$$&D0I%"D64!1((22)$,H*1A@()$B)!9[5'MAIL:>1AY M&X\-V$@,6I$=S)KS.%L8CE[1&Y@_&N!J6^00N#Z&X7D$'4Q!KTB.9/QU(NK) MQ+/&I=.H._^4\88AEBF"&DS0BB*!8A+.#0C?6":RC*&'U0=J5!AHD%+)HQ.R70#S.:V!G MGDYO5D=.=MY2_ IL5 ?;NK?AKF"E?;T%WU(3M !<@1:"[5]>;9PEG\^\-;VS MJ4>=/<\YVN/(_B*9WZ-.RZE\\G&%Z+= FO*$XG$N/ZG7M+PS_V\'X#[[.WQR?TH^5-U M)XOC.-9LTP7+M_(PP%H+' BHJ4ZBY-X98A1'4/\HBQ"27*7:AV^[AID:E MM;2K?*CZ0+X5N+>C^0S<=OSH#\2!N>\B_)QIS@X63Q1V9K!1ZPW>OBYO0]K7BG ME_?(;>.Y=4_+O./'[;CLTGUI38H?EXOEJOI'0Y M.^[M9D@6(JHX@4G,M7%$ M8P69E#$,N.8SG"'),.FW%W418VK"?6"* M72FP@7Q;AP/\1]IK]@'3^_[228@7VE/V >KT/K+7T_K1YM>"+DJE*<5L5&7Q ME',]W"?U+E_0!<_I_/U"VY*/S9Y5CU >_]6;Y3W-%[,@) $)L-#&(6<0(91 MS:T<:@Y5))$Q)]BIZK1/X:9&L6M)P9:HX-=&6,<=J==)M"/NL+_/F9G=N3]D1C: M3#P.@D>&.J%[%[GH6[:(1?]K0RK[3QMG'WI^X[32S2^[)\E.+- M8Z')H.U*5N M["&:#D'716$^@YI V#/8OJXMD0JN33%G4PNWUNX*K/0K38GO!@2/^\[>*/O: M<[H+,.Y^LS= !WO-_D_JE2!I6L_H4=H0E/)K?E^;3:_R^=Q45?F@^:6L&AEF M5,@L2#""::9)$Z3#TU$R>1C90U2(;SQ!KA79* MVW/!WN*D8C!$!Z;!M=RKV+X2-)*#3PJL9 H[5*8G7(C!X)[M,S(%>S% M"O;#]QG,&]@?:BW\I47V@.Y,4J3+$\=,B>RAZ5Y"9)\G]%@+3'R,*9S_;EE< MW]=ED]\O^/Q1F$*I6SN:3VJG9GN^%6"19+%>"0B'B(L8(D5-#: 0PX01R3(< M9LJAL.'%XDQMS:BCU!ZT1G7E==KH9"H@UDH9LZVZD^!^:^^HO\-YWG6J>=(/9>A18OGRB' M96O4"1MI*?/S:?E:W;PAW+GB73[*>*N@-T1V5D9_3^T9W;G3Q.2O,K^]JZ2X M?M(_O94FY]C(]%FOSCEX+G*XK4=?AQXTI[@G,0:=KW.3U[H:QK*7Q2VS[+S]+L%)NFN[6S MBAEWY:JAT]I0H3*B2/$,!A29J"Z*(8L3MFN MHW?+%]PW,/["2;.CRO&F8D2W?,]9<&_;X@4\7ZU=+A-FW/8O7H [:!'CYZG] M*/9:B+IS,9T;Z_;]XC5]R"LZ-W&YRZ:YYRR34<)3%4-.D6D[I0+(%$-0A&&D M_Y&%41:ZT.CY(:=&E1N)ZXT?U'L\W@CM1HT68-O1GU\(!Z:X+?1J?X=&KY7W M"C02-V53_!&2,QBP%&)RAZ ?3)RN/."-,6/6@V]H=X):)TAAA@-5 2Q MJ7R',L(A03R %",A:(1BD41N 1$GQYI>W$,MZA58N,;3GX;3E.OT_SB>B%V?[!U9>.6BG"5,RHP(!D-3AQDQ%D+&4@05B6D2A'7;31<;Y^55FIH-U2!B?.%J6\<:'K#"!]0 U7=N0P0V&/E;4Z8SWYX6KPDH-.HJ.0%] M3RS'$Y*L;]99?7#V7&\K_D+GCW)5T\KX/'Z1U=U2S+C0]R*DEV(>$XBDX! G M(=++,V.*IB9.6KGM"FR&G=X&85/HLC2$R9N-<]FY<>Z/.N4A3;)$P(!'R-0C M9Y 126$<12&+0Q7I7\Z>9,&6]EE\GE!OEZ;MP0=VSY:@6(,O>K2_L4++ "_Q*W%5OK5KBJW591N/_*2O0B.TSK)&_IHSA/HI-+V(W&MF%+(DDE8D(8$HS!E&0A- D5T,:AC'%"D=$6#5ZOQRR M4=LW7P)9%G"-F=[D(QII4R*-,TC2*($\E10'"DLL4[=%K3=HXZQ>?F"S6YEZ M0S'P$F0P6+D,C6@_@NM*&[_LL:I+9U1+<$,+KY$H1Y'PM,[L/GO4!>6H6OLK MQ_&+>N94MAV6S:JS.17=.AQ_];RYI#T6K3/5WM&\:%8M4PRWR6#:BU7YRW*N MGS;/JV>S:YIQRC.<80H3)$.(B#9\,8M2*#C!0:"M7Z8W&2[U?T83?6I,O9'. M,6ESO,FVX[-I3N' 9.DA2=2HW]CY8 N (P&!&Q!JIY_'!-+19\Y7XNEX@H^; ML#KZA!PDNHXOP:7UZX[+\_;^8;Y\EK+>F=VL.I_H;]@(V2BU$72OAEHFHE"1 M+-"+'-*+7!"%D.&408(RD?(L56F:]"MRYUW6J:UJ6Z3VMJSR^X8435WVK?@5 M\*TTIPROYI3_!C4X6KBRS9D'-T5=(@;\LA1R?K7-C'W+Y_E_/RS7Q6G,^M + MX58AOH[%;J5L^P*LU*T;/S?>KG;YW*@\4LV^P2;'>V$__Y*^4/6_P2 _72)P MN"%[1I,NJESD\\^3>DN+AG?\D< M/_-FMX",/AL#+Q4[$[%1"*PT H8SP)9.=;Q#JY7)@VH6F*LV!]AC%*Q/H'T% MRGJ1:=Q86I\P'H3;>GUXSSW'(ROEWQ[UZO'V2?]A"A9>?\_+&64\D'IC !GB M%*)8AA#K#0-4-% B$V&29E85%LZ,,S5BW8@):CF!$13\:D1US(0Z!:REH7TY M7$,;R7V0&&5<6[);U0,[\,SE%P3H&]8IY)U-'2G^\['I962HZOK3Z_?OEL476INF:S;[**M/ZBO]/D-)&F*.$BAI M)B%27$ L60PY1U0&H4I)*'L$^ \AZQ3C?W;5,5;$#[W_=:/Z&UU+U[(W MS(;V&:_@VDAZ!9@TF9'@>CY?_D[U%U);8Z\+*?(*F$7S"K2*>'016P'FR_?; M/=BX3ETKQ0^\M79W]OL4O,@U;+S8F_'+NVK&I$4QW&6FH\\T=]\E$"6XZR ME%6YCD'=%(J;A1F5*HQ"J!1'$"4)@2Q.B>G'G@98JBB2;KN-4R--C2(:08$R M 9E/1E3';<9)1"UW&#YP&GIS4Z>A^ MHCFMZCS]?P'158C2JPS']1%GJ/]&KN(D;L/D+CGO/#D/02!5%DH,<!@V/7][37GF@^-VZA]O1JL.G<((8B9/$J3F#[)HQMD";6G5#0#? MP"QB!-LYHE_K -6R@$8+CZ:>(SZ^+#_;8<\?*'N^/)7SV/;\ MU.(IF5?:8"W?+YJ.;WN9CZNNH":Y39N?G&-)J8!1&*80Q7I?2I(L@ ('&0X# M&<32B=/&5F!RW-B(WW9"%LOYG!:EZ8W8V*ZN39''?ATLO6P3GN2AG7<6N?:E M;4?F+1@V/9F/)-VOP*@34L?,N1]H'L?*O/:'.:9C:B^NF%V ]'9XO+$K>/UK>R6?:<9Y9E+^VT8/LBRE'*WP]NJC^7SJNO0 M9VF.M?1#/ZEW>QRD!^;@1HDK<-"$GAB#[/QBZR^/;R3LOQ%WC-9S+($ MA8$(,$0DX!"E-(8LC E4.&9QBM((4V)M+^X]?&INZ>D#UG/:MB4WC1[>S9>_;QJMHC@,",8(*L8CB!*506W"29AB MC -))$L#I\CBKL$F1U4K6>L:;J9E3"UN[YZWG4!;>D(]P3J_*#?)+SL+58*96A"C(,,>:AZ:.((4$TA7&("8KC-& R M=3$J.L::&C'4LH'0S7#HPM+.;O"$T, DL GT,0WYC*!7H 7L_$;)V7"PP,23 MW= UTJAF@X7*^U:#S2T]4QFW"Y"V;[-*,BQ,> A*8[W=D-0D,@H,LTS$29BP MF 96GI".,:;&"%W5@1U3&H\ :D"JZ,"TG]T[R&]>L_OGKY:+>R#S2^5=9W$>S M4$5,Q@*9$O:F')@*3'JD@HJ1-,)1$&/'.O;CZS UIEK'"=$V3JA820[X1G0P MSY5CH.Y+O!^6_I9IS_K0;IS+&[VL8\^VD#@2<;9& VS! 0P>GJ//7F8N?0:@ MC:S!^#%H+S-%1\/07DB4?JOL*M[CLS;1%X]R1U23;%S7\)\E/&,A#@EDR'2$ M%+&"E,0IC$B*@I#$ JO 95VT&G5J*]DZPJB5>H?07CVW&?*UZ(X^?KM)L%M\ MO$,[\'+1A>J562>L8'7F=2>8/#&QW9BC\\?6I\4PM7O_Z.&6P[D-FQ1F\@!F:' M#0;>B[\?5=E7>MG.L\?-(3NFUD&BV-&+>@0E[62[?EL\:K/F>B'>?G_(:UY8 M96HW>=82QU0D(H0L$10BEB40DTS )"(BB E3*I76$4LN(T_MRV[$!?]([Q_^ M!;0B@X.:GP[)J^YST4T+@R(\,&7L)\&W8)L:#2NHQP+9(.%Z(5Q\]=^*_>CV@G]'V458F6*0^%!92O'K^I@=[OUA'S%Z; MJBA-%KT@1,785#3!,=([2Q)#C$0""9.<9$C_#[-9M:SHW,ZBLQ_::5%8"S#< M)V0*X7,3]?30RFXV/\MUW#E="^YF#3K,A9VI. S" R\*!MPZI.QF"]P?C.3 M-*G8A/=?GX?9V=)T1\R3&>HP\*@VJCL@^P9LCR?T;%ET/,I_53Q:;SNUW1JE M,*09AR@+"*2)PI %*HXYB0F13NE)W<--S8[=?#9S(RZ8M_(ZD]09E.V(R1]V M Y-15S*1]SK<=JCX:FC2/=BX74FL%#]H+6)W5\\C[75WW?5QN2R>IV?V?B%T[I551+#C&411%0A2.(H@R)*4L6B)"&Q M$P<-(N74J&O=A?N3VFJUW>C9;L6/'6&N=37W;;1MJV*TF=J]S@"&>3L9'/))>'S5O'S/H79!6KMVPOJ8/N3;WC4ZKSKG^SQ\&A=Q[(W6?,KY0"_4! M8#[=/'V(P2Y=3[XM\JILS>GGW8[NLTA)%0H2 M04G"0%N_3)H.$@ARO8/'"-Y\^=9W MS1A@=LI=>039:M0&G9D(/?FB4O5KY&)[;5048A4&M\2 +S' 3XWV= M&4#4%UINA@/]]*HSX)A]ZA5LY#*CW"WG^L:R:7?2&*>"8IXIR6 0IUV$)>(6IWY><1R:E5\ 0I?" M"3ZA'*N4P@K2I0+E-J2R%MM;>05;:+H++IQ]RH@E&&PUVBW*8'W70*5ZW$93#),$QYJV$P6I3#D,LE"(*&!92!*W9A #2&GU:8W:1V*WZ&[3),)W MI=T>LVEIYK_0#/WQ4A:.ELL=L1IN_XD8J^!M#PFG5=.V/\3.96LO&*K?@O'J ML929 MMEM=IC9_ R\W*W7!EKY7VZ=)VRJ#MBW=2NG:L;2E-FCU7A\=@U63MBWE_:T_ M8TZ5IP5I%)%'7:'&G(3])6O4L?NM8:]E8830K[(L/ZDW\F%9YE5;VB"4L0Q8 M$D/"@A0B&:60T2 Q1=6@*9+4->&MB?$%HYIW\"] MB)&WC>09UT!/)!W\T[X1'VBUX[/VNG&G@TC M-J;B+ CU)8I+* 2C$&680!PC 8,PE33+PIA&PB5#9.O93CP[0@K(5S-&_RCJ M;=3L;+&>6 Q,G1\L '#OFW"HJJ]&"%M/'K>SP:%*!ZT*CES2YRP_U_L[8WWI MS5KC=\H7MS?+><[U@^O_/C=_;L*',AJH4.(,\BAF$!$60AQ08CY@IL(4(Z[L MDWW=QY^:";6E =BH %8ZN!Q1N\^%S;'_H @/?7[3#6[SEV?P:_M?FW@K+[B[ MQ H,BO]8P0-;\T W\_#0JN$M>* W5MW1!.Z/'3&\H+?.N_$&_1_C(W_N5%&K M^I>FG%4X0S30*P0+(,5! I% $A*5",A9&J=!+%4<6A5_[RO U!:.E<3PL'YB MDW17==6[\S,G=L;DD$@/O( <9.1UU!JLK_!<9; O=(.D[5D,_X*)?/;@=*?V M.3QGY-"K#WIW_;Z2]^6,I0D*E$0P)*&""$4)Q#24D(H@) IGB0ICKWW/SXHT M-79L(G*89>0..XS< ;\:W4"MG&O&WN43;$>LXT[;T+;ZI;%6=C,V7F#5 <@O M'4>U$>B/$39U *"W**G#)_>C\I^72_%[/I^ORNQO3.=K\9^/954W?)SA1& : M!Q@*@2A$.(XAPZF$62A8&. X#%*GJ":K4:=&R'H=W7+$F[>DJ6=3ZAFC<[ N M ;6U/:1UBJT;]]K-B!V]>L=Y8 9=R7NU:?NPY?38DMD?.3I!Y(G_[,8*< M8-AG,;>;>_9/TB9L)3_D3W7 S?N%D&KSD_>+2K]&^6%H3GE#B^J3.G*NLY<2 MRL(PB1E+82I(!A'%%&*<,J@PBP5A5!+LQ'##BCLU:FRTA;5R=13?1N'VAQN5 M#Z/^2F#4-J$HQ\X_'5M##?N:V-'N="9_8+X>9X9\MIBI /&.* M.7F2W468V@I45T!4=5/=VC+/5Z+[KB[9-2UVJ\.P8 _,^&>J3:Z5V*HV.4B7 MX_X@#EN LDN *12BM #(LB"ES9-ZQ&/L=UZX7Q:5B;]?]WB?Q4R*+*8,ZK\0 MB(0Y0"*1A((%$JA7+2EJ@Q07?'L [WP@Z1$AX17*D@(@UHD6+*%TCJM])T+Z3ON(BK!'J M#(,X_Y3QHAZL-=H)/M?GG?N.F387,\%1 MQ *!H:)$+R(<1Y#&20 C).(HPR2.&7591*Q&G=I:L*:-:BV]V])@A[4=PWM' M<&"BWLC;1F$<>JG])\,Z@>2)+^W&')7VGYR^WF_MD@_2-QVCJFKU?E%51 M[[[*3]6=++[>T45;S^8OLC0A>6T2V=N%F.&4HB!0&:111B"*: 19&$@HPDPR M)5FJ4JL2PV,+/C4J; 0$=)7 "^2B1R&RT:??PL,RT4D=F)VMPNA>=98L:XMD M;@$ :@2 @6!3T*Q];2,A\]E9O":MG+>']R[+!\_"L6Y MJ;HB)L>[>L9RTKRHF[%N%=+23% I8\Y#R C6[))B M FDF$,QBE7"54BF(< K-=!E]:F1CY&R:#(.UI+5S^./U7QPC)9TFPOUD'X\=E.8)L;5\\W<))TW MGO ',^ F8#AE(DA2EL(X)0(B3B@D3*10$6T:)0AE21BYD-?Y(:?&6"N)KT M M\_HDJY;:C;(L\+;C*;\H#DQ.G0 .&B5M#Y,G[ VL$]4DKY\#P1B:.W!Q@P5K&5#ACQ[/TP.WB=][CTQ6#@K]I.>2_E*=AXTFE?D MF/C;_H^COW^9)E5;/I>]JBYOO\N"YZ6\*7(N/R_G<[4LS(VS,&02H22$(3([ M#L$(I#*@$/.41TG(8GW!*)55>JLP-:O"9P^E+32.E&):(0)J2&P29Z;RUMF9 M0=-^EZ9PKOU"K]'HS;KZS^1+UZ#IK\ ?HV;-Q1/DNQ/8!9+T;+)B$%Y411,= MFY>_O9(+?G=/B]]6)Q)1F-*ZTPK-] 9;)2ED*<,PS4@J14(RQ:T* -L..+4% M<4=>8 0&:XD=>ZZ<@]IN7?$)X,"K0!=V QPUV"+CJP_+N>'&;<9BJ?Q!1Q;; M^T;>%)R-^_BXK)-RI3!D^*XUS2A3,I$DA9S&(404"4@C8N),,4$D,]FTXVP( M>HD_->[[^Y%,\7YS/; 9/O@,3M\$/QD<6.T$!ZZ!T']]-%'IILQ-ZT_]U8 # M6G2F8)-?-*TO;8_W$_Z/88M?-#'>[/#+I+BXW-M!E@?]SV7Q>D[+\J/^U%L[ MD7-,6:HBB##G^H](04RQ7NY$2GB&PU @U+-^F\WX4UNE&O'!B1I<5Z#6 =1* M */%>^PH.QR,[[ETF;_-%W9]!FY!MBIN)9!!ZL:5%:7[41#4X M!C5, ?X9IAE641SI]RFJBSFED.$LA*$2(>$82TR#]LUZNSA3SFE*BKF_5ROU M1GJK3)+D?\/W:3(;8*]OR'_';?'!J54-$3 8@4T\]A]J=VP]YW^W5G:&:,I$FL (2;TEEV$ :9IBF G)><044\*AOH%? MX::V7U^I5WL)MQ0$K8:@5A%LZ0A:)4&U;/IV.37:]#S5W:ON2T_@T*OG:NX^ M.<_=U]7<@2:*WR&8?_A)=2DY\'*3.U99@:T/M-R>9-9.5";O1#SRJKQ>B"^R>,JY+%O? MJ^0JBP0)8$RS&")BEN. 2I@PBE+$8LE"JS3:SE&FMJZV@M8Y4ZVDEHS:B>69 M]B0MD*A:R.D'["U"=+_VFR NI\]#K?8J+E3-.*;V!54R=AXWE6_DYQ5 M[>[W"[Z\URO^][??C9= OI(+J?)J)@2.ZHPLA)'^2TOJ.AWUY8MYQ"V]HJ?J^2]#VMGZ$HI]:F"W$&]G\]_WBFO/B46Z7 M:IX1$N.0QA(&<6AJ_MR>;)1O'N5'^;WZ^KN5Y"I$91^)6,W4NH]!79$-0:P Y-7HX+) MF6R5:%SM5VO:>KXRKEDFP0W-Q17X#TD+\&GA\<3Y4A ]T5MO,4:EO$O!VJ?! MBY_7.VZ9+GA.YYOCW.OO>3E3@B/&HQ@*K/D.93&#S- ?S6B:Q!%-8^'$?"?& MF1JQK<7T!J8K?H U2]/&I3B^ (V48",S^'6H=NHN0 U'-$='?6GBZ8+"@H@Z;^^9 M5$#GLFQ[2'Z4U;JQEHH"@12,4F9JE2H*<1HR&""24!ZD622=7$5'1YD:Z:P: MPO8L8' <23MZN1B?@1!(VGEQSR_^D97R M;X^:3M[JYZZ_^) G3 @!4T*,_C\P0WWL7!+Z^]Z-CC/N]=ZEY\+UW7MR[AE%=\NNO M>77W^K&LEO>RJ',4MSIY/N\%?&*JE_P$1S!M(L12"4DJ& P3(JE,%4]5XEC6 MR%6&Z7'%O5[XGDW4YT$+^;4*33BO\3!62_!%5M"IG?PE,V9'.P//P\"DM)(> M_*[%!ROYK\#ZY[4J6__>\N^:R+;/DLO\R36\ND^AI;X@^ZN]Y"S!V.68^D)T MI$)3[T?U+YR\;J=EGZ[E75-X%LIO%O, S,$+0NS[ZHY8T:3F"M!."1"F=0U*2$CL8", M4YS2D#*BG#HH6(PYM8]].ZOIN%>Q64T=SW%LT+>S:CQC.C1#:&G!1MPKL!88 MJF4!CT1L&<-D;>@O?,CCARX9PW!8?">_:V7102_7I95N2K2/),L2!&E M$128:;LB#?0V+ HC2#%"* IEG/&P3QSPSBA3HYOU[JJ6LG?E\^.(VA+*A3@- M3B&N$/6.\#T*@>>XWMTQ7B2:]ZB:IV)XCU_<[\-OJD7-!(M%$&OL7WHJ)_?KB+[W]O>;WM^8//Y\G>3?*M7ZS?+1U:I MQ_DUY\M';;AN'$)_U4N[_*14.:/ZN\M(DNI%5N@U%Q-FTFX"R+-81FD28I6E MLX6\-8F[EM^BFP16[RUIWMMM.89[?6O1X%++=@46LC(NT$+RY9/>BKFZ-EUG MP_*#'P#AD9BAE7++-ZDW!"MU@#(U(O6*DU?@P[+4\-C^G'=V]I82H$EC>RJ&L,K4U?K(*0BEA %* 8HE@&D#*4PC"- MHH#S4#_-J?_LJ8&FMI_X6!?CJ+/BUO7LW$CK)*1V[.0#J(%I:"6B\5HVM=T& MV52<0\(3J9P<9E3V.*?L/DV1->.'3QA M-C!!G(3+>V2Z!1[^DOU.CC1VCM\YE8^D]IV]I6(N3L#@Z]FVR=&&;?3=K>J!VVVSUS>T_ETD&_]^K$H-&'/4A8G MF&<1%"Q4>DL6F;I,*(*2,A5A%9*4.&4!GAQI:H1Z606&TX!:>HI\P#2\3VB_ MJ,(5:,7TZ/P;:;GKP M#-C !'$<*[N$/F?@'&K_^@-PI%*^7^\DT*/DVJH7F\3(I0*W&X2WZOCZJMIK MAU-G$=XSCQBOIJZ=+CLE9PK$XQ?H6?5D^802;&N?O+ M,%+T6R\_RNHU+>]NBN53+J1X]?RM-$4JVSCOQ>TUK_*GIK!AD"J1T-A M2E,8)I28XFLAQ#P34&$:J8ARS@+E9*_;C3LU0[LYR:K[A(&-L'6XV4891VO; M<@8LS63_N YMWQJ)M] #K9X>S^: MVK@^WN1E5>3LT1A\;Y;ZM:IRWIYH9A%/XMCTXS'EWTRB#R0<,9BE-(AI0' 2 M.@7JV0PZ-8):2;#&158PVQ&1;_#&$4)BHQ!?YY#(FF%AA% M*&61"(143CNM@Q&FQA\K 9L6GYI&2LCB(F0&IH:BJ;7CH[$F;&#JVCB;K7(S!RTIYP/2 3(VG45YL?3-OJ!UY7+V M?N8EB5QFN'=:55/V+E\\ZO':QB;+1?E*ZG=2KCO,R?+M]ZJ@>@PM6O'\OI+W MY4<-G2F8MYSKD6[?+S3IZ4WFC!),&.<82L4#B&+$((LXAQ(1BE*249F%+D=[ M \HZM;/ -C.*U?IRB5)#1((,.,0!0PO4BHE,$XD2P*4I$DL5.V\.FA)F>V;TGZ3T#6LO8X M'3T.J\.!Z,5@C7$&NL:I$1-<5XU+N[:.JR6XH473T0\"2$/&,)XRGF(N67%!Z9[&[? M1#.UYL.ZKL9EE4=H!KZ!.%([9%!-M%GP1BH_,@+;7_/JGNN (FWE(S6 MZ?5)'8]ZK2FI#7TU(4E-N&Q9/MXW/]MS0@41CA.>9A";/Q!7(<19$,%$\2A4 M*(PCX6:&>!5O:AQT$!3_4S[LB-:.+/UAD2:Q6WIW%0'^4P$^#+8/,KW+A&WB# 'AB& MPXS2;\GX5-W)PF1/%/).+LK\J=T)?UL4DLY-/-[_U":L7JQ^IOG";*,_+;;J M*CZ] M?G\%+/H+7(&MF6T5!C_7,UR[1:]6SL]K\9^/S31?&0^HO\5BP'GPM&(,(>&H MR\: $.^O'4,.-78:>/W'5SWJ]4+WBSOM> SFF:*\U1 (IBIH)K$ MD.$@T-N/)!/Z?[%*G$(DAQ!R:DM(+2DPHHZ5O-TQ@98[B1>>EH$7BZ..*/[7UP)@$*X%!:?:4D-7NC.VP^ZNZ.APW;JMJJ6U1 ML+GG"OR^\FC1UJ/U4.O=+U1_I'?(TEL_V3=C:!?7,;?6AF+JL(M&Z96WRVBI M?UJ!9UF!SUMO1]MVL MY?J)\H/>N(GWBTI_=SF;RZ;]SIXS'D5,2852**20$!&>0&;"!0.92,$"QJ2* M^YV^6,LPM25M(RTXT^C)VRRX'HD,@NV(YQZ-_+!6 !S@/=*QAC.(WL\N["5X MH0,*9XA.GT*X/ZIGO?MBR:44=2!>?<9A]BKE+(PIRU 0P!!G"J(DRR C(8$) M%W$4\SA"F55+[^YAID9E)F+EH96TB8V5[8+6V.I@7=WB0=^W*G;D& MW G$[ M3KL16F8,)EF3NFM)\:9&D&LQ*R# M8&LYW;[]4W#:??P>0!KXZU_CLQ9Q@((;9V#P1 "G1AF5 ^>[-\=:B#I-];;*_YO-ZH]9LRF8H131(:*0W05SOB;ADD"B].\**1((K MD2!%K=L$>^FBP%P')HV5A"NI 7;XK9.+;\0 M.M1U]POE2+7=K=Y*7Q7=[1'JK.IN\9CQ*KO;Z[13W=WAMIX;ML9!7'Y=7G-- M\X6LHP_>;P*29A(A$1#!8"21YN-$4D@Q,08:9BRE(N6*N;5P/CNFU0[2S8EMLV+P".M(-K935G3ZVTH!87O+> T7TW9PN-KXW= MV?'&W>/9JG^PW;.^L6>MQF)9EGI/J?)JEB:4$16G, T9@DA)!$F"&%0A#E*I M""((N^3';SW;R9H;(9^]%LTX@91KF\-MP.Q8H2<, W__#0(WW0BX5TD\U-57 M,<2M)X];\_!0I8/2ADF/")=5":49"8"@1.2(1@E M40:1Q!P23/1ZCW$0"455A*RB\4X-,+5M5B,CV @)C)1VG^A)$+N_4Q_0#/RQ M.J)B_=F>4_W(MUM*_N?;Y=-/^M;FL]5_V7RM)Q\XRB=[3IW5=WOVNH'"<4\% MD9D4M3I#;2O3Y&T;&_0F-T7E%^*SMJ9G&9422T1ARC'1;! R2&+]1YR%(4:" M)SAU.J\97.*IT:<5/NP+?N=88F\#]]SQ+9?B]WP^?[O6KZR<6"M\E=F41JD@E.JK4T20X2H66XR D,62Q5F,9:14_MF^Z&G MMFZT$@/>B@RJCQSVJ,V"^ MMK#V X^[PW4&Y& #[/Z$'H>4KQ[+?"'+4O,JRQ?U8S>AH^^%Z7&KZ@K!30!5 MZS 3UXOM2N UN4K1UB!;W-;5A#^;8/M/ZEO9W#K+DA1E"4H@$]JZ1CCAD&:F M7&2,0TV#A+#8RLX>5^RID>9:V+98>&'$A4L%'_4_J)'8X;!OO,FW.':=Y)0. M3-DKG<&6TE=;60E@6^]5S.I*+)S&XX(CQ M\)DCGS*>5.KPH/'TI3T<(3>R4,OBWL0/Z"E"]:WGSY9O#MG6X":5A)!@GB4G9H1 A%$.<<0X95PH' LN+1W;DMJUG&"C4IN9>.+'C:ZUDV&E M[?VJDJ=E?&V^P;"5UK-1[$E([YX\7H 9> M+#<8K80N3RMJ /=SE_8P):32LB MO>ZV%4&%I*G(L-[526S2^!4V)]D,2DPRP;.8HL1J5V'%^FS?)*+1[E5 M:JTN.31C:418G)K,?J4@XC2#+ @H3!/$DX@D6 G[1/\3@TR-)5HQMZLIMO6V M7'9_IQ"UV*][P&E@9A@6(H?MK0>H1MJ<'H',UV[R# B=>\%3]XZWDSLC_D'GSU7.5[X5+&A*$J(W3IA%VCZ2"<09$S"5/-+&41!()*P9;^_A M4V.ZM7@.'^T^7A9\=@$* _/86K(^_KU])!QHZP)$1J*KM82^2.J$RIWDM'_/ M>*1T0MH=,CIUS:6E:6^*I7CDU?M%[7):D]RF%FJ(A%(9":"@$FF*(GH+E\D M\A1',I:$AX'3%LY^Z*D1V)?'^WM:/)N"']H&EJ6>#="N$7U+TIY%WVZ+-PRF M ]/A=@':5FRP)?=(56=M ?->;/;LP"]48]86D-.E9:V?X&A %=7LEWR1WS_> MMVM@0).4AUD"(XZ%V2_JG6.(* Q%QA#) A&'5JTC#IX\->9IA;,T%PYP.F,U M7:+]P!S1RN4Q3O"DMET?N+YIZ^/6_]I\V(?/&\=N.*7&VF@X>4%/BT';@'42 M:5TZFBYX3N%JT/+;(D3A51((2QS'>I^2B9B9RD4*:A(24 B1 M9ARE)!6.E8N.CC,UXFD#:E>R@D98T$KK&G1\'-IN?O$(V,"4TA.K'N''G4A< M$()\_+DCAR%W*G<8BMQ]>>\"\O?+15./GA:?BIIW1%W-XD86=?S,+(HRCF4B M89:&IIJ$-E 82S*8)@E)* ]Y(IS"4RS&G!HY-"(WT657X($6X*DN3/-#O@!B M.9_3HC0U>YM(MM,E#WI/@9UAXAG8@4FDQ?1+@ZD6V*0O-"*W97^TT$U\J-?B M]+80^2M4?W;$L8O6VT)PI("]]:T]CG?>+_2W_+6@0GYY+K7Y4[Y?\'8/'@F$ M32@<##,J#0>9DQZA8,!D$JHH8AFVRI0\,\[4>&.=+YW78>>HR>+R M?K::SXSW_:9E=77JKW=TL:H(-*-(Q"G-8AC%80I1$$E(:,AAAB02:1HF081= MK+Y1I9\@CZ^: M(>31C'G7D[8W.R\SGP:G-9811ZJC#*0=O(J[:J?Z5A "L< M_!G"+S)]GDSJ<64?U3A_D6G9-_-?1HC^#HR\Z:B@QS=M7?+%K5QP+<&;O.3S M9?E8R+6#G\22A!&F,).F*KO@*624I% D$6(T4Q(+IQ,6I]&GMBAM"5_STH[X M8"-_[S,7M[FQ]W$,@O@(W@Y?8/?R>CB#YM'_83_VZ)X09UB.^43<'^(S6:@M MWMGN4S,>*L$I@9($$42*!Q!G40(#A%$CXK2_O:'A-'W+3%LH4 MUOO$YOEMXS\3&8HP9A**2&A#+ T$Q"DFD,B(!B+*9""251.\KR_C9#@NN=67 MN]M*[^NHF=1-R=YYJXYC\_,19GY\[\(%$SE9E\)QC\+SQI]0:PLVZD[3<] ] M-1-T%YP0^ _K(^B>@"$= V=&=H]I,BYW38!?GN_9T"UMDQ;=R34GV&8 MH9A&2:P8L4K)//;PJ7UZ;1B<$1 T$KJ&"6X!=_X+O 2.@3]"!R1Z! $>JGQ! MY-_6PT8.]SM4XS#&[\@U_?9P7PN]L#X6STUIJ]5"_*1W";?R];*LUJ%E<:37 M28%3R&5*(0I) FDF"&2,J%1QAC%1+OXBVX&G]C&W(H*'(N>R#N8KY$/;I5RT M)>I\A/M93XS=1FD(N =?L1N15]4<6Z&OP&H*C-Q#!/^Y8N5I_V$][*B["%

&7F;+Q9FB\'HO*Y7.@#2(DD)Y4D 51PD$*'$5'J+ M8QB(D AM-J>()"W2;_5N>FR<5V,.:4&*@2'NL9[V!6W4!?0*-&)>-Q)QKG^8!5;Y_)>),;754K]M MJ1N%](3?CE^&!W5@\FD4@+4&!U&+6]VYM[6Y D818#3QQTZ7(>F)NGH*,2JO M70;4/NE=^+2^47Z+.G[FKWEUMVJ^M#[T^JAAJ!O75K.01T01',!4( (140%D M09K C+!,)"CEF#NF*EJ-.S7.6W=%*)KZ2E=@L5S 5EC7&#X[Y.W8;P \!Z:[ ME<3@]]QD.+0H/2;L2ID=):8*"6!6A$!HW,;I1T'FL[,O**X, TU $>^'60&F_6Z'CBGO/CCMN34CG'$<4P83*C3+2,(A"[F M(:,T(B*)<>)TFM,YVM089B5LVQ)H+:X;O70#;$^#^K!]1E>\7-[7'>(840I3% M&0Q5QB!B00(I"U-(LU!AS4LB"YRV8F,)/C52JZ736[G>'O'19MR.&JP;;U[6:-[T.KT"C/-C2?CL]N 7@"C00 /VJ-"!XK.@W M\K3YJ@HXEMCC5A8<>3(.JA../7YO4_FPZ=^7;VTR5Y*@-$B4A &7 428*$A# M1:&0D8JRE #VH\# M),59X>+/0.X8:VP#^;S:1PQDBYMZ'S5P:5R&=79#7O[VZOF57/"[>UK\=OT] M+V9W/ M%KJAMCY4\ ;@\*<))[$#OQIAO6;]V^'B[_"@>[BQ3PVLE#]R7&!W7S]V^5;* M3^IM6>7WM)+E#&<127@20QP'J>:2S%1\CQA,41HRGF"A8J>0C=W'3XTYM'2F M!OE:/C>VV(/.CAOZ S(P$^QC<05NEO.7BNFKJ MAM1]I98WU 1 K.MPI6E 4D(#F'(LS1&B@@1A# 5+8D59E/(T="$L3W)-C=$: M]RO?U@ODM6+@!]DMS-BM/KQ"FC%C-6E M53/V5M$XX;>T ]42-/H-4H?-,^:>^-:75*,2LFTZ08R#>R M^>_[Q37GR\=%5=[0Y[K]M@P0"F*402JE(>N0Z VDQ*9H(MJ$FNO=6 M>^SI>X&]N75)^*MUKT]7A/W9,^5@%W&PGY&6KMIV5\J7=!CZA]E2?S7HX M3R>J-[(P/Z"W,IQ%(44D32EDV)RA!BB F*(0H@3%&4=4)LPI+:)KL*G9KKNG M@846]LJ4E6G%O? L=1ODGN>H/:$;_0SU"MR<1^WRX],C< QU=+H]U,L>FQY1 M^NR1Z;%[^FZ GV19%U=OMM_&ZA H2G$H-4_$(M$\$2B(<8JA3).(9$RF-')* M<3@RQM2(8B-BZV)TW>4>HFB[K[T(F\%WLFM8&O$\&TH=VGO;JAZ.,/+F]*2* MA]O1TY?V=F_IYWREWX^>FT81B4V7%J&D@(@2IG>1*8>,!Y)'04PRU\_\] M^]YKK[46UC5(HA-2:U^6%Z"&=V.U& U_#&H#B3_GU>FAQO9;G57ZB,OJ_#T] M,ZRWBDM\4ONE)V:A))$&$\%0R4A;!6$,628P%"B4J7Z9(H6=3BV[AYL:86Q+ M:PZX\LOZ#9[!VHY'_"$X,)/L@W?0BL]C4K45)KXRJKL'&S>=VDKQ@UQJN[MZ M9D+R.RD>Y_*36OD_-BLEP9RP1(:0ITD(46;B,I4@$+.,(Y*$"1:94_+BZ;&F M1B4K4O:)GS M698D648S!9,@QA"16$"6TA F5*E4J#3@S"ECY.@H4^.16B@O%;./@VK'$Q=# M-3!#K.3;E+N^ K6,_CBA$P)/;'!\C%%YH%/-?0;HOKC?M_]!:JM$KAMQU8UM MUH6FVB38\LUC71+OJ\9=SG N/GB9#@!J8D(R8P<@(M*/A?;49]+>OY5'I'U,22U[4EFG:3HZ"W,^3 M*/Z707&I4=Q[Z?Y\.7E;8]*0M+F\9MZ Q$'-ONI M5[K]B[V09;W!#*,8!Q!)%4+$%88TPPQB&8HL2QBAP8OWUCVGA-77-WZ;WP,W>G-ZA\@9O-TH&8+P?8OKP8,K7^1V9MB6]ZSLO\1PCXOFY9!F_5: M"^$I1/2K?LZ;Y3W-%S.5\)@*PB"/&(8H2")($JP@IC&/!,$QIDZ!(!UC36UK M<:1MFXT$.5SX:% M'KG%0T_ =M='<)IE(6-0)"F"*.4,DC3)8(HI34F(52K2WMT I^EXV&T#=D&; M-*?Z?1<",S )[/46]5^FKT/](;JAO41)O@X5.SN@>=DJ?Y%S_=M;;87\0HO? MI'%JKDJO1US0+ PCB 6+(%)$018A4[73N!=YG""W7.?30TWM2_]"YR8!4&\Z M[E>2.@9S/8^$KQN+T0..&6)Q5^"#"XOP= M/>G!$,W=]E*41$JD@@KB MSLQCJC!-SCMB,^T79/AEK//UD/KG?X07P]+9.]&I'MI[K!6Y O4\ M;^EC3@37;2":2\Q;L/?#W3O6&( 5"*!&H>FQMH4#V #AT3?] M/GR]D]INCC M>L]?8%(.W/$O(M2]6Q9*YM6C9HZ_ROSV3FMZ_:2EOI5UXZ$WM)+O:%[\ MA"F^H%V+HO?%HC?*V +H"*XA BU'31@\8E("!"=0X_1%ZZ?69]\EW MVG-2ZK])'[X^$SE>E[Y>TKG9 D+FL[?:L#!RZ&6(\BI_DOK!M U%FF4!"W 6 M2AA'ICX,BA4D"5401P21+,LB+JV2*L\--+7ULI$5; EKB(JN(@_MELNSZ'8O M8#XQ&WA)Z0N7-:G;8G&$9DO)_WR[?/I)/Z)A6/V7#;&>?? H5&>KWHI\K*_O MMS5XER^TK?A!/U/LEX.XYOSQ_G%N0L&WZT;,* VB!!,.4Q(HB.(X@31#&')! M*5:"XP2)53B\G2'O+H35![$;SCXPC6P)"K8E=3.W>TR'G6D\$,0C93O5PL-: M^L-J,G4\N!OVSA9F?_@\68,]!!C5E+@RK)Z]?RJ.5;]6D_KIE@^R*)ZOM$#5=>+>C_Y8#:2S8<1$\R2F%(3I8U-XW4" M*4D%S!##<8HRQ*E3J+;MP%/CIY6T5Z"6MSX?6DOE43G\^7OA@+?+8O7A11Y9;IZK=OG M\33C<1*&)F#"T!.*((UX"'&6)"$)>)#$3L<^W<--C936T@*U+$ C+S "VS3$ MZP.W'1/Y W%@_KD(/_=ZHE:P^*HGVCW8N/5$K10_J"=J=Y>O9GWKLCROZ4-> MT?GZG8]5%"C$*%2I3"'B7$&B,@8)RY04=8 ?OZQKWZFAIT8W6Q5&:=O_:K?M M5=WNRH172:4DU[_7?Z6;'M*7MOL[.45VM#0,\ -3U(D&@)MR8:WH@S"6.V*# M=04\.? +MP<\!\CY/H%GG]"/X3[*:M,%=?VEL#@+8ARE4%!%S4$!X M8I#C8XQ*%IUJ[O-"]\7^S]^V7-QMLM^FZB9%<4H#1*&(!(&("@:IY@N8)C0E M41CH/5?DY(_N)\?4:,2]X&G?";C\V,T3K"]Y]G95)P/S_7.W84J@7HCE" =Q M75),YC3. BJ7(SF;QUVP_ZNK0,Y?+^_OEXLZN*K<;0__N@Z6OM57S9_?E^6C M^6ESW8QE*(XR++7UQ *(%$L@D:;0 69!H'\4H-"]E7M_>:9&E3=?OIETC/;/ MZ[+)Q'BC_UT'#M?!PJ5CM/"E4^:P21QG(L;8.3::@$:5)A2W/##UWN3SQSK8 MZFV];:^;B6QI"%8JMO=[WE]>#K;/3><%THR_$[T'A>/ROULZQHOI!BU9>J-:S2B"4IH1D,,E/4-*(-0F*HH M)L(M4N[X,%-;9592@I68;D;J"2SMC-3+$1IXH3@ 9P ;M1L$3S;JB4%&M5&[ M%=VW4<] M.H=]S_8OZ-MXH/9(;57!#JD,5(P3R(1,3+H@ANS_N36[C6+;H7V'$.7%N M=T2B+P&"!'#ZD\N/'M_KMGULUTQ,U <%GK9FE%*.'J[*^?47X$.B4A(%4"#% MNC'3KK13Y-Y[05S$8^^U)RIO M@F3@I[.-Q@"OUHNA1VL8\/+^([<)N!#>:7. 2Q^\M?CD[>/38O6L]5>]_CF7 M^H((PJ(*0?WG)C+-4'ND0?8C[,F,6P#<]]969V#7,A#,W)5_ZLZM]#% M]> VJ';[^IJA>]L/- +1:W-B^WFG8IZ!X+Y<_3.4P7ZOEE+\QEE>ZQ_6^/RG M/F35?=3;3^8;_^.SVQVR/AV=:5;ICC.FLE2*'($4N_Y5&4- I)D&G-F?.564 M*Q6RKKO1GZFM!BLQ^U6IT27;4?5;(=XZ6GYO@Q''8&#.K\31CD(YSN)]2#Y6 M!1@VI(>D#FIPP?)( $>B]%N]&96X(T'WDIYCW?:&OA\N,42K-[OU?/F](OJR MI/W\^V$F-$ZX!X5[C)GT)JGZ\0BA7'P=%K:0"92[=JF95@I@SC+ M808!TI SFAC" M_0H2L4\J7EBYS[G%^5 OGF)<^'@_/JA?+4ZE]8NV;WGYPUKY9%I;KC-*,X.+ ME *[!BT QM"N276& "8R983GBF8H3!/QNE&O;_ZH&H@'1TNJD-76_R;\(,0# M<3_2B(3B2%([M;.ETL7!W2K7W^-,*9A(_-&)Q"D>!D>E%W\ 7C)-P)6QU"_> M:*/7:SO3L7.>[ZZ^R<@4:XP $P("K H%*$0$J (RHPJ>R3R06*HU-;9M5;'+SQLYP%?"\;9_2NQQQLD#VWG"8P=",>\?;LL%(%ZV9Y M3>WGT5>@C'@"O5(\Q^3>W4^NN?GGZ&?B"7:T#B6^]OH>-MB9X$$KU2(I"R84 MX)GKM*IX#EB&*-"$ZB(C$!-#PPX2VK>?'*\WWO54H#W&SG>OOR\B0].E-Q@] M=N3/Q1QMM_WHYB/OI)\+['27_.RGIM8P\%_U9NNJ@:H]_.N-WU)HH,Q0!HCB M#&!IU[="B@+P-+44D@E*5=BAXU0BFQI-5>Y7/7E;^W;-X>:T>PF&?JL&GK[> M\[LR_?FN9T?!^@MIOW<52O]_:BO8<_SO/;>.'M>?8S(^U'".UU^PKX/A+0;? MU+7C_V?'U_:UM7C^HI]6Z^TLQ90)A#,@L-)VSJ^YF_TK(.R[W5R2,!GZ3A,,3U$+P"@"]N@=>NN=HC0.O M!-7N&7CMHSU;/93%^W7KP;W>+L49)47&08%R.TEWCWG9X0'EF&C-&LS;&;9)+X;.#_&()1&^V,0J>KAJ;]RR!M_P3PH7O"^\M?3XFSOYWJV?RWR:7YY?+^R[ MME5(G.<%3#$&J= IP)1"P.T-0<9PRH73_L4]"XD[[4Z-@*K*^E:ZV"O7(MH. M2-]ZX&[4/;?.XF,Y,/N4CI5E6;7#C63!*!6X7BA%KZ?MMGJGZE@O*"[7NOI= M'JA_:9?<7]PFS*L_YIN98D@Q;"!(L\( #!$$0A(.T MGF[[M\.3?7RO+=6&-!=*"V#4>+'($L,IRBW6! M@5W\9=SD)!,IF_W4:[$:&>VVS>'P/B1I5<@FZ_T J&$ ]YMH10)Q8#(]GE/5 MA9MV?=RX&F]*Y8%'I&E4EZ51ITX>(;^<+OES9=\*>TGZHV3N=[,,-1,LBP#%*D4X Q"^U-. M 8*4Y 9"823K5<_9SQ^O1VW4NJNC6D6YC\C]> BI5]%GSQ'SH[7A1V'44M&J M)_H!_:-0VOOG^VB20SC1ZTAO0S5NB6E/7^Y1?7H;;!<*4V^\Z0W"&3]6"_7^ M\6F]^EGR>2,7+XB .18I, @7 !=2 LXRZ,X-&18R)QIZ)0!YV)K:9&_O:C)O M^=I#.^,"M'[4%PFP@8GM@%7;S0&$@SW@B"FD<<'2^&(:W2&?%=2X5O4CM\>:?NYO8>E]$9J-7'&8-W;?MQ M&8!K+4 ZKARYDJG:%?O<[/':^53YSS,!,6%Y@8"4D@/,B 42P0,,YEFE,K< M!)TYQ'9P:A06H6"D+HO>AUJN>LK?C51_=.F[X$>>]QSAH0])[S*XXQ7R7!F! M>]?C7'+OSU%6<_78[01[VMLV]GC*>(0*T! MT84[+,4&"$D)P (QE(L<8YJ%2)1W&0LB_!'TQQM?D_7>V8=DJ0,38#OA]>/= M6* -S*%[O+ZT\*J$:YTD_^_#@T ]]$SO!&70%^4;TF1] 8N>*7O5\)V2 M97T!N9POZWV'&Z5_JAKE@Y9TF1IJD%&,4PRHQBG ::H!%\).FWB6*\.+ F9! MBMJ=UJ9&7+4.0DM>^TIN:0^ /1DI%FP#DU P8OU%A+J0B*TI=-;6?22&NL*^ MJ#C4>5$_VMA+$;12K]V,RTZSYLOO];D7(YQ2F$/ 2ATQI!&@7!<@,RG)!=-9 MP6 (>_@8G1J)''1/'MIIZG:%L'<\C$^\D/>CE=AX#LPN;2CW7@YP\A@"2R2J M\3(Y*N.$@/"2>(*N'?G8H!9<>?N'7LOYQDV@7JBMU+_1G]=SJ6>",8D-40!* MYE)A75]DB"C(TQ0)NYZ31(4MX\;Q>VHLN%>&XK4RE*Z]39Z=4S]I7ZC]UF6V8>6K!??7K]_MUJ_96['8:O[LU[LXF5ZSMX(< MTH#V9EO]E2/?S3>2+_[=,M8[^R^;&<(&4D0D@/;M '!&%>!VR01R+822&6&$ MJU#ER!XZN'7DAJ'/:D9<^&JB>\K21LU<6#%B6&Q^4"SZO5]_7_+'>4Y19"NTSK8%& ML@ X)QAP@2% AFN*8"$(\7K._WUW=L^"*KZ\:BZ;X^'Y)'=.R$:0?@F")>*:]TU)9VF+$LKR1N_ MNXRCA1,4T5XD)^RJ?DMXEYK$-S_L+7_.E5:_//^Z<>?\>PF_0^G?7H56I$83 M2AB .N, &X, 9Y:6)2RRPHB"(!ITJA;NPM2XV;F?F,7J]TVUYEKMA2KY]6+: M6,/BMV(>%NR!J=PZGY18-^Z[[=R_N @2M[EQT <]1#&(NG!_$".M8WLX,.HJ MM3] +]>@-]SIQGRD#WM!%,6PUEQG("74$IXF&1#",,!RRG1&TSS+PBIZ3DQ, MC=!:7;@^])6:.0.DY\G53? ,?<@4ADS__**3X&,G%7VXCR;,Y0 OI@^=?G)J M3*S;*]7;@ ML_M0_T.>MY=1#+@;OMMNMGRI+.L_)$)_GR_=B87;TJY\N$,7W/ OAH&ZH$P" MS0H(< X%H% B((@L($E1CEA6?S'>+CV%@R;\M6AB&.E+H9?JS_5U&#B58\@! MGGXRAV<;N3T&3:/E">1S]!VX>V=T!/O]Y\CIZ#LH"'ONC,7 ;>@-L):/^TR0VLV(>C57H8BUC771SKB[5=?"/=F4NGK! M;=K(KU>;?:.N68Y,*IBQ1*N5 I@R Z@2& A*,C$/THX%9HALYJ:% I_1N@Q+\K_L@:Q4M >,Z3S/%6C!,=S*%YIP/'Z+7W M8>C$KHSM-GJ?VE@O("Y6Q_I=':,Q\!=7@O3)_+JI^&YF,.=(%AE -"4 XTP M;J<]P!B**)&Y0GG0-E*GM:EQS\N&P&OG+E@9L+-_Z=,LO!MK/^:)AN# A'/2 M _A+@]ZOFWJZ,U0#X N@#-+\]Z6M.S;^O1!V=]/?2Q?UEE)L1'\OU:34F;$ M&0-OT+]([=N:V]NZL[DO^FFUWLYR"#G#B@&$!0,XQPA0DQ5 J5QA# D5X55J M+XU,C83V95@'1Y/*T_ RM1- NUDF%DQ#;^F&(]2K4.T2!#=5JIW<=/12M4MA MG:M5N_C9\(?\@\5\\?G':JGK/![-N!UJZ4I0B]1..Z@$ O(,Z#13T/Z1(NVU MJ7+NYE-[J$O_DM+!:PDSUX&[_A#? L? #V\ $D$/[:60>SVL)S<;[2&]%$;[ MX;SXF5OUD<^GVI2%5'7*3%TY\%R*F'[3?VQ_L8[_YPPQR+@I,,"0Y@!G7 )& M,@4,UP8Q2C )ZRETNTM3(X"J\J]RN:FT>>XKF=Q[G/P6&>.B/S#?G,UU/"2/ M-?)5#_M!J966$Q=,4D8SB.CRK=!&%V/N[="=1)IO!?"R>//-=[YQ]_<@&#++ MA(($*0D(5=P2:\8 5WE1UE-E=OZD4RU#\MS.V ABRA$RW.H,K79-J$6\Y^9N M"\K +=U^ (VVD7ND:#3 YNUI^+&W;%L6[K-1>QKBQ>W9,Q_MH=;Q;K?.NCI'&*1X!RQDVXC*24T?+Q;Y&$,2Z&W2F$<7K5>,(7%ST^ M$KJX_*D>]/1/_L?\F%'2:]VFT]+_6W^ MJ-]I/3.DR%!JUWV,:\M?4N> "Y@"RG***:,%]5.UZ&E_:@171^!Z=#4A-'5U M3DSPL1U%8I?O8#MW,QU]60TWRBAY\.6PV ],J WL+>^3ROW$^I\B$*+0$ *54@0PP0@PHU(@" M5E_H88'VV_:)!=W ,YV:'+Y6Y%!Y^I"T?(VW$^2#2*0MH4Y3H^X-^03]: $R*105&MJW(PEY(38WGMK+ MK_$K[/G?P\1(SE3.!"@@S2Q,6@.:*0/2'".-%8?:SAN"7V)]P!KQA56QYUEQ MGYXP9KP05&H*4NR*ZQG. 460 DV@4I1G3%(2^F[J#^+P[Z$]A$=2.#W!\WO? M](%CX'?+U66V?/]NQV;Y: MEB(F3Y7*R3=[Q[(L*B5&,ZP((,QI>MOY.1!%BH&A)B=0%#1-@]X&'C:G]J+X ML%I^KPLWOQV5;?;J]NH#NM]S'1G*@1_YWB@&4T$ +I%8PL?BJ 02 ,%+;@FY MM&>QR+X3R>;;RNT"+>5\H3_J[>'D\]LJ5%P9%9+F=M8%J(%V99MIRU,"Y4!1 MR:51$N=AVSA#.#DU8FO"FN^;4"WMXU@K_6Q7Y=^D4W-^:JDYWRZ=/?&;Q]@XG2YC[(XW*^G(-0]Y(#$*K89PL5QZW(&!/FDA&=(6[?M M;-B7V4M9AS?SC5RL7 ?B0]XJ2P7)"M?&EU$!L! <, X5T)#G(A<%8Y+UV?_P M,S^U=T3C?:D9<$:WY&.H"ES@:(0M<>-C/-)"^#R\R<'YY+=!UI M_"Y+\#!@+BW4 ^_2C^O!9UM)SMG@SVUKJ\@DMDV? MUF4#&%7J4WW6Z_)$>@9SRDVJ,1 8V2D'1!IP;A 0$E-5I 7*P^3K_,Q.C6?V M7C?)54]\G?PL9=AA@1RZ#//TO6'UG9ZK8FW]__!;<0+RU9\KAZ:+NB[B!UN M^J(7B;V"S8_*8WW!>_3HW*JF>1]T3_U ,Z"X*3JL(]4S=<$;J6(I")K.(B6_.XU7EQ04V5$I4MB5 MMVS+[WNE[C,6,-04%CD!AN<48"*5DWAGP"Z@24HR:C3IL2U_8F=JO%SO';7: M]%Y/*PC"-61__B:TQMF?#P*JY_;\11BB;L^?6KG#]OS%4,]OSU_^^,@=CFLQ MH'_8#VXW[^N*R:I7"C891UH*D(I, XQS#;CF&&@F!!,&DYSJ($&T^#Y.C81* M%_4].M!VC*,?<=UY= 8FO0A=9?=]8ZM(DWE3H!^]R9R109N[SD MKM+=]3\O"L DRP'C4I@O93K\4JI#7&B9V0+WO;VH";LDWOA\K7@\Z7 M]3:\/\8IL-WT$ VLH4\&^J#4JT?&111N:I)Q>M?1NV1<#.QJ(PTG%;Z5TL*< SH78>G[4_/]XAV1DOCX[" MSOV^WY+CW[3K+:C5*_N6YM_KOB&?S)OY8F?_]50U*\U)3C/% '4=>3#A=@F2 M:08XI3FAJ4'&K_%63_M3HZ?:S_Y[TZ'X8\6=[#\"N8;"K@.SS,[O"@2$5V6X#N(:DCBK?Z[(E.U[FYL;T[[13VLM*ZT+ M^_-"E]O[2_7J<;7>SO^[_/>+XB_V]O& MUG.;?\RA&NE$H#4P[9@>DGU4Y1BUXWI(FLCL3RZVA_(C^_ &Z:X;!?#XS7=O M<^M>O7FC@-G1NC?._6_(KQ'7#W'%RT/<=WR^+NM/7FTVN\?J1-<5YLJ**1_A MC.9,,D@R8-2>B2K7%.@G1!AG-U:BN:#W-3E;T]:[[NE6DS MS(CZ\?XTQFG@-T&$O!L7;EU[UPKX(6E"3ES,D9-O!AV6F#DXPS@Z?BK.H("? MS<@9UN*M76P_ZM_MFV^U6[JZ'_M26]H?9>G;QK[57O]PGF[>+]N?F2_EW+X4 M-P>-(VA28@I)@30< JQR!#A4!> LU87!V'6N[M?1-H9[4WN;')Q-CB-*/JZV M.OEW;1E)K9ZZM@7&&%3/E\O=AFKXI44S2E_=4MX^E9ODUR=E)XCE>J$*R"5G M'HUG'=)(?7%C8AZ]1VX4Y^[4+S M";0^[BY./VA.-FMZWN;6V?*KGWR^<"_V=ZOU5[[07[7W;BR^2 M]\O-=KVKYKR_.=^3TOG O-6P80F=SD8&>V >?*/%-CFX^)#LW0=FM08N #^D M;YB,!B 6?:[I8_M.4\D 6"[/%$-NTG,BN%BL?G=9N=;"F]5.;,UN44\\-U^T MU/.?SKRK*C>UJ@%2FG#,##!48H EQ( B90"5.>0RSV&J@LHV@SV8&MDUSB8' M;^V#V$15]G5]O=9J[M+/-YM>HA/]1\MS)CCD&(RS8H\,?_CLKR^$L>9_P?;' MG0'VA>=D#MC[1C_[=6?T\R^@ I?B"8 ME&NSC#P01A\*N/_P?+/9N0^6ORT>4OL)5N#]7U/V@')R-HO-_H/;&[>KN<5S M[VZHU:#ZT>0M0S7XBKC=];3T[B%Y7T([2+_3H_CC]SBM;G^OOJ9'P77T,CW^ M7(\RAO=+N7:B:V]T]=]6.Y%2C&TS8RB5N; 3K4)IQS8B ]0( G0N\U0KR@GU M%T2[:FYJW',0(%R4_@7D_U^'MON9CP_8P S0^)K\I?'VKW;%_5+#,2Z$ 845 M4:$ '46:5R_RWBE&]X1'15T^%_5L[)\M[%K MY\WFE?ROW7Q3%K"7/ZZUKLN?(2WL8M9.[F"6.\YE.:"%0B#E/".IJS%/@U:X M5RU.C78;AY.6QP])XW-@F?E5N/WF7E%!')B*N_$;HOC<%YQ8->A7[8U;BNX; M_DE%NO>%(\NFN;S2[7-KP[P\Q_KV@R_/JO:\*$XH?_F&;_4^H6C&H(0D%QKH M%+I^R"0%S @!*,J4XM@R&C*CB*W%CFQJW-F6:+NU7<)D0!Y:X^V>7XJ!WP41 M,E0K=(Z.SUK'VAVZ<2=5:>5'$@=5*^UU L)R0XW_O>7HHL?UYQ"Q&VHXHTG? M#>;@S9D&R^V\+,Z=_VP=]KW]0RYV2JMW=HAW\6IO;C;.0LN1M $F31[J]46 M=!-IXAZ8Y#5?2%<^-*\:D3=%\*W&U=<;^HSUG0C.A;C#2 _]-GXQR/LQ/L3W MNV3T^\O7S<7IJN1+G9!]S4@;=]PT3 M8_Q#7RXCC^J([Y7#(#U<'5,[BB_&<*37243XH[])8OAVIY=(1%@OOS]B&NEQ M:-ULFMJ7E+#DY5Y2UM3J^](E?+Q7=CDU-W.^;QA?;ZBJ8S?+"D?[CU*N=[K] MBQDJVHTX':KXT# M3G\''F:/T_<)C-K(YT6M2!^20ZQ).]CFG=*$:]P02^#V&Y"^.,4&?BP\ NC)>MHO1V28(0[++[G[P-UAKN']:GFYCMV_6O;?!!MR?57\[)9!AR9R9LPP MOMXEJV90V"]EY QKM-^;Z/.ZOF&9_%T=![W:ESK,,$LY%2(%6>XT$HS*@)"2 M@92D3A8GIT415 '<;6YJ[X*]MTVER$DM2'^UX2O ^Q%\/#@'9N@#DG4U1WWP M>' V'K7Z@1*)&Z\8&Y7<_ )_R4Z>5_6O-)MO]S(PJU+Z12^E);0W\XU M[RR+MIJ?&YRE"-K%-R%V H4+HH! )@.0<\P%E43KH/3DRZ8F1UR5>\DB=)/6 M U4_:HJ#U< TU'+R(6DP&Z*S_'4T(I%+AZ%1B>1ZP"])P^.*O@NLE=1:;5P* M3#G#^M1HH.JUG&_L5)^F"F%6,) C+0 F, 4,\QQHEHK,M17&0H2ML:Y8G!I= MN,3"I]KI*D%-UZZZU(-5Y7VR725/UN(/5[(H6_7[HA7F&?[H0\[WP9M6/:I5722G,,$(*:RH MQ-+RCUUCV>678B##3A(I13PG?<4_VG:FQCK'&B!'PAW]=W4N8>R_H+H1N1%6 M3@=)CLK)034YSN$07YKCR,J]%#K.A=HAU''VXWW:CAHSEWK?],,NF=[MULOY MUBZ2:N5520L"(:8@579N@HW"0)"" I4*G!8H1RGQ2H/U,SDL9JH M^@+3W5KUZEU&;+CJ&]%Q&U;OJ_I.R);E"O/?YML?KW=V(O*HU\TZ]+E>A=8L[=_"&*-I'S,#GRK,X?A-,I7L"U/8F' M;WXX6OO)%VZ7O'YU,N4.]"$'+"<4X#PE@*=0 IEJ07B>22B#TL;.6ID:M3@G MDY:7@=1R%DA/+KD5GJ')XP4RU^=KX5S1!4$L!?_#YTDD(_Z*-_@0$8#S%3JQ!D1T#G. M[.P#2JB"YAL!MJ?\T7Y1)/@LGLEQNGIHJFD36X;AB-^D>%+YTT;B/(7Y_I?'Q)1>N_2,^-14@_, M(A%5B.51Z:L')"])K<\M^E%=)5#QU:[#2[&4#V[ 7>_;2I8/*8.X4@HPEA5N MJ[MP%7D&($VQ% H1Q?(0H=>F$3BFFY;H[*+5]@O^<3OHAZ;X6\?GQ:K9ZW+'?;/]7&S:XQ=3^TS0P1" M"@&*="E!E-O5DF$ HRPS@A<:(C/[J==BY;49?L5>S5_8[HMSWY-V"?Y\5!HJ4:0ER MPUTC.4, )8X[TP*GA4ZU$%Z*_R=WGMH<:^]]A/X>JFQ9M &)@#/>/W M?DXOQGIF(K31\F_?5S__;WM--0>R/QRF/J=W&N71O!A \QQ>_D"_!=!'O75; M2)_7JY]SI=4OS[]NM'J_?%_N3BO'"1CQO=-A MRZ2 5%_Y^'Y'47,,&\<3GV2/QPQL"H M/' YP)?/>\QY%S9?SK?XP_^EH8VL'=;ZO>_^BW>Z-(Y''U7H[_^]RA5F) M5<,9DT0*2 A IG [M]@M'D@!AU/##\#0!U5E!* ,(3G$4$N%//0%J3IF_V1N\^F.^F:60\2R7#"@G*HD++ C)@4D-YE$*::(!%6: MGIJ8&N\=/$R=B$67 ;P$REMQW+Q_&E?6^!:83^>Z;;M:[BO5IK7_HY<;.NZH\@(]Z M^\FXM+C"",5HBD"J"7*5]!!0K.P?&M'2V-6NUT(^4_%Z]9)^3/*/U4K]/E\L&KW%-H7-)-:0$LT!S L"<&[7 M51:-N"H_-)0-8Y9.H/VH)19\ M W-+X^;#05[V:$X4CSQ\ (G$'IVF1J4/GZ!?\H?7->'Y+6^7VT,YUA?]Y'9Y MEM]=1N)N,\NSU"@J,8"$2X!3Q(& I+ ,HA&3LDCM?,0WW:7+T-2(H_)U+V6U M]S:IW/5/A^E$MYLQ8F(V,%OTA2LH>\8'BU[)-)TW'BVWQB>\=JJ-U^=OG$\L M3[:##[J#>QT[A"$M<)8!S85P1]IV@J%1#BAB7*2\4$:K7A,,'^M3(X[&^;*, MZN0HY4B1\[H\7H3!"9R4Q(9\I%E*%+3[SUQ"4(L]E?&R?9^Y30@L%R<[03>9 M5 ^3=C\EJ9FFO." L2(#F) ,B!1C(&EJ!")9+HD):)LVGN=>#_OXW=/.]3;I MK=$ZPOC[T?!$AO//T%;-K]=)U%Y:XX_2M+N>C-Z :_P!&*G_2;QV7)^V/_2Z M,O[1@EE+ @DI,\5H!J!R^MU8*T +40 )TR+'(H.$\:!\TW-6IC83+YVL&UX] M),O5$L@K"D$!B/KQ^,%_;YEZE]_I6P*W0( M4T0)]+O;^D_6U,ZF]CK"I@7WPZRX"OWF2\.F#?>(X* M@;TOZJW*LG8%!&]T]=_WRR8]Y(M>N-5O>]5GH.2*"@Y0GEG>)2D$S$#B>LX5 M+(3OS2._]65>N[3TVKGAUG^ M]L$LGMB+O^FQM5^"03DC!1-^CYY9NDYQ_1=K0[UN/8ZOUFO[+2MU:'YY/GSD M,W\N18-_YVMUW,C!K70_[DH)#YV*@BI:@!1+!C#E*1 $*I"GA!9$P$SD07I4 MT3V<&A]^VFTW6[Y4967V4C6-8LK-KJ913._F#?''UX]/[SIJ Y-NZ3@H/4_: MT26M\%Q->/MS=8A)&>-#TZKF(6G%:=?=9:01\X>'&H18N<71_1LW[W@H>$]R MD@6JET8-C-%;E2J]+K[7-%_(TJ?QC%>XV&'VO'QGCP M+8J#N^Z\IW:X!+/M$EE0=?V9"?+=-^_K]T1M+W9 M)U.O_[\Y^IL1I*G(,@08=XT)$:: 0Y*!U!1*"\A31M(@5NHP-CDV.O(U^63V M6WN_E?X&IA]UXNS)-Y'0&YIGCH%;^0,73C >B,0BEBY3XQ**1] G1.)S3;P> M-F]VZVK2Y2JKE;!K6\4%R+'K*H%R2R>(8PMQP9B=[7#,@DCDFL&I$>"]VE:<_:Z'@>U3?K( M&[V1ZWFY2ON\6LSE<_7GOI/[#"$.E60*(*T*EU)M%U 44I!A;)"VBR@MOI!H:I1^K,+7"-G3)3^AHY->92_%XI,2<7CY\* M<\G_LRDP%S_<@P$[%.)>2?N]V)4GU.>Z(RUXNSO2C""%H-8$"(X0P%A NXHN M%,A(8>SJFN8&"6_&C.75U!CV?.>P1< R.^Z@>1#R/89B8 *O0DHNR&(FK;"2 MK@&K6KVYV.XQ= $OB7L,X4@OE7HH%^50S@]#694')+PUE">-$;>MH?Q>=NUS M713_&FMR'QOUSE=9-&/CO?IBXW/TJHQ^\ZBJB>7Q_N:B_MAFIK4T&4\SH%66 MVY!TTA'/[,/C'XOS(WHW[+A@&VI-W MQ$!F[E,4T>GM<"34=LY<7^UUUPMB_;2J%8D!K-P_-4PRHA 7(\R+-9&$* MF7I5'(29G1K9E%Z[/8C/]JY-5DK@O-(/;\]I8G04AY[U-0 >7'[H4W40/FL+ M0BK6),S/Z+ASJB @3J9(85?WHZ3/M?R!._#=VMG5VT8!X:/>SJC*L&2& ;LR M+@!6/ >,8 V$$(1FB*(\UR%$U&5L:O3S^:PNQ$.RU('B$)T(IRF46',"A,XP MP+30@$*= ID+:)A.#=0ZI+=@-(1':"XX#L)^Y!X+MX$IO7'SHNC:!( 2>EJ#/VS_>9^IW&MVAC]-;"7873C3V;1F:H3\WYF.DU\6$/G)N7137[I)8%Q/4 M2UEU46WT?'/HA?WM=SM!_2=?_Z=V+Z;:S#]UF5D#L=(IQ"F D%* G40;%WEA M_VH*1K0L-/+J3.%K<&H,_Y4O]*9<4CTV_@9R\C6$/7DV(FY#UT_7CFJ'ZDR?AI",1E"F'.0IQ(ZI4<, M&%(I0)I"F>8FYY2%$,I%2Y-CDK*.JE8.#^.0RVCZD4<4C(9FC7.)B8=LLB8] M<0#^N(I.).*X;&=4QK@:[DNJN'[!R.G\+J.L3"@K4ST:+>TGNWS2ZE]7KNYW M,=\^?[&+K5G&,D603$&AF088"@-HEFE %=0\E]2E_X_2]<#?YZGQUL&[D;*\ M X;7<^XTK4$;D4A[9H(?4C:35N0/21-[<@@^<=%/(#L\?*CNG2\>X/&?(X,\ M? BBY93W,-WOG?5JL5C]SBV.[U;K-ZN=V)K=HCZ+WWS14L]_NM7YZ[H):5H4 M$G%M )'(OGU000 GAH),Y@9QQ/,BQ4U3<;_W3Y!]+U(Z;@T^\+MD[[X3<4GD M6JOY-G%B+:'',X'CD%K$.4= D0(#C%W*@I$$,"T%90QJG+/P,K_X8S%Z"=\O M?.$".%N^-^2 V*@$7:5H29GO4 M"48O6%Y.%?K=Y(:>[1]7RWU&@4L'?M3U?MDLE052),4 4F(9+2\RP%PO=R(R MD]&4H%P%;9%WFYO:\K!J43XO74S^HBLG_]HC8>L*RIZ9%]&P&SH#HX2M[6GR MOL:P=O9R476_)N]748G9[?VRL?';OE\-_&S_]^M7C;SKY3+(7"7"9KLN!1DW MI9O??O!E75%KF=#H^=8=)5923C.C<\&,R@$B=H:%L\( D0L,,DX*A5-$C%%A MZX\1O9_>ZF7OXAVD#WJ,_L";8P.-Z)]FDZR*/VD!D%2DOK40',04#E\:^YWY MW#VE'V^[K/_@W7O;K(?G?X[ML_Y#$FT;[087^M:^E4O>KS^TWGYPW_9YW5O* M%%CG69Z!S+B=,\Q20)F@@!D!><&RC!9!W:HO&9K:;+KV,RD=31I/KS6>"L/6 M[[T0 [&!2;P?6#TJU[J1B%:K=L',R-5IW<&>UJ-=^7R/5@:?EOK;_%'7K0,W M=:H#*U!!158 #:63\)(<")5JD/*\$ MH%/A_OR5X\G5=WI^I#W?_^ M%9Y[(#V/&&Z!9^C)T1Z3M]G**N:6Z =^/FN_(B:Q7XRVZZFT%[6>2/NWP]-X>K]Q9N:7PMA/R"]^ MH&R0C[J[2?SC?\Q,Y1(DTD)-'9U<(CE M3D"< \*ID2K--=9>(G\][4_M"6ZWUEN5IQZR'4"9TQ>8N10X('XOZP%A'I@J MV@A7YTI'ON^S!9S[?RU57ES.F(TA8OY2/_!B93 %6A\WAZD?-"=93#UO&5) MR4P9BA$1"!C#)<"4&T"9G00RPF"*.28I#6)!+ZM3HS[G;5G17\ILZ8/?@=NQ M7HA[;LS&QG'H+=H&PO*'ELL/"=\FC==76B6$[]>&H!1KY];+YKA[N"$PG.SF M!EWZ.J_[Y>O5\OMFLOMO\VW/U[O-EL[&5PW.O?/,\1P6N2" M@5S PO4ER0#71 .#J= BMPM4'M27)-#^U/CIC39Z[1I3U >=8;04"KX?00T( MZ_*7Q_:\N?;%Q/_G=^I\T 3SL&X%V$4BL%#KHU)93VA> MDEK?V_3<;RM%K?8%F9JI B$%$(0"X*)LJN3:\:6%X;K(B"Q0R)'5T=VG>5PE M*^<27KH:N#=V!)[GSE=?2(;>UZI5\^)7VYT+.-9>U-&]Q]UI.A?6R3[2V0_= MUDBMM=;Z8/_A_58_;F8IIQDOC)UU%++,RQ6 &Y$!I60J92H(+8+60EW&IC;% M.+?QD/SFW$U*?T/S<[MP]GO&8Z$W\"/?'[C>O<&Z$(GH*^E*K MKLT"#C'-J5"G6=:XH,&)7FD)F4I=CK6/O"_:=& M$W4;I]+'_69E:.>K8P2[V2 "+@,30!@D/7I8G0W\AIY5Q_<;N4?5V6!.>U*= M_UB_=_Y>/^>?=B6P6Y=%0N_6^K]V>BF?WZP>^7PY$YG"D$AJGV [4\]B6WNP*"*>IH%)D?!0IVG/>38[SJ@*6>>GD M'>0VSHZ@)SG>:UR&)M#;)3/J4:U"G)0>1A?V]U:\..O;GT/3H@O6:*H5G4;Z M5FF>GH2]V57MG^M%6@&%01FF0*9IF17$ )4< JXHT9E,5_;0D1 1XA4:&K4W ?-#WW,:-A M-#!77^L#&+71LA\JL;8PNXV-NWOI%?C)QJ7?5?U8^8T6VZ]:[M;S[5QO7OWD M\X5+/G^W6KON<*T:GG^L5YO-K\NUY@M7Z?\/^T)PY3N_:+-::U>T)@LL\Y1I M +D1KE2? EX0 HC$1/&BP1R+7>'Z- MRL/1X7Q)V?$-W-BJ4*]_SIV2W;EMB(^KY4^]L""MVKU6%L3Z?(_HUO ME284$.5^HFSO.]:R+SU;*48?;;^7PR3&<,2=XK.M'/?Q-1O#+B!W&)<\ZVUR MB.G!-=7>Q4P2'AS^V+TBH_MYGUZ30\%]L5?E8 9[Z)DVM4GNOIMSI^Y%(9FB MS(!4N*-!A100E&-0T!RCPJ T(UX]<;VL38WL]Y5;I<,!(IY78>UFY.A@#3X% M;^,4G+70 [\ /=28.(XDC;K'4SJ?8^FB^@+1*9%Z]2;CJ:7ZQG,DG.I]T7)63XWOZ*: MX2S+"H 0L2^<(J/ _1/@5&3:OG4H3(,T!4.,3^TUTOA>"J3L'>\^5+M]!/P8 M?2AL-^ M(W7U W-@QKH!QWCT=(K,T*S4LC@-,CJ%P)N#SEP:2P_KM+WS3%#"-2Z0)1N! M 4:0 R9(#NRD*I=9GN,LQV$-3GW,>CTQHW8FW;'8$@^'3 FOVO=S-Y_:9*9TR@GM0O07\=SXO0L M>MV\<2LF _-#*!Q!ZA67XNXE77%RL]%T*RZ%T1:MN/B9GFV0UM_YG1A/_T$N]YHO GDNQ1\UO2G+/L1B8GMJAN3R: M5G#EAD\[/,=B^P"30X3#[P4--0"Q6D_%=F_ M6I!6B&G1J9&9Z6/H.2R^<'+T,2/,V#ZS1%OA6A@7JO0*9_7]Q[H]$B2N!Q^ MM!2',R9&3E"X'.1I>D''9WO,6 ZM;;[NGIX6Y:R(+UQ+B7>+U>_OEV:U?BQI M_XLNJUZ^K3ZXG:U-V>>F^F._ZB&,V:5J04!NISP "TL4'.H$'-X/29A=QJTH4FN&:]/ M0>/UK1FOI(RL[OV5],N*CCF0 1/'.PWH2!/.]H.X:0]LV4W*N(&=MP9V?7@0 M%V64L;*S!T"Y/8KYLMG,*%,.6L+HK\2F MG/0'JO+[W71"]+O7Z6]Y7FXB5CD81^K]C?L#:/>'X199S=_3^%WT_<. N:3X M'WB7&V1^*TFV-[OU?/F]DF6KI-K.9^[.B#:8"V- "DT&L"1V5LNA )E&,E4Z M3X4,*I?NX%G >(,^9H]A\EQ.#PO^X*OM MEE!EHUOY<+ZBH5W8S(W]5K@2!J/GV]TZ8LK(#7C&5!,.]&!\7>%^$)U5&.YY MJY[GV4_:Z<@MOY=3G5:;1RB@83P%-,W+&@$&!,T$X#0K,&1(4114E';!SM2( MK^J9MFJV8#7T*O >J='&0CHQ74(AU%'O!RK@G MJMVAGAR,7OEX="W(5X^K];8^B7U;J:#\N^;K;[^O9HCG2'$*0<%R8B=1QC6K MSAE@$F5<9@;1E$:2B+SLQ=38Q'[+<#1EPP[P_>AD<$@')IM.'<2'Q/DM2VV7 M5C /B8LCL8&,(I%X'^G;!>MK\8;\] M8W(!$:0%T,04 %.I 3>2 EC(%*7:$$54"/?Y&IX:W7UX_^J7]Q_>?WO_]FOR MZN.;Y.NW3Z__WW_Y].'-VR]?_]?_H B2OR=O_\^O[[_]>Q@I>@^$'P\. >_ MU-=R>5].N7T>9#,:)R@HD!G#OI;D)=NP D -6IS*5=S:$LJ$KRLJFIL=&O?_OZMV1;.YML M]MZ&<4\'M'YL$P>P@?GEUZ])XV5+;37YK7(T(KM<1R,2GW08&I5!K@?\DC,\ MKAA(OFAS1;GB'_:3VTW3ZN3?]/S[#R=F]].N0K_KMW_HM9QO].?U7.I95J32 M:*A 1@P$6,$<"$0-,%3:F5%1$*72J)I&\7R?&H^5GM?-J-1JL>#K36(7_M7& M>^R^5!&_ I[[]=,F/I'D7T?%IB2/&')%@A:0 7^KT27ZI_O] &KW86*CU!Z^M\,R,%3K.4%2#' M@@.,4@)X9A?]T!V(0(E@ZJ2U_1NUA#H0]'(:H77+WL-2'33L910,OM\;94A( M!WXM^'4[\(,\F,O[XA:)D(/-C\JJ?<%Y28V][]./WUY0Y\>=6T9\,M5Y/C MJLEZ27:;*EO4]0?8;;7K$6/G8?9O^C!%#R/%X!%314$ET@P@1ID=,>S$_*@& MBDAFC"ER^W\S>S.QFL*8M1T9DD>7JT>7:[9:#XR^WRMI2$0'?B6=+"4JY\O* MANH9:/G_D+R9+W;NTT/L3/=%,=(+*MC\J"^HON"\?$'UOD_//:E#2O;91<.^ MKX+;.O]LO]0_["><^-UU]O7W>,C7S^[I_GMU\^?D\;KP%VER(/HN7-TOZ$9>G>H73YV M8:?H(6GB2\H DR;"4G3U83^2(45)X=L_PPQ!K"V>R-Z-NXTS#+0G6S4#F>FY M'5.+J7WFS^ZVKW?KM5[:*:XD"E.N0,95"C L"L"EL1S/*%4ZU8S@(+WJ\V:F MQLU[)<"GRLW S97S4'INH=P,T, ,N<>F]O AJ7V,N!W2B4&L38_S1L;=VN@, M]&0#H_O3L317/VU_V&EGD]]:)7K-F"!:0N4.%0L*L'&3NY1#@"3D$,N<9E+? MJKIZSK#7%W]4W=72RT16X)<90M;HG359NX"XKLK:>74/$8WW2_O&7_+%XOF-_JD7JR>M MOJ[,]G<[9:J3@51.#-,$ R&PG:,P@X']TCFYUEQCR*5"W$NIU<_/; [9U-&F^OYU_U^J;ZBT-$17(DR8=.1"/) M.7CCTBG2$=T)*C@?U6X%O;;Y=8N+]_-%WK]VLZHOJ_6S[.,&BJR M5 &.H"59B0U@G"&[+LR)5DJ97'J=3EVX_]18M7(Q*7U,&B?]];#/(=A-GQ%P M&9@OPR )TL3N"+R7+/:Y^XVFC-T13%L5L_LU-[SY1G.4"41XJRG7RN*W\##QK\H/<\>(@.Z-!'M=>4>=Y> MP33\7"((HECG%'Y&QSVW" +BY!PC[.I^M&3O^#BO)'Q?+973\+9\IY=RKC^T%63"Y>( 1B5&Z+(U*(QXAO^0.GTOZ-W][^X?\X=X?'^W7 M8992K=*"IT!DW "'.A7.N+=S9SPU47WVEZJVU)NHL MK&4\RZ2;.>2*,8 -(H!B*8 L5&8RH@UC:/94"0=N^7KK-W\8R?N0I^IE# /F M4QSM[NCO\^72G?>O3%+Y,$[Q=:3OAX"09Y09(#/745!H 6B!4Z"%S*DI(%%< MU]^/MTO/1)G)?CN:"$;Z;F@[]_IS?BO\9L,3'.<15_"72O%]*_&/OBK3*<*/ M.V9C%>!'\GI:Q?=QAR*X\#ZR^;Y9WO^UFZ^UZM#T>V']UXTVN\6'N=&S'.4LY\OOY7OMA9PK=?5:F__M!Z^X_U:O=D&?ZT6>YK7KT&/LR7^KW]I\TL MA4:F--5V 9$+@)DL $M1#C)%C6$B92ALD_I6AZ;&N"Z>I S('4V7(25E3$D3 MU,.YSM=)$UCRFPLM*6/SS/*,-K9^Y#SFB U,T.,,5KB<="2$8RE+W^K.N"+3 MD< [T9N.==]^Q/W9CJ5>VY=&>59?.C(S&&8F0QH(D7. E9! %#@#FB'$TDR) M(BQ7[HR-J='KWL6J[=!#\C_3OZ4I3)[X.OGI'/Y[DC^D:>K^UR1J\=WVQVKM M1'3^GNS_L6YDY$[.6HE<881[;DS\./1&I >FQ0/(7RN0:XJLVM#$X[D.%")1 MUSD+H[)11X@O":;KH_TXXTU]0Z<=M:GK,E\MU4?K>EW\FR%CU\M0 (0, SA+ M.:!4:) 9!+$--T>,A!\<7+4[S2W_FMC/;O>'$<-UX!4A.>:" F:*%&"'.6.: M *B))?,""BEQZ([\ + /OY>^!_UH'STVW'ZL'!7 @3FZ\;64_(N8[^&-022& MOFYO5+[V#O\E>_M?V'?^YUJ0;9^=TH:[L>L6\.0FFH?EFU'&DG8A >8* JQ= M+FL&,1!YIE!J"$4L2!3CNLGIS0XKCQ]*R9OMOC%&Z?4-*VL/\'WG?3$A'7P: M>#.:/::$O@!%FR%>-3CRA-$7@-/YH_>5_2CH'WJIUWSA6O6JQ_ER[N3>MO.? MNLZ,K8N):6Z7G99M !.NO0@U$ @M"D 9-%A1A2D)VB#TLCHU(JJ=+A\9?N1V M&/'X0>['/=&!')A^VA@>>]RDT _0C20(I$@4Y&=S5!8*@N$E$85=W(^+ONB? M>KG3[ZSG+MO6Z4[^VWS[X_5NLUT]ZO7;/^1BIVJA#_O_ZAO_8\9R2#):**!- M[C)G.0,490I0KEWN; $A$R',U,.'J?%4'4)@BGT?\/TX:F!(!V:LVOO$/4]) MXW_RNPT@:2)PY3]U#$D31&*CB,=@-T 8B<_Z># JN]T T4NNN^56X04!KU<_ M]7JO-)WRE-(,(KO4 RI< KX@"#"M$[,MGVC_EFA@TU1&D,A'$Z P92^Q-+@MGU$V.:V!$V]FX:&CD[8QK 9_N85R] MHN>9_'PC%ZO-;JT_F79*_A>]<&G9Y?'124;^YM )@2B((4,"2"KMI-]P"1AF M$*@"8\Y)GG$8M(EQHS]38YM*R>2T=B?P0/G&0?(\;AX/^H&)ZXKF2?+;(+TF M(N$7ZR#[1F_&/>:. ]W)(7BDVPZR)WQX/#,%J>9Y#A#*"X")3EWRC0*%02I5 M>9;"+"AOTM?PU,BR]COJYF\H"0Z!W?VW>0=BO%"PQMG0O1.'A8(1N'5[*RN5 MK[\WARTU'LPFF5CP#$XH#3*-BWUTWB]!%*#N'@&JD33=3[],?XNDY'X% M@T[]]DO7CJ?:?L7[(ZWV:Y_MV[GGI]Z44EC?[ UJ#>GY?Y??A_H;:8C4C%," MN"[L&A93#1B5!!S5XZLH+7?Y7^UV>P>JUJ\+_/- M?[Y;:UTVJ;!^?['^SA3AA.:%7?UEJ9V*P:P /,,2I'DN96J4)@@']8<=VN.I M<9GS$1CK9#*OO4S6ULV1-(^\Q]F/%BB/NVO74.3J<;R:MN!\2%WGB0D^: MV),O7=^)\12.0L?IWMI&WO[^.52-0N&/IF<4;+C?^^K#G(OY8KZ=:R<$6YY& M_%@M[/4;EXZ_?9Y1SD5&% %$*_NZ(83;N2]4 '%"%(8"%UK/MJLM7_B];JX9 M#'I;[,T.1SK?G(UDM/S^7_^#(DC^GNC2_[#7R%7X_=X",4$=F,0_ MO$#R;3=JP43K"T4DGKQJ;E2:\PW^)4MY7]>/9-Q<^Y-ID5Z9")'FT' D<\ $ MD0 CQ0!W*29*,2DP%US(H)/ALU:F-OE\[;0VQ:JN"VE/7,JRD=;?J\ZMVQ]\ MF1Q=%$8PYZ'W8Y6; 1V82F[',GJF2B=DD2CGO(U1>:8SS)?DTOWAGIEKJY7Z M?;Y8?+&C^6ZU=A.F69$RE*I" YTR"'"A*!!8&F",U+DBB&( M>VEN'O)%/]DOQ _NA%M=BMOC%^VV4UV)REXFZ?"95X^KW7(+9X2@K"@X I+R M4O7/ *X5!) 14MB)!Z8H#]HDZ^W*U"BC7&TV6R _^=Q&N=")6:V3=[OMSO[J M$$'@CEC_T?+PW)!M#!.ZC >DGT@R2&2]@>K6"+N2-T,9ZRMIOZ. MC+N'=#-@)YM#M]^Q[YFG7)=3,;YX7?8(K5H:OMI6F<..$KZM3O>E#E.XS8Q( MJ J2<9#J'-G9%K&S+4*YY5J,;)=)?N'N.G(6K) M[^ZK$8;/]]!US$$9_%!V'TQ21=/T9VW'XX;KS7RQJW0;C-%RN^_D>CEC.**@ M53S,HYW^WNS0R*?#L0 \/3V.=N=^O/UI_9TOZ^/JUY9;5HNYJ@X4ENJS]:3) M8_ID3@5>-_NR8JU41IBE;I0R#+!FPE*W(""U"V6N4X.A#DIGB>+5Y-B[%=1# MU08 M7S)\W)OW5$YLRDQ6==^%7W:;^=*I<6P^ZNTG\YIO?C0=&698%1QS+$ JC0&8 M$PD8$4X:5V(C$$8BD[.E_N[*6;X%2"D&^.#U[+/JV3_Q9#@>*-W;S)O'7-0! M/"1+?7D5??N ^)%N='Q'4EBLW7:3Y-J]Y.#Y0V)]=U@[[YO?QY3?[@%:+-7% M$-/CZB_V .5$B;'//?J1V]O'I\7J6>NO>OUS[IH2G$V/J3J;ESS[10.A'@D08\B 5)D&6&(, MJ!/1+'+$[#_SC*H@5?$.6U-C]TJI"=TN;85NEK;J@=# W'A9V@J-)&V%1I.V M0E.1MD+ATE8O+^FA.EDU,'@WWTB^^'?-UV^7ZHTKJ2"2&YZ) N09+@ VJ0"\ M0 JD1:9A9G_2QNO,JLO(U#BA]C.I'$VNNEX>I97PCJ2MKSVV9X%#&Z9JC\]:9?1N?S^0=M)29/._/SK M4EES;F*KU=L_I/UH-0^,TUAH-YI/*'TO^'9!]!4H9@ MIR)-$ ]).XRDBB-Z]L]-.,:JG>CEP[@%%;? =%)E<=/->JZ4+K=L/FR;*"2P MUE(!335T^@8$B-2R88Z(("B3A/.@S&D?HU.;)W6W/+^ER['/"'@NM"+C.O2* M*P*DX0NO (QBKKQ[%?%DK[C7;1>^5G27. MS9SOS39'#Z^6JEVHYNIBM6I:UY6?+.M\9H2DDF":@L+I5&&>(W/*Z'2L58E MYC;+[.-O\AR#5$L&L%;<:1<@@'1!(=?,2!.DR'S=Y-18PGE<%D8XGP,K!:_C MZ\C#=@ JH#^8,2JV[MN<-SZ/&\ 3NKP_*_L6;?A9BD?5\M5L_?W M?BE7C]HU/:X2<@XJY)I+C-(< BQ=Y;+("D"S/ 7,SD8RD7--5-#BU=_TU!BF M6HA6[E92097#@:44_M#[DJ5463+%%Y_Y7+U?UCGBI2_B MI;M?=%5BU60%5_[4&WON V5NWXRB@FB::T"9/N,&'V>]-,:7!&_CM\>KS^]0PDRP1%)4X@SE(:\-3IL38WPCURMM.F=JV%\ MWX6M'U5'0FQ@EKT 5G1I5P\T(E%?EZ516$XW/)S4KU]0GPC%CDD%$: M2"53@(W) =6YI0@MBKS G.>YZ*E-7YL(8H;1U.B;Y)R6*GUOV?D&2S]*N VA M@9F@Y=P^?V408?D7H<>7DF\,W$L\_D6 '7+Q+S_9H^?D5[W]]>F=UIN7):,S MH3,!4Y$!4A0:8 0IX$5!+71ID6;,I$AY"55UFYG:V]\ZFNR>$F-=3=:'-*Z0 MG< KN'8_Z_'0&GIWS@+UZU/BO&SGNUW98PL!*J 5913 1FI&V?D-B]67\BH@ MG9TI+U\]7F_*JQ$<=:>\_ND!"MP:Y98W.^U*ZK[]OIIAK"A*>090)7TM"*"< M<$ PT4Q3QE58,4>@_:FQJ?UJX8CE:V< ]YPY#0?CT-,JCY*U[2H1.G';"@]5 M^:P-8:1BMHKSL#GQT&W@3(PS51X-.4&T9=O MEV./F6UR;&#\K)*S 9[-'CG_R1[+MX\[)]?QR?P_N_5\H^9ETMRGW78S5_K7 MK__"ZV+6NF7W)_--+^VTR.T1\>]ZQK0T188(@*E=UV$)#6#_7W=7TN0VCJ7O M_2MPJ(FQ(X0>+B )7#HBO=4XQG8Z;%?TH0X*;$RS6RFY22G+V;]^ "X2I=0" M0""3U83/&[!J MV &_?07?J0"R20YO6\KKI\/@ORQN/E>MG<$M+=G M'SCL7;"]#.ABG^3?I=CH"/'=>.KOI0Z^7#_JF,M_;8H?^N/^)-??ZB8 VY#B MA&9$7<@)#$.A+N.QE! 'E,,0!9(%*,R#7)A;,-T)F=KQUK&B9>2.F?JGEAUP MTS:'K1G2E85M+'I7+)F)<72-O%>,/Z(9^'H4]@W%'L9S.,;:@[$7P?-A6WXF21B6>@R/%$V@#'QDCX64A MZSWA-I(L[_ K=^3ZNG88 '%6%I][?SQ9:\#%GBPU>?Z*S*GFIJ\;)K'/NU>ZI"?=!Q:,SNV'\"& M5J]/8.4],/$R&CXS>HY/-'Y^SEF&CV;;G'_C"D]6+QSJD^*@+4_3=6$C<1C$ M C,H4A9"1-, ,IF&D"(68H8B'*=&)F[S*:'QZS,Y/.+X'S0B HQXULS<'" +Z2->;4OUY8#'!,8IX%J4P M$3KM3GO92)Y',(W"*$0H2\+$*MW:@8:I2:*M+47W?6S:W7\LEL7]YAYL6YO] MMA3:U[,?[&(;7^VP7&8R;.!%&%BHF802=4S8F!K]1A2=AW&,J*(3%$PGLN@\ M1%;111>&LF__\7:Y5L/="%'J(MK-'_I6&,T1#^(TH0&4,@QUS_H$4D((Y%DB MHTC$NFV0:?^/D[-,3>8UA(*6Q%GW%U";;UYV>8-K8.GDC)15*Y"+ M2#CU CD]ZFC-0"XRUN\&!*D0H8\ MD$8QT6=G^5-M_-NE1?>?T\"Z;_PIE7EQ1LK+QC]7>,5]XX]4,\6(,9.-[UK% MY,"E5M?*^+Y:J!^-_K4)'%=YT=]U6T,JJ5]:1\X,\N1,QP#R] . MB98RGP4[CC#LK41'?^R1BW(<8>MI&8YC#SD7Z:E-V'\OUM]?;Y08OM_9NA_G M*18\DFD&DQA+B' 60(QP H,$IQ*'JA^BAC=8/-0B4A48)A$B9$QAG" M7': OUT:-J_T#'H)N,&%;$,G^$,1"CI*>W9WKW62+D/B MKU+2F;G&KI5TF>TCU9(,7KHZR?:(QSP25(HT59=?DF.(HIA EF,& R(9"L(@ MB?/4,=_VSQ*0<&7J[75A"#Z@&EAF["?DCA%\< D4_YFZDP@YN,3VF?Q=;X$& M5;F>?RY78L/7MV5;\K&.R$M(D%&VN?MIM]9/# MCF-ZN<#4UM!RZ3G'GL^T*.OJK&^*BB]6U49]#-LS*HCC@"4L@W$CV?F6QJ>UO3"FIB08]:D_/,'F@-+ '?@[/LW M&R#BJV_SN:G&[==LP/23/LTF[SCXTFXT3K7-]TG ]$>I,[#G@:09IC&"<1;J MNT-*()52J00RBN*<9+J#E;$?[>)T4Q,BFMZVB9MK(H0AS@8.,Z_H#2Q$S@(' M?F_HM7&374;0PD7F%:37-_FW^C/>823'(<2P2Q#2EK'.(8LY1CJ_J41YRR*A)5;;2A" MIR;G=_R .\4)>*'.V.HE6"U!L7R0;5.%&5C*VGNUIC_U'[\D\0R\^(6\G(%? M$*EO3"]^B5/UHR+MA^1K!=?BM+%UW"\CDXCF,L,P#+B$*%&W>AJR .I F!#1 M*,XDFS_(DJW^3-]&G^ )?1T367,+$^4SK^/0ULW7[V?@C61KL*-\!FX>:+'0 M@>@P7Y50]X6=@=Y2MUR#7^LEUXR_U/X^]:P$NU8K,T!S):' MS.K[F8@'7!) M?-I6AR!S?+/L@& ?M>@..9^;3J+T&RZEJ-XI@/1>N%F*+EOC-M]NE7>K4O]R M1] \R:*,IE) $1,"$9GAS=QNO-88@;,DIDD2PABQ2!<"H) EB80R2N) H)0) M3(W-9J?GF9[4ZRCM[3@+*\\91 T,9'YP&EAB'87(Q2)V!BL+4Y@?S$:R@=E] M7G:VK\M G#5ZG7E]/&O791[VS%P&C[OIDDWD^,X-B>(\31"%82)"B*)(*A51 M]X*/I&!4D"0,K.*/]H>?F@SLTD$<'8T'V)DIN*(#FTJ&\H>+]4E%1'P!5?;O]]ITN;W_H(2K=O5R*]\NV MR5:FKH,\BC#DNKTKPG$"">%<_P^33!>?Y/%\*>^H>LE,&(Q%NM&F(LVFZC,P MW-YJZ*OO.WQU?[]:-FE3H*BJC?KW%X7Z!\UY]=*A9-L8'X.9;)O4 H]83JYM M(]YGNM]+'+#'X^W&->NS+BFQQSUH8CS7BG_0 C #[3=4+"]UTG.K5#?BLOFL M>S<&V>-7T1MQ,8[6Y!MS?M>"$M_HS_="S5/D!:]I;!H1S'.6A31EZL@BD8!( MYADD48!A%N&4,\EIGANUK+HXT^2TV:9<@J(6[),+&GIM"TN< OC\6> 5MJ%5 M7E?$' I,7$#CBB(3IT8>N=#$!0:?%INX](*;?ORFJ.C=7:G5.MV(I$NV/*CJ M%@M*@@RG,!3:%9(''.*44!@C2K*<2RZ$5:U@HUFG)C"^;N[O:?G8R_*MM*K2 M5Z%&9B:@" !Q94GK"U%E662'D25J:SCBJN+*$X%%BVKSLF M+!7+8BT_% _ZUK967U"AY&&3X'ASORK7Q;]K>?GVI[XFRB_RGA:Z2.]M_JZH M.%WHIL1SG- X#B(.!5,R#3$60!8%.612Q E!7$IBU&G-(TW3$W4MD5IET)^O M9;J3AU4RDW0C8S^P%&RX@34[8,=/DUD] YH+K@UN?=9F8&^Q&K[JSNH>,ZW\ MH>PK(/F;?F#\$EZE\>A'>)8WLA%@MS M7M@."/?0]]]]>&\.X;VJ1Z4%OA8A-;'1,>QO?_+OVL?SA:[EVSR7VA81!8CDF,,$!P@B@BAD M,=6Z/!QR7?ZB3:,C'HN6?/!"M R\U!Y=KEAM MH@/T7^2.:-^'F:WANDN^L#GH69E!O3_08\C?87HF 7-(WKA#_YQ_XT& M!?!^^_%T0+R<@2T6H ,#:#1 X?'^G'/LHR^"M*-2_RX%>Z>96&>E,Q['BI< M2Z?>W\N2%W3QF?Z091N*G01$$A:&,$))")&0$<0)%3#.$BY(3#(FK7R"1V>9 MVO5H1R3XH:FTK=5Y#$C#<^%:>(86WSMD:@(O!_X[U.0\ X&W6IS'YABY!N<9 M-I_6WCSWL&NPT&NIK>2+]TLA?_Z??)S3"), 90AR&N@@H8Q Q@,,N9!!FH@H M#(11SXF3,TQMG[>A+BV5H"83*#IM@X(.@3R_U[W ,_ ^MT;&(?CG!/=7!/T< MCCARL,\)AIX&^9QZ\,H2>J\>/RH585/6$8GO2G5CDDO^6-=US((^B>F=F?)[:>I9$GOY*]J MZ/4;=<'9,O=EM5B\6Y5ZU#D)*,I8+F"8ZY) -,60,I%I7TZ0,IPPDD@;F38Q M_J8F/SO:04L\J*D'FGS0J[GYXI?_J;-V)I.TX_9QF8GQB5$]H2-CO!2@+5(S M8/B)#A'&-=$O8?)916[<_8$MO5*;E=!U',@Q"%<1S$,&!2WX)B!DG&$AC'>49(PO(DLBI.XHVRJ8G& MO?ZWFFQP7CNMP*O'O0?WU-,V<,M2>/I;=L/[R7,LYM WBUZ?79-;1G7VFG%Q M'>UO KXQ]Z7#>Z-K7.W;-YQ/]&;O$[@=":\V5;&45:7F9L6RGOJU4KX+-4(3 M,Z?(J)J0NG">H""GH0PAD5$(4"RB'@LUI M#/M8@M>ZC%N5D',4LIPA'$'&=%]TG,:Z U\&F40L8FDH0FP4+G0X\-1D MCJ8-:.* ILX\7F /K,MA JX0#!T%9,:]54S ,5:=0@'V!AHM N 8^7W'_]'? MNRD*O\JEVL$+'5(O[M6-5=NR=:^.-KUJGD0HD6$601(E B*2J^V7* 4AI%Q= M!X,$YZ'5C?#"?%/;FBVY3>K''L%VJL$EF,VT 8_@#;RI^[CMTPI:8OV=^8:H M>#KF+\TVZLENR/KA86[ZFIM(:7,UNQH/4J*4QED.)<)429 L5 =X*&#*XT2D M",DHL,I/WQ]^:@+CYNO7M]^^V@F' \#,9($[# -O_=9F/81?]#C/GC;VP>"C M[N/CC!UNVQ-/.20Y?U":O)2W/VKE?7GW02<#?"@H*Q9*LVAM$=6;C;S1[7QT M1O4[]7G,@SQ*:1H%D*18Z0(1CR$) M?"%&RG]N^)B!U79%%O6*+#I>9N!'MR1"+4G3_>M1+TFNB/"5'WT5G&=3I=U& M'B]K^BK.]Q*HKQO)T2^IOL_:U'V;U_U#OZ\6ZN7JH*A_C@.,XECIAT&@]<,P MA#20!.8HC'5Y#1I;1EZ:S#JU@V1+=.V(ZI']WUWDFFLI-K-%,/0 ^H9V:.^> M#U3M?78V*/GRQQG-.:ZOS0:&)WXTJY<=Q=.&584H:/FHNV"U$]6A1D$BHEBF M'-+:Z"43=67-< !QBK#@(B DMNHP[ N(N!+5IR<9USY<(G=)S+AX@MNCFU4W#T>ZX1'F$ B(XE+&,($IX G%&(LAD3 1%4N2A4>4O=Q*F M)CGJDAKY8O5'VWTR[T@'=$N[G4!Q6!8S23,LV .+(%WBIL:Z(U\')+W0'(!B M^1)LF0 [+@91H>OEC=+4?^T: *=MDW!7]5=PG4+=AFEDB9)!#.AUID,QD\@:4;6% WV65[ M+(*&1_!"<_ER!KJ%[3@%/59KSVF/6;#C=@98S:_NJN)/H ^\(IZD_E!4CGHT M# SUX?DQ]'0^$\#G28CB(,V5/IU*#A'+<\@2&<((1RGF22@9MDJ_.C[-U$1\ M?96!K(XHYSTZ?:0]7Y5]/"&!>C3J?A=.7>?NUL4=O0>8G(=FT*S8*22GGKR/ MGW]ZY+H0;7IIG49:=2WP+N:8S@,E9T+.!419J)O!H!@R07(8T02'"4OBC+-1 MZCZXT3\U0;9-FJ=MTGRN,^4?ZDQY7>&MKN:@36BKAEUPIUEJ&[2*U6)!RVKW MX%AE'QR_G6L$ZR2^B!$EMF/9AFUAA@:%76]6T_H,$RC*<-TZ/G?1!4?J)W!N M#;XTWHHF7$G&M5TNU'5 Z_]BG@0"DS"+82A2W 9[$Y3!* W#,,OB (=&"1>G MIYC:>=71!<1>J7_7M@E;),\?#7[P&5AZ'S2;Z"B\&AK7YA$N$#U/GXBBI720 M_A"',)BW@MB^^4Q='PXI/]W@XE<:ZG]O[I2@>"K&A"UT5=[6L M+^)?9"7+!RG>K"9I) @E$.42 %)%A"HJUJ++,I% MF%C%LGNG<&KRM:$95+7#O&RI!OFJ!'E--RA:PNL+0*WT5Y9:O_]5-M/KGW7M MQI/])]3VNI?ECC^=W%NO=!,:\:6_T@V7H&/38V/>H5; 5Q-?[_2-V_!W*'B? M- <>;"*WU2=8WR[K(V0_]R%P@%(E88)@C MI-,C(PII2CC$),KC).(\(GB^U&V/I3 [$LPG-Y(7I)$7?1*&$QM=\81*6WA^ MM'37GBS9$6TGVRU6PDQH>T9W'&F\37M8KT!+-NCHGH&:\J;%S=N+*%O+6'O M/ E/BXE'E8KV@!R*.X<1'&[XSL:(VK;0[60M6^M_G<,ZE"!YC<6UV_?7X"!3>,9 MUW4,6_9_W)):V&*><6E'LN(T;HBG3GA ]]T55>^Y-OT-T'J)6S_7=HGU[:?^ MC2]+T$"+<-:&Y'O.\:Q/ Z&U9[<::@ZWFXN^$:F7="NX-_)!+E:U&M$&1'1- MV&2.6A_%E26*]@9F0VA\ MV8LO33>N^=>0^2?67-/W'(VSK5?1] MI^7%TD!KO1J&=MHA,1[:7-N!NB->MR3O,&_I!PT#8,N!1YNM*WB^3+?6\X]K MP76%YXDAUWD@[VULU$3ENOAW+7);Q>Z3_+G^]H=S6/6"I>+;% MS:R^._(ZFK?'U:PI[W6[]!@TX ?0X?O?F! SE98X%L!9=,FQ&?7:QCEO::G% M=O59EIVYKN#ZOEPL-NJKK%LR?%.3OU*(_'-.-AA/3NR)DT'&Z"9 34W@S2S<<+3>^L: M.RJ>J5&-$U2GV]*X#>?HC= )#+?Y;U4CT&_96BG'6LZ__:GTYN6=?+'$.FJ@!ED G.(TXP%*)&1S*QZS%]!R]3$;,T*7.5PH^Z8M*FV MO&KYT0E2LN6H=C^>*MUI78[GFL4T](*,LT1#>T>ZU5%\-,HMN.TMSMO^XIRL M=.O1&UL[+UIEYLWDB[XO7^%I^;K1!G[TJ>[[Y$EJT9G9$LCR5UWY@L/EH#$ M6Q2I)IFRU;]^ LP]DYG)!2]?R#6GJV5E*I.(Y4$@(A"(^+?_\%GDZ__CO?_GMPTMP?_D?__$O__)O_QO __SIW>L?7BS2 MV6>>++]^6 MTX^?UC\()L3=?UW^J\RHHY49'/<>E) ,(H\:9& %BTTQA?)_?/S7I%4QSBM0 M.0=0,GD(*470POLBG/*8].9#9]/Y/_ZU_A'#"G\@YN:KS9?__I=/Z_67?_WQ MQ]]___VO?\3E[*^+Y< ")/_K'ZO\E__XEQ]^.!?'_"U6MS$M6U_S? MSW_QQ^NEORQQ16C9L/J:OG'Q^W65@\C /]8XSWC.W>4BLT6Z]4.S*MO%U6_. M0L39YKN3C-/)YE.?Q=5Z&=)Z8IF5/H@,A2!$Z!(:H@@2E(J*VZPM$^$VUY7J M%9&]4<4*TU\_+K[^2!_\8Y5$_K#6FAJ_6B@>3.U4+D_N4'XKK@WE=(:_GGV.N)Q@ MYLY8%T!834ZVP\J%10C!)6F84\GDH]!P=\6=4*#[1<%1$NQ"^^_PX[0*8;[^ M-7S&B7!"B609>*$,L2\L ==2<4F-Y1<(0DNT#"*PKG MEV3"-H)_3_+'YXNS^7KY[?DBXR38G$@6!:S@%%U;.O&391+?M$S/,Q47EE"@R$$[#8598D1P"9%K#BDI M&;S4W@?9 # /++\35%SO4&DAVRY \BQG4L'JXC^OIW/D$XRF"%8")#H:0?E$ MHLG%0!5+<5D:7FP#@&Q9>B=P^-[!<:Q,.P6&F 156/:*0Q&%T*V\ \]# AF2 MD)H%'])Q.:L'E]XM@<6^/V3L)]2>D/&<_OIF^6'Q^WQ2$M&:;M8K(S>RYAXP>/\A[LK[J;ZCM.;1XEP9/6_QW2V).AR M$3],US.\R@1CJS^ M#\M0:Y/>?_L<%[,)Q3R:<^5!IT2$\Z0@!/20'3=)%'1"'A=2WEIN-\5WG*@\ M7'B=;/J?_TB?POPC;C+Q&"BVM9K7J)<\5ZX)O\%)8,*5S (*S,36G3R-Q3+_BB[ .%VQ-"-S1.ZE 1EFM'KDZT=H, M+GB-.HN(PC> R/;5=ZN?ZCX1V4"T74"D7O OGXBX< V0<6O1W0#1?0[R<$%V@8/WG\-L]M/9:CK'U6J2E/:) MF(>4F2;R302G7"1 NZ@THHKVN%JZ+8ONAH/NLXV'"[(+'/S\&9)C4B&I!#D8!*63 8\Y 9UY7 <5K"LM3HRMB^^&B^[3C,<+ MM@M\O/^$L]DE]:6(7%+4@,42IGUQX*7PP!,:,G'6BB.SC??7W T-'><4E Q_00F"29Z(G MT9\M I!':-@-)!UG)QN+N0_0D.268?9JGO&/_PN_34ST!LDIALAEC:9T ><* M!\T,"N=";PPQ[ZO.@^57DY7*3=,=)S4;"+23MYQ7#/QDKZSFA03Z7#T M!DHB>"M'R/81,R0E>4$NI++'U=(]L/!NH.@XR]E"H%UAXOR)TCD37&INKVTSL^I[_R4]M]]A_/P:.[ 1P MMH*/(7R9; KC*AC>E)?3.2TV);.P.'_Y=X4TB4IP+1PPKPA?!CE$+1!T+*($ M[G+)CWGK):SB!A 7BY[O,IRM5Y??N=YN^]!UJ 6Y7./9:D5BO>*2,^$P" $E MUC=NB?CU)2>0+&6)! FM'GM4?@B7MRD8I\_ 8$BXM#D-Q#VB*W*;^@MG^XH) M%)*I@"0*D034'BUT:M+YB3E%EZW'K![+=QR.F3N$C N=8S2[%23'B+D#K#P/ MJT_/YKG^Y^?_.IM^#3-B9O5L_3PLE]^F\X__&69G.,$4K$J(D&E3@8J\EJE' M!M'4-_?.8L+6]F8GPGK TE$ 6 RMC0X@]O[38KG^@,O/K^9?<;6N=GLU2=I; MDUT":Y6BZ"YG\)P%*%;IDC+GUCSVROF@-T21D.0$?+N@.\/$NIOL9= MO2,Y2B M<5JK#(>AAO+O 4VSV>+W&IF\7"Q?+,[BNIS-[G-XR5P1&;4W'BP/%A0SM=M= M+;0TEI=L.<_M'>M]"!RG9\N 6!M,._M#SY]#;XX?:SP[D"G[%=>7W'"NLJM= M%'W1D8YQ2P$*IRUE$NTBI5DPT0QNR*[I&:<1S"G-V(&R/]R(+=9AU@1'+RZ6 M?;Y870EIPEC2,7H%-MD,2DL!3A4ZY1UF=%PBLM:V:AL=X[2.&0XW1\NZ@T/O MS?H3+F^)9H)>%&ZQ$,YKJS2GZ-CF!'M5(O=!DE0>O8DX!"WWJ1BG?XO@F2<5F0N_ MKPA3D)]E_(:PPK?U=;B;\IO*]R(:Q)59*RP M6!\>U)>,C-'*=01=M;/':)/?8DX]#X'*Y=@]!=Q-D'"3,#D#P*TGC$;86EW P3-AP$9A=43I7'RL].H0:#Q. M40^A=!/ -!1\!S"ZX:W_NIBG.WX>\RYD937H7 (H])P.5Q'IK U96&:9>_2U MX9$!TGV">HBKVYQ'S<3> 89N90UP8Q>R:BE!R&$K@%E@IC1 O-& M,V[0J](Z"?,P->/&3,.#YTCY=X"DK3*::)\E$>P@<1OJT ,-D;@"[2@&)#>> M!=?:W=E*R+@!TW#X.5[J'4#GG/Y)XEI&0YY]U!7PC&L(V5O@41J9M/8QM0ZR MSU?N(=/;L,IK+T%VD+M[/0UQ.INNI[AZ-L^;IWF?%C,2^JHFE-;?KD0CBO Y M>T^PKMTE R/1),.AV""XC4D6BXT!LBMMXYY/@]>8#J*B#BS/#;[NIM(92T2] M)Z,924@J!@_>U59VDI-UY.DA[D)AQ [7A MC%,#T7> H>>+^48:?Y^N/ST_6ZT7GW%YR=5EA[])DJRXY ,P&6N?KJC 65[( M*7 L:>=,?'1(X$$/,':@:]R;L8&0U5PA'8#L]IWP/6YRLEYS[<"5*"A ]@HB MUE"Y2.UE""(\.M?C^+OX@X UV W:0,!JJ(0.(+7%\C)AZG1WK"]+*%8QN1 O M559,.O0L8S:/]?=N$]^->V\V$'2.%'8'&:E-5O4&&UN2MKP$9C29T^@Y'=PL M,' \6XC&YYA""3:TKBE[FJIN'/'AT@2-5=.!;7KT"+^1U(\*O6P@WM M"L0@$R!YBKZ4@E&T?H6X(VD=W.PV1,0^'M:!ZND =0^<[S<8RB:CKH,;M BU MS2I+X+$P0([9>1,=QL>F.S?TL_9$VK#7P,,AK:U*.L#8OX*D#JZ)A\-72W5T@*X;U$^4"BKK&"&E M1&())!M/]I;^)@-WP2296F=%;RS?3<[J)+PF[ V>^=GR=GG<7J.TJZ#@G M$XOS5%D1*@FE,@(O@EA)+(#WG$/P0J:LN7"I?:KJ07*ZR5 -AZ-6RNC _CPB M(6:L46@]A&)*K37.X)0.=<9)4%Z)'$3K0H4C2Q-.D9X:#E6-5-$!J-Y>KKMA MZ;R%3K0EB3KZ) LDR=2:C> ]L<"%R<2=I-"C,9JVD#%V%[4V&K[W@NTX<7> MF!L-S<_I5]:9[- !QSJFV5)\$(*SP+7-KH:D0K6NV[U+P]C54(-@Y2A!=P"4 M#TL**\^6WS8S@?GHZR--34)!+8!"B3J1*V9N ^:B6U^H/$3+N)[T M0,!I(O@^6L3DO*DI#+.W84IQY//P94IN^HV=4;NC^Z2+ 6LY!9&,XH* I98: MAMH_EP4=FM<2/$G5N([U0+!JK(P.+-0[7(?I'///83FGL&#U+*6SSV>;\IL7 M6*9INI[$(C0FR0"9KC&"=A <%M#&RUPGRF)N743W-%7C>M@#P:NQ,CJ UPT. M-IFV.BIHB9]POII^Q?.DV.O%JJ;"WI0/X8^)JHD,07M&H*C--**FW9,\6.4\ M8U%(;-]?;3\2Q[T^'LJN#:BF#E!X7VH3U"7QB!H<6@;*&P$N< U$.#K'.7>V M=1;J/A7C/H(9"$M'"KN#[.53^9.)CH4I)*L;,$H2#R)X1QLA%>+3HDU!M;ZF M>XJF;JI:3I(//UXMS6 VQOR'MQNE?,+U-(79;8Y:#8.XO<3I)D,\PMHIQT1X MY@57S(/T]4FYDQR"(HO%F!4V.B^+;-Y^^@1C(F[GWDC6;Y:;9?,F.'Z+R\U\ MODF1R2@7#.@4*(:1:.HS: _(C2E)!:&;'XZ[439V0K0QUVVN MSB= /CM;?UHLI_^->>)-#O6F&TJHW.CJ2ZJ (&/6SKD2E&[=5^5QBL;.I)X4 M9$>IHU-PO5JMSH@3GK4D8@-$ESGY&DG2-LD%K/.(CVM:E+@]3,W:6=010 M':"&3@%U)1SM> *=>! M<=9:,7UA[=XYKRRS2?$,4;I4Z\@$A6@R-ISUW1;0_]?_XCS*4U:T?6!Q YKC7TRV0<[\B=5A==7!@UL/^3;E@=.*3HQ"$ A2T M5H&RJ,%+F2!6PW4K M>>19<)OJRWSO07%C(,1@(6H='3/,Y-(ZR_0@,>-># \!F39R[\"NO,?9K!Z; M\_Q+6/X#;[!4:Z^Y*A)!!EUKZUD!)X@=Q[PO4;DLFD\K>YB:D=M,M5'WW0+U M-K+O $7O2!U$0$V"O:#S=;;83 *]9,:$Z(,H'GC$>EE=Q_G).M$F8;'%*BZQ M-9 >)6CD1E*#8*F=!CJ T]]P3C*:$2_/\N?I?%KELZ9H]Y(=@2ZK6 H4[\AR MAU @6IU!9,Z#]-Y$WCH$?8*DD7M'#0*IEEKH %3//B^6Z^E_;Y3RIMR=$CFI M@Y**R+K.S/87X] ]MY"YQ20Y(T"TSFP_3M&X3M,PD&JH@PX0=4]&%%1RKJ(. M4$S9=(7(X!Q%#SY)*7C4V>368Q;O$3%N==PPN#E.TCW%:==O6"=")V&MS*!5 MJ2WW& ?OZ5 64B:;-$NT%X8"RS49X\)ET-CL0%EW )=?%_/%;2XN#UV?M,,L M/ B#K/: ),B;%"%B\5$RQW-I?87V(#'CUDH. 9TV0PQ0K;%R)B]-;YU.#<@.^,6:0X!XEYTWX$=O6+Q8AO_1"%- MS?)&';.B^ 2D5!Q4M,2&3Q0>([.^)):D;^VG/4#*N!6=P\'O.)EW8$%_Q?4- M_X$;G@GR"9#;>I488B5>;VJWN*30ET34^MB]2<"X=9J#'+4'R[<#N[)+;YJW M-=0E_:S7RVD\6]?!A!\6YUT%K@2H8@Q92 O(O*4]05%,9 '!BEJR8YBPN7D( MT(;TD4LZ!XD;1E!J!X;N,;9?DILP_3@_KR-+WSXLPWQ%+%8)S//FJ]FYSO/_ M.EMM.CN?NQ:U^H)G(X(R"+HJ0*FL:H6U ?J^\1Z-E*[Y"(EA6.E@Q,FI8;G' MUC@51CK>*K_-EQAF]1'=_[F8U2JDOX7IO,KFS?P]IK/E>:N@Y71%__2"OIQ_ M?(O+Z2)?M3&S5@?,7 **$&HS4 .>*?*-"BLE&(%BF,+8 7CI8$I+IYOEI"CI M>+=4EM]AFH75:EJFZ8YQJ#'KLS?/7Y%9>1]F^*9.)+DD6\Y.X=_:YUW$#IOX?1ZOTI!9QR+P)@QH"0SX+15 M$)4HM5)%,=O\_>+#Y(S\R&R8$N@VPN\ 1Y>MJ2];HES))WJ!LA@'QA7:B\[2 M7BPN@=?(I,_6V=0:1 _1,O)3LR$0U$3L'3BG=_GX*:RF:>*59CJ<)HZSB.4)(L M= :C!CKX$7+M-AW0T/^U[E/Z "GCAM\G0SK[@,'_'7 ML\\1EQ2VW&UT7$V..:S-RC$#4U;7 LMD4NNGAOO2N)N=^JX> M PVJIN\(AN?V.7G#66UB[HNL]W*RUDV5 CF6F'E13*76F9:]"!SWH!P6*P<" MU!*%? Q;[JNJY1M\BJWCGL'8*//KA?[(&_H MJ\1]==V!9]#\=JC*P!MAA%:U\9^ITW^*!&="!(&8C O"9G>J^_9C^.BS1\<0 M@#^9MH^]!OPPOMNQ92;7$([&0Z._3N%:/,5B^PE-C\VH\\B*D^0KFU3?Z@<. M@:&$E!,YU,%HQ-:%;CL1=ORPPHM%/M3[QDF0P:I0JT^2\G6>;.T?5Q_$9&36 M9)^];WVW?)N";F8N-<+"_7F%!\N[@W/ZBOISB50;OIC7W?KLC^EJ(J(RO#:3 ME[*F(U3-R$7I(47A8G+.I.8MBQXEJ!,L':#IAT!SM-@[P- ='EXL/I-;.TEH MI2K:U+%BM;C">7)=6007DE;&>RMX\PO=;81T@IGC%7WW?N5HJ7< G1NMXW_! MFG^:>"=$C'R/>[QB'V[0?X"4.X#) MK8;P%RR$&)A1H1:^U++:.K0B6)M!!"6*H)@AF=;)CRUDC'QQVQPJQTJZ [ \ MRWG3ECG,WH9I?C5_'KY,UV%VP4SV27'/"N1:4JJ( _#U2S+%,F7KLS/-&\8\ M1M"XA<3M =1.^AU Z1VN21Z8+VL9+KE(CDE;2BWFK]TFK87(O(=8K/3*I&RP M=9/&[92,6X;;'CP-Y-T!:IZE=/;Y;%:S'P\EQBX82];P6$R$%'*IPW$,;8=L MP646E7;&.&SM[.Q,W+@=9@8P3(-HI0.X7848KVGK;+I 3%0LR)QSX(,5H$3] M&Z?0%$71 K-UQ;>N0;I/12=SD!L&ZX<)N .($+RK7X/S8?CFYJ%&0[*$33:U+@EZC)[1+Z.' \(^4_OV MTT^&J2,UT V2'AY B-D86SN<6A:)'>5J<^](#FGR/@5CM&\^W^.X*9!# M5G&?#%=M]-$-O*Y+(%8?%@\D3#;\Q;"Y3?]<.W)M%/L.2:ZKZ1K?X_+K-.%Y M?= [3(N/\\VGG,\LU"JD%),!*6P&91G6%O02K$Y:%B,%\M;^V] \C3Z,XF1@ M[PH=';B/&TF?#ZF^611W;@ N'Z7=%L3$Y4('BU84Z=76Q2[5/",ZR);I$H5W MUK8O[MB;S-&;^)[6,1A0A_W"=+/E'N!0LB**(2^[L.IEHRNT$;4!%HPRFD4K MF\<^^U,Y>KO@L4':2H/]8O1\&_[\^$T=W&F;: M%Z>TAMJ?"Y1W""X$!T5K;UFP$GGSX=%C]J,>M$71Z+OBI' X>%M\Q65<]/IH M_$H4@4XW6JFEB,K%'Z>MPGU MMI3Q1"Q9IRQ!:RR@C-$4=G@)(4@4*+67??KJ>;=L9:M]/Y6JAJ]89*:!V5G/@BM"B@E#@/!FI)%.FX(-. M.-\ZW?P8/0VRG/4SWRX77Z#G?)>>L:X_VI[.2]Q+$(VI(;'5)='22+;F=_@_*!?D8 M*W7@IO((7EL&PA0RT5KZH%LW]CT@[3X4C(;6]J.)]WU$WP%N;E61UA+0>9K. M\!9+'Q;[2M,&70P1"\YF"UPT4(X'C&(HS*J%NG!Y\@:5Q#.SYF%L,I ML L\TLIINM$G_7V&%_=I/U->47JG7^0;*B^#L"XD=J*6'FY6+Y8G,5U.9L] M2VEQ1O*>&!;)S!L9]I-8=$)NIK@,8 M/O1(R2"F2$8=?:J=JG5M^U 00M;&%"Q,-[>%/;XEZPYZ#=35 >@V]]^_DC!) M2O/![)Y%[FYG)((0DMR+K")Z1_ROD>8^B@K)U_>6#Q(S[0JP[Z+516AOIJZ$=O$0^4IBPB>IF*LC:)4@/S<7",5Z\BJX+E)IFW3KEE.[4S>N@WCB MA,] 2NO '-[G[-*;H'V/TZ^;3E_"B9P-"LB%AWH]RL%K0?+S7B*J@!I;OU7< MA:[>&@NUP<23T#M209U:PA$P'N&-5TBK:-0W%]6IQ'\:Y6?\100*NTDCH%WZ4!?QN^;:RW#9')4B(D5R,HRUWU41Q(JX.Q M D66K3NK/$E4;[V!3GRV'J*:+KVYRW?@[W#3IO?U-,3I;.,83QQ/V8LDB1G/ M@)Q@ T&4 F5C:BY=*+US?,^]/76R>=$"&RDL"[!2+MK>7:;IU1**H8A!);J M1#JG(40R["(AQT(=TYN\8!74)NN>+^494?Y^N/ST_6ZT7 MGW%YR>"WBOZ]6K"DV8^HP41?*ZS\BSX$B)8*830F/V]X1?W:ZAW6ZJWYCA- MP32 M#NP:+NG.B>$?,MU)'F9VN./##3XR#4P01NB,!5D&J"4=4?JQHTH3E_G M.H32#H?C@C;7D'!\-?^*JP<$R7/0GF<%L7;54,4J"-5L(W%HE'&<-\^K[$]E M)Z,U3E3-WTI='=A'"M4O&_N>MP0B7FF;K;_5;F?K9_-7045B5'_VE]P[L[=5V^ VB&D[ME+,,HK8N$WSW>-GG,]3Q+590'_R>!WE(KZ0-URD1#S MJG9JJ"T:: _]$M:U1\.W-^79US"=U83F1?^&Z^X-$\FD+CHDH-\F+R>75"]S M(B15A*X3CK,L YF05MI;A^.L/L+M$)M@NR>),8+=25T=G-SDA[_#+18MQ$N-U MYZ9)TE9RQ1/YSK4Z5SH&KO95B3RCB0%+*JV[)SY-59>!=C-'-EZJ]U<]_X#)-29P3FU2TT3@HY U3]"8Y!$'!7(S6!AN9( L_9%"SC:@N M ^S!8-=413T8N[L,G4_^\"P6E;T&(UFH&?P$ODBDO^62H\4<8FO';SLE70;' M)T/7_LKH 5+GIIDL<[WK)BG1%[4;%4EP>='4ZN*Z>XL<)Z*8$D7AD+,@9I%Y M$ETR4)C!0-M'6-[ZKN\H@KN,C@<^=4^@VBX.Y-VE.[$R2E\%RJ6K>56GP NI M( DMO/2AX!!##G:DKLM(>2B,#J2T#B+EGTO!1 '=SW^0MTM[[QT!_8=2ZU0RWR8D&1 "$X46M,0A%96"N:!S[CTPY9H2@9>VS6@3]S9!T,.;$ M70[!M:[A/"V'XYY+@VVLCF'2P2EV4@/CHRRJ#JRFR*G61$H*Q!F=]1:3R%%5 M.]/5%AKB9!JLG+_/#30D1([L9DT"6ZZ_OTU48I*>Q0@E,4VGM"TUI9J ,XLV M!&U%\_OI[C;18 \1_AR;:!^(=-X2_F\X)[9FMZG=K=_[Y:^V:N:^E91&G=K? M+#^&^47GM^M>\><-"=_>(/I-N8B7$-6 MUA6??0ZB=0>-)H0?W6WI&"+J'IHM5F=+_$#*_&E6+ZM,[>M8K*4-A+&V?>3@ MZ>@!QGU60FO!F[>5;/I\?SO69.8V*B6735E!MRJ96T_,S]P#K MNO5S6IG:IXEL9'BS2V_FMCN[ ?A<=:TBVK;=L+Z-&%G!U84>=V:ND@6)$!O7,>I6,>6U]( M[D;9N%9O0#3=-6\#**ICH_4.OR+YN(?8J%W#6<5 ^2? A1<@Q:!U$2?KN?+0'VB4\M=*X]N)X%=]JC-!4K!V; MA*N@\=6<1'9V_KCQ ,NP]7-:&8BGB6QD)UZ&Z?(_P^P,KS5^C25!7JULD2[$=O(&ETM]O+F8E<80\Y+C#S3L<9KK[$Z2L#0V19M# %CP"Q:1T^/ M4W3TU)^MGXZK:\@GP8-5Y'WKK!D=N@Z!PG]+;GEBC!OF1?.A T\2-?*@M'88 MN3?%IZDZ.K9 E]TTPHU&&K_B^A #]-!'M;(_.Y':R/P\V&3DNJ V!S0Y)8C* M65 \%XC2%] I2I8"YXXW[\SQ%%$-GJYL7V#;$>QTU.CH]&7)T3$O4@%?DH>L M3)'21T33NA!H'_K&-4UM\;/E5NK84/UML_7$)S8K M.=B#\$;6ZW+)9_>7O$;(%1+I&..2Q0)B\XB>)0N1$R8M9F:]%%KYUDW7]B+P M6*NVTV(WDAM*.,%1 ^-JTS:>0]C\K3!K10XRFM9/X?>C<%S+-ARV[EJY ?76 ML9VK[ZVGYZVER&)ILH7U][U;&CR7M0CEP.Y]"# MT2FD@DH+V_K:?S\*QS5OPV'K7C7I<'KKV+QM'F%_6LQ(BZOJMJZ_'6+5MGQ* M*V/V%(&-;-CY1U_G*K P9P@YB=LZZ%!:TC-#*$$%9;*10;4.IFY3<@LRX#T&X^DJT,:L[$S>N[3D"$_L/H7!.<$_XPU9H/C;77@*I]]1EGK7/LQU%\K W;>?6?;JY^O95$<#YQ MQ>A,WG05H;]%I C$J.158J4PU;RFXCB21RY;.!T^[]K'4ZJZ8ZMY/B'Y0_CC ML.#RYJ^WLH\/DM3(*%Y]_K9L1>%&&":ANM35G?<0@@T0;-2(MJ#/MO$&?H2< M!@..[G[TC6Q)#"B3=,"3I7A%E'KL!P0"GV!U3K:U PSJ?9">T0?T-L'$EEE% M;330L0FYZ(=>&:T7,4'?UPKW[ZKXOYXG)BS=V5KB%/J([:Z@C! M)P%*>0E+S[M2-_-BN'6KNO:(;1D$=VZ1?<7W.XUM<;KRX M0^S1_0]I98N>(*]5ABDLYZ3LU>4BUR=:*$PX8Z&P4+NX\@ N* U2A:"#$ZAB MZS#E(5J.[M]UYW-OW'I'+*5>

?39V JB *GT#SXK/6M4BP==;_06)&SBJU MP,&]3E=-!-^Q"?D;+CXNPY=/T_1J7A;+SP>GD[9_4+M^!D^2>>)W;0IMIGBX M@*NI1%7GTWF%"+%H)CGWIHC6_LW []HV;R*V"OK&P:FM9"QIR+F4FD65$ Q7 MX!/&K!B72N>GD++#.M_'L[1]('#KX4E#(7=M6C8]2-XN9M-#;_7O?D3C]BC; M2>NJ30HA2;'L.0A?Q_J:VF-*I0PE&0J>!4P# MJ5MF:Q"U=-"<\Z>PFJ[>E&* <4'\=H/*W.I7DY]5Z2NX!KB9%*6]Y%%"TKV/LLB ! M^0P8(:-H8[O?3C_-IF:9:17][DY#SLWVS MB&B3LAYATW=!Z<0AFA3 9)>]R%ZQ'5^4[[_VN$VS1SYC!U95_^'"ASK%\YA@ MX>(#&H<*V\CJ*E P*#/RH &Q3B1(-H 31D%T,1/:BBNI^7U+#_T4WZ=/F,]F M9)M_Q=]O;)GE8DY_37A5>+II?KUZ-;_Y,U,BBI!U\[FC%IJK$L%;50OY>9VY MR"0P#$62SX!&M$X:M^7@SQ"A[(/E>Q6!X^&A8^.ZK4GAX9;VD4\;LJOB@#9X MSVYXK-CLL<[5"O6M852$"NL42!X,"T+*:'3K4/"DO16O=]$[3 MR2?X;\ZM, MVB3?!,]775T.,R8R+H*;$NY_L[=]WE7 MD$5AA)IH,R4I.8:,K=*I9!Q*=+#SSY)H/J1N6HW&33R?< M%QT!HV-'X^+N['#?XO8'-.Z$.J 'L>NE(:L-=&M/.6T=.90!+7@I//":,V*N M/NIM71MVHGZH+Z:K\/'CLDY1W'CX-V5^ ^?&9,>+ Q-1@5)E4XV1H93 K:\!6BLGPZ.ZZW2VIC_:]?DVQT6M60\6I7 ^Y@HIA,2 MG/$<"C*OBC#DGK3>@@>0.>[!>@I #JV[CH_)6ZU'#S\LMWW,(!U[!SPXMS=U MC=PI5NHS 9]\S;L(<-F'.N116)F=3+[U0^&!^_96O_3S8KF^R([=P;6)PJ1B M/6AE"==12XC91F Q:,:1.WTWH[!+!]]'U^RQE^\^:G^XEV\[47=L0K:U$#W< MDCSR:4-V^!W0KCS:NS5:.CZ,L&"-KJ^=O(>H LDDRE!T-M*EUH/IANSS>YVS MV3*[C7;#^T^T&S[@\O.K^5=)E%L9QE\P5"GG-_-WF,Z6R^G\ MXZ;XYP[SGH0?K$9P.M197+&F'(,''YR/*+UEV-K!;\K N*[_"6!]:B5W?(P_ MU&WZ\*/\B4\4$1-HVSP$HJ/BA3^U0UWO;C M-,M^,[_PI>8?:8L@G0Q5Y'?VA\N9L2@-!*PG &( QW4$%-%C<'08W*V-'JR/ M]B[T=MUB>Q]D[=IBN[D2.S9R#[2T/MS&/?Z! W?B'M#"/=U/667-@J[=LI2L M4_(L!R>- J9E1!Z$=J%UV];Q^G'?K,/13H7 *G4>E) 98L0$016E>4[:Y];W MID]3U7OO[7VPLG/O[<-TTK%Q>KQQ]1'UJ+M\[FFZ;P]HL?;KDXR"14)=!(<1 M0:D@(+@@P:#.*FKEP_?=@_LZQ+E<]GJ[L&"0_E^ $US7@(5"%T%!5&1&9)60 M*=FZ%=$CY'Q/W;7W0=Q&NDK2?)PY79NHKTQAW-98N>V[S;9!0*XT$& MP^MHQP AU**M:!"3CBBQ]9/+EO2/^V3N]+ ^N>8-;! M@,[D?EWI4?DLBA+ =5#UCD.#2R6"844+8XO(HO63V)-./'B-887U0OM>4@@Y M6IT ,9+;4NNTO#4:>/ L2N9R^Q3 Z1\3S,,]D'+70/70A.C/P*^\CW>GWTA M6U/E%F;UG,*N)]?>?L'8:W(=W&[GS3&NP6M>!)NBJ MWZ- 6ZTBB8.'HHX \,&$C>LQC@KBTRBS@PCI-9(_C&\NNY1N^+HJ=_TED)=\ MO^R5&XX^RUB'2TN2-3+P3!C07BBCL\%[C8X:'/E[DSENYX93N@/#:K#CL.;^ MP)7#HYD'/VNX&4<#QBYWIMHH)XNI12EL,S>YR RN<#ILL02IE0WBFAE):1MV9T M1]*ZFG*T#QX>3ANV4T7O-N;>Z* C[AL*^<;0_=FT_US]2RMIU_O^[J80JDO>2"(E$ %.I&\ M,0B%)::9YUG:X3;$H52/FS_J ODG47BG$+\0Z;/?PS+?Y+B6J9^CH'8W^7+= MB.C6A*-@.09 DCD)'SGX: MP%#$)G4-1PQ5VM.!@W*Q39] _$1#ZVP;Q[L9_ MAR3B:2(=;.3P;)[O?.>W^73]D$F0@BQ"]A9B[;*B6.V+[^A+S(%QK1)IQ0V[ M*9KR,VYJJY\M,AY(^MLP]T[**\^Q\OWV;)D^T4_4 MH'V#=1RH#$>OKH/FAZV-P-IKB.+=F]49^' M6[&'/FJPJ:1#W@D_-)/265,R+PD,':^@C$H0I*-SUC 6N.8LQ-;[=:C9I#<2 MYW=6J%T;$NVS%]/9V?I>7V#ODS>%/%Z)];(R$>@]^<"04]1>::OB@$TZ]B*U MT[FF^V#HD=N.P93659CR;+Z>YLK2]"N^KVU%-JU&?OXCSQR M.L'#1=4=G\W; MIXT>,6;GX8\;=-QO!\V;58J22ZQ= U4$)=!"1!O!HT+K1%8^M!YC<*+FS=?; MY^URD<_2^J[@;Y3;ND1.J;84?/.Z+33Q7ZR#PD5AB5,$KH;+[#]%W??1QGD? M'#ULZ)IJJI\*_[?5%I#2/IZSN.E"\6Q+!Y8;M;7.>U%"@21J;1UWF0RU+)"- M]US&X-+=H4U/5O/O3<3WT:[Y$."=5#T=GZ/;1A+]&I8UQO^*+W =IK-FTY3N M?>Z09V*<"4L6I; ^!T@,)2CE),02,R1I)2N! HUL&A\R8TU8VJ:2G[[= M^&JSG28N:"V4C% R%I*(RA!\5!1Z*5]<2#$T?_6Y+XW?U8RD?1#V\!D\@/(Z MB)NWVJ;>FO<:S)!\7%9GZ M+)*Q.T4#]S^[/S0#P>7\65_A?9R3.G[_6'I;T M:QM#JK3BJ9:/2%X(Y#XH<*RV/N(J,,6#9*GUD?, *>."Z*0.30ME](FIBPVG M?'8ZU_[0C%=&=(2 55:)&8HY4M:N^=7F0\2,["BW4/73\#E [OT!Z-*R:LVD MK,4@BKOZEL:"MQQ!J,(EMQD3:_TP2PL2+JT:^#%47[Y@?:8_2,^[)H[##],+5T!+$;J;3G M)+%IWE2TD;268;XZIXQ/4"7GDW> M7^*8K'0]JDE;-$G9:-D!D^0JGV0ONYB MM@-1\0#!J&Z7U;J+[XY#T#!2_LXN[JXF4"W*[8GMX=8LJLT3!,R-;_<.6WS( M*\ &XACIGE!:+3%[\"X@*"D8N*+K"Y6L38ZJY#34C42G]X2E!)65+L"3K'F[ M*AM9PB9+[)3(G(GA^C']&>\)]T#8T?>$^RBO(S_Q[OV$P1*#R0:TJS&:\@8< MEPR2X\HDDWPLK>OD_ASWA'OI?\=[PGV4T2FF;N>S0Y2<9>/!NBQ!V9#!6:= M!,^]5LQD.U3 \9W=$^ZE^KWO"??1P]A1Q98++IFE29CKT"IK0"5+09%*'B2J M&$OT.=C=1JY_?_>$>VGNB7O"?<38IWFY#J?0>64X!3S1>0$UTP@!@P4GA0KU M:MVHUHG[H[-G_=P)-3Z\#E-+1Q"[X6!>MXA[E4GTTS(-5X-1+D.M9]M"K=K: M_:*Z]F+^]R07IZQQF]0DI\U;;UUM"F 9;;C(F8RZ]:3V83GJSEH>B+RG,W1C MP>#/MBG.EE6SYS]Y8WCNQ'KE@J##)\E0?'6< M@.QF@[2 Q)]YFVRZ$DQ$=A:3R8"&UPYUQH!'^L,R&PQFF:,\P5U-0X[&O6#\ M_K;&_C 8.W)K*8K;(QO>33]^6K\IOZW.?W7B)#+/50#/218J.DM2$1%L9*9$ MI[5,NSTC.QG)XW8E;([^CO7=P=%P.<]QHBF80A_KM9RJ$Q)K5D>S!"Q:6Z3Q MFOO64>KEVN/V^QO,W!XDV@X@T7*OW)W7N3DI/GP*\ROA9"655LR"%,535,]M M'1AF0!IM@^#2FCA4=N0D#([;JN^[\"7:@N1/MH->7+#P(?QQ_M,3'8Q )0)H MGS.=,*1 'VV$%"EX]]Q%P7I.U=QC:*<=8O^I=\AQ(/B3[8B+T./F/Z2T.)NO M5V_#MTW.F,(-Y>A0!8:UY9Z)B2)S(8"%A-YHS[7\#C(V#S.XTXYQ_]0[IBU( M]M]!_GP'S?'C9M!D?U$KB6-YAC?_85)('-JAJV =ELZ=T.^_&_3WIMGQL7X:>W!YIEYTN9GHHGW4H@ F35%:]!YB[9T>0E#> MY!A0B._JT+C#X&X78NR[V3?]H^1/NI/"E^DZS#;)KS=Q-OVX^;A)E%ZC2PA6 MZ @J2PE!2P[>1F<+_IP;Y4;0=O,LYD)P]%) MKATV%,_U&*Z]-E)TPJK"#3M!<7ECKG;;*/_VJ9(=]Z[<7B.*^Z-,%(?.>7G5Q%@JY8QFXBQGHJ D0E$[591-)Z8")MR[<^5._ZMH'84>_ZMI'>1W= M -Q]3<(IA([1&\B^'D66*3J43 &9?+3^=WS5M8\R.L74[3!#M9&XCM[U;67ZO=^U;6/'L:N#=SR'(F< M8Y:R1+ E!U!*+U'YZ=LOX7\MEL]G@61W_BB2Z^BM JXV]_&&M@]/$DH6RI4DHVO>9G8/ M\KZS-U_''&U#*:UO/%XS]FOX?+EU&4]984)P=3Z',L5 D&3A:>/RD(L*%%J? M#I/;2!S7^ T&E=TA>;3>.H#EY3R0S?C?NJ,_3;^L+BR^E5E;S!%D4!:4B 6B MSPD<"FY$=M[8U!B"CY#3+=R.A\%B&)UT *\/F#[-%[/%QV^;:<_W1'?.5%;6 M) P:BK+D6F#6$)6)8*PK&)W3J;0.(W)\T1O&2\@E\ MT75NI;/@I._C847/3_GWPMI)GE#LI_@.\'_)UR-GU=^Q/K(CUK_B M,GS$WU98SF:OIP4G7I/Q2-% 8D+1<5(G2Q0DK\9Q(;G1BMT=Q' TR(^AM^,W M]\<@^60J[+@?Z$6!X/NSSY_#\MNB7'R]BM\N_V6]Q/#Y_#[TD!O?_19H===[ M!%LG'J-;A&+%"@-1U_9 6D6($C5P$:23Q=D26D< X_1W:11+]:X.!FNW2>R M\A:3M,!T*:"X8!#)20,^ 2.!I(E.[P/D2 &/?=/Y\FQ6IK-9;+3TI#QXEV!E+Y,4(;6^&;A@J7V7_'DY3%@JDC M'934N=:H:2@"E5?H,.\XY.+&AXZ3>1Q(T8<*JX-4RC97^<79^>B6S7'GE;-6 M5"_(.@;*U!:]%&4#HR-0RX".N^;7<4_0-)*1:.TU#J*"SB%UL=-*DL4$,H*8 MB0\E?;T:MQR$-VB-Y=&QUK,AGJ9JW/"U+0KV@-@!*AG[<*+M=[9<3N/'S5,ADDAWE]$=2%ES2@<0B2PPHT5T/6-PS%?IZW,OU]LFMEK+LP#UY M(D_\\Q]I=I;)$M9+*/I??7M+H7K@C+82Q,@U*.(*0G8%1-;1TP'L4;=^$W MF5UE4P_$Q^*TRNK_=O#7L*P&_2L>?0UX]Y,:W_<]2NB)+_8BY^0;IP+.&%6; MK7/PJHZ9L398CC&HYK/G!K[8NUSFQ705/GY7EZOGYCVR$J*/Q&=- M6ZB491V!@^ 8\X8;;ZQM_5SU,7J^C_O ?;!RUSPUT\;(ES_OPOSC^>T&:DD^ M8B6:_'QR\Z6 8(0!M,XYGGDTKL5ES]6"XV*DG?X6QPJS!P1<./E:T7D=0P:] M*;BU'B%Z)"\Q2U%8B"&PG5)^NV!@[)N> Y5U5]T'2&YDA?\RG4\_GWV^?&9' M7A)'ST B,@H,# .'$0&+$];&S&S>ZH;-%"?F,K/OQQ@W"+ MDG,K(Y1$L;Q"$\'E.H%#.\6"E;;L-K?X*<7?7'2\2[XFBC]8?AT$OP\<>-?! MFK&,,RK80DB4^Q\*B,KF;EX)SAY(.7V]%I= M.I4'*G8QG)3'!LV]2XKBRM0XG?B7/1J,TC(Q00JE@#.I !&<"V$99BMV DR M^Z\][JBSX; TL!;ZO]FY>B!UIV'\Y5/-;^>=&.8?UXNK?=?N+=C^BP[U/NQ( M]D]\M91+R#I'!]97!YM'"8Z\(]!:99&LB\&V?CYZJJNEVWIXMES6;$DM6/_I MVP?ZC/.0U[.4!*($KDV="^(UQ,0CZ)BB53QPCZXQ_SL1]GU<-NV#GGL)@^;Z MZ2 A50E_4V[PLLG%.^53I@@#C)7$A'7$1.8(C!4;>2F8?&N0;25DY$1">X7? M;;C^S@?ZVXIV7NTHD3<&UYXDC@N[!J"X^]A_0 V-'4Q<^2:7%9)&*:YE!&,D!U6"@>C( M,V:ED(O*+7*UVV.9.Q\\+B8&U>#6"/, <79@BQXVV=<14YV5P)RT9*M# 96( M.2\P0HRZ9%=H'YG6\RIV(&OD1.?@1UUKS8QM=Q[FY]UB-J,@^O>PS)/L(F*, MJEY0Y=H^UT&4D7:3SB[))'TR82=KM--RO;I+!VIX,:BX.[!6VT*5J_![PE6( MQCH+QOE0YP4'<%IFR%[H6$IAJGEWE$<)&K&\>0#M[_!"ZS!5'(RK+YOTV_MU M6*Z;FZ=7\Z^+:<)\=;Q/-&U#'FR"C):1/YD5A!1B?6.$,GJK ]O-3WIJI1%? MBPX'F_8R[NT\^[Q8KNO]PC4WUNJ2DM$@=&V\$9@ A\F2L!BO3>93% SB M$-M'%4<>8C_/\Z W.)>B?+Y8K8^XD]GV,:UN69XDL=&]R:UUKO/2M(7 M)#DL4C@(M42N,.3!D[=B5.NN$5L):7(D;3[QYAYA)DLM:7N$+#VHK#.X0DCF M*3N-]%O%F;U.HKLK]!%(':[2K6?.46+L(%JZQ9PV6N@K6-KP].JPE_SFWNI5L^88QB M-:,8%&W(&_>%L)PB!W+#8FUC&JS;K4_!]L_O(- 9" 2'B?"[.&54L3E%ZT"4 M2/9-& K.N*R5=R8YFR6+*7=YR@P;UISXE-E'"YU',R^G\S!/TS![-2=?[VQS MR7=5G?4\K#[]_%]GTZ]A5K\?YOG5_"NNUIN?.CST.7K-5G%26^8;!54OPW3Y MGV%VAB^FJS1;K,Z(PRM'7%;XZEB@Q.S($<^1<,UK;AB-"3QJQ5J_\G^,GN,- M7ER_KZ\1SH=3?"69ULL^VL7O2>KG%W\V9!XSU^"-KRT]ZH!DSS/P8G1"VB[H MVSO63Y(U\FRP5ABY;_O:*J2#0_6G,*M/I=Y_0ER_KC]]V53/1)^R"1(X,Z;. MEC+@4YUCJ]!JHRG*5:(QL!ZB9>R8O['2[TZN::&!3I%T-?8VR:B$ Q,,^1N8 M$L00:_J4L>19E-JT]LL>IF;D 4A-M+T#A X0?0<@NN-67)0ZI<2=]H*!SK:6 M.CD&S@5;>Q#[Q(T(W+2N2]Q*2'_0.43+=Z\FCA;YV!F"7\+R'^1QDB&^MM.7 M30AT<4JI BA8?9Z9.82D.:#*&) [F?-NL\8?7F/D,51M0=%2GAV8DRTAS,;8 M"J1S62?R^G0A='-N*!2V!9QP.A2#GJO670L?(&7LXL)A?9L6\N\ 1ILR7EKY MNC/^YD'XM@"YEF2NMO_392]]5*AUC%!,S;WRDL%IE4&(2%O4%TUB;HR]EO2/ M/O;Y>$#=?>HQEG8[0/8OBSE^.[?W+\_F^:JV/"<>413@-A$7FM7.?^2;JN#J M2RS-4FC=)7([)2._]Q@-&8OF:NH ;,]Q6:>PIMH_XTUY@5\6J^GER!^?I5'D MD4 JJC[_\P8<6@29R*603J'2K=^U/4+.N*=R-[!KI; >L'>>WB81O0U?KD;2 M<)<=R[E MK5K1T$'@>)OT)*3C\P5&M<<==L(&;=32C]X.UI)'2#MM_ M^_0)\]FLOE"]$\A=<_;ZNCL)EGK;$<$[92ISGIA+#(SA)@>EG#.^,1;W(G#D MYE$#!\;#Z:H#(-YEZ8XP+^M/:@7!3V%5HS?.4[(\ 4O&UCD(Q)\M"H)7)K'@ M>>*MC^%]:1PW$!D0+GH+C+\M%ZO5 M;W,Z&V:5X;_1.?.:OO,3EL42ZS"-')SP*070W#A0-AGPDMR29%ETRBF>9>L+ MTF;$CQO?G [-XVB[0Q-\+83;(ID@4>]K#:!EM3TWDIRC"?41)5.LE(0)6[ND MN](VK@^.%B;8'FT%LR*K+]?= N='5< MPK'_0V>+C9W-0!AL3133$]:V,721CO.:%RT3[9D(E\ONZQE7V6&[NN/."R,7I,W;,NDA)7?Y_OI!DI1D[5SR\"15'5VMD$B: M!\N72""!!*Y^_8\I+HBH+S_>XG<\6ZW1I#F6>LI+S%&@)YR&X)D$G@Q'3\%$ MN=W$L.4^^@AEXQ[I'',K;:6>GD#W\T*ZR]_EQ')>3'2.@V&VU"*/!,YP 87' MJ#T33)7!HJ-M".S$Z#5$R#9VKXFZ>L+BF]FWB_/E2F+\LM HV9BBLZ"3M[1R M18&80X#$ED'QT%7/MHI%-PR0TKQB-YM%A VGK=TQ<'P3!# MUE]Z[T5&?Q3+)7NH\QH77/MHI -P75]KKW5(*Q>"L8B*)P_):$Z13580JQ6V M/&GF= K!MBY7N$M%)U :RM\_4.S= >=E.,?/\\7TOU_M[F'L(OP.(/1863^B"CFJ CF8#$K6HD:= MB#/&G4HJ1L[^,O#9E9'G0'K7!(50R1/3T9(TFHI9+"8 M6I^5=GB[8F@4'2SZ#O#S2!%^"-P&$1@47Z@@:>58,%84T;I?;J]W M)@9&4B,E= "GZ^CDGMCDJCCJ(VEN%0._#-]6$YK>7I7S.>:ESR%!X%@O5@8/ MGGD%162IE. YRC)8EF<_FL>%YA'S/T=0:0<07E?NW5,&-;$V,S+?&8+TO([Z M-1 PDK-)9# =C="A=<;[06(Z.8D_"B9N5^TV45#'9;HOSL[F_ZIB+?/%2R)K M>EXKX@\9M/S$-[8JC=V%\$9%K5>/?/WS(Z][#A8M: ,F1+ D*3XL#'R@K9EI M[7P2)8GF/?\?I^A@Z_33M_\ZOXCGY>+L14KSBW4="$Z_5X-?6\Z63802NOSB9V)''F09#L,W;%5@ZJKA]UR*P9?7C8H M%LYBS!QL=*).SLQ0XVE F8.-P;+0W+O;B\>%B?2Q*22#:!8(HZJ=QRM\H#:6Q$BH^BJ=7[R,7K&/7 [+O2:Z>5D M#. _**C'=Z4L)ZQ$46RH'>!U/;%.6'MJ,* ]QAF>53*I=2G9CB2.>VC7HQ'< M3WM=3*+;SH3F/IKK M?/0#[0[TH/,?899K=]QO]03A=SQ?!Y'+?<+?)[ZQ5?B["^&-PM_+1[X_"ZMA M(%?/O8I>0F \NFA LTC1"T8+#HVB/57F9#1CEK6.@)\DJEV_G0$:B0,SA9:X05EF)D0>%:MW78@JQ>FNBTQ,/=H**IV(*L3JW;OE#8%FI[ZF7L-OYO M9O1%LW!V]N/76B],S.6/\W).+BQ>=I]7VG.K,]@24XW,/3B?##!4M1S9%\SZ M*2]LNT=UBIQ]-3L?3,P=V*>7\Z_?+NCKKJ1T6;20*.8P.D *&&AM64UA#XDI MIZ!289)YT?IH[0%2QCU5&PI-+>7? 8S>8ECBE_E9?O/UVV+^?7T[XO)"3*W@ M3+4$V<9:KY M!,4X)!/)M&ANO&[=/>,1 MNRNC VC]U%WU5R0BTG0]G R_G>%*8;.\:2>\>OU!YB><68'"6K"K^U_.KNKU M'"#J&%==V)NW+FM%>Z>.?QNXCJ+@0].9GX8WG;_C^23SPC)3 E(6Q)*H1SJ! M_%8;,4AR/%0P1\MW$#V=1@P#F\U=%=&L/7G[;.3?YO/\K^G9V6K.^GF8?9Z2 M+[,N028N+YV?>7GYA=[#Y71&K[X,B\6/Z>PS+<*+V?F\7'['_@6\ U#1*NLY MM( :94HO'_'B+IG7%>17V2\DP2=%-C&6VJ.M"-KQHXQ@/&W^,OFP6JSP>E.LH./JZF-M?5COTG*%Y)^76)LT)1:30%5:6\Y[R!C7SQP. M);=MYZ$:Z,#/O&1A$JV1C,P]:)ELO?-(IMZ: +(4;86Q2K#64Z(OG]T'7/96 MX@.@V$FBW93;7BV>1'X $?'K16U*^7[UE$E$J4L=(V9#+5 2Q%N(48./!:.. MD@G7.B?P&#WCQ@=#X>9@R7=D54@N./T\6Q>XI1^KL65G*PU=S@B9%&\X4U&! M,E@OQWH-T6<'.K'DG4Q"\=87\K:G;ES/?RB$-=9*1WA[?[%(7\(2-S66U3O- M_W6QOO6]G C%--->@7->0KU[#3&3[+C(T699G%>MA[9M1=BX^86A4-9.%QT! M;+*Z@DT4 N=,_1Z^7I;1L*!ED*4 6EN[VP<. M3DH%4LJ RK(M"!MY M@L 1(==>3QV [Q$!OKVJ5Y#!NZ"0@=7DI"AF26K:>BBE"*=8BKX<<9]]VUL- MYECNWGX*ZAMTZ^*_:(W6JB1P/)$%9PPA2,? 9X&!1Q:Y:#Y3\0F:NMU:]T3! M]C#;725]0^RG2KZ?*_8FQA@T.5H0NOH.6D7PJ60PR03.LV>:-6^#NC.5W6ZW M@\.PA=I&;0^SNL"Q'8-;9/Q/7G-YPM<76 A?E\?OL[/E[$_\)T?C[_^1\-E8,>E-KC9+*/)_!1\N$J^>1Y MG7E:5I-\1?4<> !GG7%)8;/-QY8>3?4H9]%U0N$ML-X2&^_:?[V'Y M=S(LG_Z%9]_QM_GL_,MR$IDVBBL%-NH"2AH/3G$+$5ER)4X/R07H].137=?KI7_-)SL7:( M(5IET48$K*8+/$@NY)0;E$9,&#Q/:1\UX M;YC=1XNG"57"'DZ"H&B'5AV@J&QR))ER%X%AB#'I6#O7C0_62FH?Q>==PG5G M39XD8%_/+Q:31#%T3LD![1@!E.8(3ECZLRA5'2+C8^LN$?M1VD<1?(]PW5F/ M8[?XVHW%%X4>>\5G1"52(#^G<)E!&9? ,6_!QY YINQ5NI5;VR-;\0016T'1 MG"X4CZJDODUG/0W7)=9^LA98K<%1DC:"4'(=((&Q""4,LZTO$#1(3MC3Q=\ M>NFX1TF=1#Q=7XX+L_QROKHQA[,TQ65M$3J?U7?F9=7?<;/:]C^\W?]AK M&[';Z.CT)VI>W*+F'C +5FS,!&8I@P<5N(?@I0"#CM!GA3:B]:6%G0@\U!"^ M^X:+4!^PDO[+^?)\4@IGQ1D#6F1'BTQ'B,8DR$JCL-XRS*V-WUTJQCW8' XC MMPW>@?+O8"O]>UA,:Z7B-0-*"C0J<U0T@,XCHB0MG>>9"NLA;%T/=(6+< MT\3CX>$>Q'!8P@[WAP MV4_:I^E*7;"N]G#$ M',$5:RFN45PU*TR21A90S =0!6E=!)4A\VA]MD4J=I*NVBHVKWIX'Z:U3G#= MA&_Y9I;.+G*-DWXC/=!S*AGOUE[T6]H3IF?3,PY;@*ZV CO^G)O@\_ULU?G*)=R8@ MB:E:^T_\^*@M>):$9LRC;SZV]WY*QD'=&%AX-,382S$=P.O#]/,7DM ?R_5Q MT+M(N\ZL"O#5GVG5J92$>Y/32SG^()3BK*;"IWJ'RRH*3OD1,GMO2 MNAG4 >2>4NBRCWD\MD8[+@/=V1W[)9S5$;,?OV!MO].!![L30:-YL?N+;11/ M5J-W*)0&(07%9@3V>E].@N2L,%><,\TSM",>.OX#JR' _.([O?H9K\J_5V]^ MPL776O4M4"EO:--C%/+FC.!B*9!,<-Y+ZWGS.=>[TGA*3NTN^'K$W6IY?+[Y>1@%_K*JD;XAM:.]A5SJ.ZC0<)*11? 6N MHC,V"R@J6%#!D4\LE0>C5$:G/5.A=:GL47V%MTC! 3X0!UQJZ/Z"?TYQ,6-& M@0V&1(,H*<(5$H*)K/;Q069:AWW[4WM*_L,NF+N;@3B*/COP)+;B]->+>TK\ M=2A"V=4( 5TOJF3Z#1UX@26R:)QWH^#V'EI/R;,8'+6'ZO*$,'M9XN^R4%Y$ M TZ90.R%7"O^/&2F$KUBK+"M4_T[DGA*F=UC('0?S9T:,%?%_-);X9TI((K& MZMMS<)FXQ.316LVY;W[I=6B<%S52\M-$]:HP8?$D6>.GOP MGF7(P:HDG"P96[=DW)7&<:]?] G.G74W]L6+;9F[53#:]D ?J!78Z_'C7K88'GA'4LP)F<4)HV](V[M6+_LS@3KKJH%74HWS],040:-*#F:UL5D>Q&Z%3K=,T=G$RV.VM_Q_@S&=;T#Y17C[VX\@^4<9&B4-)XT*TBH&A15RS!TW=6AK M@H0B)\42LZ+Y+(]CIN$N)SQ>/_2JUF,#^_66NWZ?ML-)O:)BLPN@8XYUG$8] M:JRW5I#Y8(Q#SUI?Y]F9R%-*NNV"L-N;V;#:ZWB;^W@^3__\,C\C12Y?_;\+ MVL _?B'=?,!O&XF\/PN;/HW+?N5?I."@T[(KF=QW)7K>@2'#DG[Q!RYD9*B"&0E6-)30-GN4>/:HP/4>N-HJZU$.SC&^D@Z6%42KWFX;EJPFGYFLI E M)P])Z$S,Q'H>4N]C%A<]8M%1MTXT/4K0B!==&FO^]AC-9FKH %.W>+B<,:6( M!84"- I7(U:$0($EI% <"ZD8BZV[T-Y+R,C3,-LI>MY:ZAU IWII\]EJA6T& MAWFM40I:1LF*!"KZ $Z&"$786)1)4NG6Q^=WB.AA[SI(L;>G!!XDY0Y@888R;MGF&EO-\1H;%TT^C UX]20'6._:J. M;J&T662J)"N]L\0!2E#&1[+'/H-#K/7Z%+)B:^/S&#TC;UV-=+X5E/90P-CU M""\$XWZUV.YPL[&RPDCEO:\VNS9A9:+VMG826*Q,!E;LEL.IGGQ4CTC91Z7S MP>3; 5H$?Y2;&&T,&!445IL-^AC!*Y*;] F-I/\;:[=%R^./&GEBZ%!H:2C? M'M B'N6F&%&[8&70@<2C@O00K? @Z5_:7'PJ8;NZIB'%Q_F6^F/[W:L[HQ>R<3R2+B58$,1.%J9U;-'B4Q!8W#*4C/EGK<<1; MDM;I.>&>B+AS5MA>/1V@[M-BU2[HQXJ]]0G%W\/9!4Y\CC(;C1 S8Z!JYV4? M@P7'7 Q<.<.Q==/6AVCI-)YO@ZLF"AA[Z[O!Q!^SBR6MAUE^]>>W*1%RO6C6 MC DG1++9UG)/62>#$D\Q:B@Z>\U5<6;+OG&[/+73C? P# TK^PZLT_U&]WJ> MYY7UO?[,I1W.D;S%&$UU105YCKZ0/VHX<)UET)(%I%(S=E\B*=3[_3RVT+1QY_QH#%(SLP-U !B<#DO4P0:*?<9/2$"H"J2&X] M!1ZI=75SFP*2>[V"5?"]?)'H"83I"0M1:\4\)".J#><"8J"8V 7,R9D8BK%# M>F8WR>DA2[>7WA]UQ X0^=YVZ#LNXGP(MWZU]5_R4GMU_X9DIDH*6 B)*Y6-4:WOVF]#U[CGHD,AJH42^H/6)4.;EEB5K_>X6*V> MB4Y%=2RMFEBO$Q$K=YDLMGG56W9 M\IR=V'47]'9R\K"FG#Z\J38(JR21N("'2%E7JH;9VD>)P(233 9ULW4#L M!@$C%U:, X)Y*XUT *?]!7?-]BS7:RB_AZ^XR3N;>IK)I 4>$_DTTF5:XEY MIA5-$DTZZ-;QRQ!\C ON V!U7TG9F#KN .>OR-><_T!<.7COOE4!;"H9T"/W MC'Q[D05)-F4/KHAZY2YAKKW\#&^]_3](3 =U:J/BY'8-?Q.E=8 ^BO96HPA6 MDPGJ =:"=LD4D*A(.*X.>]%%$&)<%&B9L,T-Y0.D=%#SUA/R6BAL[-SO M;1[^F$UKOUUROJ>)O/--6O+N:RN1UGO*OVZ(OO[D1@K*22ES;# 2.RC*ZP'.'>&@ RO\\2(NIWD:%C\^AJN\ZLJ[ M4D8%^B]#6 W:5(%BTAPDH$Y9:A)UY*&UP_H0,2-;XBY"JC::Z@%RU^37I?RN M?"+Q+4.JHMRLZ\)-\;E(2$9;4(SDY)*W8%W,2AAK.'-D]#WD#$R?AIK^K&P M9 ^QC^D8+LXG'ZH!7ZVF.E::,>2 H42@M:7 "UNG3J+GHKB,VS7NH6_]"2?T MUS5&;CQP9*]LU*UM?\GW )<-RF52F;AEH#7%WLHK!IZ% FB<4%K:F/U6QF4; MP(QI2 Y0UFUU[R&YD17^6_BS]HG:$*Y1%6ZY 6TE)T-)-'NO#23'C<\2>6); ME9L_H?(;#QU9Z?NH;-Y"?AVX%$^:QH**-M1 :'BA:+"8 )H M+#JY;(76IK5#>S#5X\YGZ"3J.J[N3QGMOU_4Q;U1U_+%]S ]J^)_/5_\C?[M M^<0';4U(&;@*&I0CG[ VTZK3![-E);H26W?W&8J7SG,2C3'9:DFT!$@'"^4J MY,'%]^GF'/%NF=1\]AV7=0[GZN3P4VWL_O/[M1[D]_GY?^+Y!TSSS[-ZM6!2 MC/%&.@U.UMM4(G'P%'V!2L5FA3;GVV?)[>+5ULQTGD09=JGT 9'GO%;>XV(Z MSV1"-B_5S_&)\RQ9F1587_,"7-9[K;3WL^ EIB"M+\U[ZJ@X' M4P=+;6_EK(L)EJ_^Q$6:+NO.O-ZP)TEPD6D'AN0+^<]<: A(^[**R097?TV# MM+AJR<3(LFQ-(/&\UL2MN>J;=_#]@BS1A$>A,ED(\*N;IQ8E!!DS,.-] M8,%*O]W!T#@KY3'6QAV']WS63S/X]+*JXM-BB0^(Y=W%^?(\S/)T]OF66*[N M6]>Q +4N_B*H@5=EPVQYT! MV,-JZQA6O:R\ PS2ZKQE^6:V=GAO26GUYJ_A'%^'Z6+=B0.3$]XE"5E3R*E2 MH.T^E@2&FXS6,-'^%O>161QWSF$/*ZY3.)WR:EO]^#M%H61RUK+A$Z,*6JTE M:.](3UEFXCU3-!EYD%ZZF$HWF:![Z!]WXN*IKI-#@7#*BV!]VO]FN;S ?&DB M)J%HYFGA Q>EE@;)VBK,.W!68(HYIUR:3PUIR<"X4+CV?9HO M5F?TEX-'/A!\%M^Q'LBO1XQ6RU&O;$RLM%)Y"M*RJ!4=4==!\,( IN1MIA!. MZ-8MLYHSL=U:>:Y%!.-BXN2:QMS_ZJL_ZZ_-&\EL\[!AF\OLS&X?#6>D%CX6 M;8$%9T&IE,#I2/Y,\*YH9,GSUA5.O32* M"@9M!,FYK1>9 WAD#I)@%B73'DOS5@E#,'+2C6AVP?+#C6C&@D4'7L^;&1DY MO!KF]W;#XJIZ7F#),A9;,Z=8;]HX\%DI2$4[R5E4:KL[ SL@_!%R>FE8,QI8 MYL-HKE\0;BY\(1IF<^WDJ QQ%(6@T%N$.IT+&3,%DVW=*>E1@L8%8C.U;P>G M/730 :#J$GM7ZF7"RPOO4DKNI**55EMN*RP)@A8%DM?(45OK?.M:NSM$= F< M?11\9PKG(=+N "X?\>RLMDV?Y=_"XI]8S[\W7OSE5:#L/:\CM<2J78(QM5." MRB"=#1X3PY!;H^B\0ZE!L-Q$2O)TXO^-:.U%:$C5OU.AS0 MVFNE ZC=;&Z8@]9*:P?%U I;9*;V33!@E'(B60HA#QI;#:[D("K6@O,-"+"1MC[Z_3T?00Y+506!=C;N[M7/GQ MC\N0*RD38^$0I*UY^E# *9; ,)==T9)QV;J;WJ,$=7YY]=@H;*>\4;&XJH*Z MCY?'NJ5JPZ*JU7[6:G)X;/#@I<@@$L5MM:.[$;=2O0\4N>WXX,ZO@QX+@H/K M;.R"S1N^Q?O+H9XDN,OC=*]-%JJ E/7>3\UW!R4-%.6BC2HHO-THX '\/?&@ MSJ]/'A5O+74ROL5[/;]8_%]28".E@@6PXPWP_XYMDP,0[IAG6D95* MTG[BR&EQ0I!MT2)@KGETT[J<<#O*1IY&/"9X;A^NM]=D!_@)JU/FX_V&1*"4E!BJ9V@J*0C3P;!4Q'SX67/KG61]I;J&*\;B?QZL;CJJK/.XO_D-5^V M7J082'HK-(4^$$2M,K72$Z^U[0AJ%V6)7#O7>C'L3&7GJ?$1L#ZLHG>'LE]# M>8:?JQ?9A>DG.1>@\37]ZIO]0J#R+]7+78S0RZ! , PKK/*AD"XE &RBR2(P1M5"YL]6R7V#1 M7X?F?M?*83 Y,+!X->MNK3S6NKKJK&QT9@PO4==#$]0<%*_=J3!*\"JH$),@ M"78SYVEO+L<-2I['V=80@.HA-CF.A";(K'4N%_ NU"(99B'ZP, (*W/F7@37 M?$CV<5A[-F=D@R!\G 6Y$]Q.YU3MP>JT;5I;WQ204B*;7!+H4(\=A8T0K2(_ M04O-!<<0_-&=R';L/9M3N"[6Y$BP.X7=\2G17'*_G71DLB[$4(!K1EJL1YI1 MV@01K7))"B'PZ,YH4PZ?S8GA2:S+X<#W');F/:=+C\J'110ADL'2JE!T3X8* M8F&*Y)-U2EQB+D?/YS;F\=F<8)[$\AP2@*>P0!NY^DF&@@H%&*-JG6W@X&/( MD*3D)?!DA3AZ9XQ;\L:J+%0:9(;0<=DTUU#*F3NR?QY%R^>?GY](D^N%Q>?%V_ MTOI"10-:AKUYT5I8?5S1<,KE0!B'Z P2OJ4%[]" D=++G%7.S>=X]C*@8O_8 MR_1(PR8."H('NT?NHM& M.H#3_H)[I,F'5"*RG 4(+LG9TBQ!K/-0I8Q9%ZF",LT+L@?@HZ?^H3O!ZAC] M0W?1<0ITAOK]H/6!L*LT)!X9GD* .%LIG75FV.<;1>&MUZIS^0NW:(J1T,ZS$.GQ2TQ*Y$X*H>XYA,.I!80)5@K/)D M!]K':H-QT[FU;XS+5H> ;4'2RW+91Q'W2>+6Z=;?YQ2)3\^FYS\^4$0^P< C M9I=!6:M!I<(@2E*=YY)V9L^M4&YM240I5*,023(42I07&MPQAE@"4TN3EB!W=PQVY:I$RT^[' Q'0R9Y[:&/DR7 M_WR]0'PS(P)Q>;X2"'&?M+865)"I&A4#KF"$Q)-3&*75N9NK9=LR=:(5@AVN MH8,A__7#)EZW8*F/7"HF##E&0E*J(X%C MA;TNEH((GHHD;.G4NF#KN>12'0L"38E0+XV!8DY"8$D "]K$PH.)V+QRY]^Y MU!TQ.UPN=1?U=^#6W$RQ1'3<12/ 1E6;R,< CB<%T>N4Z'4AFI^P/LM#27NHM&.H#3,/D3S6-4)8 WGGRP:!AY.;O#DMCY@?W@T)MWAX-QIP0MSBZ4 M!95Y@<3*K_QT)&5OH_*YBWD=PH!P=-'L)HKFP6QB+[. M#<\Y XE* >,IJH0NLM1-H^?=RGZ.,,UKS$CVR+H_9;2_^G\7T_,?;V;D)UZL MM/+N_ LN/GT)L\U%G*O).#\WD-3:H\JD#6\U611=^UISCI"L#SY*+Z,Z>I%Q M4PX[CS8:X[?5\AD>3'^-I;:YK8S&.BN+)'>-@D2529N>N0PNU/XWR&1BW=0V M[,K\]I+1X MF>])?Y]I;\KN5B3?TR(\ &RG/<'A2')&]$ZT>?$Z+\3#(/?/U>-MUS\%E41M9\5A==Q$%.%'H3VF" M3L$H)[JYH#A(I-A?<\'GM!8/@=NIMQ;<7CA/-C?Z6=$44*?( Z]Q-OU@-D/T MLD#262EM@]3RZ*5%QQ7!B4:=)W/$.A@S/[D=;N%T: 1V0O%?[M1W"_'YJ%5T$DQ2LI[4,?"1 M!2A1&BN2L#J?3HYF1^9/= ?_2UF"(?'\K!V!FX>!3PLNET11D;-0F(J@K%,0 M,C("0N1<6Y/-\>\*'(OY9W]V_0P,P9!X?M:&X*?I)T]+30;C=4$#4=3$G3 > M8HX:(I82LT3!=#=7Z9MR_NQ/S)^!"1@,R<]Z_>\02SG#?(XN@ZR\=C#QFVU\?6[/71\2,Z],;H YK.UFG+7B6;6WR6;PWT171VF5Z M+AT_K$S9:11@"TOUCH0#'W@!:5*.UFFA6?-RJ']W_-@1L\-U_-A%_3VX:!=Q M.B^1W$E#_J0$XYFLK0TK(TD!>E6X4,'HW+Q\X2%BGDLG MD)W <1NB3335 ^2NR:_W[M^53R2^):U@$N7F$GYQMD[SYD#KUX#".J8*$WD[ M3@;&A1%:-K_*]"15(X.PC?IO@ZJM+CI UXT6^5>W9+V*IBA(2-N#PIC!%Y. M2ZYJERCB9-")!ETTRVBLZ<WSVTFP4&;ZW%U/W;/HKW971U&O+]8I"_UG=?SQ>K5VH8@QNQ] M[=E;&\S'! $=\>Z$J/E)D?FMZ?8/="IJ3-B)EL7L":IY)QH^95N^>G5YE_\L MC ^UB:12+-:]D22AK +B/CA$)7SJIJ[L 1Y.M#+DL,70!2 Z6!"7S<4>X/X? MT_,O;V:Y=F2_"&?TH:_SV: UE@M M1(RRN>C^G4O9%;,#YE)V4'\'/M;#1[1"%%,89W5DB 3ERBZ9Z@-S3I[H\B104SW6HD@"EG8.8A 27R5LL0KD0F]<_ MG6PN92?U[YY+V447':#KOD-]E9**P5+$89.GB*,6(]:90PYC9-E9'6WK(^Y3 MS*7LI.DMD#@DK>0E"!0RZ8#064W@?5VF[].Y?2 M8G,]KNY[07M\FN-XF^,M1O=RS!K)<$1TI B62TWN([",Y)!S3$ZW'KTU'#WBO:&S'-;0_?.Y4U:^,)]@<1JOAA5@F C1862(CJ=G+!][T7/Z?^GSLZUKE*KB*@F\BP@R6*N" M<46SU@>'.Y W;@@W(,J&4E$'Z%M)[??Y;/X-%Z2JV>>U!#?BF]ABE49;@!M% M#F\F7S<:94$'VKQ3\HIAZYMRCU,T;H S(,8:*J(#6#W,B&3,1ND2V*0ICE+" M0,C6CKDNT0FT+Z 5D03\4(1YB]I)"68W%Y,3(L6N=B'^ EH,-X:4\JY=P MQ6#*64GBA=:>LZ BMQ"U"Q MCX$Y\A>:-^ZYEY!QXX(F^K]C^@X6> _;Y\], M3(H2P16A@$E="R1\ )_0@?%8+TC'')I[_3<(&!>X:?YW2S&3Q5D$V<- M=R'4+GH203GF:^NE0A"CG<(+Z5"WCE(/IWI<(WI4!!]9Q1VXA%MQ_'(^JR$_ M?>KLQ^KJ(KVZ_MRD^"1*4 6T2[2!2<$@T#*&6@R9404NY2B(?ICD<8_Z^H-S M(^5V@.4'9+LY@K@CXHDS&)RB'4 MC)(6G6I]CG,O(>-$.H.J_/8UHX/EWR&(-C*:Z&S):.HZ-\O6^@86('#K &,V M7%JCLFW>\N]^4L8).,8$TCXZZ+B([4ZVY_*:U;R\(&1^UL-'3!>+Z?GT6@NOJQ:N\Z/ORATROLXO9N<3Y8V,M1]M ME+42W)L KL0,O&3.0XI6Y-9&N GAG6;\=L'7;1M]?(5V;-'_AO//B_#MRS2] MF97Y8MU[Z/>PJ+4@WP^PQ5M];RLKNCL3C>S?!_R.LPM<8V:V@F;M%?;R8GE. M!GAQ#=>8=60Y@Z&?H(*,X+S04!QGQJ=,/UIGU+8D[>!F>M-E^/QY@9\WJV7S MV/75:RWM37 1!]%DQKC*%UI\C'Z!G7E@V!E3M][%IIHX-P MAH24L,IIU:MINOSG+S]^P5GZ\C4LU@U*-'=4$)QMB<)&;EB71)^6U14* JCT?E ,7T8'5P6DN2(ZF M=1GS4S2-"ZVV"'@27@>HHP-XU9XXR\WBHVALT[:&^Z X!@TI M>"J",TZVO?7-GGL)Z0U(A^CZGK93APF^ _37 GK$4F5DL]"2Q\)J5P?+"P6PA;CP MG()I[KQR)FGE7>OKE(^0TYM5VE/E3T%I3_EW *7K&/L.4Y=VML@2LD# 8FT] MXU;@75# ,IES6=MHA=:#$I\DJC-8[:O^^9"ZZ I<9-77-2Q5177Y!=3"U=H4 MD6->9TY\*0QX4=F@DXPWOQ#],#7C9M0'V_$:B;];(&V6'./1)H.T*'B]$^EU M!*>+IC\#CUD7CKKU@<%C](QKFUKI?"LH[:& ;L&TN=Q]V8Q49(V)0E[):MS+ M(RT[%1U(GYS3T>K,CX.I&V3U"*U],+ 5N/97R)BSQQ;GDP^UN'A]>F(*JEAJ M2]O:8SYZ"E$S_>:%CID)IW"[="E]ZT\(HK^NT7/C@>.6'S;?Q_879@\(V W M%OH?X1.LMJ7>V'=D=7V$H)E!;Q+W.K/1]5#9O(;\. M_(D'[-[;JT9LFLND;*9(T&?:NZP1]9!204;+E$7#A&\=03]%TU9PT2>S4PRB MBK%'F%Z6U/_OB\5TF:>K1D.UHGZ:\8^/_Q'RJS\3+B_/Q=^53SA[7^LG2(^? M<8)/:L>OU)90&1*@I".6#0EHKA5F/1 7?HA5'29-]T3#/,Q--.!=;MS M%'7-"I]$A\PX4WN@Z@2J. \!O8!2[W>$4%S)K>L!'Z.GR\S%87AKKH93*UK[ M>/'U:UC\F!<*-'%Y/DT;L3:N87OB,8.6M.W"XI$KW"AZUR42J)BEB%OQ>FO+ M,PO&BLBE"@9EZXJ)'BK<9 G!N!1J5_3:)!T1@C&2PA?,O&BN [;N9WSZ%6Z[ M8&6G"K==M-'CCGF[J(;G[%GEA^5<^0D(GI<"SF26H]$R8>NB\1.N<-M)^[M6 MN.VBBBZA=:O,AA<4W+@"&+#V_#84.GL*Q3WF*%AR&.S@V?_3JG#;"0&[5KCM MHHX.X'5_H97TDKS)5:5$G7EMZ3?G6 ')$\/LF'.E]?'%*5:X[:3KK2K<=A%\ M!^AYK-K&8-W_;0 31%UEA==A@1JBBU('F46X?1SQ%ZUP:[S;[:6 'K'T4XF- M5LF:H!RP)&E9K!:(Y 5*\KX$Z:(6K9WSDZQPVTGE.U2X[2+_#J#T=%659LA8 MR!D2.@\JL 1!9/((>-11&*]]6%I?BN/921#)UG4G%#@F+13I M5%1P;4/"K:%U[XJZ19F-^OVLC%8/+D'SB=>^RD(DEF=QU0L M&7V-T3<_ZVQ52#E8 'ADD.VOD XP]F12-0947HH CO-8T^D>0C0:I+7"296= M=ZTO$C0IKAFG#/,09ZNI*CJ UJ,I=>,#K;U IEA3J*-DD1#KH$JRS)HY51+Z MUGUR#ZYL&*^29B?-[U+9L(L:AJ]LV+Q1?]09]O_K?_Q_4$L! A0#% @ M6H%;5:.<)=4'" HB4 !< ( ! '$S7S(P,C)E>&AI M8FET97@S,3$N:'1M4$L! A0#% @ 6H%;533)Y<@>" UR4 !< M ( !/ @ '$S7S(P,C)E>&AI8FET97@S,3(N:'1M4$L! A0#% M @ 6H%;5;>WR4<_!0 6Q@ !< ( !CQ '$S7S(P,C)E M>&AI8FET97@S,C$N:'1M4$L! A0#% @ 6H%;5G@QT@$ P((9 !$ M ( ! Q8 '-P'-D4$L! A0#% @ 6H%;5;BCDL%=( "D@! !4 M ( !>/H! '-P&UL4$L! A0#% @ 6H%;58;S"X@> MA .!T& !4 ( ! 4<# '-P