0001443669-25-000013.txt : 20251031 0001443669-25-000013.hdr.sgml : 20251031 20251031134029 ACCESSION NUMBER: 0001443669-25-000013 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 64 CONFORMED PERIOD OF REPORT: 20250930 FILED AS OF DATE: 20251031 DATE AS OF CHANGE: 20251031 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Proto Labs Inc CENTRAL INDEX KEY: 0001443669 STANDARD INDUSTRIAL CLASSIFICATION: FABRICATED STRUCTURAL METAL PRODUCTS [3440] ORGANIZATION NAME: 04 Manufacturing EIN: 000000000 STATE OF INCORPORATION: MN FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-35435 FILM NUMBER: 251439713 BUSINESS ADDRESS: STREET 1: 5540 Pioneer Creek CITY: Maple Plain STATE: MN ZIP: 55359 BUSINESS PHONE: 763-479-7474 MAIL ADDRESS: STREET 1: 5540 Pioneer Creek CITY: Maple Plain STATE: MN ZIP: 55359 10-Q 1 prlb-20250930.htm 10-Q prlb-20250930
000144366912-312025Q3falseP3YP6MP3Y210250xbrli:sharesiso4217:USDiso4217:USDxbrli:sharesiso4217:EURxbrli:pureprlb:performancePeriod00014436692025-01-012025-09-3000014436692025-10-2800014436692025-09-3000014436692024-12-3100014436692025-07-012025-09-3000014436692024-07-012024-09-3000014436692024-01-012024-09-300001443669us-gaap:CommonStockMember2024-12-310001443669us-gaap:AdditionalPaidInCapitalMember2024-12-310001443669us-gaap:RetainedEarningsMember2024-12-310001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-12-310001443669us-gaap:CommonStockMember2025-01-012025-03-310001443669us-gaap:AdditionalPaidInCapitalMember2025-01-012025-03-3100014436692025-01-012025-03-310001443669us-gaap:RetainedEarningsMember2025-01-012025-03-310001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-01-012025-03-310001443669us-gaap:CommonStockMember2025-03-310001443669us-gaap:AdditionalPaidInCapitalMember2025-03-310001443669us-gaap:RetainedEarningsMember2025-03-310001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-03-3100014436692025-03-310001443669us-gaap:CommonStockMember2025-04-012025-06-300001443669us-gaap:AdditionalPaidInCapitalMember2025-04-012025-06-3000014436692025-04-012025-06-300001443669us-gaap:RetainedEarningsMember2025-04-012025-06-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-04-012025-06-300001443669us-gaap:CommonStockMember2025-06-300001443669us-gaap:AdditionalPaidInCapitalMember2025-06-300001443669us-gaap:RetainedEarningsMember2025-06-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-06-3000014436692025-06-300001443669us-gaap:CommonStockMember2025-07-012025-09-300001443669us-gaap:AdditionalPaidInCapitalMember2025-07-012025-09-300001443669us-gaap:RetainedEarningsMember2025-07-012025-09-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-07-012025-09-300001443669us-gaap:CommonStockMember2025-09-300001443669us-gaap:AdditionalPaidInCapitalMember2025-09-300001443669us-gaap:RetainedEarningsMember2025-09-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-09-300001443669us-gaap:CommonStockMember2023-12-310001443669us-gaap:AdditionalPaidInCapitalMember2023-12-310001443669us-gaap:RetainedEarningsMember2023-12-310001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-3100014436692023-12-310001443669us-gaap:CommonStockMember2024-01-012024-03-310001443669us-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-3100014436692024-01-012024-03-310001443669us-gaap:RetainedEarningsMember2024-01-012024-03-310001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-310001443669us-gaap:CommonStockMember2024-03-310001443669us-gaap:AdditionalPaidInCapitalMember2024-03-310001443669us-gaap:RetainedEarningsMember2024-03-310001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-3100014436692024-03-310001443669us-gaap:CommonStockMember2024-04-012024-06-300001443669us-gaap:AdditionalPaidInCapitalMember2024-04-012024-06-3000014436692024-04-012024-06-300001443669us-gaap:RetainedEarningsMember2024-04-012024-06-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-04-012024-06-300001443669us-gaap:CommonStockMember2024-06-300001443669us-gaap:AdditionalPaidInCapitalMember2024-06-300001443669us-gaap:RetainedEarningsMember2024-06-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-06-3000014436692024-06-300001443669us-gaap:AdditionalPaidInCapitalMember2024-07-012024-09-300001443669us-gaap:CommonStockMember2024-07-012024-09-300001443669us-gaap:RetainedEarningsMember2024-07-012024-09-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-07-012024-09-300001443669us-gaap:CommonStockMember2024-09-300001443669us-gaap:AdditionalPaidInCapitalMember2024-09-300001443669us-gaap:RetainedEarningsMember2024-09-300001443669us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-09-3000014436692024-09-300001443669us-gaap:NoncompeteAgreementsMember2025-09-300001443669us-gaap:NoncompeteAgreementsMember2024-12-310001443669srt:MinimumMemberus-gaap:NoncompeteAgreementsMember2025-09-300001443669srt:MaximumMemberus-gaap:NoncompeteAgreementsMember2025-09-300001443669us-gaap:ComputerSoftwareIntangibleAssetMember2025-09-300001443669us-gaap:ComputerSoftwareIntangibleAssetMember2024-12-310001443669prlb:SoftwarePlatformMember2025-09-300001443669prlb:SoftwarePlatformMember2024-12-310001443669srt:EuropeMemberprlb:A3DHubsInc.HubsMember2021-01-222021-01-220001443669country:USprlb:A3DHubsInc.HubsMember2021-01-222021-01-2200014436692024-01-012024-12-310001443669us-gaap:CashMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2025-09-300001443669us-gaap:CashMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel2Member2025-09-300001443669us-gaap:CashMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2025-09-300001443669us-gaap:CashMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2024-12-310001443669us-gaap:CashMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel2Member2024-12-310001443669us-gaap:CashMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2024-12-310001443669us-gaap:MoneyMarketFundsMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2025-09-300001443669us-gaap:MoneyMarketFundsMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel2Member2025-09-300001443669us-gaap:MoneyMarketFundsMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2025-09-300001443669us-gaap:MoneyMarketFundsMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2024-12-310001443669us-gaap:MoneyMarketFundsMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel2Member2024-12-310001443669us-gaap:MoneyMarketFundsMemberus-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2024-12-310001443669us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2025-09-300001443669us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel2Member2025-09-300001443669us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2025-09-300001443669us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel1Member2024-12-310001443669us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel2Member2024-12-310001443669us-gaap:FairValueMeasurementsRecurringMemberus-gaap:FairValueInputsLevel3Member2024-12-310001443669us-gaap:USGovernmentAgenciesDebtSecuritiesMember2025-09-300001443669us-gaap:CorporateDebtSecuritiesMember2025-09-300001443669us-gaap:USStatesAndPoliticalSubdivisionsMember2025-09-300001443669us-gaap:USTreasuryBondSecuritiesMember2025-09-300001443669us-gaap:USGovernmentAgenciesDebtSecuritiesMember2024-12-310001443669us-gaap:CorporateDebtSecuritiesMember2024-12-310001443669us-gaap:USStatesAndPoliticalSubdivisionsMember2024-12-310001443669us-gaap:USTreasuryBondSecuritiesMember2024-12-310001443669prlb:LongTermIncentivePlan2022Member2024-05-232024-05-230001443669prlb:LongTermIncentivePlan2022Member2025-01-012025-09-300001443669prlb:LongTermIncentivePlan2022Member2025-05-202025-05-200001443669prlb:ESPPMember2025-01-012025-09-300001443669us-gaap:EmployeeStockOptionMember2025-01-012025-09-300001443669srt:MinimumMemberus-gaap:EmployeeStockOptionMember2025-01-012025-09-300001443669srt:MaximumMemberus-gaap:EmployeeStockOptionMember2025-01-012025-09-300001443669srt:MinimumMemberus-gaap:EmployeeStockOptionMember2024-01-012024-09-300001443669srt:MaximumMemberus-gaap:EmployeeStockOptionMember2024-01-012024-09-300001443669us-gaap:EmployeeStockOptionMember2024-01-012024-09-300001443669us-gaap:EmployeeStockOptionMember2025-09-300001443669srt:MinimumMemberus-gaap:RestrictedStockUnitsRSUMember2025-01-012025-09-300001443669srt:MaximumMemberus-gaap:RestrictedStockUnitsRSUMember2025-01-012025-09-300001443669us-gaap:RestrictedStockUnitsRSUMember2024-12-310001443669us-gaap:RestrictedStockUnitsRSUMember2025-01-012025-09-300001443669us-gaap:RestrictedStockUnitsRSUMember2025-09-300001443669us-gaap:PerformanceSharesMember2025-09-300001443669us-gaap:PerformanceSharesMember2025-01-012025-09-300001443669us-gaap:PerformanceSharesMember2024-12-310001443669prlb:InducementAwardsMemberus-gaap:PerformanceSharesMember2025-05-232025-05-230001443669prlb:InducementAwardsMarketConditionMemberus-gaap:PerformanceSharesMember2025-05-232025-05-230001443669prlb:InducementAwardsPerformanceConditionMemberus-gaap:PerformanceSharesMember2025-05-232025-05-230001443669prlb:InducementAwardsPerformanceConditionMemberus-gaap:PerformanceSharesMember2025-05-230001443669srt:MinimumMemberus-gaap:PerformanceSharesMember2025-01-012025-09-300001443669srt:MaximumMemberus-gaap:PerformanceSharesMember2025-01-012025-09-300001443669us-gaap:PerformanceSharesMember2024-01-012024-09-300001443669srt:MinimumMemberprlb:EmployeeStockPurchasePlanMember2025-01-012025-09-300001443669srt:MaximumMemberprlb:EmployeeStockPurchasePlanMember2025-01-012025-09-300001443669srt:MinimumMemberprlb:EmployeeStockPurchasePlanMember2024-01-012024-09-300001443669srt:MaximumMemberprlb:EmployeeStockPurchasePlanMember2024-01-012024-09-300001443669prlb:EmployeeStockPurchasePlanMember2025-01-012025-09-300001443669prlb:EmployeeStockPurchasePlanMember2024-01-012024-09-300001443669us-gaap:AccumulatedTranslationAdjustmentMember2025-07-012025-09-300001443669us-gaap:AccumulatedTranslationAdjustmentMember2024-07-012024-09-300001443669us-gaap:AccumulatedTranslationAdjustmentMember2025-01-012025-09-300001443669us-gaap:AccumulatedTranslationAdjustmentMember2024-01-012024-09-300001443669us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember2025-07-012025-09-300001443669us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember2024-07-012024-09-300001443669us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember2025-01-012025-09-300001443669us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember2024-01-012024-09-300001443669prlb:UnitedStatesSegmentMember2025-07-012025-09-300001443669prlb:EuropeSegmentMember2025-07-012025-09-300001443669us-gaap:CorporateAndOtherMember2025-07-012025-09-300001443669prlb:UnitedStatesSegmentMember2024-07-012024-09-300001443669prlb:EuropeSegmentMember2024-07-012024-09-300001443669us-gaap:CorporateAndOtherMember2024-07-012024-09-300001443669prlb:UnitedStatesSegmentMember2025-01-012025-09-300001443669prlb:EuropeSegmentMember2025-01-012025-09-300001443669us-gaap:CorporateAndOtherMember2025-01-012025-09-300001443669prlb:UnitedStatesSegmentMember2024-01-012024-09-300001443669prlb:EuropeSegmentMember2024-01-012024-09-300001443669us-gaap:CorporateAndOtherMember2024-01-012024-09-300001443669prlb:UnitedStatesSegmentMember2025-09-300001443669prlb:UnitedStatesSegmentMember2024-12-310001443669prlb:EuropeSegmentMember2025-09-300001443669prlb:EuropeSegmentMember2024-12-310001443669country:US2025-07-012025-09-300001443669country:US2024-07-012024-09-300001443669country:US2025-01-012025-09-300001443669country:US2024-01-012024-09-300001443669srt:EuropeMember2025-07-012025-09-300001443669srt:EuropeMember2024-07-012024-09-300001443669srt:EuropeMember2025-01-012025-09-300001443669srt:EuropeMember2024-01-012024-09-300001443669prlb:InjectionMoldingProtomoldMember2025-07-012025-09-300001443669prlb:InjectionMoldingProtomoldMember2024-07-012024-09-300001443669prlb:InjectionMoldingProtomoldMember2025-01-012025-09-300001443669prlb:InjectionMoldingProtomoldMember2024-01-012024-09-300001443669prlb:CNCMachiningFirstcutMember2025-07-012025-09-300001443669prlb:CNCMachiningFirstcutMember2024-07-012024-09-300001443669prlb:CNCMachiningFirstcutMember2025-01-012025-09-300001443669prlb:CNCMachiningFirstcutMember2024-01-012024-09-300001443669prlb:ThreeDPrintingFinelineMember2025-07-012025-09-300001443669prlb:ThreeDPrintingFinelineMember2024-07-012024-09-300001443669prlb:ThreeDPrintingFinelineMember2025-01-012025-09-300001443669prlb:ThreeDPrintingFinelineMember2024-01-012024-09-300001443669prlb:SheetMetalMember2025-07-012025-09-300001443669prlb:SheetMetalMember2024-07-012024-09-300001443669prlb:SheetMetalMember2025-01-012025-09-300001443669prlb:SheetMetalMember2024-01-012024-09-300001443669prlb:OtherProductsMember2025-07-012025-09-300001443669prlb:OtherProductsMember2024-07-012024-09-300001443669prlb:OtherProductsMember2025-01-012025-09-300001443669prlb:OtherProductsMember2024-01-012024-09-300001443669prlb:MichaelR.KenisonMember2025-07-012025-09-300001443669prlb:MichaelR.KenisonMemberprlb:MichaelR.KenisonTradingArrangementCommonStockRelatedToOptionAwardsGrantedMember2025-09-300001443669prlb:MichaelR.KenisonMemberprlb:MichaelR.KenisonTradingArrangementCommonStockRelatedToRestrictedStockUnitsGrantedMember2025-09-300001443669prlb:OlegRyaboyMember2025-07-012025-09-300001443669prlb:OlegRyaboyMemberprlb:OlegRyaboyTradingArrangementCommonStockRelatedToOptionAwardsMember2025-09-300001443669prlb:OlegRyaboyMemberprlb:OlegRyaboyTradingArrangementCommonStockRelatedToVestedRestrictedStockUnitsMember2025-09-300001443669prlb:OlegRyaboyMemberprlb:OlegRyaboyTradingArrangementCommonStockRelatedToUnvestedRestrictedStockUnitsMember2025-09-30
UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
Washington, D.C. 20549
___________________________
FORM 10-Q
(Mark One)
þQUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934
For the quarterly period ended September 30, 2025
or
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-35435
Proto Labs, Inc.
(Exact name of registrant as specified in its charter)
Minnesota41-1939628
(State or other jurisdiction of incorporation or organization)(I.R.S. Employer Identification No.)
5540 Pioneer Creek Drive
Maple Plain, Minnesota
55359
(Address of principal executive offices)(Zip Code)
(763) 479-3680
(Registrant’s telephone number, including area code)
Not Applicable
(Former name, former address and former fiscal year, if changed since last report)
Securities registered pursuant to Section 12(b) of the Act:
Title of each classTrading Symbol(s)Name of each exchange on which registered
Common Stock, Par Value $0.001 Per SharePRLBNew York Stock Exchange
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 oNo
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 during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). þYes oNo
Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of "large accelerated filer," "accelerated filer," "smaller reporting company," and "emerging growth company" in Rule 12b-2 of the Exchange Act.
Large accelerated filerþAccelerated filer o
Non-accelerated filero
Smaller reporting companyoEmerging 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). oYes þNo
Indicate the number of shares outstanding of each of the issuer’s classes of common stock, as of the latest practicable date: 23,678,745 shares of Common Stock, par value $0.001 per share, were outstanding at October 28, 2025.


Proto Labs, Inc.
TABLE OF CONTENTS
1

PART I. FINANCIAL INFORMATION
Item 1. Financial Statements
Proto Labs, Inc.
Consolidated Balance Sheets
(In thousands, except share and per share amounts)
September 30,
2025
December 31,
2024
(Unaudited)
Assets
Current assets
Cash and cash equivalents$104,422 $89,071 
Short-term marketable securities14,817 14,019 
Accounts receivable, net of allowance for doubtful accounts of $2,378 and $1,975 as of September 30, 2025, and December 31, 2024, respectively
77,790 66,504 
Inventory14,073 12,305 
Income taxes receivable4,681 2,906 
Prepaid expenses and other current assets10,009 10,049 
Total current assets225,792 194,854 
Property and equipment, net211,325 227,263 
Goodwill273,991 273,991 
Other intangible assets, net19,539 21,422 
Long-term marketable securities19,149 17,773 
Operating lease assets2,015 2,993 
Finance lease assets491 692 
Other long-term assets4,553 4,524 
Total assets$756,855 $743,512 
Liabilities and shareholders' equity
Current liabilities  
Accounts payable$17,388 $15,504 
Accrued compensation23,268 16,550 
Accrued liabilities and other27,831 19,621 
Current operating lease liabilities890 1,287 
Current finance lease liabilities365 309 
Total current liabilities69,742 53,271 
Long-term operating lease liabilities1,188 1,633 
Long-term finance lease liabilities 287 
Long-term deferred tax liabilities16,038 13,565 
Other long-term liabilities5,168 4,605 
Total liabilities92,136 73,361 
Shareholders' equity  
Preferred stock, $0.001 par value, authorized 10,000,000 shares; issued and outstanding 0 shares as of each of September 30, 2025, and December 31, 2024
  
Common stock, $0.001 par value, authorized 150,000,000 shares; issued and outstanding 23,677,746 and 24,226,088 shares as of September 30, 2025, and December 31, 2024, respectively
23 24 
Additional paid-in capital450,852 453,705 
Retained earnings238,568 244,406 
Accumulated other comprehensive loss(24,724)(27,984)
Total shareholders' equity664,719 670,151 
Total liabilities and shareholders' equity$756,855 $743,512 
The accompanying notes are an integral part of these consolidated financial statements.
2

Proto Labs, Inc.
Consolidated Statements of Comprehensive Income
(In thousands, except share and per share amounts)
(Unaudited)
Three Months Ended
September 30,
Nine Months Ended
September 30,
2025202420252024
Statements of Operations:
Revenue$135,366 $125,619 $396,634 $379,140 
Cost of revenue74,073 68,389 219,869 207,897 
Gross profit61,293 57,230 176,765 171,243 
Operating expenses  
Marketing and sales24,574 22,619 73,054 69,070 
Research and development10,705 9,772 32,487 31,600 
General and administrative17,163 16,259 52,763 49,167 
Costs related to exit and disposal activities41  151  
Total operating expenses52,483 48,650 158,455 149,837 
Income from operations8,810 8,580 18,310 21,406 
Other income, net1,441 1,288 4,600 3,548 
Income before income taxes10,251 9,868 22,910 24,954 
Provision for income taxes3,035 2,679 7,668 7,957 
Net income$7,216 $7,189 $15,242 $16,997 
Net income per share:
Basic$0.30 $0.29 $0.64 $0.67 
Diluted$0.30 $0.29 $0.63 $0.67 
Shares used to compute net income per share:
Basic23,889,15724,980,53623,974,05425,304,985
Diluted24,191,03925,022,48524,249,66925,382,280
Comprehensive Income (net of tax)
Comprehensive income$7,055 $9,769 $18,502 $18,158 
The accompanying notes are an integral part of these consolidated financial statements.
3

Proto Labs, Inc.
Consolidated Statements of Shareholders' Equity
(In thousands, except share amounts)
Common StockAdditional
Paid-In
Capital
Retained
Earnings
Accumulated Other
Comprehensive
Loss
Total
SharesAmount
Balance at December 31, 202424,226,088$24 $453,705 $244,406 $(27,984)$670,151 
Common shares issued on exercise of options and other, net of shares withheld for tax obligations58,291 — (961)— — (961)
Stock-based compensation expense— — 3,992 — — 3,992 
Repurchases of common stock and other(513,739)(1)(9,621)(11,451)— (21,073)
 Net income— — — 3,599 — 3,599 
Other comprehensive income
Foreign currency translation adjustment— — — — 1,003 1,003 
Net unrealized gains on investments in securities— — — — 90 90 
 Comprehensive income    4,692 
Balance at March 31, 202523,770,640$23 $447,115 $236,554 $(26,891)$656,801 
Common shares issued on exercise of options and other, net of shares withheld for tax obligations179,393— (58)— — (58)
Stock-based compensation expense— 4,259 — — 4,259 
Repurchases of common stock and other(75,432)— (1,413)(1,637)— (3,050)
 Net income— — 4,427 — 4,427 
Other comprehensive income
Foreign currency translation adjustment— — — 2,300 2,300 
Net unrealized gains on investments in securities— — — 28 28 
 Comprehensive income6,755 
Balance at June 30, 202523,874,601$23 $449,903 $239,344 $(24,563)$664,707 
Common shares issued on exercise of options and other, net of shares withheld for tax obligations61,599— 2,112 — — 2,112 
Stock-based compensation expense3,677 — — 3,677 
Repurchases of common stock and other(258,454)(4,840)(7,992)— (12,832)
 Net income7,216 — 7,216 
Other comprehensive income
Foreign currency translation adjustment— (227)(227)
Net unrealized gains on investments in securities— 66 66 
 Comprehensive income7,055 
Balance at September 30, 202523,677,746$23 $450,852 $238,568 $(24,724)$664,719 
Common StockAdditional
Paid-In
Capital
Retained
Earnings
Accumulated Other
Comprehensive
Loss
Total
SharesAmount
Balance at December 31, 202325,721,957$26 $466,884 $256,398 $(28,013)$695,295 
Common shares issued on exercise of options and other, net of shares withheld for tax obligations29,974— (533)— — (533)
Stock-based compensation expense— — 4,276 — — 4,276 
Repurchases of common stock(435,861)— (7,912)(8,252)— (16,164)
 Net income— — — 5,268 — 5,268 
Other comprehensive income
Foreign currency translation adjustment— — — — (925)(925)
Net unrealized gains on investments in securities— — — — 93 93 
 Comprehensive income4,436 
Balance at March 31, 202425,316,070$26 $462,715 $253,414 $(28,845)$687,310 
Common shares issued on exercise of options and other, net of shares withheld for tax obligations176,780— 707 — — 707 
Stock-based compensation expense— — 4,244 — — 4,244 
Repurchases of common stock(345,234)— (6,266)(4,712)— (10,978)
 Net income— — — 4,540 — 4,540 
Other comprehensive income
Foreign currency translation adjustment— — — — (678)(678)
Net unrealized gains on investments in securities— — — — 91 91 
 Comprehensive income3,953 
Balance at June 30, 202425,147,616$26 $461,400 $253,242 $(29,432)$685,236 
Common shares issued on exercise of options and other, net of shares withheld for tax obligations— — — — — 
Stock-based compensation expense— — 4,196 — — 4,196 
Repurchases of common stock(637,540)(1)(11,571)(7,636)— (19,208)
 Net income— — — 7,189 — 7,189 
Other comprehensive income
Foreign currency translation adjustment— — — — 2,430 2,430 
Net unrealized gains on investments in securities— — — — 150 150 
 Comprehensive income9,769 
Balance at September 30, 202424,510,076$25 $454,025 $252,795 $(26,852)$679,993 
The accompanying notes are an integral part of these consolidated financial statements.
4

Proto Labs, Inc.
Consolidated Statements of Cash Flows
(In thousands)
(Unaudited)
Nine Months Ended
September 30,
20252024
Operating activities
Net income$15,242 $16,997 
Adjustments to reconcile net income to net cash provided by operating activities:  
Depreciation and amortization25,693 26,984 
Stock-based compensation expense11,928 12,716 
Deferred taxes2,355 (6,140)
Interest on finance lease obligations16 26 
Loss on impairment of equipment 256 
Impairments related to exit and closure of facilities448  
Loss (gain) on disposal of property and equipment16 (24)
Other(179)103 
Changes in operating assets and liabilities:  
Accounts receivable(11,265)4,581 
Inventories(2,017)1,321 
Prepaid expenses and other366 (312)
Income taxes(1,709)2,583 
Accounts payable1,252 (2,709)
Accrued liabilities and other15,907 4,153 
Net cash provided by operating activities58,053 60,535 
Investing activities
Purchases of property, equipment and other capital assets(6,792)(8,339)
Proceeds from sales of property, equipment and other capital assets811 34 
Purchases of marketable securities(13,553)(18,087)
Proceeds from call redemptions and maturities of marketable securities11,730 15,709 
Net cash used in investing activities(7,804)(10,683)
Financing activities
Proceeds from issuance of common stock from equity plans4,195 2,094 
Purchases of shares withheld for tax obligations(3,119)(1,920)
Repurchases of common stock(36,732)(45,958)
Principal repayments of finance lease obligations(231)(220)
Net cash used in financing activities(35,887)(46,004)
Effect of exchange rate changes on cash and cash equivalents989 235 
Net increase in cash and cash equivalents15,351 4,083 
Cash and cash equivalents, beginning of period89,071 83,790 
Cash and cash equivalents, end of period$104,422 $87,873 
The accompanying notes are an integral part of these consolidated financial statements.
5

Notes to Consolidated Financial Statements
Note 1 – Basis of Presentation
The unaudited interim Consolidated Financial Statements of Proto Labs, Inc. (Protolabs, the Company, we, us or our) have been prepared in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP) for interim financial information and with the instructions to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, the accompanying financial statements reflect all adjustments necessary for a fair presentation of the Company’s statements of financial position, results of operations and cash flows for the periods presented. Except as otherwise disclosed herein, these adjustments consist of normal, recurring items. Operating results for interim periods are not necessarily indicative of results that may be expected for the fiscal year as a whole.
The preparation of the financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues, expenses, and the related disclosures at the date of the financial statements and during the reporting period. Actual results could materially differ from these estimates. For further information, refer to the audited Consolidated Financial Statements and Notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, as filed with the Securities and Exchange Commission (SEC) on February 21, 2025.
The accompanying Consolidated Balance Sheet as of December 31, 2024 was derived from the audited Consolidated Financial Statements but does not include all disclosures required by U.S. GAAP for a full set of financial statements. This Quarterly Report on Form 10-Q should be read in conjunction with the Company’s Consolidated Financial Statements and Notes included in the Company's Annual Report on Form 10-K filed on February 21, 2025 as referenced above.
Note 2 – Recent Accounting Pronouncements
The Company did not recently adopt any accounting pronouncements that had a material impact on the Company's Consolidated Financial Statements.
In December 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, that enhances the transparency of income tax disclosures by expanding annual disclosure requirements related to the rate reconciliation and income taxes paid. The Company is required to adopt this guidance for its annual year ending December 31, 2025. Early adoption is permitted. The Company is currently evaluating the impact of this guidance on its disclosures and believes the adoption will not have a material impact on its consolidated financial statements.
In November 2024, the FASB issued ASU No. 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which is intended to improve disclosures about a public business entity's expenses, primarily through additional disaggregation of income statement expenses. ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods beginning after December 15, 2027, with early adoption permitted. The Company is currently evaluating ASU 2024-03 to determine the impact on the Company's disclosures.
In July 2025, the FASB issued ASU No. 2025-05, Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivables and Contract Assets, which introduces a practical expedient for the application of the current expected credit loss model to current accounts receivables and contract assets. ASU 2025-05 is effective for annual and interim periods beginning after December 15, 2025, with early adoption permitted. The Company is currently evaluating ASU 2025-05 to determine the impact on the Company's financial statements and disclosures.
In September 2025, the FASB issued ASU No. 2025-06, Intangibles - Goodwill and Other - Internal-Use Software (Subtopic 350-40): Targeted Improvements to the Accounting for Internal-Use Software, which updates the cost capitalization threshold for internal-use software development costs by removing all references to software project development stages and provides new guidance on how to evaluate whether the probable-to-complete recognition threshold has been met. ASU 2025-06 is effective for annual and interim periods beginning after December 15, 2027, with early adoption permitted. The Company is currently evaluating ASU 2025-06 to determine the impact on the Company's financial statements and disclosures.
6

Note 3 – Net Income per Common Share
Basic net income per share is computed based on the weighted-average number of common shares outstanding. Diluted net income per share is computed based on the weighted-average number of common shares outstanding, increased by the number of additional shares that would have been outstanding had potentially dilutive common shares been issued and reduced by the number of shares the Company could have repurchased from the proceeds from issuance of the potentially dilutive shares. Potentially dilutive shares of common stock include stock options and other stock-based awards granted under stock-based compensation plans and shares committed to be purchased under the employee stock purchase plan. Performance stock units are excluded from the calculation of dilutive potential common shares until the performance conditions have been satisfied. Anti-dilutive options were excluded from the calculation of diluted weighted average shares outstanding and were 214,801 and 466,127 for the three months ended September 30, 2025 and 2024, respectively, and 380,740 and 450,275 for the nine months ended September 30, 2025 and 2024, respectively.
The table below sets forth the computation of basic and diluted net income per share:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except share and per share amounts)2025202420252024
Net income$7,216 $7,189 $15,242 $16,997 
Basic - weighted-average shares outstanding:23,889,15724,980,53623,974,05425,304,985
Effect of dilutive securities:
Employee stock options and other301,88241,949275,61577,295
Diluted - weighted-average shares outstanding:24,191,03925,022,48524,249,66925,382,280
Net income per share:
Basic$0.30 $0.29 $0.64 $0.67 
Diluted$0.30 $0.29 $0.63 $0.67 
Note 4 – Goodwill and Other Intangible Assets
There were no changes in the carrying amount of goodwill during the three and nine months ended September 30, 2025.
Intangible assets other than goodwill at September 30, 2025 and December 31, 2024 were as follows:
September 30, 2025December 31, 2024Useful
Life (in years)
Weighted Average
Useful Life Remaining
(in years)
(in thousands)GrossAccumulated
Amortization
NetGrossAccumulated
Amortization
Net
Intangible assets with finite lives:
Non-compete agreement$850 $(814)$36 $819 $(703)$116 
2.0 - 5.0
0.2
Software technology13,229 (10,150)3,079 13,229 (9,123)4,106 10.02.3
Software platform27,094 (10,670)16,424 25,657 (8,457)17,200 12.07.3
Total intangible assets$41,173 $(21,634)$19,539 $39,705 $(18,283)$21,422 
Intangible assets allocated to the Protolabs Network entities consisted of intangible assets of €11.6 million in Europe and $16.6 million in the United States as of the date of the acquisition. The Euro denominated intangible assets are translated at the end of each period using the current exchange rates resulting in a foreign currency translation adjustment that is recorded as a component of Other Comprehensive Income. Foreign currency unrealized losses related to intangible assets
7

were $0.5 million and $2.2 million as of September 30, 2025 and December 31, 2024, respectively. Amortization expense for intangible assets was $0.9 million for each of the three months ended September 30, 2025 and 2024, and $2.8 million for each of the nine months ended September 30, 2025 and 2024.
Estimated aggregated amortization expense based on the current carrying value of the amortizable intangible assets and current exchange rates is as follows:
(in thousands)Estimated Amortization Expense
Remaining 2025$929
20263,618
20273,609
20282,240
20292,240
Thereafter6,903
Total estimated amortization expense$19,539
Note 5 – Fair Value Measurements
Accounting Standards Codification, Fair Value Measurement (ASC 820), defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. ASC 820 also establishes a fair value hierarchy that requires classification based on observable and unobservable inputs when measuring fair value. There are three levels of inputs that may be used to measure fair value:
Level 1Quoted prices in active markets for identical assets or liabilities.
Level 2Observable inputs other than Level 1 prices such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
Level 3Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities.
The Company's assets and liabilities that are required to be measured or disclosed at fair value on a recurring basis include cash and cash equivalents and marketable securities. The Company’s cash consists of bank deposits and cash equivalents consist primarily of money market mutual funds. The Company determines the fair value of these investments using Level 1 inputs. The Company's marketable securities consist of short-term and long-term agency, municipal, corporate and other debt securities. Fair value for the corporate debt securities is primarily determined based on quoted market prices (Level 1). Fair values for the U.S. municipal securities, U.S. government agency securities, certificates of deposit and U.S. treasury securities are primarily determined using dealer quotes or quoted market prices for similar securities (Level 2).
8

The following table summarizes financial assets as of September 30, 2025 and December 31, 2024 measured at fair value on a recurring basis:
September 30, 2025December 31, 2024
(in thousands)Level 1Level 2Level 3Level 1Level 2Level 3
Financial Assets:
Cash$100,710 $ $ $86,366 $ $ 
Money market mutual fund3,712   2,705   
Marketable securities17,318 16,648  17,261 14,531  
Total$121,740 $16,648 $ $106,332 $14,531 $ 
Note 6 – Marketable Securities
The Company invests in short-term and long-term agency, municipal, corporate and other debt securities. The securities are categorized as available-for-sale and are recorded at fair value. The following table summarizes information regarding the Company’s short-term and long-term marketable securities as of September 30, 2025 and December 31, 2024:
September 30, 2025
(in thousands)CostUnrealized GainsUnrealized LossesFair Value
U.S. government agency securities$8,000 $9 $(4)$8,005 
Corporate debt securities15,947 10 (14)15,943 
U.S. municipal securities8,980 34  9,014 
U.S. treasury bonds1,000 4  1,004 
Total marketable securities$33,927 $57 $(18)$33,966 
December 31, 2024
(in thousands)CostUnrealized GainsUnrealized LossesFair Value
U.S. government agency securities$8,323 $ $(22)$8,301 
Corporate debt securities15,852  (82)15,770 
U.S. municipal securities6,762  (38)6,724 
U.S. treasury bonds1,000  (3)997 
Total marketable securities$31,937 $ $(145)$31,792 
Fair values for the corporate debt securities are primarily determined based on quoted market prices (Level 1). Fair values for the U.S. municipal securities, U.S. government agency securities, certificates of deposit and U.S. treasury securities are primarily determined using dealer quotes or quoted market prices for similar securities (Level 2).
Classification of marketable securities as current or non-current is based upon the security’s maturity date as of the date of these financial statements.
9

The September 30, 2025 balance of available-for-sale debt securities by contractual maturity is shown in the following table at fair value. Actual maturities may differ from contractual maturities because the issuers of the securities may have the right to prepay obligations without prepayment penalties.
(in thousands)September 30,
2025
Due in one year or less$14,817 
Due after one year through five years19,149 
Total marketable securities$33,966 
Note 7 – Inventory
Inventory consists primarily of raw materials, which are recorded at the lower of cost and net realizable value using the standard cost method, which approximates first-in, first-out (FIFO) cost. The Company periodically reviews its inventory for slow-moving, damaged and discontinued items and provides allowances to reduce such items identified to their recoverable amounts.
The Company’s inventory consisted of the following as of the dates indicated:
(in thousands)September 30,
2025
December 31,
2024
Total inventory$14,755 $12,989 
Allowance for obsolescence(682)(684)
Inventory, net of allowance$14,073 $12,305 
Note 8 – Stock-Based Compensation
On July 8, 2022, the board of directors approved the Proto Labs, Inc. 2022 Long-Term Incentive Plan, which was approved by the Company's shareholders at a Special Meeting of Shareholders on August 29, 2022, and subsequently amended and restated by the Company's shareholders at the Annual Meeting of Shareholders on May 23, 2024 (as amended and restated, and subsequently further amended, the 2022 Plan) to increase the number of shares available for issuance pursuant to awards under the 2022 Plan by an additional 430,000 shares, add a minimum vesting requirement, and extend the expiration date so that the term of the 2022 Plan runs for ten years from the date of the shareholder approval. On May 20, 2025, the Company's shareholders approved an amendment to the 2022 Plan to increase the number of shares available for issuance pursuant to awards under the 2022 Plan by an additional 296,000 shares. Under the 2022 Plan, the Company has the ability to grant stock options, stock appreciation rights (SARs), restricted stock, restricted stock units, other stock-based awards and cash incentive awards. Awards under the 2022 Plan have a maximum term of ten years from the date of grant. The compensation and talent committee may provide that the vesting or payment of any award will be subject to the attainment of specified performance measures in addition to the satisfaction of any continued service requirements and the compensation and talent committee will determine whether such measures have been achieved. The per-share exercise price of stock options and SARs granted under the 2022 Plan generally may not be less than the fair market value of a share of our common stock on the date of the grant.
The Company also has outstanding awards under the 2012 Long-Term Incentive Plan, as amended (the 2012 Plan), although the plan expired in February 2022 and no additional awards have since been or will be made under the 2012 Plan. The 2012 Plan provided the Company the ability to grant stock options, SARs, restricted stock, restricted stock units, other stock-based awards and cash incentive awards. Awards under the 2012 Plan that subsequently expired, were forfeited or cancelled, or settled in cash after August 29, 2022 became available for awards under the 2022 Plan.
On May 23, 2025, the Company granted one-time inducement awards (the Inducement Awards) within the meaning of the New York Stock Exchange Listed Company Manual Section 303A.08 to the Company's incoming Chief Executive Officer.
10

The Inducement Awards were not granted under the 2022 Plan, but have the same terms and conditions as equity awards granted under the 2022 Plan, except as otherwise provided in the award agreements.
Employee Stock Purchase Plan
The Company’s 2012 Employee Stock Purchase Plan (ESPP) allows eligible employees to purchase a variable number of shares of the Company’s common stock each offering period at a discount through payroll deductions of up to 15 percent of their eligible compensation, subject to plan limitations. The ESPP provides for six-month offering periods with a single purchase period ending May 15 and November 15, respectively. At the end of each offering period, employees are able to purchase shares at 85 percent of the lower of the fair market value of the Company’s common stock on the first trading day of the offering period or on the last trading day of the offering period.
Stock-Based Compensation Expense
Stock-based compensation expense was $3.7 million and $4.2 million for the three months ended September 30, 2025 and 2024, respectively, and $11.9 million and $12.7 million for the nine months ended September 30, 2025 and 2024, respectively.
Stock Options
The following table summarizes stock option activity during the nine months ended September 30, 2025:
Stock OptionsWeighted-
Average
Exercise Price
Options outstanding at December 31, 2024445,136$51.34 
Granted139,87239.32 
Exercised(70,307)34.27 
Forfeited(103,013)37.68 
Expired(16,354)87.74 
Options outstanding at September 30, 2025395,334$52.18 
Exercisable at September 30, 2025191,882$68.62 
The outstanding options generally have a term of ten years. For employees, options granted become exercisable ratably over the vesting period, which is generally a period of four years, beginning on the first anniversary of the grant date, subject to the employee’s continuing service to the Company.
The weighted-average grant date fair value of options that were granted during the nine months ended September 30, 2025 was $21.81.
11

The following table provides the assumptions used in the Black-Scholes pricing model valuation of options during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
4.13% - 4.17%
4.28% - 4.30%
Expected life (years)
6.25
6.25
Expected volatility
52.12% - 52.99%
50.62% - 50.72%
Expected dividend yield0%0%
As of September 30, 2025, there was $3.3 million of unrecognized compensation expense related to unvested stock options, which is expected to be recognized over a weighted-average period of 2.9 years.
Restricted Stock Units
Restricted stock unit (RSU) awards are share-settled awards and restrictions lapse ratably over the vesting period, which is generally a period from three to four years, beginning on the first anniversary of the grant date, subject to the employee's continuing service to the Company. For the board of directors, restrictions generally lapse in full on the first anniversary of the grant date.
The following table summarizes restricted stock units activity during the nine months ended September 30, 2025:
Restricted
Stock Units
Weighted-
Average
Grant Date
Fair Value
Per Share
Restricted stock units at December 31, 2024763,261$38.25 
Granted278,50039.95 
Restrictions lapsed(212,526)40.55 
Forfeited(103,268)36.40 
Restricted stock units at September 30, 2025725,967$38.49 
As of September 30, 2025, there was $18.8 million of unrecognized compensation expense related to non-vested restricted stock units, which is expected to be recognized over a weighted-average period of 2.7 years.
Performance Stock Units
Performance stock units (PSUs) are expressed in terms of a target number of PSUs, with anywhere between 0 percent and 200 percent of that target number capable of being earned and vesting at the end of a three-year performance period depending on the Company’s three-year cumulative total shareholder return performance relative to an index and the award recipient’s continued employment. The Company’s PSUs are based on market conditions and the related compensation cost is based on the fair value at grant date calculated using a Monte Carlo pricing model.
12

The following table summarizes performance stock units activity during the nine months ended September 30, 2025:
Performance
Stock Units
Weighted-
Average
Grant Date
Fair Value
Per Share
Performance stock units at December 31, 2024180,173$60.75 
Granted1
153,50359.71 
Restrictions lapsed(32,977)96.41
Performance change 
Forfeited(68,887)57
Performance stock units at September 30, 2025231,812$56.17 
1 Includes a target number of 54,320 PSUs granted as part of the May 23, 2025, Inducement Awards, 27,160 of which have the same market condition as the PSUs granted under the 2022 Plan as described above, and 27,160 of which also include a performance condition with anywhere between 0 percent and 100 percent of the target number capable of being achieved during two six-month performance periods depending on revenue and then anywhere between 0 percent and 200 percent of such achieved PSUs capable of being earned and vesting during a three-year performance period depending on the Company's three-year cumulative total shareholder return performance relative to an index and the award recipient's continued employment.
The following table provides the assumptions used in the Monte Carlo pricing model valuation of PSUs during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
3.98% - 4.08%
4.37%
Expected life (years)
2.61 - 2.85
2.88
Expected volatility
52.40% - 53.20%
51.40%
Expected dividend yield0%0%
As of September 30, 2025, there was $7.5 million of unrecognized compensation expense related to non-vested performance stock units, which is expected to be recognized over a weighted-average period of 2.1 years.
13

Employee Stock Purchase Plan
The following table presents the assumptions used to estimate the fair value of the ESPP during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
4.09% - 4.29%
5.07% - 5.16%
Expected life (months)6.006.00
Expected volatility
41.89% - 65.60%
30.97% - 47.92%
Expected dividend yield0%0%
Note 9 – Accumulated Other Comprehensive Income (Loss)
Other comprehensive income (loss) is comprised of foreign currency translation adjustments and net unrealized gains (losses) on investments in securities.
The following table presents the changes in accumulated other comprehensive income (loss) balances during the three and nine months ended September 30, 2025 and 2024:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Balance at beginning of period$(24,563)$(29,432)$(27,984)$(28,013)
Foreign currency translation adjustments
Other comprehensive income (loss) before reclassifications(227)2,430 3,076 827 
Amounts reclassified from accumulated other comprehensive loss    
Net current-period other comprehensive income (loss)(227)2,430 3,076 827 
Net unrealized gains on investments in securities
Other comprehensive income before reclassifications66 150 184 334 
Amounts reclassified from accumulated other comprehensive loss    
Net current-period other comprehensive income66 150 184 334 
Balance at end of period$(24,724)$(26,852)$(24,724)$(26,852)
Note 10 – Income Taxes
The Company is subject to income tax in multiple jurisdictions and the use of estimates is required to determine the provision for income taxes. For the three months ended September 30, 2025 and 2024, the Company recorded an income tax provision of $3.0 million and $2.7 million, respectively. For the nine months ended September 30, 2025 and 2024, the
14

Company recorded an income tax provision of $7.7 million and $8.0 million, respectively. The income tax provision is based on the estimated annual effective tax rate for the year applied to pre-tax income. The effective income tax rate for the three months ended September 30, 2025 was 29.6 percent compared to 27.1 percent in the same period of the prior year. The effective tax rate increased by 2.5 percent for the three months ended September 30, 2025 when compared to the same period in 2024, primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances. The effective income tax rate for the nine months ended September 30, 2025 was 33.5 percent compared to 31.9 percent in the same period of the prior year. The effective tax rate increased by 1.6 percent for the nine months ended September 30, 2025 when compared to the same period in 2024, primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances.
The effective income tax rate for the three and nine months ended September 30, 2025 differs from the U.S. federal statutory rate of 21.0 percent due to various factors, including operating in multiple state and foreign jurisdictions partially offset by tax credits for which the Company qualifies.
The Company had unrecognized tax benefits totaling $3.7 million as of September 30, 2025 and $3.4 million as of December 31, 2024, respectively, that if recognized would result in a reduction of the Company’s effective tax rate. The liabilities are classified as other long-term liabilities in the accompanying consolidated balance sheets. The Company recognizes interest and penalties related to income tax matters in income tax expense and reports the liability in current or long-term income taxes payable as appropriate.
On July 4, 2025, the U.S. enacted H.R. 1 "A bill to provide for reconciliation pursuant to Title II of H. Con. Res. 14", commonly referred to as the One Big Beautiful Bill Act (OBBBA). As a result of the enactment of H.R. 1, the impact to the deferred tax liability and the income tax payable related to the provisions for 100% bonus depreciation for assets placed in service after January 19, 2025 and full expensing of domestic research and experimental expenditures was recorded in the period ended September 30, 2025. We do not expect any material change to our ongoing tax rate as a result of this legislation. We continue to evaluate the impacts the new legislation may have on the Company's financial statements.
Note 11 – Segment Reporting
The Company’s reportable segments are based on the internal reporting used by the Company’s Chief Executive Officer, who is the chief operating decision maker (CODM), to assess operating performance and make decisions about the allocation of resources. The Company’s reportable segments are based upon geographic region, consisting of the United States and Europe. The Corporate Unallocated category includes non-reportable segments, as well as research and development and general and administrative costs that the Company does not allocate directly to its operating segments.
Intercompany transactions primarily relate to intercontinental activity and have been eliminated and are excluded from the reported amounts. The difference between income from operations and pre-tax income relates to foreign currency-related gains and losses and interest income on cash balances and investments, which are not allocated to business segments.
15

The following table summarizes selected financial information by reportable segments:
Three Months Ended September 30, 2025
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$109,361 $26,005 $ $135,366 
Segment expenses1
81,028 28,696 16,683 126,407 
Exit, Disposal and Goodwill impairment costs 149  149 
Income (Loss) from Operations$28,333 $(2,840)$(16,683)$8,810 
Three Months Ended September 30, 2024
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$99,571 $26,048 $ $125,619 
Segment expenses1
73,884 28,446 14,709 117,039 
Exit, Disposal and Goodwill impairment costs    
Income (Loss) from Operations$25,687 $(2,398)$(14,709)$8,580 
Nine Months Ended September 30, 2025
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$320,340 $76,294 $ $396,634 
Segment expenses1
238,823 87,815 51,576 378,214 
Exit, Disposal and Goodwill impairment costs 110  110 
Income (Loss) from Operations$81,517 $(11,631)$(51,576)$18,310 
Nine Months Ended September 30, 2024
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$299,593 $79,547 $ $379,140 
Segment expenses1
223,333 86,121 48,280 357,734 
Exit, Disposal and Goodwill impairment costs    
Income (Loss) from Operations$76,260 $(6,574)$(48,280)$21,406 
1 Segment expenses consist primarily of raw materials, equipment depreciation, employee compensation including benefits, commissions and stock-based compensation, facilities costs and overhead allocations associated with the manufacturing process for molds and custom parts, marketing programs such as electronic, print and pay-per-click advertising and trade shows and other related costs for our United States and Europe reportable segments. Segment expenses for our Corporate Unallocated reportable segment consist primarily of personnel and outside service costs related to the development of new processes and product lines, enhancements of existing product
16

lines, software developed for internal use, maintenance of internally developed software, quality assurance and testing, employee compensation including benefits and stock-based compensation, severance, professional service fees related to accounting, tax and legal, and other related overhead costs.
Total long-lived assets, expenditures for additions to long-lived assets, and depreciation and amortization expense were as follows:
(in thousands)September 30,
2025
December 31,
2024
Total long-lived assets:
United States$168,988 $181,291 
Europe42,337 45,972 
Total Long-lived Assets$211,325 $227,263 
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Expenditures for additions to long-lived assets:
United States$3,636 $1,368 $5,929 $5,734 
Europe426 187 863 2,605 
Total expenditures for additions to long-lived assets$4,062 $1,555 $6,792 $8,339 
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Depreciation and Amortization:
United States$6,904 $7,156 $20,916 $21,667 
Europe1,470 1,718 4,560 5,194 
Corporate Unallocated55 35 $217 $123 
Total depreciation and amortization$8,429 $8,909 $25,693 $26,984 
Revenue by product line the three and nine months ended September 30, 2025 and 2024 were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(dollars in thousands)2025202420252024
Revenue:
Injection Molding$47,770 $46,831 $143,908 $148,574 
CNC Machining63,043 53,327 177,831 154,498 
3D Printing20,082 21,437 61,491 64,300 
Sheet Metal4,262 3,743 12,776 11,218 
Other Revenue209 281 628 550 
Total Revenue$135,366 $125,619 $396,634 $379,140 
17

Note 12 – Subsequent Event
On October 3, 2025 (the Notice Date), the Company announced that Oleg Ryaboy, Chief Technology Officer, will depart the Company and cease to be an employee, effective November 2, 2025. As of the Notice Date, Mr. Ryaboy is no longer the Company’s Chief Technology Officer or an executive officer of the Company. Marc Kermisch has been appointed to serve as the Company’s new Chief Technology & AI Officer, effective October 13, 2025.
18

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations
The following discussion and analysis of our financial condition and results of operations should be read in conjunction with our unaudited consolidated financial statements and related notes appearing elsewhere in this Quarterly Report on Form 10-Q and our Annual Report on Form 10-K for the year ended December 31, 2024.
Forward-Looking Statements
Statements contained in this report regarding matters that are not historical or current facts are “forward-looking statements” within the meaning of The Private Securities Litigation Reform Act of 1995. In some cases, you can identify forward-looking statements by the following words: “may,” “will,” “could,” “would,” “should,” “expect,” “intend,” “plan,” “anticipate,” “believe,” “estimate,” “predict,” “project,” “potential,” “continue,” “ongoing” or the negative of these terms or other comparable terminology, although not all forward-looking statements contain these words. These statements involve known and unknown risks, uncertainties and other factors that may cause our results to be materially different than those expressed or implied in such statements. Certain of these risk factors and others are described in Item 1A. “Risk Factors” of this Quarterly Report on Form 10-Q, as well as our most recent Annual Report on Form 10-K as filed with the Securities and Exchange Commission (SEC). Other unknown or unpredictable factors also could have material adverse effects on our future results. We cannot guarantee future results, levels of activity, performance or achievements. Accordingly, you should not place undue reliance on these forward-looking statements. Finally, we expressly disclaim any intent or obligation to update any forward-looking statements to reflect subsequent events or circumstances.
Overview
We are one of the world’s largest, fastest and most comprehensive digital manufacturers of custom parts. Our vision is accelerating innovation by revolutionizing manufacturing. Our mission is to shape the future by bringing customer ideas to life across every stage of their product cycle. We accomplish this by offering a variety of manufacturing capabilities fulfilled through a combination of owned manufacturing factories and a worldwide network of premium manufacturing partners. Our automated quoting and manufacturing systems are highly integrated with our manufacturing and fulfillment systems, which allow us to offer a vast array of manufacturing technologies in a variety of materials across a continuum of lead times and prices. Our technology-enabled digital engineering and manufacturing applications enable us to produce commercial-grade plastic, metal, and liquid silicone rubber parts in as fast as one day.
Our customers conduct the majority of their business with us via our Internet-based eCommerce platform. We target our products to the millions of product developers and engineers who use three-dimensional computer-aided design (3D CAD) software to design products across a diverse range of end-markets, to the procurement and supply chain professionals seeking to easily and efficiently source custom parts on-demand, and to a wide variety of customers seeking to purchase custom parts. We believe our use of advanced technologies enable us to offer significant advantages at competitive prices to many customers and is the primary reason we have become a leading supplier of custom parts.
We have established our operations in the United States and Europe. On October 21, 2024, the Company's board of directors approved a plan related to the Company's manufacturing facilities in Germany. The plan includes the closure of the Company's prototype injection molding manufacturing facility in Eschenlohe, Germany, and the discontinuation of Direct Metal Laser Sintering 3D printing services through its 3D printing facility in Putzbrunn, Germany. The Company expects to substantially complete the plan during fiscal year 2025. The Company intends to continue offering all of its manufacturing services to customers across Europe, including injection molding and metal 3D printing. These services will be fulfilled through internal manufacturing facilities and a network of manufacturing partners.
Our primary manufacturing product lines currently include Injection Molding, CNC Machining, 3D Printing and Sheet Metal. We continually seek to expand the range of sizes and geometric complexity of the parts we can make with these processes, to extend the variety of materials we are able to support, and to identify additional manufacturing processes to which we can apply our technology or incorporate into our manufacturing network in order to better serve the evolving preferences and needs of our customers. With the addition of the Protolabs Network in 2021, our global network of premium manufacturing partners significantly expands the breadth and depth of our manufacturing capabilities, enabling us to offer customers a wider variety of lead times and pricing options, and an expanded envelope of parts (complexity, size, etc.).
19

Key Financial Measures and Trends
Revenue
Our operations are comprised of two geographic operating segments in the United States and Europe. On October 21, 2024, the Company's board of directors approved a plan related to the Company's manufacturing facilities in Germany. The plan includes the closure of the Company's prototype injection molding manufacturing facility in Eschenlohe, Germany, and the discontinuation of Direct Metal Laser Sintering 3D printing services through its 3D printing facility in Putzbrunn, Germany. The Company expects to substantially complete the plan during fiscal year 2025. The Company intends to continue offering all of its manufacturing services to customers across Europe, including injection molding and metal 3D printing. These services will be fulfilled through internal manufacturing facilities and a network of manufacturing partners.
Revenue is derived from the sale or parts fulfilled through our owned manufacturing factories and worldwide network of premium manufacturing partners. Our product lines consist of Injection Molding, CNC Machining, 3D Printing and Sheet Metal. Injection Molding revenue consists of sales of custom injection molds and injection-molded parts. CNC Machining revenue consists of sales of CNC-machined custom parts. 3D Printing revenue consists of sales of 3D-printed parts. Sheet Metal revenue consists of sales of fabricated sheet metal custom parts. Our revenue is generated from a diverse customer base and our historical and current efforts to increase revenue have been directed at gaining new customers and selling to our existing customer base by increasing marketing and selling activities, including:
expanding the breadth and scope of our products by adding more sizes and materials to our offerings;
the introduction of our 3D Printing product line through our acquisition of FineLine in 2014;
expanding 3D Printing to Europe through our acquisition of Alphaform in 2015;
the introduction of our Sheet Metal product line through our acquisition of Rapid Manufacturing Group, LLC in 2017;
continuously improving the usability of our product lines such as our web-centric applications; and
providing customers with on-demand access to a global network of premium manufacturing partners through our acquisition of Hubs in 2021.
The following table summarizes our unique customer contacts and revenue per customer contact:
Three Months Ended September 30,Nine Months Ended September 30,
2025202420252024
Revenue (in thousands)$135,366 $125,619 $396,634 $379,140 
Customer contacts21,25222,51141,87343,671
Revenue per customer contact1
$6,370$5,580$9,472$8,682
1 Revenue per customer contact is calculated using the revenue recognized during the respective period divided by the actual number of customer contacts served during the same period. Customer contacts are product developers, engineers, procurement and supply chain professionals and other individuals who place an order, and that order is shipped and invoiced during the period. The Company believes revenue per customer contact is useful to investors in evaluating the underlying business trends and ongoing operating performance of the Company.
Cost of Revenue, Gross Profit and Gross Margin
Cost of revenue consists primarily of raw materials, equipment depreciation, employee compensation including benefits and stock-based compensation, facilities costs, overhead allocations associated with the manufacturing process for molds and custom parts, and costs to procure parts through our network of premium manufacturing partners. We expect our personnel-related costs to increase in order to retain and attract top talent and remain competitive in the market. Overall, we expect cost of revenue to increase in absolute dollars.
20

We define gross profit as our revenue less our cost of revenue, and we define gross margin as gross profit expressed as a percentage of revenue. Our gross profit and gross margin are affected by many factors, including our mix of revenue produced in our internal manufacturing operations and outsourced to our external manufacturing partners, pricing, sales volume, manufacturing costs, the costs associated with increasing production capacity, the mix between domestic and foreign revenue sources, the mix of revenue by product line, and foreign currency exchange rates.
Operating Expenses
Operating expenses consist of marketing and sales, research and development and general and administrative expenses. Personnel-related costs are the most significant component in each of these categories.
Our business strategy is to continue to be a leading online and technology-enabled manufacturer of quick-turn, on-demand injection-molded, CNC-machined, 3D-printed and fabricated sheet metal custom parts for prototyping and low-volume production. In order to achieve our goals, we anticipate continued substantial investments in technology and personnel, resulting in increased operating expenses in the future.
Marketing and sales. Marketing and sales expense consists primarily of employee compensation, benefits, commissions, stock-based compensation, marketing demand generation costs such as electronic, print and pay-per-click advertising, trade shows and other related overhead. We expect sales and marketing expense to increase in the future as we increase the number of marketing and sales professionals and marketing demand generation costs targeted to increase our customer base and grow revenue.
Research and development. Research and development expense consists primarily of personnel and outside service costs related to the development of new processes and product lines, enhancement of existing product lines, development of software for internal use, maintenance of internally developed software, quality assurance and testing. Costs for internal use software are evaluated by project and capitalized where appropriate under ASC 350-40, Intangibles — Goodwill and Other, Internal-Use Software. We expect research and development expense to increase in the future as we seek to enhance our e-commerce interface technology, internal software and supporting business systems, and continue to expand our product lines.
General and administrative. General and administrative expense consists primarily of employee compensation, benefits, stock-based compensation, professional service fees related to accounting, tax and legal, and other related overhead. We expect general and administrative expense to increase in the future as we continue to grow and expand as a global organization.
Costs related to disposal and exit activities. Costs related to disposal and exit activities is driven by our decision to close certain manufacturing facilities in Germany. The expenses consist primarily of operating expenses, including employee severance, write-down of fixed assets and facility-related charges. Benefits may result from adjustments to initial estimates regarding the nature and timing of disposal and exit activities.
Other Income, net
Other income, net primarily consists of foreign currency-related gains and losses and interest income on cash balances and investments. Our foreign currency-related gains and losses will vary depending upon movements in underlying foreign currency exchange rates. Our interest income will vary each reporting period depending on our average cash balances during the period, composition of our marketable security portfolio and the current level of interest rates.
Provision for Income Taxes
Provision for income taxes is comprised of federal, state, local and foreign taxes based on pre-tax income. Overall, our effective tax rate for 2025 and beyond may differ from historical effective tax rates due to increases in losses in foreign operations that are not eligible for tax benefits on account of valuation allowances, as well as any future tax law changes that may impact our effective tax rate.
21

Results of Operations
The following table summarizes our results of operations and the related changes for the periods indicated. The results below are not necessarily indicative of the results for future periods.
Three Months Ended September 30,ChangeNine Months Ended September 30,Change
(dollars in thousands)20252024$%20252024$%
Revenue$135,366 100.0$125,619 100.0$9,747 7.8$396,634 100.0$379,140 100.0$17,494 4.6
Cost of revenue74,073 54.768,389 54.45,684 8.3219,869 55.4207,897 54.811,972 5.8
Gross profit61,293 45.357,230 45.64,063 7.1176,765 44.6171,243 45.25,522 3.2
Operating expenses
Marketing and sales24,574 18.222,619 18.01,955 8.673,054 18.469,070 18.23,984 5.8
Research and development10,705 7.99,772 7.8933 9.532,487 8.231,600 8.3887 2.8
General and administrative17,163 12.716,259 12.9904 5.652,763 13.349,167 13.03,596 7.3
Costs related to exit and disposal activities41 — 41 (100.0)151 — 151 (100.0)
Total operating expenses52,483 38.848,650 38.73,833 7.9158,455 39.9149,837 39.58,618 5.8
Income from operations8,810 6.58,580 6.8230 2.718,310 4.621,406 5.6(3,096)(14.5)
Other income, net1,441 1.11,288 1.0153 11.94,600 1.23,548 0.91,052 (29.7)
Income before income taxes10,251 7.69,868 7.9383 3.922,910 5.824,954 6.6(2,044)(8.2)
Provision for income taxes3,035 2.22,679 2.1356 13.37,668 1.97,957 2.1(289)(3.6)
Net income$7,216 5.3%$7,189 5.7%$27 0.4 %$15,242 3.8%$16,997 4.5%$(1,755)(10.3)%
Stock-based compensation expense included in the statements of operations data above for the three and nine months ended September 30, 2025 and 2024 were as follows:
Three Months Ended September 30,Nine Months Ended September 30,
(dollars in thousands)2025202420252024
Stock options, RSUs and PSUs$3,355 $3,906 $10,955 $11,799 
Employee stock purchase plan322 290 973 917 
Total stock-based compensation expense$3,677 $4,196 $11,928 $12,716 
Cost of revenue$439 $474 $1,323 $1,401 
Operating expenses:
  Marketing and sales837 727 2,423 2,378 
  Research and development764 671 2,124 2,031 
  General and administrative1,637 2,324 6,058 6,906 
Total stock-based compensation expense$3,677 $4,196 $11,928 $12,716 
22

Comparison of Three Months Ended September 30, 2025 and 2024
Revenue
Revenue by reportable segment and the related changes for the three months ended September 30, 2025 and 2024 were as follows:
Three Months Ended September 30,
20252024Change
(dollars in thousands)$% of Total Revenue$% of Total Revenue$%
Revenue:
United States$109,361 80.8 %$99,571 79.3 %$9,790 9.8 %
Europe26,005 19.2 %26,048 20.7 %(43)(0.2)
Total revenue$135,366 100.0%$125,619 100.0%$9,747 7.8%
Our revenue increased $9.7 million, or 7.8%, for the three months ended September 30, 2025 compared to the same period in 2024. The growth in revenue was primarily driven by an increase in average order value for our larger United States customers in the three months ended September 30, 2025 compared to the same period in 2024. By reportable segment, revenue in the United States increased $9.8 million, or 9.8%, for the three months ended September 30, 2025 compared to the same period in 2024. Revenue in Europe decreased less than $0.1 million, or 0.2%, for the three months ended September 30, 2025 compared to the same period in 2024. International revenue was favorably impacted by $1.2 million during the three months ended September 30, 2025 compared to the same period in 2024 as a result of foreign currency movements, primarily due to the strengthening of the British Pound and Euro relative to the United States Dollar.
During the three months ended September 30, 2025, we served 21,252 unique customer contacts, which is a decrease of 5.6% from the same period in 2024. During the three months ended September 30, 2025, our customer contacts served decreased while our revenue grew. This was primarily due to our mix of customers served in the quarter as compared to the same period in 2024 and our strategic focus to earn larger orders from our customers as we strive to be their supplier of choice by serving their custom parts needs through the comprehensive offer of our factory and the Protolabs Network. Our revenue per customer contact grew 14.1% for the three months ended September 30, 2025 compared to the same period in 2024.
Revenue by product line and the related changes for the three months ended September 30, 2025 and 2024 were as follows:
Three Months Ended September 30,
20252024Change
(dollars in thousands)$% of Total Revenue$% of Total Revenue$%
Revenue:
Injection Molding$47,770 35.3 %$46,831 37.3 %$939 2.0 %
CNC Machining63,043 46.6 53,327 42.4 9,716 18.2 
3D Printing20,082 14.8 21,437 17.1 (1,355)(6.3)
Sheet Metal4,262 3.1 3,743 3.0 519 13.9 
Other Revenue209 0.2 281 0.2 (72)(25.6)
Total Revenue$135,366 100.0 %$125,619 100.0 %$9,747 7.8 %
By product line, our revenue increase was driven by a 18.2% increase in CNC Machining revenue, a 2.0% increase in Injection Molding revenue and a 13.9% increase in Sheet Metal revenue, partially offset by a 6.3% decrease in 3D Printing
23

revenue and a 25.6% decrease in Other Revenue, in each case for the three months ended September 30, 2025 compared to the same period in 2024.
Cost of Revenue, Gross Profit and Gross Margin
Cost of Revenue. Cost of revenue increased $5.7 million, or 8.3%, for the three months ended September 30, 2025 compared to the same period in 2024, while revenue increased 7.8% for the three months ended September 30, 2025 compared to the same period in 2024. The increase in the cost of revenue of $5.7 million was primarily driven by higher revenue volumes resulting in increases of $4.4 million in raw material and production and fulfillment related costs, and $2.0 million in personnel and related costs, primarily due to incentive compensation related to our annual short-term incentive compensation plan, contract labor and overtime, during the three months ended September 30, 2025 compared to the same period in 2024, partially offset by decreases in equipment and facility-related costs of $0.7 million.
Gross Profit and Gross Margin. Gross profit increased $4.1 million, or 7.1%, for the three months ended September 30, 2025 compared to the same period in 2024. Gross margin decreased from 45.6% in the three months ended September 30, 2024 to 45.3% in the three months ended September 30, 2025.
Operating Expenses, Other Income, net and Provision for Income Taxes
Marketing and Sales. Our marketing and sales expenses increased $2.0 million during the three months ended September 30, 2025 compared to the same period in 2024 primarily due to increases in personnel and related costs of $1.6 million, primarily due to incentive compensation related to our annual short-term incentive compensation plan and commissions and merit increases, and $0.4 million in marketing program costs.
Research and Development. Our research and development expenses increased $0.9 million, or 9.5%, during the three months ended September 30, 2025 compared to the same period in 2024 primarily due to increases in personnel and related costs of $1.2 million, primarily due to incentive compensation related to our annual short-term incentive compensation plan, partially offset by decreases of $0.2 million in operating costs and $0.1 million in professional services.
General and Administrative. Our general and administrative expenses increased $0.9 million, or 5.6%, during the three months ended September 30, 2025 compared to the same period in 2024 primarily due to increases of $0.8 million in personnel and related costs, primarily related to incentive compensation related to our annual short-term incentive compensation plan, $0.4 million in administrative costs and $0.4 million in professional services, partially offset by decreases of $0.7 million in stock-based compensation.
Costs related to exit and disposal. Our decision to exit and close certain operations in Germany resulted in less than a $0.1 million expense primarily related to professional services during the three months ended September 30, 2025. We had no costs related to exit and disposal activities during the three months ended September 30, 2024.
Other income, net. We recognized other income, net of $1.4 million for the three months ended September 30, 2025, an increase of $0.2 million compared to other income, net of $1.3 million for the three months ended September 30, 2024. Other income, net for the three months ended September 30, 2025 primarily consisted of $1.2 million in interest income on investments and $0.2 million of other income. Other income, net for the three months ended September 30, 2024 primarily consisted of $1.3 million in interest income on investments and other income.
Provision for Income Taxes. Our effective tax rate of 29.6% for the three months ended September 30, 2025 increased 2.5% compared to 27.1% for the same period in 2024. The increase in the effective tax rate was primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances. Our income tax provision of $3.0 million for the three months ended September 30, 2025 increased $0.3 million as compared to our income tax provision of $2.7 million for the same period in 2024.
24

Comparison of Nine Months Ended September 30, 2025 and 2024
Revenue
Revenue by reportable segment and the related changes for the nine months ended September 30, 2025 and 2024 were as follows:
Nine Months Ended September 30,
20252024Change
(dollars in thousands)$% of Total Revenue$% of Total Revenue$%
Revenue:
United States$320,340 80.8 %$299,593 79.0 %$20,747 6.9 %
Europe76,294 19.2 %79,547 21.0 %(3,253)(4.1)
Total revenue$396,634 100.0%$379,140 100.0%$17,494 4.6%
Our revenue increased $17.5 million, or 4.6%, for the nine months ended September 30, 2025 compared to the same period in 2024. By reportable segment, revenue in the United States increased $20.7 million, or 6.9%, for the nine months ended September 30, 2025 compared to the same period in 2024. Revenue in Europe decreased $3.3 million, or 4.1% for the nine months ended September 30, 2025 compared to the same period in 2024. International revenue was favorably impacted by $2.1 million during nine months ended September 30, 2025 compared to the same period in 2024 as a result of foreign currency movements, primarily the strengthening of the British Pound and Euro relative to the United States Dollar.
During the nine months ended September 30, 2025, we served 41,873 unique product developers and engineers, a decrease of 4.1% from the same period in 2024. During the nine months ended September 30, 2025, our customer contacts served decreased while our revenue grew. This was primarily due to our mix of customers served during the nine months ended September 30, 2025 as compared to the same period in 2024 and our strategic focus to earn larger orders from our customers as we strive to be their supplier of choice by serving their custom parts needs through the comprehensive offer of our factory and the Protolabs Network. Our revenue per customer contact grew 9.1% for the nine months ended September 30, 2025 compared to the same period in 2024.
Revenue by product line and the related changes for the nine months ended September 30, 2025 and 2024 were as follows:
Nine Months Ended September 30,
20252024Change
(dollars in thousands)$% of Total Revenue$% of Total Revenue$%
Revenue:
Injection Molding$143,908 36.3 %$148,574 39.2 %$(4,666)(3.1)%
CNC Machining177,831 44.8 154,498 40.7 23,333 15.1 
3D Printing61,491 15.5 64,300 17.0 (2,809)(4.4)
Sheet Metal12,776 3.2 11,218 3.0 1,558 13.9 
Other Revenue628 0.2 550 0.1 78 14.2 
Total Revenue$396,634 100.0 %$379,140 100.0 %$17,494 4.6 %
By product line, our revenue increase was driven by a 15.1% increase in CNC Machining revenue, a 13.9% increase in Sheet Metal revenue and a 14.2% increase in Other Revenue, partially offset by a 3.1% decrease in Injection Molding revenue and a 4.4% decrease in 3D Printing revenue in each case for the nine months ended September 30, 2025 compared to the same period in 2024.
25

Cost of Revenue, Gross Profit and Gross Margin
Cost of Revenue. Cost of revenue increased $12.0 million, or 5.8%, for the nine months ended September 30, 2025 compared to the same period in 2024, which was higher than the rate of revenue increase of 4.6% for the nine months ended September 30, 2025 compared to the same period in 2024. The increase in cost of revenue of $12.0 million was primarily driven by higher revenue volumes resulting in increases of $8.4 million in raw material and production and fulfillment related costs and $4.7 million in personnel and related costs, primarily due to incentive compensation related to our annual short-term incentive compensation plan, overtime, and medical related costs during the nine months ended September 30, 2025 compared to the same period in 2024, partially offset by decreases in equipment and facility-related costs of $1.1 million.
Gross Profit and Gross Margin. Gross profit increased $5.5 million, or 3.2%, for the nine months ended September 30, 2025 compared to the same period in 2024. Gross margin decreased from 45.2% in the nine months ended September 30, 2024 to 44.6% in the nine months ended September 30, 2025.
Operating Expenses, Other Income, net and Provision for Income Taxes
Marketing and Sales. Our Marketing and sales expenses increased $4.0 million, or 5.8%, during the nine months ended September 30, 2025 compared to the same period in 2024. The increase was driven by increases in personnel and related costs of $3.4 million, primarily due to incentive compensation related to commissions and our annual short-term incentive compensation plan and merit increases, and marketing program cost increases of $0.6 million during the nine months ended September 30, 2025 when compared to the same period in 2024.
Research and Development. Our research and development expenses increased $0.9 million, or 2.8%, during the nine months ended September 30, 2025 compared to the same period in 2024, primarily due to personnel and related cost increases of $1.6 million, primarily related to incentive compensation related to our annual short-term incentive compensation plan, partially offset by decreases of $0.4 million in operating costs and $0.3 million in professional services.
General and Administrative. Our general and administrative expenses increased $3.6 million, or 7.3%, during the nine months ended September 30, 2025 compared to the same period in 2024 primarily due to increases of $2.3 million in personnel and related costs, primarily related to the previously disclosed CEO transition that occurred during the nine months ended September 30, 2025 and incentive compensation related to our annual short-term incentive compensation plan, $1.6 million in administrative costs and $0.5 million in professional services, partially offset by decreases of $0.8 million in stock-based compensation.
Costs related to exit and disposal. Our decision to exit and close certain operations in Germany resulted in a $0.2 million expense related to the write-down of fixed assets and $0.1 million in professional services, partially offset by $0.1 million in personnel and related cost benefits during the nine months ended September 30, 2025. These items are the result of changes from the estimated amounts accrued in 2024 and the timing of employee separation payments. We had no costs related to exit and disposal activities during the nine months ended September 30, 2024.
Other loss, net. We recognized other income, net of $4.6 million for the nine months ended September 30, 2025, an increase of $1.1 million compared to other income, net of $3.5 million for the nine months ended September 30, 2024. Other income, net for the nine months ended September 30, 2025 primarily consisted of $3.5 million in interest income on investments, $0.6 million of other income and $0.5 million of foreign currency gains. Other income, net for the nine months ended September 30, 2024 primarily consisted of $3.9 million in interest income on investments and other income, partially offset by a $0.4 million of foreign currency losses.
Provision for Income Taxes. Our effective tax rate of 33.5% for the nine months ended September 30, 2025 increased 1.6% compared to 31.9% for the same period in 2024. The increase in the effective tax rate is primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances. Our income tax provision of $7.7 million for the nine months ended September 30, 2025 decreased $0.3 million compared to our income tax provision of $8.0 million for the nine months ended September 30, 2024.
26

Liquidity and Capital Resources
Cash Flows
The following table summarizes our cash flows during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
(dollars in thousands)20252024
Net cash provided by operating activities$58,053 $60,535 
Net cash used in investing activities(7,804)(10,683)
Net cash used in financing activities(35,887)(46,004)
Effect of exchange rate changes on cash and cash equivalents989 235 
Net increase in cash and cash equivalents$15,351 $4,083 
Sources of Liquidity
Historically, we have primarily financed our operations and capital expenditures through cash flow from operations. We had cash and cash equivalents of $104.4 million as of September 30, 2025, an increase of $15.4 million from December 31, 2024. The increase in our cash was primarily due to cash provided by operating activities of $58.1 million, proceeds from call redemptions and maturities of marketable securities of $11.7 million, issuances of common stock from equity plans of $4.2 million and from the sale of equipment of $0.8 million, partially offset by $36.7 million in repurchases of common stock, $13.6 million for purchases of marketable securities, $6.8 million for purchases of property, equipment and other capital assets and $3.1 million of shares repurchased for tax obligations.
We believe that our existing cash and cash equivalents together with cash generated from operations will be sufficient to meet our working capital and capital expenditure requirements for at least the next 12 months.
Cash Flows from Operating Activities
Cash flows from operating activities were $58.1 million during the nine months ended September 30, 2025 and primarily consisted of net income of $15.2 million, adjusted for certain non-cash items, including depreciation and amortization of $25.7 million, stock-based compensation expense of $11.9 million, deferred taxes of $2.4 million, changes in operating assets and liabilities and other items totaling $2.4 million, and an impairments on a leased facility and fixed assets of $0.4 million. Cash flows from operating activities were $60.5 million during the nine months ended September 30, 2024 and primarily consisted of net income of $17.0 million, adjusted for certain non-cash items, including depreciation and amortization of $27.0 million, stock-based compensation expense of $12.7 million and changes in operating assets and liabilities and other items totaling $9.6 million and a non-cash impairment of equipment of equipment of $0.3 million, which were partially offset by deferred taxes of $6.1 million.
Cash flows from operating activities decreased $2.5 million during the nine months ended September 30, 2025 compared to the same period in 2024, primarily due to changes in operating assets and liabilities and other items totaling $7.3 million, decreases in net income of $1.8 million, decreases in depreciation and amortization of $1.3 million, and decreases in stock-based compensation of $0.8 million, which were partially offset by increases in deferred taxes of $8.5 million and other property and equipment adjustments of $0.2 million.
Cash Flows from Investing Activities
Cash used in investing activities was $7.8 million during the nine months ended September 30, 2025, consisting of $6.0 million for net purchases of property, equipment and other capital assets and $1.8 million of purchases of marketable securities, net of proceeds from call redemptions and maturities.
Cash used in investing activities was $10.7 million during the nine months ended September 30, 2024, consisting of $8.3 million for net purchases of property, equipment and other capital assets and $2.4 million of purchases of marketable securities, net of proceeds from call redemptions and maturities.
27

Cash Flows from Financing Activities
Cash used in financing activities was $35.9 million during the nine months ended September 30, 2025, consisting of $36.7 million in repurchases of common stock, $3.1 million in purchases of shares withheld for tax obligations associated with equity transactions and $0.2 million for repayments of finance lease obligations, which were partially offset by $4.2 million in proceeds related to equity plans.
Cash used in financing activities was $46.0 million during the nine months ended September 30, 2024, consisting of $46.0 million in repurchases of common stock, $1.9 million in purchases of shares withheld for tax obligations associated with equity transactions and $0.2 million for repayments of finance lease obligations, which were partially offset by $2.1 million in proceeds from issuance of common stock from equity plans.
Critical Accounting Estimates
We have adopted various accounting policies to prepare the Consolidated Financial Statements in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP). The preparation of these financial statements requires us to make estimates, judgements and assumptions. Our significant accounting policies and estimates are disclosed in Note 2 to the Consolidated Financial Statements included Part II, Item 8 in our Annual Report on Form 10-K for the year ended December 31, 2024. There were no material changes to our critical accounting policies and estimates during the nine months ended September 30, 2025.
Recent Accounting Pronouncements
For information on recent accounting pronouncements, see Note 2 to the Consolidated Financial Statements appearing in Part I, Item 1 of this Quarterly Report on Form 10-Q.
Item 3. Quantitative and Qualitative Disclosures about Market Risk
Foreign Currency Risk
As a result of our foreign operations, we have revenue, expenses, assets and liabilities that are denominated in foreign currencies. We generate revenue and incur production and sourcing costs and operating expenses in British Pounds and Euros.
Our operating results and cash flows are adversely impacted when the United States Dollar appreciates relative to foreign currencies. Additionally, our operating results and cash flows are adversely impacted when the British Pound appreciates relative to the Euro. As we expand internationally, our results of operations and cash flows will become increasingly subject to changes in foreign currency exchange rates.
We have not used forward contracts or currency borrowings to hedge our exposure to foreign currency risk. Foreign currency risk can be assessed by estimating the change in results of operations or financial position resulting from a hypothetical 10% adverse change in foreign exchange rates. We believe such a change would generally not have a material impact on our financial position, but could have a material impact on our results of operations. We recognized foreign currency gains of less than $0.1 million and foreign currency losses of $0.1 million for the three months ended September 30, 2025 and 2024, respectively. We recognized foreign currency gains of $0.5 million and foreign currency losses of $0.4 million for the nine months ended September 30, 2025 and 2024, respectively. The changes in foreign exchange rates had a favorable impact on consolidated revenue of $1.2 million for the three months ended September 30, 2025 and a favorable impact on consolidated revenue of $2.1 million for the nine months ended September 30, 2025 compared to the same period in 2024.
Item 4. Controls and Procedures
Evaluation of Disclosure Controls and Procedures
Our management, with the participation of our Chief Executive Officer and Chief Financial Officer, has evaluated the effectiveness of the design and operation of our disclosure controls and procedures (as defined in Rule 13a-15(e) under the Securities Exchange Act of 1934, as amended (the Exchange Act)) as of the end of the period covered by this report. Based upon that evaluation, the Chief Executive Officer and Chief Financial Officer have concluded that, as of the end of the period covered by this Quarterly Report on Form 10-Q, our disclosure controls and procedures are effective and provide reasonable assurance that information required to be disclosed by us in the reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported accurately and within the time frames specified in the
28

SEC’s rules and forms and accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, as appropriate to allow timely decisions regarding required disclosure.
Changes in Internal Control over Financial Reporting
There have been no changes in our internal control over financial reporting (as such term is defined in Rule 13a-15(f) under the Exchange Act) during the period covered by this report that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.
PART II. OTHER INFORMATION
Item 1. Legal Proceedings
From time to time, we are subject to various legal proceedings and claims that arise in the ordinary course of our business activities. Although the results of litigation and claims cannot be predicted with certainty, as of the date of these financial statements, we do not believe we are party to any litigation the outcome of which, if determined adversely to us, would individually or in the aggregate be reasonably expected to have a material adverse effect on our business.
Item 1A. Risk Factors
Part I, Item 1A. “Risk Factors” in our Annual Report on Form 10-K for the year ended December 31, 2024 includes a discussion of our risk factors. There have been no material changes from the risk factors described in our Annual Report on Form 10-K.
Item 2. Unregistered Sales of Equity Securities and Use of Proceeds
On February 4, 2025, our board of directors authorized a share repurchase program (the February 2025 Program). The February 2025 Program is open-ended and authorizes repurchases of shares of our common stock from time to time on the open market or in privately negotiated purchases, with a total stock repurchase authorized of up to $100 million. We have $63.3 million remaining under this authorization. The February 2025 Program does not obligate us to acquire any particular amount of shares of our common stock and remains in effect until the total authorized amount is expended or until further action by our board of directors. The actual timing, manner, number and value of shares repurchased under the February 2025 Program will be determined by our management in its discretion and will depend on several factors, including the market price of the Company's common stock, general market and economic conditions, applicable requirements, and other considerations.
During the three months ended September 30, 2025, we repurchased 258,454 shares of our common stock at a total purchase price of $12.8 million under this program. Common stock repurchase activity through September 30, 2025 was as follows:
PeriodTotal Number of Shares PurchasedAverage Price Paid per ShareTotal Number of Shares Purchased as
Part of Publicly Announced Plans or
Programs
Maximum Dollar Value of Shares that
May Yet Be Purchased Under the Plans
or Programs (in thousands)
July 1, 2025 through July 31, 2025$— $76,035 
August 1, 2025 through August 31, 2025174,571$49.12 174,571$67,460 
September 1, 2025 through September 30, 202583,883$49.51 83,883$63,307 
258,454$49.25 258,454$63,307 
Item 3. Defaults Upon Senior Securities
No matters to disclose.
29

Item 4. Mine Safety Disclosures
No matters to disclose.
Item 5. Other Information
On August 15, 2025, Michael R. Kenison, Chief Operations Officer of the Company, entered into a 10b5-1 sales plan intended to satisfy the affirmative defense of Rule 10b5-1(c) under the Exchange Act. This 10b5-1 sales plan provides for (1) the sale of up to 10,681 shares of common stock related to the exercise of option awards granted to Mr. Kenison and (2) the sale of up to 7,500 shares of common stock related to vested restricted stock units granted to Mr. Kenison. This 10b5-1 sales plan will become effective on November 14, 2025 and will expire on June 12, 2026, or earlier completion of all authorized transactions under the plan.
On September 8, 2025, Oleg Ryaboy, Chief Technology Officer of the Company until October 3, 2025, entered into a 10b5-1 sales plan intended to satisfy the affirmative defense of Rule 10b5-1(c) under the Exchange Act. This 10b5-1 sales plan provides for (1) the sale of up to 3,048 shares of common stock related to the exercise of option awards granted to Mr. Ryaboy, (2) the sale of up to 4,200 shares of common stock related to vested restricted stock units granted to Mr. Ryaboy and (3) the sale of shares of common stock related to the future vesting of up to 5,658 restricted stock units held by Mr. Ryaboy. The exact number of shares of common stock that will be sold under this 10b5-1 sales plan related to vesting of restricted stock units is not yet determinable because an unknown number of shares will be sold to satisfy tax withholding obligations in connection with the vesting of the restricted stock units covered by the plan. This 10b5-1 sales plan will become effective on December 8, 2025 and will expire on August 15, 2026, or earlier completion of all authorized transactions under the plan.
During the three months ended September 30, 2025, no other directors or officers (as defined in Rule 16a-1(f) of the Exchange Act) adopted, modified or terminated any contract, instruction or written plan for the purchase or sale of our securities that was intended to satisfy the affirmative defense conditions of Rule 10b5-1(c) of the Exchange Act or any non-Rule 10b5-1 trading arrangement (as defined in Item 408(c) of Regulation S-K).
30

Item 6. Exhibits
The following documents are filed or furnished, as applicable, as part of this Quarterly Report on Form 10-Q:
Exhibit NumberDescription of Exhibit
3.1
3.2
3.3
10.1
31.1
31.2
32.1
101.INSInline XBRL Instance Document (the Instance Document does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document)*
101.SCHInline XBRL Taxonomy Extension Schema Document*
101.CALInline XBRL Taxonomy Extension Calculation Linkbase Document*
101.DEFInline XBRL Taxonomy Extension Definition Linkbase Document*
101.LABInline XBRL Taxonomy Extension Label Linkbase Document*
101.PREInline XBRL Taxonomy Extension Presentation Linkbase Document*
104Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)*
*Filed herewith.
**Furnished herewith.
31

SIGNATURE
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.
Proto Labs, Inc.
Date: October 31, 2025
/s/ Suresh Krishna
Suresh Krishna
President and Chief Executive Officer
(Principal Executive Officer)
Date: October 31, 2025
/s/ Daniel Schumacher
Daniel Schumacher
Chief Financial Officer
(Duly Authorized Officer, Principal Financial Officer and Principal Accounting Officer)
32
EX-10.1 2 prlb-20250930xexx101.htm EX-10.1 Document
Exhibit 10.1
SEVERANCE AGREEMENT
This Severance Agreement (the “Agreement”) is entered into as of ________ (the “Effective Date”) by and between Proto Labs, Inc., a Minnesota corporation (the Company”), and ______________ (“Executive”), an individual residing in ___________.1
Recitals

A.    Executive is employed by the Company and is party to an Employee Confidentiality, Intellectual Property Assignment Agreement and Non-Solicitation Agreement, previously executed by Executive dated as of ____________ (the “Restrictive Covenants Agreement”), attached as Exhibit A to this Agreement.2
B.    Executive and the Company are or may become parties to Stock Option Agreements, Restricted Stock Unit Agreements and Performance Stock Unit Agreements (collectively, the “Award Agreements”), which provide Executive with options to purchase, or an opportunity to have vest, shares of the Company’s common stock (“Shares”) pursuant to Award Agreements and the Company’s 2022 Long-Term Incentive Plan (as amended from time to time, and any other equity compensation plans of the Company pursuant to which equity awards are granted to Executive, the “Plan”).
C.    It is desirable and in the best interests of the Company and its shareholders to continue to obtain the benefits of Executive’s services and attention to the affairs of the Company and to identify certain severance payments and benefits in the event that Executive is separated from employment with the Company under certain identified circumstances.
D.    For the reasons set forth above, the Company and Executive desire to enter into this Agreement.

Now, Therefore, in consideration of the foregoing and the mutual covenants set forth herein, the Company and Executive, intending to be legally bound, hereby agree as follows:
Agreements
1.Term. The term of this Agreement shall commence on the Effective Date and expire on [DATE] (the “Expiration Date”), unless Executive’s employment is terminated at an earlier date in accordance with Section 4 hereof. The period between the Effective Date and the Expiration Date is referred to herein as the “Initial Term.” Effective as of the Expiration Date and each successive one year anniversary of the Effective Date (each an “Anniversary Date”), the term shall be automatically extended until the subsequent Anniversary Date (each a “Renewal Term”) unless Executive gives written notice of non-renewal to the Company at least sixty (60) days prior to the Anniversary Date on which this Agreement would otherwise be automatically extended that Executive elects not to extend the term. The Initial Term, together
1     For executives located outside of Minnesota, consider whether any state-specific modifications may be required or recommended based on then-current applicable state and local laws.
2     For executives located outside of Minnesota and in a state that permits employee non-competition covenants, add references to Employee Non-Competition Agreement and attach it as Exhibit B.



with any Renewal Terms, is the “Term.” If Executive remains employed by the Company after the Term, then Executive shall no longer be entitled to any severance payments or benefits under this Agreement and any severance rights Executive may have shall be according to the terms and conditions established by the Company from time to time.
2.At Will Employment. Executive’s employment with the Company shall be at will and Executive’s employment may be unilaterally terminated by either party at any time for any reason, subject to the terms of Sections 4 and 5 of this Agreement. The effective date of Executive’s termination of employment with the Company and its affiliates is referred to herein as the “Termination Date.”
3.Restrictive Covenants Agreement. Executive acknowledges entering into the Restrictive Covenants Agreement as a condition of Executive’s employment with the Company or otherwise in exchange for valid and valuable consideration and hereby acknowledges and confirms Executive’s commitments and obligations under the Restrictive Covenants Agreement. Nothing in this Agreement is intended to modify, amend, cancel or supersede the Restrictive Covenants Agreement in any manner.
4.Termination.
A.Termination of Employment. Except as provided in Sections 4.B., C., D. and E., each party hereto may terminate Executive’s employment by giving to the other party no less than thirty (30) days prior written notice of the party’s intent to terminate. If Executive voluntarily terminates Executive’s employment without Good Reason, then the Company shall have no further liability to Executive for any payment, compensation or benefit whatsoever, other than payment of Executive’s earned but unpaid salary, cash incentive bonus and benefits through the Termination Date and honoring Executive’s rights under the Award Agreements or under any other restricted stock, stock options, stock units or other equity agreement between Executive and the Company (collectively, “Equity Awards”). If the Company terminates Executive’s employment without Cause (as set forth in Section 4.D.) and other than as a result of death or Disability (as set forth in Section 4.C.), or if Executive terminates Executive’s employment for Good Reason (as set forth in Section 4.E.) (either such event being a “Qualifying Termination”), and subject to Executive’s compliance with Section 5 of this Agreement and with the Restrictive Covenants Agreement, then Executive shall be entitled to severance payments and benefits as described in and pursuant to the terms and conditions of Section 5 of this Agreement.
B.By Death. Executive’s employment shall be terminated automatically upon the death of Executive. The Company’s total liability in such event shall be limited to payment of Executive’s earned but unpaid salary, cash incentive bonus and benefits through the date of Executive’s death and honoring Executive’s rights under any Equity Awards.
C.By Disability. The Company may terminate Executive’s employment upon the inability of Executive to perform on a full-time basis the duties and responsibilities of Executive’s employment with the Company, after any reasonable accommodation that may be required under applicable law is made by the Company, by reason of Executive’s illness or other physical or mental impairment or condition, if such inability continues for an uninterrupted period of one hundred and twenty (120) days (a “Disability”). A period of inability shall be “uninterrupted” unless and until Executive returns to full-time work for a continuous period of at least thirty (30) days. The Company shall have no liability for severance pay or benefits following any Termination Date due to Disability, other than payment of Executive’s earned but unpaid salary, cash incentive bonus and benefits through the Termination Date and honoring Executive’s rights under any Equity Awards, and any rights Executive has to disability insurance
2


benefits under applicable law or the Company’s short or long term disability insurance policies as in effect at the time of termination.
D.For Cause. The employment relationship between Executive and the Company created hereunder shall automatically and immediately terminate upon receipt by Executive of notice of termination for Cause after the occurrence of any one of the events set forth below, each of which will be considered “Cause” for termination. For the avoidance of doubt, Executive will not be entitled to any compensation or benefits pursuant to this Agreement if the Company terminates Executive’s employment for Cause.
(i)Executive’s failure or refusal to perform satisfactorily the duties reasonably required of Executive by the Company (other than by reason of Disability);
(ii)Executive’s material violation of any law, rule, regulation, court order or regulatory directive (other than traffic violations, misdemeanors or other minor offenses);
(iii)Executive’s material breach of the Restrictive Covenants Agreement or any Company code of conduct;
(iv)Executive engaging in any act or practice that involves personal dishonesty on the part of Executive or demonstrates a willful and continuing disregard for the best interests of the Company or its affiliates; or
(v)While performing corporate duties and responsibilities, Executive engaging in conduct that would be reasonably expected to harm or bring disrepute to the Company, any of its affiliates, or any of their customers, employees or vendors.
E.Good Reason. Executive’s voluntary resignation of Executive’s employment under this Agreement will be considered to be with “Good Reason” if, following the occurrence of one or more of the events listed below, (1) Executive provides written notice to the Company’s Board of Directors (the “Board”) of the event(s) constituting Good Reason within sixty (60) days after the first occurrence of such event(s), (2) the Company fails to reasonably cure such event(s) within thirty (30) days after receiving such notice, and (3) the Termination Date is not later than thirty (30) days after the end of the period in which the Board may cure the event(s). For the avoidance of doubt, Executive will not be entitled to any compensation or benefits pursuant to this Agreement if Executive voluntarily resigns from Executive’s employment without Good Reason. The following events will give rise to Good Reason, unless Executive has consented thereto in writing:
(i)a material reduction in Executive’s total cash compensation, which is comprised of base salary and target incentive bonus, other than a reduction that is part of and proportionally consistent with a broad-based reduction in base compensation or target incentive bonus applicable to the Company’s senior executives;
(ii)a material diminution in Executive’s authority, duties or responsibilities;
(iii)a change in the location of the Company facility or office where Executive is based to a location more than fifty (50) miles from the Company facility or office where Executive is based as of the Effective Date; or
(iv)a material breach by the Company of any terms or conditions of this Agreement or any other agreement between Executive and the Company, which breach has
3


not been cured by the Company within fifteen (15) days after written notice thereof to the Company from Executive.
5.Severance. If there is a Qualifying Termination, provided that Executive’s termination of employment constitutes an involuntary “separation from service” (a “Separation from Service”) under Section 409A (“Section 409A”) of the Internal Revenue Code of 1986, as amended (the “Code”), provided that Executive signs, within forty-five (45) days after the Separation from Service, and does not rescind a general waiver and release of claims in favor of the Company and its affiliates in a form to be prescribed by the Company, and provided further that Executive is in compliance with Executive’s continuing obligations to the Company (including but not limited to those in the Restrictive Covenants Agreement), then Executive will receive the severance payments and benefits identified in this Section 5. If Executive becomes eligible to receive any severance payments or benefits under this Section 5, then Executive will not be eligible to receive any severance payments or benefits under any other agreement between Executive and the Company or under any severance plan or program adopted by the Company. Notwithstanding any provisions in this Agreement to the contrary, this Agreement will not provide duplicate benefits with any severance plan or program adopted by the Company (“Other Severance Plan”). Executive will receive severance benefits, if any, pursuant to this Agreement, and not under any Other Severance Plan, which will not apply to Executive.
A.Payments Upon Qualifying Termination Prior to a Change in Control or After the Expiration of the Transition Period. If the Termination Date occurs during the Term and is prior to any Change in Control (as defined below) or after the Transition Period (as defined below), and if such termination is a Qualifying Termination, then, in addition to such base salary, cash incentive bonus and benefits that have been earned but not paid to Executive as of the Termination Date, and subject to Executive satisfying the conditions identified in the first paragraph of this Section 5, the Company shall provide to Executive the following severance payments and benefits:
(i)Base Salary Cash Severance. The Company shall pay to Executive an amount equal to one (1) times Executive’s annualized base salary as of the Termination Date (or, if Executive’s resignation is for Good Reason because the Company materially reduced Executive’s base compensation, one (1) times Executive’s annualized base salary as of immediately before such material reduction), less deductions and withholding required by law, payable in substantially equal installments in accordance with the Company’s regular payroll practices over the 12-month period immediately following the Termination Date; provided, however that any installments that otherwise would be payable within the 60-day period immediately following the termination date shall be delayed and payable with the installment that is payable on the Company’s first payroll date following the 60th day after the Termination Date. Notwithstanding anything above to the contrary, to the extent that the amount paid under the first sentence of this Section 5.A.(i) exceeds the lesser of two times (I) the limit of compensation set forth in section 401(a)(17) of the Code as in effect for the year in which the Termination Date occurs, or (II) Executive’s annualized compensation based upon the annual rate of pay for services to the Company for the calendar year prior to the calendar year in which the Termination Date occurs (adjusted for any increase during that year that was expected to continue indefinitely if Executive had not separated from service), then the then the Company shall make an additional separate lump sum payment to Executive equal to the excess amount. Such lump sum payment shall be a separate payment from the installment payments provided under this Section 5.A.(i) and shall be paid to Executive on the Company’s first payroll date following the 60th day after the Termination Date but in no event later than two and one-half (2 ½) months after the Termination Date.
(ii)Pro Rata Bonus Payment. The Company shall pay to Executive a pro rata cash incentive bonus amount calculated by multiplying the annual cash incentive
4


bonus Executive would have received under the Company’s annual cash incentive bonus plan for the calendar year in which the Termination Date occurs assuming Executive would have remained employed through the date Executive would have otherwise earned an annual cash incentive bonus under such year’s annual cash incentive bonus plan by a fraction, the numerator of which is the number of days Executive was employed by the Company during the calendar year in which the Termination Date occurs through and including the Termination Date and the denominator of which is 365, less deductions and withholding required by law, payable in a lump sum at the same time as other eligible employees under the Company’s annual cash incentive bonus plan for such calendar year are paid their bonuses under such Company’s annual cash incentive bonus plan for such calendar year, but in any event no later than March 15 of the calendar year immediately following the calendar year in which the Termination Date occurs.
(iii)Benefits Continuation. If Executive was enrolled in a group health plan (e.g., medical, dental, or vision plan) sponsored by the Company immediately prior to the Termination Date, and if Executive (or Executive’s eligible dependents) timely elects to continue such coverage under the Consolidated Omnibus Budget Reconciliation Act of 1985 (together with any state law of similar effect, “COBRA”), then the Company will pay to the insurance carrier(s) its share of the premiums due for Executive and Executive’s eligible dependents for the first twelve (12) months of such coverage under COBRA (or until such earlier time as Executive and/or Executive’s eligible dependents are no longer eligible for COBRA coverage).
(iv)Vesting of Equity Awards. The Equity Awards shall be governed by their terms; however, the following provisions shall apply to the extent that they provide more favorable terms to the Executive than the terms set forth in the Equity Awards or in the Plan: if Executive has an unvested option to purchase Shares or any unvested Stock Units (as defined in the Plan) under any Equity Awards under the Plan addressing Executive’s option to purchase or right or have vest Shares, then a pro rata portion of any such time-based award scheduled to vest on the next anniversary of the grant date for such award will vest as of the Termination Date and a pro rata portion of any such performance-based award will vest as provided below. In the case of time-based awards, the number of additional Shares that Executive will have the option to purchase or will have vest as a result of such pro rata vesting will be determined by multiplying the total number of additional Shares Executive would have had the option to purchase, or have had vest, as of the next anniversary of the grant date for such award assuming Executive would have remained employed through such anniversary by a fraction, the numerator of which is the number of days Executive was employed by the Company during the then-current vesting year through and including the Termination Date and the denominator of which is 365. For performance-based awards, the number of additional Shares that Executive will have vest as a result of such pro rata vesting will be determined by multiplying the total number of additional Shares that would otherwise have been determined to have been earned had Executive remained employed through the end of the applicable performance period by a fraction, the numerator of which is the number of days Executive was employed by the Company during the performance period and the denominator of which is the number of days in the performance period (e.g., 1,095 days in the case of a three-year performance period). Performance-based awards will be settled within two and one-half (2 ½) months after the last day of the relevant performance period.
B.Payments Upon Termination During the Transition Period. If a Change in Control occurs during the Term and Executive’s Termination Date occurs on the date of the Change in Control or prior to the 18-month anniversary of the Change in Control (such 18-month period, the “Transition Period”), and if such termination is a Qualifying Termination, then, in addition to such base salary, cash incentive bonus and benefits that have been earned but not paid to Executive as of the Termination Date, and subject to Executive satisfying the
5


conditions identified in the first paragraph of this Section 5, the Company shall provide to Executive the following severance payments and benefits:
(i)Base Salary Cash Severance. The Company shall pay to Executive an amount equal to one (1) times Executive’s annualized base salary as of the Termination Date (or, if Executive’s resignation is for Good Reason because the Company materially reduced Executive’s base compensation, one (1) times Executive’s annualized base salary as of immediately before such material reduction), less deductions and withholding required by law, payable in substantially equal installments in accordance with the Company’s regular payroll practices over the 12-month period immediately following the Termination Date; provided, however that any installments that otherwise would be payable within the 60-day period immediately following the Termination Date shall be delayed and payable with the installment that is payable on the Company’s first payroll date following the 60th day after the Termination Date. Notwithstanding anything above to the contrary, to the extent that the amount paid under the first sentence of this Section 5.B.(i) exceeds the lesser of two times (I) the limit of compensation set forth in section 401(a)(17) of the Code as in effect for the year in which the Termination Date occurs, or (II) Executive’s annualized compensation based upon the annual rate of pay for services to the Company for the calendar year prior to the calendar year in which the Termination Date occurs (adjusted for any increase during that year that was expected to continue indefinitely if Executive had not separated from service), then the Company shall make an additional separate lump sum payment to Executive equal to the excess amount. Such lump sum payment shall be a separate payment from the installment payments provided under this Section 5.B.(i) and shall be paid to Executive on the Company’s first payroll date following the 60th day after the Termination Date but in no event later than two and one-half (2 ½) months after the Termination Date.
(ii)Cash Bonus Payment. The Company shall pay to Executive an amount equal to the sum of: (1) one times Executive’s target annual cash incentive bonus for the calendar year in which the Termination Date occurs plus (2) the amount determined by multiplying (x) the annual cash incentive bonus Executive would have received under the Company’s annual cash incentive bonus plan for the calendar year in which the Termination Date occurs assuming Executive would have remained employed through the date Executive would have otherwise earned an annual cash incentive bonus under such year’s annual cash incentive bonus plan by (y) a fraction, the numerator of which is the number of days Executive was employed by the Company during the calendar year in which the Termination Date occurs through and including the Termination Date and the denominator of which is 365. The amount payable pursuant to this paragraph shall be reduced by deductions and withholding required by law, and shall be payable in a lump sum at the same time as other eligible employees under the Company’s annual cash incentive bonus plan for such calendar year are paid their bonuses under such Company’s annual cash incentive bonus plan for such calendar year, but in any event no later than March 15 of the calendar year immediately following the calendar year in which the Termination Date occurs.
(iii)Benefits Continuation. If Executive was enrolled in a group health plan (e.g., medical, dental, or vision plan) sponsored by the Company immediately prior to the Termination Date, and if Executive (or Executive’s eligible dependents) timely elects to continue such coverage under COBRA, then the Company will pay to the insurance carrier(s) its share of the premiums due for Executive and Executive’s eligible dependents for the first twelve (12) months of such coverage under COBRA (or until such earlier time as Executive and/or Executive’s eligible dependents are no longer eligible for COBRA coverage).
(iv)Full Accelerated Vesting of Equity. Notwithstanding any language in any Equity Award or in the Plan to the contrary, if Executive has any unvested awards of restricted stock units, options or other equity-based awards with respect to the
6


Company as of the Termination Date, then any such unvested awards will vest immediately as of the Termination Date. In the case of performance-based awards, the number of Shares subject to such accelerated vesting shall be based on a determination by the Board of the degree to which any performance-based vesting conditions will be deemed satisfied.
C.Additional Payments Upon or Following a Change in Control. If the Termination Date occurs during the Term and within ninety (90) days prior to a Change in Control, and if such termination is a Qualifying Termination and Executive reasonably demonstrates within thirty (30) days after the Change in Control that such Qualifying Termination arose in connection with or in anticipation of the Change in Control, then the Company shall provide to Executive the following severance payments and benefits (in addition to the severance payments and benefits Executive is eligible to receive under Section 5.A.), each of which shall be considered a separate payment:
(i)Cash Bonus Payment. The Company shall pay to Executive an amount equal to one (1) times Executive’s target annual cash incentive bonus for the calendar year in which the Termination Date occurred, less deductions and withholding required by law, payable as follows: (a) if the Change in Control and the Termination Date occur in the same calendar year, then in a lump sum at the same time as other eligible employees under the Company’s annual cash incentive bonus plan for such calendar year are paid their bonuses under such Company’s annual cash incentive bonus plan for such calendar year, but in any event no later than March 15 of the calendar year immediately following the calendar year in which the Termination Date occurred, or (b) if the Change in Control occurs in the calendar year following the year in which the Termination Date occurred, then in a lump sum not later than 60 days after the Change in Control.
(ii)Vesting of Equity Awards. The Company shall pay to Executive an amount equal to the intrinsic value of any unvested restricted stock units, options or other equity-based awards held by Executive as of the Termination Date that were forfeited as of the Termination Date, with such intrinsic value to be determined based on the per share price paid by the buyer for the Company’s common stock in connection with the Change in Control, or, if no per share price is paid by a buyer in connection with such Change in Control, the per share value of the Company’s common stock at the time of such Change in Control as determined in good faith by the Board as it exists prior to the consummation of the Change in Control, in each case, less any exercise price or other amount that would have been owed to the Company by Executive in order to realize the value of such awards. In the case of forfeited performance-based awards, the intrinsic value shall be based on the number of Shares subject to an award based on a determination by the Board of the degree to which any performance-based vesting or payment conditions will be deemed satisfied. Any amount payable under this Section 5.C.(ii) will be subject to deductions and withholding required by law and payable in a lump sum within the 30-day period immediately following the Change in Control.
D.Change in Control. For purposes of this Agreement, “Change in Control” has the meaning ascribed to such term in the Plan (as such document may be amended from time to time); provided that no Change in Control shall be deemed to have occurred unless the event would also constitute a change in ownership or effective control of, or a change in the ownership of a substantial portion of the assets of, the Company under Code Section 409A.
E.Section 409A; Conditional Six-Month Delay. Any payments under this Section 5 (the “Payments”) are intended to be exempt from or satisfy the requirements for deferred compensation under Section 409A, including current and future guidance and regulations interpreting Section 409A, and should be interpreted and administered accordingly. However, if the Company (or, if applicable, the successor entity thereto) determines that the Payments (or any portion of the Payments) constitute “deferred compensation” under Section
7


409A and Executive is a “specified employee” of the Company or any successor entity thereto, as such term is defined in Section 409A(a)(2)(B)(i) (a “Specified Employee”), then, solely to the extent necessary to avoid the incurrence of the adverse personal tax consequences under Section 409A, the timing of the Payments shall be delayed as follows: on the earliest to occur of (i) the date that is six months and one day after the Termination Date, (ii) the date of the Specified Employee’s death, or (iii) such earlier date, as reasonably determined in good faith by the Company (or any successor entity thereto), as would not result in any of the Payments being subject to adverse personal tax consequences under Section 409A (such earliest date, the “Delayed Initial Payment Date”), the Company (or the successor entity thereto, as applicable) shall (A) pay to Executive a lump sum amount equal to the sum of the Payments that Executive would otherwise have received through the Delayed Initial Payment Date if the commencement of the payment of the Payments had not been delayed pursuant to this Section 5.E. and (B) commence paying the balance of the Payments in accordance with the applicable payment schedules set forth in this Section 5 above. For the avoidance of doubt, it is intended that (1) each installment of the Payments is a separate “payment” for purposes of Section 409A, (2) all Payments satisfy, to the greatest extent possible, the exemptions from the application of Section 409A provided under of Treasury Regulation 1.409A-1(b)(4)-(6), and 1.409A-1(b)(9)(iii), and (3) the Payments consisting of COBRA premiums also satisfy, to the greatest extent possible, the exemptions from the application of Section 409A provided under Treasury Regulation 1.409A-1(b)(9)(v).
F.280G Limitations. In the event that the severance pay and other benefits provided for in this Agreement or otherwise payable to Executive (i) constitute “parachute payments” within the meaning of Section 280G of the Code and (ii) would be subject to the excise tax imposed by Code Section 4999, then such benefits shall be either be: (A) delivered in full, or (B) delivered as to such lesser extent which would result in no portion of such severance pay and other benefits being subject to excise tax under Code Section 4999, whichever of the foregoing amounts, taking into account the applicable federal, state and local income and employment taxes and the excise tax imposed by Code Section 4999, results in the receipt by Executive, on an after-tax basis, of the greatest amount of benefits, notwithstanding that all or some portion of such benefits may be subject to excise tax under Code Section 4999. Any determination required under this Section 5.F. will be made in writing by an accounting firm selected by the Company or such other person or entity to which the parties mutually agree (the “Accountants”), whose determination will be conclusive and binding upon Executive and the Company for all purposes. For purposes of making the calculations required by this Section 5.F., the Accountants may make reasonable assumptions and approximations concerning applicable taxes and may rely on reasonable, good faith interpretations concerning the application of Code Sections 280G and 4999. The Company and Executive shall furnish to the Accountants such information and documents as the Accountants may reasonably request in order to make a determination under this Section 5.F. The Company shall bear all costs the Accountants may reasonably incur in connection with any calculations contemplated by this Section 5.F. Any reduction in payments and/or benefits required by this Section 5.F. shall occur in the following order: (i) cash payments shall be reduced first and in reverse chronological order such that the cash payment owed on the latest date following the occurrence of the event triggering such excise tax will be the first cash payment to be reduced; (ii) accelerated vesting of restricted stock units, options or other equity-based awards, if any, shall be cancelled/reduced next and in the reverse order of the date of grant for such restricted stock units, options or other equity-based awards (i.e., the vesting of the most recently granted stock awards will be reduced first), with full-value awards reversed before any restricted stock units, options or other equity-based awards are reduced; and (iii) deferred compensation amounts subject to Section 409A shall be reduced last.
6.Remedies. Each of the parties to this Agreement will be entitled to enforce its rights under this Agreement specifically, to recover damages by reason of any breach of any
8


provision of this Agreement and to exercise all other rights existing in its favor. The parties hereto agree and acknowledge that money damages may not be an adequate remedy for any breach of the provisions of this Agreement and that any party may in its sole discretion apply to any court of law or equity of competent jurisdiction in accordance with Section 12 for injunctive relief in order to enforce or prevent any violations of the provisions of this Agreement.
7.Attorney Fees. If any action at law or in equity, including any action for declaratory or injunctive relief, is brought which arises out of this Agreement or the termination of Executive’s employment, or which seeks to enforce or interpret this Agreement or to seek damages for its breach, the prevailing party shall be entitled to recover reasonable attorney fees from the non-prevailing party, which fees may be set by the court or arbitrator in the trial of such action, or may be enforced in a separate action brought for that purpose, and which fees shall be in addition to any other relief which may be awarded.
8.Assignment. This Agreement shall not be assignable, in whole or in part, by either party without the written consent of the other party, except that the Company may, without the consent of Executive, assign or delegate all or any portion of its rights and obligations under this Agreement to any corporation or other business entity (i) with which the Company may merge or consolidate, or (ii) to which the Company may sell or transfer all or substantially all of its assets or capital stock. Any such current or future successor to which any right or obligation has been assigned or delegated shall be deemed to be the “Company” for purposes of such rights or obligations of this Agreement. The rights and, obligations under this Agreement shall inure to the benefit of and shall be binding upon the heirs, legatees, administrators and personal representatives of Executive and upon the successors, affiliates, representatives and assigns of the Company.
9.Severability and Reformation. The parties hereto intend all provisions of this Agreement to be enforced to the fullest extent permitted by law, and are intended to be limited to the extent necessary so that they will not render this Agreement illegal, invalid, or unenforceable under present or future law. If any provision of this Agreement or any application thereof shall be held to be invalid, illegal or unenforceable, the validity, legality and enforceability of such provision shall be fully severable, and this Agreement shall be construed and enforced as if such illegal, invalid, or unenforceable provision were never a part hereof and the remaining provisions shall remain in full force and effect and shall not be affected by the illegal, invalid, or unenforceable provision or by its severance.
10.Notices. All notices and other communications required or permitted to be given hereunder shall be in writing and shall be deemed to have been duly given if delivered personally, mailed by certified mail (return receipt requested) or sent by overnight delivery service, cable, telegram, facsimile transmission or telex to the parties at the following addresses or at such other addresses as shall be specified by the parties by like notice:
If to the Company:
Proto Labs, Inc.
5540 Pioneer Creek Drive
Maple Plain, MN 55359
Attention: President and CEO
If to Executive:

The last known address on file with the Company.
9



Notice so given shall, in the case of notice so given by mail, be deemed to be given and received on the fourth calendar day after posting, in the case of notice so given by overnight delivery service, on the date of actual delivery and, in the case of notice so given by cable, telegram, facsimile transmission, telex or personal delivery, on the date of actual transmission or, as the case may be, personal delivery.
11.Further Actions. Whether or not specifically required under the terms of this Agreement, each party hereto shall execute and deliver such documents and take such further actions as shall be necessary in order for such party to perform all of the party’s obligations specified herein or reasonably implied from the terms hereof.
12.Taxes. The Company may withhold from any amounts payable under this Agreement such federal, state and local income and employment taxes as the Company determines are required or authorized to be withheld pursuant to any applicable law or regulation. Except for any tax amounts withheld by the Company from any compensation that Executive may receive in connection with Executive’s employment with the Company and any employer taxes required to be paid by the Company under applicable laws or regulations, Executive is solely responsible for payment of any and all taxes owed in connection with any compensation, benefits, reimbursement amounts or other payments Executive receives from the Company under this Agreement or otherwise in connection with Executive’s employment with the Company. The Company does not guarantee any particular tax consequence or result with respect to any payment made by the Company. In no event should this Section 12 or any other provision of this Agreement be construed to require the Company to provide any gross-up for the tax consequences of any provisions of, or payments under, this Agreement, and the Company has no responsibility for tax or legal consequences to Executive resulting from the terms or operation of this Agreement; provided, however, to the extent that any post-termination COBRA premiums paid by the Company under Section 5 of this Agreement shall be taxable at the Termination Date or during the period for which such COBRA premiums are provided, then the Company shall pay to Executive an additional amount for each such month that the COBRA premiums are taxable.  The monthly amount will equal 15% of the applicable COBRA premium for that month and such amount will be paid to Executive within two and one half months after the month to which they relate, provided that the aggregate amount payable to Executive under this provision will not exceed the dollar limit in effect under Code section 402(g)(1)(B) for the year of the Termination Date, as provided in Treasury Regulations section 1.409A-1(b)(9)(v)(D).
13.Governing Law and Venue. This Agreement is to be governed by and construed in accordance with the laws of the State of Minnesota without giving effect to any choice or conflict of law provision or rule that would cause the application of laws of any jurisdiction other than the State of Minnesota. The parties agree that any dispute concerning this Agreement is to be brought in the District Court in Hennepin County, Minnesota and consent to jurisdiction and venue therein.
14.Entire Agreement. This Agreement, the Restrictive Covenants Agreement, the Award Agreements and the Plan contain the entire understanding and agreement between the parties, except as otherwise specified herein, and supersede any other agreement between Executive and the Company, whether oral or in writing, with respect to the same subject matter; provided, however, that nothing herein shall supersede or replace any of the Company’s equity-based compensation plans and any award agreements with the Executive entered into thereunder.
15.No Waiver. No term or condition of this Agreement shall be deemed to have been waived, except by a statement in writing signed by the party against whom enforcement of
10


the waiver is sought. Any written waiver shall not be deemed a continuing waiver unless specifically stated, shall operate only as to the specific term or condition waived, and shall not constitute a waiver of such term or condition for the future or as to any act other than that specifically waived.
16.Counterparts. This Agreement may be executed in counterparts, with the same effect as if both parties had signed the same document. All such counterparts shall be deemed an original, shall be construed together and shall constitute one and the same instrument.
[signature page follows]

11


In Witness Whereof, the parties have executed this Agreement as of the date first above written.
THE COMPANY:
Proto Labs, Inc.
By    
    

EXECUTIVE:

    





Executive Severance Agreement
EX-31.1 3 prlb-2025930xexx311.htm EX-31.1 Document

Exhibit 31.1
CERTIFICATION PURSUANT TO RULE 13a-14(a) OR 15d-14(a) OF
THE SECURITIES EXCHANGE ACT OF 1934,
AS ADOPTED PURSUANT TO SECTION 302 OF
THE SARBANES-OXLEY ACT OF 2002
I, Suresh Krishna, certify that:
1.I have reviewed this Quarterly Report on Form 10-Q of Proto Labs, 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;
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.
Date: October 31, 2025
By:/s/ Suresh Krishna
Suresh Krishna
President and Chief Executive Officer
(Principal Executive Officer)

EX-31.2 4 prlb-2025930xexx312.htm EX-31.2 Document

Exhibit 31.2
CERTIFICATION PURSUANT TO RULE 13a-14(a) OR 15d-14(a) OF
THE SECURITIES EXCHANGE ACT OF 1934,
AS ADOPTED PURSUANT TO SECTION 302 OF
THE SARBANES-OXLEY ACT OF 2002
I, Daniel Schumacher, certify that:
1.I have reviewed this Quarterly Report on Form 10-Q of Proto Labs, 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;
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.
Date: October 31, 2025
By:/s/ Daniel Schumacher
Daniel Schumacher
Chief Financial Officer
(Principal Financial Officer)

EX-32.1 5 prlb-2025930xexx321.htm EX-32.1 Document

Exhibit 32.1
CERTIFICATION OF CHIEF EXECUTIVE OFFICER AND CHIEF FINANCIAL OFFICER
PURSUANT TO
18 U.S.C. SECTION 1350,
AS ADOPTED PURSUANT TO
SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
I, Suresh Krishna, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that the Quarterly Report of Proto Labs, Inc. on Form 10-Q for the fiscal quarter ended September 30, 2025 fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934 and that information contained in such Quarterly Report on Form 10-Q fairly presents in all material respects the financial condition and results of operations of Proto Labs, Inc.
Date: October 31, 2025
By:/s/ Suresh Krishna
Name:Suresh Krishna
Title:President and Chief Executive Officer
I, Daniel Schumacher, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that the Quarterly Report of Proto Labs, Inc. on Form 10-Q for the fiscal quarter ended September 30, 2025 fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934 and that information contained in such Quarterly Report on Form 10-Q fairly presents in all material respects the financial condition and results of operations of Proto Labs, Inc.
Date: October 31, 2025
By:/s/ Daniel Schumacher
Name:Daniel Schumacher
Title:Chief Financial Officer

EX-101.SCH 6 prlb-20250930.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 0000001 - Document - Cover link:presentationLink link:calculationLink link:definitionLink 9952151 - Statement - Consolidated Balance Sheets link:presentationLink link:calculationLink link:definitionLink 9952152 - Statement - Consolidated Balance Sheets (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 9952153 - Statement - Consolidated Statements of Comprehensive Income link:presentationLink link:calculationLink link:definitionLink 9952154 - Statement - Consolidated Statements of Shareholders' Equity link:presentationLink link:calculationLink link:definitionLink 9952155 - Statement - Consolidated Statements of Cash Flows link:presentationLink link:calculationLink link:definitionLink 9952156 - Disclosure - Basis of Presentation link:presentationLink link:calculationLink link:definitionLink 9952157 - Disclosure - Recent Accounting Pronouncements link:presentationLink link:calculationLink link:definitionLink 9952158 - Disclosure - Net Income per Common Share link:presentationLink link:calculationLink link:definitionLink 9952159 - Disclosure - Goodwill and Other Intangible Assets link:presentationLink link:calculationLink link:definitionLink 9952160 - Disclosure - Fair Value Measurements link:presentationLink link:calculationLink link:definitionLink 9952161 - Disclosure - Marketable Securities link:presentationLink link:calculationLink link:definitionLink 9952162 - Disclosure - Inventory link:presentationLink link:calculationLink link:definitionLink 9952163 - Disclosure - Stock-Based Compensation link:presentationLink link:calculationLink link:definitionLink 9952164 - Disclosure - Accumulated Other Comprehensive Income (Loss) link:presentationLink link:calculationLink link:definitionLink 9952165 - Disclosure - Income Taxes link:presentationLink link:calculationLink link:definitionLink 9952166 - Disclosure - Segment Reporting link:presentationLink link:calculationLink link:definitionLink 9952167 - Disclosure - Subsequent Event link:presentationLink link:calculationLink link:definitionLink 9955511 - Disclosure - Net Income per Common Share (Tables) link:presentationLink link:calculationLink link:definitionLink 9955512 - Disclosure - Goodwill and Other Intangible Assets (Tables) link:presentationLink link:calculationLink link:definitionLink 9955513 - Disclosure - Fair Value Measurements (Tables) link:presentationLink link:calculationLink link:definitionLink 9955514 - Disclosure - Marketable Securities (Tables) link:presentationLink link:calculationLink link:definitionLink 9955515 - Disclosure - Inventory (Tables) link:presentationLink link:calculationLink link:definitionLink 9955516 - Disclosure - Stock-Based Compensation (Tables) link:presentationLink link:calculationLink link:definitionLink 9955517 - Disclosure - Accumulated Other Comprehensive Income (Loss) (Tables) link:presentationLink link:calculationLink link:definitionLink 9955518 - Disclosure - Segment Reporting (Tables) link:presentationLink link:calculationLink link:definitionLink 9955519 - Disclosure - Net Income per Common Share - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 9955520 - Disclosure - Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 9955521 - Disclosure - Goodwill and Other Intangible Assets - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 9955522 - Disclosure - Goodwill and Other Intangible Assets - Schedule of Intangible Assets Other Than Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 9955523 - Disclosure - Goodwill and Other Intangible Assets - Schedule of Aggregated Amortization Expense (Details) link:presentationLink link:calculationLink link:definitionLink 9955524 - Disclosure - Fair Value Measurements (Details) link:presentationLink link:calculationLink link:definitionLink 9955525 - Disclosure - Marketable Securities - Schedule of Short-Term and Long-Term Marketable Securities (Details) link:presentationLink link:calculationLink link:definitionLink 9955526 - Disclosure - Marketable Securities - Schedule of Available-For-Sale Debt Securities by Contractual Maturity (Details) link:presentationLink link:calculationLink link:definitionLink 9955527 - Disclosure - Inventory (Details) link:presentationLink link:calculationLink link:definitionLink 9955528 - Disclosure - Stock-Based Compensation - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 9955529 - Disclosure - Stock-Based Compensation - Option Activity (Details) link:presentationLink link:calculationLink link:definitionLink 9955530 - Disclosure - Stock-Based Compensation - Weighted Average Assumptions (Details) link:presentationLink link:calculationLink link:definitionLink 9955531 - Disclosure - Stock-Based Compensation - Stock Activity (Details) link:presentationLink link:calculationLink link:definitionLink 9955532 - Disclosure - Accumulated Other Comprehensive Income (Loss) (Details) link:presentationLink link:calculationLink link:definitionLink 9955533 - Disclosure - Income Taxes (Details) link:presentationLink link:calculationLink link:definitionLink 9955534 - Disclosure - Segment Reporting - Schedule of Reportable Segments (Details) link:presentationLink link:calculationLink link:definitionLink 9955535 - Disclosure - Segment Reporting - Schedule of Long-Lived Assets by Geographic Areas (Details) link:presentationLink link:calculationLink link:definitionLink 9955536 - Disclosure - Segment Reporting - Schedule of Expenditures For Additions To Long-Lived Assets (Details) link:presentationLink link:calculationLink link:definitionLink 9955537 - Disclosure - Segment Reporting - Schedule of Depreciation and Amortization (Details) link:presentationLink link:calculationLink link:definitionLink 9955538 - Disclosure - Segment Reporting - Schedule of Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 prlb-20250930_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT EX-101.DEF 8 prlb-20250930_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT EX-101.LAB 9 prlb-20250930_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Accumulated Amortization Finite-Lived Intangible Assets, Accumulated Amortization Recent Accounting Pronouncements Significant Accounting Policies [Text Block] Statistical Measurement [Domain] Statistical Measurement [Domain] Schedule of Short-Term and Long-Term Marketable Securities Debt Securities, Available-for-Sale [Table Text Block] Software platform Software Platform [Member] Information pertaining to software platform. Schedule of Nonvested Performance-Based Units Activity Schedule of Nonvested Performance-Based Units Activity [Table Text Block] Award Timing Predetermined Award Timing Predetermined [Flag] Asset Class [Axis] Asset Class [Axis] Entity File Number Entity File Number Additional Paid-In Capital Additional Paid-in Capital [Member] Performance change (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Performance Change, Weighted Average Grant Date Fair Value Represents the weighted average grant date fair value per share in connection to a performance change related to equity instruments other than options. Tabular List, Table Tabular List [Table Text Block] Intangible Asset, Acquired, Finite-Lived [Line Items] Intangible Asset, Acquired, Finite-Lived [Line Items] Accounts payable Increase (Decrease) in Accounts Payable Unrealized Losses Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax Trading Arrangements, by Individual Trading Arrangements, by Individual [Table] Basic (in dollars per share) Earnings Per Share, Basic Adjustment to Compensation: Adjustment to Compensation [Axis] Named Executive Officers, Footnote Named Executive Officers, Footnote [Text Block] Total inventory Inventory, Gross Schedule of Segment Reporting Information, by Segment Schedule of Segment Reporting Information, by Segment [Table Text Block] Inventory Disclosure [Abstract] Adjustment to Compensation, Amount Adjustment to Compensation Amount Stock-based compensation expense Share-Based Payment Arrangement, Noncash Expense 3D Hubs, Inc. (Hubs) 3D Hubs, Inc. (Hubs) [Member] Stock Options Share-Based Payment Arrangement, Option [Member] Impairments related to exit and closure of facilities Disposal Group, Not Discontinued Operation, Loss (Gain) on Write-down Award Timing MNPI Disclosure Award Timing MNPI Disclosure [Text Block] Proceeds from sales of property, equipment and other capital assets Proceeds from Sale of Productive Assets Total shareholders' equity Beginning balance Ending balance Equity, Attributable to Parent Other comprehensive income (loss) before reclassifications Other comprehensive income before reclassifications OCI, before Reclassifications, Net of Tax, Attributable to Parent Debt Securities, Available-for-Sale [Table] Debt Securities, Available-for-Sale [Table] Measurement Frequency [Axis] Measurement Frequency [Axis] Other comprehensive income Other Comprehensive Income (Loss), Net of Tax [Abstract] Insider Trading Policies and Procedures [Line Items] Stock-based compensation expense Share-Based Payment Arrangement, Expense Common stock, authorized (in shares) Common Stock, Shares Authorized Goodwill and Intangible Assets Disclosure [Abstract] Current assets Assets, Current [Abstract] Forfeited (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period Total liabilities and shareholders' equity Liabilities and Equity Fair Value, Recurring Fair Value, Recurring [Member] Stock Options Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward] Cash and cash equivalents, beginning of period Cash and cash equivalents, end of period Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Including Discontinued Operation Liabilities and shareholders' equity Liabilities and Equity [Abstract] Cover [Abstract] Cover [Abstract] Amounts reclassified from accumulated other comprehensive loss Amounts reclassified from accumulated other comprehensive loss Reclassification from AOCI, Current Period, Net of Tax, Attributable to Parent Cash and cash equivalents Cash and Cash Equivalents, Fair Value Disclosure Maximum Maximum [Member] Options exercisable, weighted-average exercise price (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price Useful Life (in years) Finite-Lived Intangible Asset, Useful Life Total expenditures for additions to long-lived assets Segment, Expenditure, Addition to Long-Lived Assets Accounting Policies [Abstract] Accounting Policies [Abstract] Net Finite-Lived Intangible Assets, Net Non-PEO NEO Average Total Compensation Amount Non-PEO NEO Average Total Compensation Amount Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table] Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table] Schedule of Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block] Adjustment to Non-PEO NEO Compensation Footnote Adjustment to Non-PEO NEO Compensation Footnote [Text Block] Pay vs Performance Disclosure [Line Items] U.S. government agency securities US Government Agencies Debt Securities [Member] Forgone Recovery due to Disqualification of Tax Benefits, Amount Forgone Recovery due to Disqualification of Tax Benefits, Amount Non-Rule 10b5-1 Arrangement Terminated Non-Rule 10b5-1 Arrangement Terminated [Flag] Income before income taxes Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Entity Shell Company Entity Shell Company Other long-term liabilities Other Liabilities, Noncurrent Statement of Stockholders' Equity [Abstract] Statement of Stockholders' Equity [Abstract] United States United States United States Segment [Member] Operating segment for United States. Statement of Cash Flows [Abstract] Statement of Cash Flows [Abstract] Other intangible assets, net Other Intangible Assets, Net Company Selected Measure Amount Company Selected Measure Amount Award Timing MNPI Considered Award Timing MNPI Considered [Flag] Comprehensive income Comprehensive income Comprehensive Income (Loss), Net of Tax, Attributable to Parent Expired (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price Name Measure Name Due in one year or less Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One Current operating lease liabilities Operating Lease, Liability, Current Proceeds from call redemptions and maturities of marketable securities Proceeds from Maturities, Prepayments and Calls of Debt Securities, Available-for-Sale Long-term deferred tax liabilities Deferred Income Tax Liabilities, Net Document Fiscal Period Focus Document Fiscal Period Focus Award Timing Method Award Timing Method [Text Block] Award Type [Axis] Award Type [Axis] Foreign currency translation adjustments Accumulated Foreign Currency Adjustment Attributable to Parent [Member] Available-for-Sale Securities, Debt Maturities [Abstract] Available-for-Sale Securities, Debt Maturities [Abstract] Schedule of Comprehensive Income (Loss) Comprehensive Income (Loss) [Table Text Block] Total assets Assets 2026 Finite-Lived Intangible Asset, Expected Amortization, Year One Trading Symbol Trading Symbol Restrictions lapsed (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 Geographical [Domain] Geographical [Domain] Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture Accrued liabilities and other Accrued Liabilities and Other Liabilities Long-Term Incentive Plan 2022 Long-Term Incentive Plan 2022 [Member] Long-Term Incentive Plan 2022 Entity Address, City or Town Entity Address, City or Town Operating activities Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract] Segment expenses Segment Reporting, Other Segment Item, Amount Inventory Inventory Disclosure [Text Block] Non-PEO NEO Average Compensation Actually Paid Amount Non-PEO NEO Average Compensation Actually Paid Amount Restricted Stock Units Restricted Stock Units (RSUs) [Member] Compensation Actually Paid vs. Other Measure Compensation Actually Paid vs. Other Measure [Text Block] Financial Assets: Assets, Fair Value Disclosure [Abstract] 2029 Finite-Lived Intangible Asset, Expected Amortization, Year Four Entity Emerging Growth Company Entity Emerging Growth Company Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Debt Securities, Available-for-Sale [Line Items] Debt Securities, Available-for-Sale [Line Items] Options outstanding, beginning balance (in shares) Options outstanding, ending balance (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member] Revenue Total Revenue Revenue from Contract with Customer, Including Assessed Tax Level 2 Fair Value, Inputs, Level 2 [Member] Insider Trading Policies and Procedures Not Adopted Insider Trading Policies and Procedures Not Adopted [Text Block] Business Combination [Domain] Business Combination [Domain] Common stock, outstanding (in shares) Beginning balance (in shares) Ending balance (in shares) Common Stock, Shares, Outstanding Plan Name [Axis] Plan Name [Axis] PEO PEO [Member] Schedule of Disaggregation of Revenue Disaggregation of Revenue [Table Text Block] Schedule of Available-For-Sale Debt Securities by Contractual Maturity Investments Classified by Contractual Maturity Date [Table Text Block] Corporate Unallocated Corporate Segment and Other Operating Segment [Member] United States UNITED STATES Changes in operating assets and liabilities: Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Increase (Decrease) in Operating Capital [Abstract] Common shares issued on exercise of options and other, net of shares withheld for tax obligations Stock Issued During Period, Value, Stock Options Exercised Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member] Schedule of Aggregated Amortization Expense Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block] Expected volatility Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate Retained Earnings Retained Earnings [Member] Prepaid expenses and other current assets Prepaid Expense and Other Assets, Current Entity Address, Postal Zip Code Entity Address, Postal Zip Code Restatement Determination Date Restatement Determination Date Share-Based Payment Arrangement [Abstract] Income Statement [Abstract] Income Statement [Abstract] Provision for income taxes Income Tax Expense (Benefit) Preferred stock, issued (in shares) Preferred Stock, Shares Issued Pension Adjustments Service Cost Pension Adjustments Service Cost [Member] Product and Service [Domain] Product and Service [Domain] Fair Value Hierarchy and NAV [Axis] Fair Value Hierarchy and NAV [Axis] Restatement does not require Recovery Restatement Does Not Require Recovery [Text Block] Organization, Consolidation and Presentation of Financial Statements [Abstract] Compensation Actually Paid vs. Company Selected Measure Compensation Actually Paid vs. Company Selected Measure [Text Block] City Area Code City Area Code Award Timing, How MNPI Considered Award Timing, How MNPI Considered [Text Block] Marketable Securities Investment [Text Block] All Trading Arrangements All Trading Arrangements [Member] Equity Awards Adjustments, Footnote Equity Awards Adjustments, Footnote [Text Block] Total Shareholder Return Vs Peer Group Total Shareholder Return Vs Peer Group [Text Block] Thereafter Finite-Lived Intangible Asset, Expected Amortization, After Year Four Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after 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). Beginning balance (in shares) Ending balance (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number Investing activities Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [Abstract] General and administrative General and Administrative Expense Pay vs Performance Disclosure Pay vs Performance Disclosure [Table] Net cash provided by operating activities Cash Provided by (Used in) Operating Activity, Including Discontinued Operation Goodwill, period increase (decrease) Goodwill, Period Increase (Decrease) Preferred stock, par value (in dollars per share) Preferred Stock, Par or Stated Value Per Share Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] ESPP ESPP [Member] ESPP [member U.S. treasury bonds US Treasury Bond Securities [Member] Goodwill Goodwill Equity Valuation Assumption Difference, Footnote Equity Valuation Assumption Difference, Footnote [Text Block] PEO Total Compensation Amount PEO Total Compensation Amount Money market mutual fund Money Market Funds [Member] Remaining 2025 Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year Equity Components [Axis] Equity Components [Axis] Non-Rule 10b5-1 Arrangement Adopted Non-Rule 10b5-1 Arrangement Adopted [Flag] Interest on finance lease obligations Accretion Expense Expired (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period Cost Debt Securities, Available-for-Sale, Amortized Cost Other Performance Measure, Amount Other Performance Measure, Amount Weighted- Average Exercise Price Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract] Entity Address, State or Province Entity Address, State or Province Principal repayments of finance lease obligations Finance Lease, Principal Payments Total current liabilities Liabilities, Current Individual: Individual [Axis] Additional paid-in capital Additional Paid in Capital, Common Stock Net cash used in investing activities Cash Provided by (Used in) Investing Activity, Including Discontinued Operation Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member] Costs related to exit and disposal activities Gain (Loss) on Disposition of Business Document Fiscal Year Focus Document Fiscal Year Focus Operating lease assets Operating Lease, Right-of-Use Asset Forgone Recovery, Explanation of Impracticability Forgone Recovery, Explanation of Impracticability [Text Block] Effective income tax rate (in percent) Effective Income Tax Rate Reconciliation, Percent Award performance period (in years) Share-Based Compensation Arrangement by Share-Based Payment Award, Award Performance Period Share-Based Compensation Arrangement by Share-Based Payment Award, Award Performance Period Entity Interactive Data Current Entity Interactive Data Current Software technology Computer Software, Intangible Asset [Member] Plan Name [Domain] Plan Name [Domain] Stock based award, unrecognized compensation expense, period for recognition (in years) Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition Exercised (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period CNC Machining CNC Machining (Firstcut) [Member] Represents the CNC Machining (Firstcut) product. Foreign currency losses Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax Segment Reporting Segment Reporting Disclosure [Text Block] Weighted Average Useful Life Remaining (in years) Finite-Lived Intangible Assets, Remaining Amortization Period Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Schedule of Expenditures for Additions to Long-lived Assets by Geographic Region Expenditures For Additions To Long-lived Assets By Geographic Region [Table Text Block] Expenditures For Additions To Long-lived Assets By Geographic Region Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table] Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table] Increase (Decrease) in Stockholders' Equity [Roll Forward] Increase (Decrease) in Stockholders' Equity [Roll Forward] Long-term marketable securities Marketable Securities, Noncurrent Compensation Actually Paid vs. Total Shareholder Return Compensation Actually Paid vs. Total Shareholder Return [Text Block] Fair Value, Recurring and Nonrecurring [Table] Fair Value, Recurring and Nonrecurring [Table] Amortization expense for intangible assets Amortization of Intangible Assets Depreciation and amortization Total depreciation and amortization Depreciation, Depletion and Amortization Other long-term assets Other Assets, Noncurrent Entity Central Index Key Entity Central Index Key PEO Name PEO Name Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member] Outstanding Aggregate Erroneous Compensation Amount Outstanding Aggregate Erroneous Compensation Amount Comprehensive Income (net of tax) Comprehensive Income (Loss), Net of Tax, Attributable to Parent [Abstract] Arrangement Duration Trading Arrangement Duration Schedule of Segment Reporting Information, by Segment [Table] Schedule of Segment Reporting Information, by Segment [Table] Segments [Axis] Segments [Axis] Prepaid expenses and other Increase (Decrease) in Prepaid Expense and Other Assets Exercise Price Award Exercise Price Entity Filer Category Entity Filer Category Local Phone Number Local Phone Number Additional 402(v) Disclosure Additional 402(v) Disclosure [Text Block] Federal statutory rate (in percent) Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent Europe Europe [Member] Other Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Other Item Stock-Based Compensation Share-Based Payment Arrangement [Text Block] Repurchases of common stock (in shares) Stock Repurchased and Retired During Period, Shares Assets Assets [Abstract] Underlying Security Market Price Change Underlying Security Market Price Change, Percent 2028 Finite-Lived Intangible Asset, Expected Amortization, Year Three Oleg Ryaboy [Member] Oleg Ryaboy 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 Fair Value Measurements Fair Value Disclosures [Text Block] Gross Finite-Lived Intangible Assets, Gross Shareholders' equity Equity, Attributable to Parent [Abstract] Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member] Entity Address, Address Line One Entity Address, Address Line One Effective income tax rate, increase during period (in percent) Effective Income Tax Rate, Continuing Operations, Increase (Decrease) During The Period The increase (decrease) during the period in percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations. Research and development Research and Development Expense Accumulated Other Comprehensive Loss AOCI Attributable to Parent [Member] Accrued liabilities and other Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities Allowance for credit loss, current Accounts Receivable, Allowance for Credit Loss, Current Michael R. Kenison, Trading Arrangement, Common Stock Related To Option Awards Granted [Member] Michael R. Kenison, Trading Arrangement, Common Stock Related To Option Awards Granted Long-term operating lease liabilities Operating Lease, Liability, Noncurrent Oleg Ryaboy, Trading Arrangement, Common Stock Related To Unvested Restricted Stock Units [Member] Oleg Ryaboy, Trading Arrangement, Common Stock Related To Unvested Restricted Stock Units Fair Value as of Grant Date Award Grant Date Fair Value Entity Registrant Name Entity Registrant Name Stock Price or TSR Estimation Method Stock Price or TSR Estimation Method [Text Block] Employee stock options and other (in shares) Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements Granted (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period Forfeited (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period Stock based award, unrecognized compensation expense Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount Regulated Operations [Abstract] Document Quarterly Report Document Quarterly Report Common shares issued on exercise of options and other, net of shares withheld for tax obligations Adjustments to Additional Paid in Capital, Stock Issued, Issuance Costs Total Assets, Fair Value Disclosure Changed Peer Group, Footnote Changed Peer Group, Footnote [Text Block] Adjustment To PEO Compensation, Footnote Adjustment To PEO Compensation, Footnote [Text Block] Oleg Ryaboy, Trading Arrangement, Common Stock Related To Option Awards [Member] Oleg Ryaboy, Trading Arrangement, Common Stock Related To Option Awards 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 Title Trading Arrangement, Individual Title Peer Group Total Shareholder Return Amount Peer Group Total Shareholder Return Amount Schedule of Intangible Assets Other Than Goodwill Schedule of Finite-Lived Intangible Assets [Table Text Block] Restatement Determination Date: Restatement Determination Date [Axis] Loss on impairment of equipment Impairment of Long-Lived Assets to be Disposed of Non-PEO NEO Non-PEO NEO [Member] Accumulated Other Comprehensive Income (Loss) [Table] Accumulated Other Comprehensive Income (Loss) [Table] Accumulated Other Comprehensive Income (Loss) [Line Items] Accumulated Other Comprehensive Income (Loss) [Line Items] Unrealized Gains Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax Name Trading Arrangement, Individual Name Award Type [Domain] Award Type [Domain] Other Revenue Other Products [Member] Represents other products. Equity Awards Adjustments Equity Awards Adjustments [Member] Pension Benefits Adjustments, Footnote Pension Benefits Adjustments, Footnote [Text Block] Compensation Amount Outstanding Recovery Compensation Amount Expected dividend yield Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate Recovery of Erroneously Awarded Compensation Disclosure [Line Items] Percentage of target, capable of being earned and vesting, lower limit Percentage Of Target Number, Capable Of Being Earned And Vesting, Lower Limit The lower limit percent of target number capable of being earned and vesting at the end of a three-year performance period depending on the company's performance in the final year of the performance period and the award recipient's continued employment. MNPI Disclosure Timed for Compensation Value MNPI Disclosure Timed for Compensation Value [Flag] Name Awards Close in Time to MNPI Disclosures, Individual Name Beginning balance (in dollars per share) Ending balance (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 Shares used to compute net income per share: Weighted Average Number of Shares Outstanding Reconciliation [Abstract] Aggregate Erroneous Compensation Not Yet Determined Aggregate Erroneous Compensation Not Yet Determined [Text Block] Statements of Operations: Revenues [Abstract] Stock-based compensation expense APIC, Share-Based Payment Arrangement, Increase for Cost Recognition Accumulated other comprehensive loss Accumulated Other Comprehensive Income (Loss), Net of Tax Offering period (in months) Employee Stock Purchase Plan, Offering Period The offering period during which employees may purchase stock through the Employee Stock Purchase Plan. Marketing and sales Selling and Marketing Expense Financial Instruments [Domain] Financial Instruments [Domain] Segments [Domain] Segments [Domain] Percentage of target, capable of being achieved during performance periods, lower Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Lower Limit Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Lower Limit Performance Stock Units Performance Shares [Member] Aggregate Pension Adjustments Service Cost Aggregate Pension Adjustments Service Cost [Member] Fair Value Hierarchy and NAV [Domain] Fair Value Hierarchy and NAV [Domain] Inventories Increase (Decrease) in Inventories Inventory Inventory, net of allowance Inventory, Net Finite-Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets by Major Class [Axis] Minimum Minimum [Member] Net unrealized gains on investments in securities AOCI, Accumulated Gain (Loss), Debt Securities, Available-for-Sale, Parent [Member] Company Selected Measure Name Company Selected Measure Name Purchases of marketable securities Payments to Acquire Debt Securities, Available-for-Sale Preferred stock, $0.001 par value, authorized 10,000,000 shares; issued and outstanding 0 shares as of each of September 30, 2025, and December 31, 2024 Preferred Stock, Value, Issued Aggregate Available Trading Arrangement, Securities Aggregate Available Amount U.S. municipal securities US States and Political Subdivisions Debt Securities [Member] Accounts payable Accounts Payable, Current Stock Appreciation Rights (SARs) Stock Appreciation Rights (SARs) [Member] All Executive Categories All Executive Categories [Member] Europe Europe Europe Segment [Member] Operating segment for Europe Common stock, $0.001 par value, authorized 150,000,000 shares; issued and outstanding 23,677,746 and 24,226,088 shares as of September 30, 2025, and December 31, 2024, respectively Common Stock, Value, Issued Finance lease assets Finance Lease, Right-of-Use Asset, after Accumulated Amortization Diluted (in shares) Diluted - weighted-average shares outstanding (in shares) Weighted Average Number of Shares Outstanding, Diluted Non-GAAP Measure Description Non-GAAP Measure Description [Text Block] Business Combination [Axis] Business Combination [Axis] Entity Small Business Entity Small Business Income Tax Disclosure [Abstract] Preferred stock, outstanding (in shares) Preferred Stock, Shares Outstanding Document Transition Report Document Transition Report Due after one year through five years Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, after Year One Through Five Underlying Securities Award Underlying Securities Amount Equity Component [Domain] Equity Component [Domain] Document Period End Date Document Period End Date Schedule of Long-Lived Assets by Geographic Areas Long-Lived Assets by Geographic Areas [Table Text Block] PEO Actually Paid Compensation Amount PEO Actually Paid Compensation Amount Employee Stock Purchase Plan Employee Stock Purchase Plan [Member] Information pertaining to the Employee Stock Purchase Plan. Net income per share: Earnings Per Share, Basic and Diluted EPS [Abstract] Earnings Per Share, Basic and Diluted EPS Income Taxes Income Tax Disclosure [Text Block] Awards Close in Time to MNPI Disclosures, Table Awards Close in Time to MNPI Disclosures [Table Text Block] Exit, Disposal and Goodwill impairment cost (benefit) Disposal Group, Not Discontinued Operation, Loss (Gain) on Write-down And Goodwill, Impairment Loss Disposal Group, Not Discontinued Operation, Loss (Gain) on Write-down And Goodwill, Impairment Loss Document Type Document Type Level 3 Fair Value, Inputs, Level 3 [Member] Net Income per Common Share Earnings Per Share [Text Block] Name Outstanding Recovery, Individual Name Product and Service [Axis] Product and Service [Axis] 3D Printing 3D Printing (Fineline) [Member] Represents the 3D Printing (Fineline) product. All Individuals All Individuals [Member] Fair Value Disclosures [Abstract] Accumulated Other Comprehensive Income (Loss) Disclosure of Reclassification Amount [Text Block] Purchases of property, equipment and other capital assets Payments to Acquire Property, Plant, and Equipment Name Forgone Recovery, Individual Name Stock-based award, term (in years) Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period Total current assets Assets, Current Statistical Measurement [Axis] Statistical Measurement [Axis] Intangible assets acquired Finite-Lived Intangible Assets Acquired Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member] Proceeds from issuance of common stock from equity plans Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised Aggregate Erroneous Compensation Amount Aggregate Erroneous Compensation Amount Purchase price of common stock (in percent) Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent Purchases of shares withheld for tax obligations Payment, Tax Withholding, Share-Based Payment Arrangement Sheet Metal Sheet Metal [Member] Represents the information pertaining to sheet metal. Peer Group Issuers, Footnote Peer Group Issuers, Footnote [Text Block] Inducement Awards Inducement Awards [Member] Inducement Awards Short-term marketable securities Marketable Securities, Current Erroneous Compensation Analysis Erroneous Compensation Analysis [Text Block] Net current-period other comprehensive income (loss) Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent Current liabilities Liabilities, Current [Abstract] Geographical [Axis] Geographical [Axis] Total operating expenses Operating Expenses Rule 10b5-1 Arrangement Terminated Rule 10b5-1 Arrangement Terminated [Flag] Level 1 Fair Value, Inputs, Level 1 [Member] Diluted (in dollars per share) Earnings Per Share, Diluted Erroneously Awarded Compensation Recovery Erroneously Awarded Compensation Recovery [Table] Accounts receivable, net of allowance for doubtful accounts of $2,378 and $1,975 as of September 30, 2025, and December 31, 2024, respectively Accounts Receivable, after Allowance for Credit Loss, Current Title of 12(b) Security Title of 12(b) Security Michael R. Kenison, Trading Arrangement, Common Stock Related To Restricted Stock Units Granted [Member] Trading Arrangement, Restricted stock Units Granted AOCI Attributable to Parent, Net of Tax [Roll Forward] AOCI Attributable to Parent, Net of Tax [Roll Forward] Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions [Table Text Block] Tabular disclosure of the valuation assumptions of share-based payment awards other than stock options. Net income per share: Earnings Per Share [Abstract] Non-compete agreement Noncompete Agreements [Member] Investments, Debt and Equity Securities [Abstract] Gross profit Gross Profit Repurchases of common stock Stock Repurchased and Retired During Period, Value Performance change (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Performance Change Represents the amount of shares related to a performance change related to equity instruments other than option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan). Exercised (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price 2027 Finite-Lived Intangible Asset, Expected Amortization, Year Two Award Timing Disclosures [Line Items] Schedule of Inventory Schedule of Inventory, Current [Table Text Block] Granted (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price Measurement Frequency [Domain] Measurement Frequency [Domain] Accrued compensation Employee-related Liabilities, Current Net unrealized gains on investments in securities OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax Net income Net income Net income Net Income (Loss) Attributable to Parent Expiration Date Trading Arrangement Expiration Date Percentage of target, capable of being earned and vesting, upper limit Percentage Of Target Number, Capable Of Being Earned And Vesting, Upper Limit The upper limit percent of target number capable of being earned and vesting at the end of a three-year performance period depending on the company's performance in the final year of the performance period and the award recipient's continued employment. Stock-based award, vesting period (in years) Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period Property and equipment, net Total Long-lived Assets Property, Plant and Equipment, Net Segment Reporting Information [Line Items] Segment Reporting Information [Line Items] Preferred stock, authorized (in shares) Preferred Stock, Shares Authorized Repurchases of common stock Payments for Repurchase of Common Stock Adoption Date Trading Arrangement Adoption Date Compensation Actually Paid vs. Net Income Compensation Actually Paid vs. Net Income [Text Block] Accounts receivable Increase (Decrease) in Accounts Receivable Entity Current Reporting Status Entity Current Reporting Status Awards Close in Time to MNPI Disclosures Awards Close in Time to MNPI Disclosures [Table] Income from operations Operating Income (Loss) Retained earnings Retained Earnings (Accumulated Deficit) Foreign currency translation adjustments Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent [Abstract] Loss (gain) on disposal of property and equipment Gain (Loss) on Disposition of Property Plant Equipment Financial Instrument [Axis] Financial Instrument [Axis] Statement of Financial Position [Abstract] Statement of Financial Position [Abstract] Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member] Executive Category: Executive Category [Axis] Number of performance periods Share-Based Compensation Arrangement by Share-Based Payment Award, Number Of Performance Period Share-Based Compensation Arrangement by Share-Based Payment Award, Number Of Performance Period Current finance lease liabilities Finance Lease, Liability, Current Allowance for obsolescence Inventory Valuation Reserves Current Fiscal Year End Date Current Fiscal Year End Date Expected life (years) Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term Finite-Lived Intangible Assets, Major Class Name [Domain] Finite-Lived Intangible Assets, Major Class Name [Domain] Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member] Weighted- Average Grant Date Fair Value Per Share Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract] Statement [Table] Statement [Table] Other income, net Other Nonoperating Income (Expense) Inducement Awards, Performance Condition Inducement Awards, Performance Condition [Member] Inducement Awards, Performance Condition Effect of exchange rate changes on cash and cash equivalents Effect of Exchange Rate on Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Including Discontinued Operation Deferred taxes Deferred Income Tax Expense (Benefit) Adjustments to reconcile net income to net cash provided by operating activities: Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [Abstract] Financing activities Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [Abstract] Stock-based award, weighted-average grant date fair value (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value Cash Cash [Member] Equity Awards Adjustments, Excluding Value Reported in Compensation Table Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member] Injection Molding Injection Molding (Protomold) [Member] Represents the Injection Molding (Protomold) product. Oleg Ryaboy, Trading Arrangement, Common Stock Related To Vested Restricted Stock Units [Member] Oleg Ryaboy, Trading Arrangement, Common Stock Related To Vested Restricted Stock Units Long-term finance lease liabilities Finance Lease, Liability, Noncurrent Basis of Presentation Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block] Unrecognized tax benefits Unrecognized Tax Benefits Anti-dilutive options excluded from calculation of diluted weighted average shares outstanding (in shares) Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount All Adjustments to Compensation All Adjustments to Compensation [Member] Amendment Flag Amendment Flag Debt Securities, Available-for-Sale, Fair Value, Fiscal Year Maturity [Abstract] Debt Securities, Available-for-Sale, Fair Value, Fiscal Year Maturity [Abstract] Percentage of target, capable of being achieved during performance periods, upper limit Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Upper Limit Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Upper Limit Termination Date Trading Arrangement Termination Date Net cash used in financing activities Cash Provided by (Used in) Financing Activity, Including Discontinued Operation Insider Trading Policies and Procedures Adopted Insider Trading Policies and Procedures Adopted [Flag] Measure: Measure [Axis] Michael R. Kenison [Member] Michael R. Kenison Schedule of Share-Based Payment Arrangement, Option, Activity Share-Based Payment Arrangement, Option, Activity [Table Text Block] Schedule of Fair Value, Assets Measured on Recurring Basis Fair Value, Assets Measured on Recurring Basis [Table Text Block] Basic (in shares) Basic - weighted-average shares outstanding (in shares) Weighted Average Number of Shares Outstanding, Basic Cost of revenue Cost of Product and Service Sold Schedule of Computation Of Basic and Diluted Net Income Per Share Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Option exercisable (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number Subsequent Events [Abstract] Segment Reporting [Abstract] Net unrealized gains on investments in securities OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax [Abstract] Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract] Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract] Pay vs Performance Disclosure, Table Pay vs Performance [Table Text Block] Forgone Recovery due to Violation of Home Country Law, Amount Forgone Recovery due to Violation of Home Country Law, Amount Risk-free interest rate Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate Entity Tax Identification Number Entity Tax Identification Number Inducement Awards, Market Conditions Inducement Awards, Market Condition [Member] Inducement Awards, Market Condition Options outstanding, beginning balance (in dollars per share) Options outstanding, ending balance (in dollars per share) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price Forgone Recovery due to Expense of Enforcement, Amount Forgone Recovery due to Expense of Enforcement, Amount Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items] Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items] Common stock, par value (in dollars per share) Common Stock, Par or Stated Value Per Share Common stock, issued (in shares) Common Stock, Shares, Issued Income taxes receivable Income Taxes Receivable, Current Effect of dilutive securities: Dilutive Securities, Effect on Basic Earnings Per Share [Abstract] Schedule of Depreciation and Amortization by Geographic Region Depreciation And Amortization By Geographic Region [Table Text Block] Depreciation And Amortization By Geographic Region Granted (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross Goodwill and Other Intangible Assets Goodwill and Intangible Assets Disclosure [Text Block] Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block] Trading Arrangement: Trading Arrangement [Axis] Income taxes Increase (Decrease) in Income Taxes Payable Total Shareholder Return Amount Total Shareholder Return Amount Subsequent Event Subsequent Events [Text Block] Foreign currency translation adjustment Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax Insider Trading Arrangements [Line Items] Security Exchange Name Security Exchange Name Forfeited (in dollars per share) Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price Performance Stock Units Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding [Roll Forward] Total liabilities Liabilities Discount from market price (in percent) Share-Based Compensation Arrangement by Share-Based Payment Award, Discount from Market Price, Offering Date Pension Adjustments Prior Service Cost Pension Adjustments Prior Service Cost [Member] Operating expenses Operating Expenses [Abstract] Material Terms of Trading Arrangement Material Terms of Trading Arrangement [Text Block] Asset Class [Domain] Asset Class [Domain] Statement [Line Items] Statement [Line Items] Rule 10b5-1 Arrangement Adopted Rule 10b5-1 Arrangement Adopted [Flag] Cash and cash equivalents Cash and Cash Equivalent Number of shares available for issuance pursuant to awards (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized Common Stock Common Stock [Member] Restrictions lapsed (in shares) Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period Marketable securities Fair Value Total marketable securities Debt Securities, Available-for-Sale Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Non-NEOs Non-NEOs [Member] Corporate debt securities Corporate Debt Securities [Member] Net increase in cash and cash equivalents Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Including Exchange Rate Effect and Discontinued Operation EX-101.PRE 10 prlb-20250930_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT XML 12 R1.htm IDEA: XBRL DOCUMENT v3.25.3
Cover - shares
9 Months Ended
Sep. 30, 2025
Oct. 28, 2025
Cover [Abstract]    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Sep. 30, 2025  
Document Transition Report false  
Entity File Number 001-35435  
Entity Registrant Name Proto Labs, Inc.  
Entity Incorporation, State or Country Code MN  
Entity Tax Identification Number 41-1939628  
Entity Address, Address Line One 5540 Pioneer Creek Drive  
Entity Address, City or Town Maple Plain  
Entity Address, State or Province MN  
Entity Address, Postal Zip Code 55359  
City Area Code 763  
Local Phone Number 479-3680  
Title of 12(b) Security Common Stock, Par Value $0.001 Per Share  
Trading Symbol PRLB  
Security Exchange Name NYSE  
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   23,678,745
Entity Central Index Key 0001443669  
Current Fiscal Year End Date --12-31  
Document Fiscal Year Focus 2025  
Document Fiscal Period Focus Q3  
Amendment Flag false  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.25.3
Consolidated Balance Sheets - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Current assets    
Cash and cash equivalents $ 104,422 $ 89,071
Short-term marketable securities 14,817 14,019
Accounts receivable, net of allowance for doubtful accounts of $2,378 and $1,975 as of September 30, 2025, and December 31, 2024, respectively 77,790 66,504
Inventory 14,073 12,305
Income taxes receivable 4,681 2,906
Prepaid expenses and other current assets 10,009 10,049
Total current assets 225,792 194,854
Property and equipment, net 211,325 227,263
Goodwill 273,991 273,991
Other intangible assets, net 19,539 21,422
Long-term marketable securities 19,149 17,773
Operating lease assets 2,015 2,993
Finance lease assets 491 692
Other long-term assets 4,553 4,524
Total assets 756,855 743,512
Current liabilities    
Accounts payable 17,388 15,504
Accrued compensation 23,268 16,550
Accrued liabilities and other 27,831 19,621
Current operating lease liabilities 890 1,287
Current finance lease liabilities 365 309
Total current liabilities 69,742 53,271
Long-term operating lease liabilities 1,188 1,633
Long-term finance lease liabilities 0 287
Long-term deferred tax liabilities 16,038 13,565
Other long-term liabilities 5,168 4,605
Total liabilities 92,136 73,361
Shareholders' equity    
Preferred stock, $0.001 par value, authorized 10,000,000 shares; issued and outstanding 0 shares as of each of September 30, 2025, and December 31, 2024 0 0
Common stock, $0.001 par value, authorized 150,000,000 shares; issued and outstanding 23,677,746 and 24,226,088 shares as of September 30, 2025, and December 31, 2024, respectively 23 24
Additional paid-in capital 450,852 453,705
Retained earnings 238,568 244,406
Accumulated other comprehensive loss (24,724) (27,984)
Total shareholders' equity 664,719 670,151
Total liabilities and shareholders' equity $ 756,855 $ 743,512
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.25.3
Consolidated Balance Sheets (Parenthetical) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Statement of Financial Position [Abstract]    
Allowance for credit loss, current $ 2,378 $ 1,975
Preferred stock, par value (in dollars per share) $ 0.001 $ 0.001
Preferred stock, authorized (in shares) 10,000,000 10,000,000
Preferred stock, issued (in shares) 0 0
Preferred stock, outstanding (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.001 $ 0.001
Common stock, authorized (in shares) 150,000,000 150,000,000
Common stock, issued (in shares) 23,677,746 24,226,088
Common stock, outstanding (in shares) 23,677,746 24,226,088
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.25.3
Consolidated Statements of Comprehensive Income - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Statements of Operations:        
Revenue $ 135,366 $ 125,619 $ 396,634 $ 379,140
Cost of revenue 74,073 68,389 219,869 207,897
Gross profit 61,293 57,230 176,765 171,243
Operating expenses        
Marketing and sales 24,574 22,619 73,054 69,070
Research and development 10,705 9,772 32,487 31,600
General and administrative 17,163 16,259 52,763 49,167
Costs related to exit and disposal activities 41 0 151 0
Total operating expenses 52,483 48,650 158,455 149,837
Income from operations 8,810 8,580 18,310 21,406
Other income, net 1,441 1,288 4,600 3,548
Income before income taxes 10,251 9,868 22,910 24,954
Provision for income taxes 3,035 2,679 7,668 7,957
Net income $ 7,216 $ 7,189 $ 15,242 $ 16,997
Net income per share:        
Basic (in dollars per share) $ 0.30 $ 0.29 $ 0.64 $ 0.67
Diluted (in dollars per share) $ 0.30 $ 0.29 $ 0.63 $ 0.67
Shares used to compute net income per share:        
Basic (in shares) 23,889,157 24,980,536 23,974,054 25,304,985
Diluted (in shares) 24,191,039 25,022,485 24,249,669 25,382,280
Comprehensive Income (net of tax)        
Comprehensive income $ 7,055 $ 9,769 $ 18,502 $ 18,158
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.25.3
Consolidated Statements of Shareholders' Equity - USD ($)
$ in Thousands
Total
Common Stock
Additional Paid-In Capital
Retained Earnings
Accumulated Other Comprehensive Loss
Beginning balance (in shares) at Dec. 31, 2023   25,721,957      
Beginning balance at Dec. 31, 2023 $ 695,295 $ 26 $ 466,884 $ 256,398 $ (28,013)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   29,974      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (533)   (533)    
Stock-based compensation expense 4,276   4,276    
Repurchases of common stock (in shares)   (435,861)      
Repurchases of common stock (16,164)   (7,912) (8,252)  
Net income 5,268     5,268  
Other comprehensive income          
Foreign currency translation adjustment (925)       (925)
Net unrealized gains on investments in securities 93       93
Comprehensive income 4,436        
Ending balance (in shares) at Mar. 31, 2024   25,316,070      
Ending balance at Mar. 31, 2024 687,310 $ 26 462,715 253,414 (28,845)
Beginning balance (in shares) at Dec. 31, 2023   25,721,957      
Beginning balance at Dec. 31, 2023 695,295 $ 26 466,884 256,398 (28,013)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income 16,997        
Other comprehensive income          
Comprehensive income 18,158        
Ending balance (in shares) at Sep. 30, 2024   24,510,076      
Ending balance at Sep. 30, 2024 679,993 $ 25 454,025 252,795 (26,852)
Beginning balance (in shares) at Mar. 31, 2024   25,316,070      
Beginning balance at Mar. 31, 2024 687,310 $ 26 462,715 253,414 (28,845)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   176,780      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 707   707    
Stock-based compensation expense 4,244   4,244    
Repurchases of common stock (in shares)   (345,234)      
Repurchases of common stock (10,978)   (6,266) (4,712)  
Net income 4,540     4,540  
Other comprehensive income          
Foreign currency translation adjustment (678)       (678)
Net unrealized gains on investments in securities 91       91
Comprehensive income 3,953        
Ending balance (in shares) at Jun. 30, 2024   25,147,616      
Ending balance at Jun. 30, 2024 685,236 $ 26 461,400 253,242 (29,432)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Stock-based compensation expense 4,196   4,196    
Repurchases of common stock (in shares)   (637,540)      
Repurchases of common stock (19,208) $ (1) (11,571) (7,636)  
Net income 7,189     7,189  
Other comprehensive income          
Foreign currency translation adjustment 2,430       2,430
Net unrealized gains on investments in securities 150       150
Comprehensive income 9,769        
Ending balance (in shares) at Sep. 30, 2024   24,510,076      
Ending balance at Sep. 30, 2024 $ 679,993 $ 25 454,025 252,795 (26,852)
Beginning balance (in shares) at Dec. 31, 2024 24,226,088 24,226,088      
Beginning balance at Dec. 31, 2024 $ 670,151 $ 24 453,705 244,406 (27,984)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   58,291      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (961)   (961)    
Stock-based compensation expense 3,992   3,992    
Repurchases of common stock (in shares)   (513,739)      
Repurchases of common stock (21,073) $ (1) (9,621) (11,451)  
Net income 3,599     3,599  
Other comprehensive income          
Foreign currency translation adjustment 1,003       1,003
Net unrealized gains on investments in securities 90       90
Comprehensive income 4,692        
Ending balance (in shares) at Mar. 31, 2025   23,770,640      
Ending balance at Mar. 31, 2025 $ 656,801 $ 23 447,115 236,554 (26,891)
Beginning balance (in shares) at Dec. 31, 2024 24,226,088 24,226,088      
Beginning balance at Dec. 31, 2024 $ 670,151 $ 24 453,705 244,406 (27,984)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income 15,242        
Other comprehensive income          
Comprehensive income $ 18,502        
Ending balance (in shares) at Sep. 30, 2025 23,677,746 23,677,746      
Ending balance at Sep. 30, 2025 $ 664,719 $ 23 450,852 238,568 (24,724)
Beginning balance (in shares) at Mar. 31, 2025   23,770,640      
Beginning balance at Mar. 31, 2025 656,801 $ 23 447,115 236,554 (26,891)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   179,393      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (58)   (58)    
Stock-based compensation expense 4,259   4,259    
Repurchases of common stock (in shares)   (75,432)      
Repurchases of common stock (3,050)   (1,413) (1,637)  
Net income 4,427     4,427  
Other comprehensive income          
Foreign currency translation adjustment 2,300       2,300
Net unrealized gains on investments in securities 28       28
Comprehensive income 6,755        
Ending balance (in shares) at Jun. 30, 2025   23,874,601      
Ending balance at Jun. 30, 2025 664,707 $ 23 449,903 239,344 (24,563)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   61,599      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 2,112   2,112    
Stock-based compensation expense 3,677   3,677    
Repurchases of common stock (in shares)   (258,454)      
Repurchases of common stock (12,832)   (4,840) (7,992)  
Net income 7,216     7,216  
Other comprehensive income          
Foreign currency translation adjustment (227)       (227)
Net unrealized gains on investments in securities 66       66
Comprehensive income $ 7,055        
Ending balance (in shares) at Sep. 30, 2025 23,677,746 23,677,746      
Ending balance at Sep. 30, 2025 $ 664,719 $ 23 $ 450,852 $ 238,568 $ (24,724)
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.25.3
Consolidated Statements of Cash Flows - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Operating activities    
Net income $ 15,242 $ 16,997
Adjustments to reconcile net income to net cash provided by operating activities:    
Depreciation and amortization 25,693 26,984
Stock-based compensation expense 11,928 12,716
Deferred taxes 2,355 (6,140)
Interest on finance lease obligations 16 26
Loss on impairment of equipment 0 256
Impairments related to exit and closure of facilities 448 0
Loss (gain) on disposal of property and equipment 16 (24)
Other (179) 103
Changes in operating assets and liabilities:    
Accounts receivable (11,265) 4,581
Inventories (2,017) 1,321
Prepaid expenses and other 366 (312)
Income taxes (1,709) 2,583
Accounts payable 1,252 (2,709)
Accrued liabilities and other 15,907 4,153
Net cash provided by operating activities 58,053 60,535
Investing activities    
Purchases of property, equipment and other capital assets (6,792) (8,339)
Proceeds from sales of property, equipment and other capital assets 811 34
Purchases of marketable securities (13,553) (18,087)
Proceeds from call redemptions and maturities of marketable securities 11,730 15,709
Net cash used in investing activities (7,804) (10,683)
Financing activities    
Proceeds from issuance of common stock from equity plans 4,195 2,094
Purchases of shares withheld for tax obligations (3,119) (1,920)
Repurchases of common stock (36,732) (45,958)
Principal repayments of finance lease obligations (231) (220)
Net cash used in financing activities (35,887) (46,004)
Effect of exchange rate changes on cash and cash equivalents 989 235
Net increase in cash and cash equivalents 15,351 4,083
Cash and cash equivalents, beginning of period 89,071 83,790
Cash and cash equivalents, end of period $ 104,422 $ 87,873
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.25.3
Basis of Presentation
9 Months Ended
Sep. 30, 2025
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Basis of Presentation Basis of Presentation
The unaudited interim Consolidated Financial Statements of Proto Labs, Inc. (Protolabs, the Company, we, us or our) have been prepared in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP) for interim financial information and with the instructions to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, the accompanying financial statements reflect all adjustments necessary for a fair presentation of the Company’s statements of financial position, results of operations and cash flows for the periods presented. Except as otherwise disclosed herein, these adjustments consist of normal, recurring items. Operating results for interim periods are not necessarily indicative of results that may be expected for the fiscal year as a whole.
The preparation of the financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues, expenses, and the related disclosures at the date of the financial statements and during the reporting period. Actual results could materially differ from these estimates. For further information, refer to the audited Consolidated Financial Statements and Notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, as filed with the Securities and Exchange Commission (SEC) on February 21, 2025.
The accompanying Consolidated Balance Sheet as of December 31, 2024 was derived from the audited Consolidated Financial Statements but does not include all disclosures required by U.S. GAAP for a full set of financial statements. This Quarterly Report on Form 10-Q should be read in conjunction with the Company’s Consolidated Financial Statements and Notes included in the Company's Annual Report on Form 10-K filed on February 21, 2025 as referenced above.
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.25.3
Recent Accounting Pronouncements
9 Months Ended
Sep. 30, 2025
Accounting Policies [Abstract]  
Recent Accounting Pronouncements Recent Accounting Pronouncements
The Company did not recently adopt any accounting pronouncements that had a material impact on the Company's Consolidated Financial Statements.
In December 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures, that enhances the transparency of income tax disclosures by expanding annual disclosure requirements related to the rate reconciliation and income taxes paid. The Company is required to adopt this guidance for its annual year ending December 31, 2025. Early adoption is permitted. The Company is currently evaluating the impact of this guidance on its disclosures and believes the adoption will not have a material impact on its consolidated financial statements.
In November 2024, the FASB issued ASU No. 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses, which is intended to improve disclosures about a public business entity's expenses, primarily through additional disaggregation of income statement expenses. ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods beginning after December 15, 2027, with early adoption permitted. The Company is currently evaluating ASU 2024-03 to determine the impact on the Company's disclosures.
In July 2025, the FASB issued ASU No. 2025-05, Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivables and Contract Assets, which introduces a practical expedient for the application of the current expected credit loss model to current accounts receivables and contract assets. ASU 2025-05 is effective for annual and interim periods beginning after December 15, 2025, with early adoption permitted. The Company is currently evaluating ASU 2025-05 to determine the impact on the Company's financial statements and disclosures.
In September 2025, the FASB issued ASU No. 2025-06, Intangibles - Goodwill and Other - Internal-Use Software (Subtopic 350-40): Targeted Improvements to the Accounting for Internal-Use Software, which updates the cost capitalization threshold for internal-use software development costs by removing all references to software project development stages and provides new guidance on how to evaluate whether the probable-to-complete recognition threshold has been met. ASU 2025-06 is effective for annual and interim periods beginning after December 15, 2027, with early adoption permitted. The Company is currently evaluating ASU 2025-06 to determine the impact on the Company's financial statements and disclosures.
XML 20 R9.htm IDEA: XBRL DOCUMENT v3.25.3
Net Income per Common Share
9 Months Ended
Sep. 30, 2025
Earnings Per Share [Abstract]  
Net Income per Common Share Net Income per Common Share
Basic net income per share is computed based on the weighted-average number of common shares outstanding. Diluted net income per share is computed based on the weighted-average number of common shares outstanding, increased by the number of additional shares that would have been outstanding had potentially dilutive common shares been issued and reduced by the number of shares the Company could have repurchased from the proceeds from issuance of the potentially dilutive shares. Potentially dilutive shares of common stock include stock options and other stock-based awards granted under stock-based compensation plans and shares committed to be purchased under the employee stock purchase plan. Performance stock units are excluded from the calculation of dilutive potential common shares until the performance conditions have been satisfied. Anti-dilutive options were excluded from the calculation of diluted weighted average shares outstanding and were 214,801 and 466,127 for the three months ended September 30, 2025 and 2024, respectively, and 380,740 and 450,275 for the nine months ended September 30, 2025 and 2024, respectively.
The table below sets forth the computation of basic and diluted net income per share:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except share and per share amounts)2025202420252024
Net income$7,216 $7,189 $15,242 $16,997 
Basic - weighted-average shares outstanding:23,889,15724,980,53623,974,05425,304,985
Effect of dilutive securities:
Employee stock options and other301,88241,949275,61577,295
Diluted - weighted-average shares outstanding:24,191,03925,022,48524,249,66925,382,280
Net income per share:
Basic$0.30 $0.29 $0.64 $0.67 
Diluted$0.30 $0.29 $0.63 $0.67 
XML 21 R10.htm IDEA: XBRL DOCUMENT v3.25.3
Goodwill and Other Intangible Assets
9 Months Ended
Sep. 30, 2025
Goodwill and Intangible Assets Disclosure [Abstract]  
Goodwill and Other Intangible Assets Goodwill and Other Intangible Assets
There were no changes in the carrying amount of goodwill during the three and nine months ended September 30, 2025.
Intangible assets other than goodwill at September 30, 2025 and December 31, 2024 were as follows:
September 30, 2025December 31, 2024Useful
Life (in years)
Weighted Average
Useful Life Remaining
(in years)
(in thousands)GrossAccumulated
Amortization
NetGrossAccumulated
Amortization
Net
Intangible assets with finite lives:
Non-compete agreement$850 $(814)$36 $819 $(703)$116 
2.0 - 5.0
0.2
Software technology13,229 (10,150)3,079 13,229 (9,123)4,106 10.02.3
Software platform27,094 (10,670)16,424 25,657 (8,457)17,200 12.07.3
Total intangible assets$41,173 $(21,634)$19,539 $39,705 $(18,283)$21,422 
Intangible assets allocated to the Protolabs Network entities consisted of intangible assets of €11.6 million in Europe and $16.6 million in the United States as of the date of the acquisition. The Euro denominated intangible assets are translated at the end of each period using the current exchange rates resulting in a foreign currency translation adjustment that is recorded as a component of Other Comprehensive Income. Foreign currency unrealized losses related to intangible assets
were $0.5 million and $2.2 million as of September 30, 2025 and December 31, 2024, respectively. Amortization expense for intangible assets was $0.9 million for each of the three months ended September 30, 2025 and 2024, and $2.8 million for each of the nine months ended September 30, 2025 and 2024.
Estimated aggregated amortization expense based on the current carrying value of the amortizable intangible assets and current exchange rates is as follows:
(in thousands)Estimated Amortization Expense
Remaining 2025$929
20263,618
20273,609
20282,240
20292,240
Thereafter6,903
Total estimated amortization expense$19,539
XML 22 R11.htm IDEA: XBRL DOCUMENT v3.25.3
Fair Value Measurements
9 Months Ended
Sep. 30, 2025
Fair Value Disclosures [Abstract]  
Fair Value Measurements Fair Value Measurements
Accounting Standards Codification, Fair Value Measurement (ASC 820), defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. ASC 820 also establishes a fair value hierarchy that requires classification based on observable and unobservable inputs when measuring fair value. There are three levels of inputs that may be used to measure fair value:
Level 1Quoted prices in active markets for identical assets or liabilities.
Level 2Observable inputs other than Level 1 prices such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
Level 3Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities.
The Company's assets and liabilities that are required to be measured or disclosed at fair value on a recurring basis include cash and cash equivalents and marketable securities. The Company’s cash consists of bank deposits and cash equivalents consist primarily of money market mutual funds. The Company determines the fair value of these investments using Level 1 inputs. The Company's marketable securities consist of short-term and long-term agency, municipal, corporate and other debt securities. Fair value for the corporate debt securities is primarily determined based on quoted market prices (Level 1). Fair values for the U.S. municipal securities, U.S. government agency securities, certificates of deposit and U.S. treasury securities are primarily determined using dealer quotes or quoted market prices for similar securities (Level 2).
The following table summarizes financial assets as of September 30, 2025 and December 31, 2024 measured at fair value on a recurring basis:
September 30, 2025December 31, 2024
(in thousands)Level 1Level 2Level 3Level 1Level 2Level 3
Financial Assets:
Cash$100,710 $— $— $86,366 $— $— 
Money market mutual fund3,712 — — 2,705 — — 
Marketable securities17,318 16,648 — 17,261 14,531 — 
Total$121,740 $16,648 $— $106,332 $14,531 $— 
XML 23 R12.htm IDEA: XBRL DOCUMENT v3.25.3
Marketable Securities
9 Months Ended
Sep. 30, 2025
Investments, Debt and Equity Securities [Abstract]  
Marketable Securities Marketable Securities
The Company invests in short-term and long-term agency, municipal, corporate and other debt securities. The securities are categorized as available-for-sale and are recorded at fair value. The following table summarizes information regarding the Company’s short-term and long-term marketable securities as of September 30, 2025 and December 31, 2024:
September 30, 2025
(in thousands)CostUnrealized GainsUnrealized LossesFair Value
U.S. government agency securities$8,000 $$(4)$8,005 
Corporate debt securities15,947 10 (14)15,943 
U.S. municipal securities8,980 34 — 9,014 
U.S. treasury bonds1,000 — 1,004 
Total marketable securities$33,927 $57 $(18)$33,966 
December 31, 2024
(in thousands)CostUnrealized GainsUnrealized LossesFair Value
U.S. government agency securities$8,323 $— $(22)$8,301 
Corporate debt securities15,852 — (82)15,770 
U.S. municipal securities6,762 — (38)6,724 
U.S. treasury bonds1,000 — (3)997 
Total marketable securities$31,937 $— $(145)$31,792 
Fair values for the corporate debt securities are primarily determined based on quoted market prices (Level 1). Fair values for the U.S. municipal securities, U.S. government agency securities, certificates of deposit and U.S. treasury securities are primarily determined using dealer quotes or quoted market prices for similar securities (Level 2).
Classification of marketable securities as current or non-current is based upon the security’s maturity date as of the date of these financial statements.
The September 30, 2025 balance of available-for-sale debt securities by contractual maturity is shown in the following table at fair value. Actual maturities may differ from contractual maturities because the issuers of the securities may have the right to prepay obligations without prepayment penalties.
(in thousands)September 30,
2025
Due in one year or less$14,817 
Due after one year through five years19,149 
Total marketable securities$33,966 
XML 24 R13.htm IDEA: XBRL DOCUMENT v3.25.3
Inventory
9 Months Ended
Sep. 30, 2025
Inventory Disclosure [Abstract]  
Inventory Inventory
Inventory consists primarily of raw materials, which are recorded at the lower of cost and net realizable value using the standard cost method, which approximates first-in, first-out (FIFO) cost. The Company periodically reviews its inventory for slow-moving, damaged and discontinued items and provides allowances to reduce such items identified to their recoverable amounts.
The Company’s inventory consisted of the following as of the dates indicated:
(in thousands)September 30,
2025
December 31,
2024
Total inventory$14,755 $12,989 
Allowance for obsolescence(682)(684)
Inventory, net of allowance$14,073 $12,305 
XML 25 R14.htm IDEA: XBRL DOCUMENT v3.25.3
Stock-Based Compensation
9 Months Ended
Sep. 30, 2025
Share-Based Payment Arrangement [Abstract]  
Stock-Based Compensation Stock-Based Compensation
On July 8, 2022, the board of directors approved the Proto Labs, Inc. 2022 Long-Term Incentive Plan, which was approved by the Company's shareholders at a Special Meeting of Shareholders on August 29, 2022, and subsequently amended and restated by the Company's shareholders at the Annual Meeting of Shareholders on May 23, 2024 (as amended and restated, and subsequently further amended, the 2022 Plan) to increase the number of shares available for issuance pursuant to awards under the 2022 Plan by an additional 430,000 shares, add a minimum vesting requirement, and extend the expiration date so that the term of the 2022 Plan runs for ten years from the date of the shareholder approval. On May 20, 2025, the Company's shareholders approved an amendment to the 2022 Plan to increase the number of shares available for issuance pursuant to awards under the 2022 Plan by an additional 296,000 shares. Under the 2022 Plan, the Company has the ability to grant stock options, stock appreciation rights (SARs), restricted stock, restricted stock units, other stock-based awards and cash incentive awards. Awards under the 2022 Plan have a maximum term of ten years from the date of grant. The compensation and talent committee may provide that the vesting or payment of any award will be subject to the attainment of specified performance measures in addition to the satisfaction of any continued service requirements and the compensation and talent committee will determine whether such measures have been achieved. The per-share exercise price of stock options and SARs granted under the 2022 Plan generally may not be less than the fair market value of a share of our common stock on the date of the grant.
The Company also has outstanding awards under the 2012 Long-Term Incentive Plan, as amended (the 2012 Plan), although the plan expired in February 2022 and no additional awards have since been or will be made under the 2012 Plan. The 2012 Plan provided the Company the ability to grant stock options, SARs, restricted stock, restricted stock units, other stock-based awards and cash incentive awards. Awards under the 2012 Plan that subsequently expired, were forfeited or cancelled, or settled in cash after August 29, 2022 became available for awards under the 2022 Plan.
On May 23, 2025, the Company granted one-time inducement awards (the Inducement Awards) within the meaning of the New York Stock Exchange Listed Company Manual Section 303A.08 to the Company's incoming Chief Executive Officer.
The Inducement Awards were not granted under the 2022 Plan, but have the same terms and conditions as equity awards granted under the 2022 Plan, except as otherwise provided in the award agreements.
Employee Stock Purchase Plan
The Company’s 2012 Employee Stock Purchase Plan (ESPP) allows eligible employees to purchase a variable number of shares of the Company’s common stock each offering period at a discount through payroll deductions of up to 15 percent of their eligible compensation, subject to plan limitations. The ESPP provides for six-month offering periods with a single purchase period ending May 15 and November 15, respectively. At the end of each offering period, employees are able to purchase shares at 85 percent of the lower of the fair market value of the Company’s common stock on the first trading day of the offering period or on the last trading day of the offering period.
Stock-Based Compensation Expense
Stock-based compensation expense was $3.7 million and $4.2 million for the three months ended September 30, 2025 and 2024, respectively, and $11.9 million and $12.7 million for the nine months ended September 30, 2025 and 2024, respectively.
Stock Options
The following table summarizes stock option activity during the nine months ended September 30, 2025:
Stock OptionsWeighted-
Average
Exercise Price
Options outstanding at December 31, 2024445,136$51.34 
Granted139,87239.32 
Exercised(70,307)34.27 
Forfeited(103,013)37.68 
Expired(16,354)87.74 
Options outstanding at September 30, 2025395,334$52.18 
Exercisable at September 30, 2025191,882$68.62 
The outstanding options generally have a term of ten years. For employees, options granted become exercisable ratably over the vesting period, which is generally a period of four years, beginning on the first anniversary of the grant date, subject to the employee’s continuing service to the Company.
The weighted-average grant date fair value of options that were granted during the nine months ended September 30, 2025 was $21.81.
The following table provides the assumptions used in the Black-Scholes pricing model valuation of options during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
4.13% - 4.17%
4.28% - 4.30%
Expected life (years)
6.25
6.25
Expected volatility
52.12% - 52.99%
50.62% - 50.72%
Expected dividend yield0%0%
As of September 30, 2025, there was $3.3 million of unrecognized compensation expense related to unvested stock options, which is expected to be recognized over a weighted-average period of 2.9 years.
Restricted Stock Units
Restricted stock unit (RSU) awards are share-settled awards and restrictions lapse ratably over the vesting period, which is generally a period from three to four years, beginning on the first anniversary of the grant date, subject to the employee's continuing service to the Company. For the board of directors, restrictions generally lapse in full on the first anniversary of the grant date.
The following table summarizes restricted stock units activity during the nine months ended September 30, 2025:
Restricted
Stock Units
Weighted-
Average
Grant Date
Fair Value
Per Share
Restricted stock units at December 31, 2024763,261$38.25 
Granted278,50039.95 
Restrictions lapsed(212,526)40.55 
Forfeited(103,268)36.40 
Restricted stock units at September 30, 2025725,967$38.49 
As of September 30, 2025, there was $18.8 million of unrecognized compensation expense related to non-vested restricted stock units, which is expected to be recognized over a weighted-average period of 2.7 years.
Performance Stock Units
Performance stock units (PSUs) are expressed in terms of a target number of PSUs, with anywhere between 0 percent and 200 percent of that target number capable of being earned and vesting at the end of a three-year performance period depending on the Company’s three-year cumulative total shareholder return performance relative to an index and the award recipient’s continued employment. The Company’s PSUs are based on market conditions and the related compensation cost is based on the fair value at grant date calculated using a Monte Carlo pricing model.
The following table summarizes performance stock units activity during the nine months ended September 30, 2025:
Performance
Stock Units
Weighted-
Average
Grant Date
Fair Value
Per Share
Performance stock units at December 31, 2024180,173$60.75 
Granted1
153,50359.71 
Restrictions lapsed(32,977)96.41
Performance change— 
Forfeited(68,887)57
Performance stock units at September 30, 2025231,812$56.17 
1 Includes a target number of 54,320 PSUs granted as part of the May 23, 2025, Inducement Awards, 27,160 of which have the same market condition as the PSUs granted under the 2022 Plan as described above, and 27,160 of which also include a performance condition with anywhere between 0 percent and 100 percent of the target number capable of being achieved during two six-month performance periods depending on revenue and then anywhere between 0 percent and 200 percent of such achieved PSUs capable of being earned and vesting during a three-year performance period depending on the Company's three-year cumulative total shareholder return performance relative to an index and the award recipient's continued employment.
The following table provides the assumptions used in the Monte Carlo pricing model valuation of PSUs during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
3.98% - 4.08%
4.37%
Expected life (years)
2.61 - 2.85
2.88
Expected volatility
52.40% - 53.20%
51.40%
Expected dividend yield0%0%
As of September 30, 2025, there was $7.5 million of unrecognized compensation expense related to non-vested performance stock units, which is expected to be recognized over a weighted-average period of 2.1 years.
Employee Stock Purchase Plan
The following table presents the assumptions used to estimate the fair value of the ESPP during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
4.09% - 4.29%
5.07% - 5.16%
Expected life (months)6.006.00
Expected volatility
41.89% - 65.60%
30.97% - 47.92%
Expected dividend yield0%0%
XML 26 R15.htm IDEA: XBRL DOCUMENT v3.25.3
Accumulated Other Comprehensive Income (Loss)
9 Months Ended
Sep. 30, 2025
Regulated Operations [Abstract]  
Accumulated Other Comprehensive Income (Loss) Accumulated Other Comprehensive Income (Loss)
Other comprehensive income (loss) is comprised of foreign currency translation adjustments and net unrealized gains (losses) on investments in securities.
The following table presents the changes in accumulated other comprehensive income (loss) balances during the three and nine months ended September 30, 2025 and 2024:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Balance at beginning of period$(24,563)$(29,432)$(27,984)$(28,013)
Foreign currency translation adjustments
Other comprehensive income (loss) before reclassifications(227)2,430 3,076 827 
Amounts reclassified from accumulated other comprehensive loss— — — — 
Net current-period other comprehensive income (loss)(227)2,430 3,076 827 
Net unrealized gains on investments in securities
Other comprehensive income before reclassifications66 150 184 334 
Amounts reclassified from accumulated other comprehensive loss— — — — 
Net current-period other comprehensive income66 150 184 334 
Balance at end of period$(24,724)$(26,852)$(24,724)$(26,852)
XML 27 R16.htm IDEA: XBRL DOCUMENT v3.25.3
Income Taxes
9 Months Ended
Sep. 30, 2025
Income Tax Disclosure [Abstract]  
Income Taxes Income Taxes
The Company is subject to income tax in multiple jurisdictions and the use of estimates is required to determine the provision for income taxes. For the three months ended September 30, 2025 and 2024, the Company recorded an income tax provision of $3.0 million and $2.7 million, respectively. For the nine months ended September 30, 2025 and 2024, the
Company recorded an income tax provision of $7.7 million and $8.0 million, respectively. The income tax provision is based on the estimated annual effective tax rate for the year applied to pre-tax income. The effective income tax rate for the three months ended September 30, 2025 was 29.6 percent compared to 27.1 percent in the same period of the prior year. The effective tax rate increased by 2.5 percent for the three months ended September 30, 2025 when compared to the same period in 2024, primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances. The effective income tax rate for the nine months ended September 30, 2025 was 33.5 percent compared to 31.9 percent in the same period of the prior year. The effective tax rate increased by 1.6 percent for the nine months ended September 30, 2025 when compared to the same period in 2024, primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances.
The effective income tax rate for the three and nine months ended September 30, 2025 differs from the U.S. federal statutory rate of 21.0 percent due to various factors, including operating in multiple state and foreign jurisdictions partially offset by tax credits for which the Company qualifies.
The Company had unrecognized tax benefits totaling $3.7 million as of September 30, 2025 and $3.4 million as of December 31, 2024, respectively, that if recognized would result in a reduction of the Company’s effective tax rate. The liabilities are classified as other long-term liabilities in the accompanying consolidated balance sheets. The Company recognizes interest and penalties related to income tax matters in income tax expense and reports the liability in current or long-term income taxes payable as appropriate.
On July 4, 2025, the U.S. enacted H.R. 1 "A bill to provide for reconciliation pursuant to Title II of H. Con. Res. 14", commonly referred to as the One Big Beautiful Bill Act (OBBBA). As a result of the enactment of H.R. 1, the impact to the deferred tax liability and the income tax payable related to the provisions for 100% bonus depreciation for assets placed in service after January 19, 2025 and full expensing of domestic research and experimental expenditures was recorded in the period ended September 30, 2025. We do not expect any material change to our ongoing tax rate as a result of this legislation. We continue to evaluate the impacts the new legislation may have on the Company's financial statements.
XML 28 R17.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting
9 Months Ended
Sep. 30, 2025
Segment Reporting [Abstract]  
Segment Reporting Segment Reporting
The Company’s reportable segments are based on the internal reporting used by the Company’s Chief Executive Officer, who is the chief operating decision maker (CODM), to assess operating performance and make decisions about the allocation of resources. The Company’s reportable segments are based upon geographic region, consisting of the United States and Europe. The Corporate Unallocated category includes non-reportable segments, as well as research and development and general and administrative costs that the Company does not allocate directly to its operating segments.
Intercompany transactions primarily relate to intercontinental activity and have been eliminated and are excluded from the reported amounts. The difference between income from operations and pre-tax income relates to foreign currency-related gains and losses and interest income on cash balances and investments, which are not allocated to business segments.
The following table summarizes selected financial information by reportable segments:
Three Months Ended September 30, 2025
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$109,361 $26,005 $— $135,366 
Segment expenses1
81,028 28,696 16,683 126,407 
Exit, Disposal and Goodwill impairment costs— 149 — 149 
Income (Loss) from Operations$28,333 $(2,840)$(16,683)$8,810 
Three Months Ended September 30, 2024
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$99,571 $26,048 $— $125,619 
Segment expenses1
73,884 28,446 14,709 117,039 
Exit, Disposal and Goodwill impairment costs— — — — 
Income (Loss) from Operations$25,687 $(2,398)$(14,709)$8,580 
Nine Months Ended September 30, 2025
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$320,340 $76,294 $— $396,634 
Segment expenses1
238,823 87,815 51,576 378,214 
Exit, Disposal and Goodwill impairment costs— 110 — 110 
Income (Loss) from Operations$81,517 $(11,631)$(51,576)$18,310 
Nine Months Ended September 30, 2024
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$299,593 $79,547 $— $379,140 
Segment expenses1
223,333 86,121 48,280 357,734 
Exit, Disposal and Goodwill impairment costs— — — — 
Income (Loss) from Operations$76,260 $(6,574)$(48,280)$21,406 
1 Segment expenses consist primarily of raw materials, equipment depreciation, employee compensation including benefits, commissions and stock-based compensation, facilities costs and overhead allocations associated with the manufacturing process for molds and custom parts, marketing programs such as electronic, print and pay-per-click advertising and trade shows and other related costs for our United States and Europe reportable segments. Segment expenses for our Corporate Unallocated reportable segment consist primarily of personnel and outside service costs related to the development of new processes and product lines, enhancements of existing product
lines, software developed for internal use, maintenance of internally developed software, quality assurance and testing, employee compensation including benefits and stock-based compensation, severance, professional service fees related to accounting, tax and legal, and other related overhead costs.
Total long-lived assets, expenditures for additions to long-lived assets, and depreciation and amortization expense were as follows:
(in thousands)September 30,
2025
December 31,
2024
Total long-lived assets:
United States$168,988 $181,291 
Europe42,337 45,972 
Total Long-lived Assets$211,325 $227,263 
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Expenditures for additions to long-lived assets:
United States$3,636 $1,368 $5,929 $5,734 
Europe426 187 863 2,605 
Total expenditures for additions to long-lived assets$4,062 $1,555 $6,792 $8,339 
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Depreciation and Amortization:
United States$6,904 $7,156 $20,916 $21,667 
Europe1,470 1,718 4,560 5,194 
Corporate Unallocated55 35 $217 $123 
Total depreciation and amortization$8,429 $8,909 $25,693 $26,984 
Revenue by product line the three and nine months ended September 30, 2025 and 2024 were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(dollars in thousands)2025202420252024
Revenue:
Injection Molding$47,770 $46,831 $143,908 $148,574 
CNC Machining63,043 53,327 177,831 154,498 
3D Printing20,082 21,437 61,491 64,300 
Sheet Metal4,262 3,743 12,776 11,218 
Other Revenue209 281 628 550 
Total Revenue$135,366 $125,619 $396,634 $379,140 
XML 29 R18.htm IDEA: XBRL DOCUMENT v3.25.3
Subsequent Event
9 Months Ended
Sep. 30, 2025
Subsequent Events [Abstract]  
Subsequent Event Subsequent Event
On October 3, 2025 (the Notice Date), the Company announced that Oleg Ryaboy, Chief Technology Officer, will depart the Company and cease to be an employee, effective November 2, 2025. As of the Notice Date, Mr. Ryaboy is no longer the Company’s Chief Technology Officer or an executive officer of the Company. Marc Kermisch has been appointed to serve as the Company’s new Chief Technology & AI Officer, effective October 13, 2025.
XML 30 R19.htm IDEA: XBRL DOCUMENT v3.25.3
Insider Trading Arrangements
3 Months Ended
Sep. 30, 2025
shares
Trading Arrangements, by Individual  
Non-Rule 10b5-1 Arrangement Adopted false
Rule 10b5-1 Arrangement Terminated false
Non-Rule 10b5-1 Arrangement Terminated false
Michael R. Kenison [Member]  
Trading Arrangements, by Individual  
Material Terms of Trading Arrangement On August 15, 2025, Michael R. Kenison, Chief Operations Officer of the Company, entered into a 10b5-1 sales plan intended to satisfy the affirmative defense of Rule 10b5-1(c) under the Exchange Act. This 10b5-1 sales plan provides for (1) the sale of up to 10,681 shares of common stock related to the exercise of option awards granted to Mr. Kenison and (2) the sale of up to 7,500 shares of common stock related to vested restricted stock units granted to Mr. Kenison. This 10b5-1 sales plan will become effective on November 14, 2025 and will expire on June 12, 2026, or earlier completion of all authorized transactions under the plan.
Name Michael R. Kenison
Title Chief Operations Officer
Rule 10b5-1 Arrangement Adopted true
Adoption Date August 15, 2025
Expiration Date June 12, 2026
Arrangement Duration 210 days
Oleg Ryaboy [Member]  
Trading Arrangements, by Individual  
Material Terms of Trading Arrangement On September 8, 2025, Oleg Ryaboy, Chief Technology Officer of the Company until October 3, 2025, entered into a 10b5-1 sales plan intended to satisfy the affirmative defense of Rule 10b5-1(c) under the Exchange Act. This 10b5-1 sales plan provides for (1) the sale of up to 3,048 shares of common stock related to the exercise of option awards granted to Mr. Ryaboy, (2) the sale of up to 4,200 shares of common stock related to vested restricted stock units granted to Mr. Ryaboy and (3) the sale of shares of common stock related to the future vesting of up to 5,658 restricted stock units held by Mr. Ryaboy. The exact number of shares of common stock that will be sold under this 10b5-1 sales plan related to vesting of restricted stock units is not yet determinable because an unknown number of shares will be sold to satisfy tax withholding obligations in connection with the vesting of the restricted stock units covered by the plan. This 10b5-1 sales plan will become effective on December 8, 2025 and will expire on August 15, 2026, or earlier completion of all authorized transactions under the plan.
Name Oleg Ryaboy
Title Chief Technology Officer
Rule 10b5-1 Arrangement Adopted true
Adoption Date September 8, 2025
Expiration Date August 15, 2026
Arrangement Duration 250 days
Michael R. Kenison, Trading Arrangement, Common Stock Related To Option Awards Granted [Member] | Michael R. Kenison [Member]  
Trading Arrangements, by Individual  
Aggregate Available 10,681
Michael R. Kenison, Trading Arrangement, Common Stock Related To Restricted Stock Units Granted [Member] | Michael R. Kenison [Member]  
Trading Arrangements, by Individual  
Aggregate Available 7,500
Oleg Ryaboy, Trading Arrangement, Common Stock Related To Option Awards [Member] | Oleg Ryaboy [Member]  
Trading Arrangements, by Individual  
Aggregate Available 3,048
Oleg Ryaboy, Trading Arrangement, Common Stock Related To Vested Restricted Stock Units [Member] | Oleg Ryaboy [Member]  
Trading Arrangements, by Individual  
Aggregate Available 4,200
Oleg Ryaboy, Trading Arrangement, Common Stock Related To Unvested Restricted Stock Units [Member] | Oleg Ryaboy [Member]  
Trading Arrangements, by Individual  
Aggregate Available 5,658
XML 31 R20.htm IDEA: XBRL DOCUMENT v3.25.3
Net Income per Common Share (Tables)
9 Months Ended
Sep. 30, 2025
Earnings Per Share [Abstract]  
Schedule of Computation Of Basic and Diluted Net Income Per Share
The table below sets forth the computation of basic and diluted net income per share:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands, except share and per share amounts)2025202420252024
Net income$7,216 $7,189 $15,242 $16,997 
Basic - weighted-average shares outstanding:23,889,15724,980,53623,974,05425,304,985
Effect of dilutive securities:
Employee stock options and other301,88241,949275,61577,295
Diluted - weighted-average shares outstanding:24,191,03925,022,48524,249,66925,382,280
Net income per share:
Basic$0.30 $0.29 $0.64 $0.67 
Diluted$0.30 $0.29 $0.63 $0.67 
XML 32 R21.htm IDEA: XBRL DOCUMENT v3.25.3
Goodwill and Other Intangible Assets (Tables)
9 Months Ended
Sep. 30, 2025
Goodwill and Intangible Assets Disclosure [Abstract]  
Schedule of Intangible Assets Other Than Goodwill
Intangible assets other than goodwill at September 30, 2025 and December 31, 2024 were as follows:
September 30, 2025December 31, 2024Useful
Life (in years)
Weighted Average
Useful Life Remaining
(in years)
(in thousands)GrossAccumulated
Amortization
NetGrossAccumulated
Amortization
Net
Intangible assets with finite lives:
Non-compete agreement$850 $(814)$36 $819 $(703)$116 
2.0 - 5.0
0.2
Software technology13,229 (10,150)3,079 13,229 (9,123)4,106 10.02.3
Software platform27,094 (10,670)16,424 25,657 (8,457)17,200 12.07.3
Total intangible assets$41,173 $(21,634)$19,539 $39,705 $(18,283)$21,422 
Schedule of Aggregated Amortization Expense
Estimated aggregated amortization expense based on the current carrying value of the amortizable intangible assets and current exchange rates is as follows:
(in thousands)Estimated Amortization Expense
Remaining 2025$929
20263,618
20273,609
20282,240
20292,240
Thereafter6,903
Total estimated amortization expense$19,539
XML 33 R22.htm IDEA: XBRL DOCUMENT v3.25.3
Fair Value Measurements (Tables)
9 Months Ended
Sep. 30, 2025
Fair Value Disclosures [Abstract]  
Schedule of Fair Value, Assets Measured on Recurring Basis
The following table summarizes financial assets as of September 30, 2025 and December 31, 2024 measured at fair value on a recurring basis:
September 30, 2025December 31, 2024
(in thousands)Level 1Level 2Level 3Level 1Level 2Level 3
Financial Assets:
Cash$100,710 $— $— $86,366 $— $— 
Money market mutual fund3,712 — — 2,705 — — 
Marketable securities17,318 16,648 — 17,261 14,531 — 
Total$121,740 $16,648 $— $106,332 $14,531 $— 
XML 34 R23.htm IDEA: XBRL DOCUMENT v3.25.3
Marketable Securities (Tables)
9 Months Ended
Sep. 30, 2025
Investments, Debt and Equity Securities [Abstract]  
Schedule of Short-Term and Long-Term Marketable Securities The following table summarizes information regarding the Company’s short-term and long-term marketable securities as of September 30, 2025 and December 31, 2024:
September 30, 2025
(in thousands)CostUnrealized GainsUnrealized LossesFair Value
U.S. government agency securities$8,000 $$(4)$8,005 
Corporate debt securities15,947 10 (14)15,943 
U.S. municipal securities8,980 34 — 9,014 
U.S. treasury bonds1,000 — 1,004 
Total marketable securities$33,927 $57 $(18)$33,966 
December 31, 2024
(in thousands)CostUnrealized GainsUnrealized LossesFair Value
U.S. government agency securities$8,323 $— $(22)$8,301 
Corporate debt securities15,852 — (82)15,770 
U.S. municipal securities6,762 — (38)6,724 
U.S. treasury bonds1,000 — (3)997 
Total marketable securities$31,937 $— $(145)$31,792 
Schedule of Available-For-Sale Debt Securities by Contractual Maturity
The September 30, 2025 balance of available-for-sale debt securities by contractual maturity is shown in the following table at fair value. Actual maturities may differ from contractual maturities because the issuers of the securities may have the right to prepay obligations without prepayment penalties.
(in thousands)September 30,
2025
Due in one year or less$14,817 
Due after one year through five years19,149 
Total marketable securities$33,966 
XML 35 R24.htm IDEA: XBRL DOCUMENT v3.25.3
Inventory (Tables)
9 Months Ended
Sep. 30, 2025
Inventory Disclosure [Abstract]  
Schedule of Inventory
The Company’s inventory consisted of the following as of the dates indicated:
(in thousands)September 30,
2025
December 31,
2024
Total inventory$14,755 $12,989 
Allowance for obsolescence(682)(684)
Inventory, net of allowance$14,073 $12,305 
XML 36 R25.htm IDEA: XBRL DOCUMENT v3.25.3
Stock-Based Compensation (Tables)
9 Months Ended
Sep. 30, 2025
Share-Based Payment Arrangement [Abstract]  
Schedule of Share-Based Payment Arrangement, Option, Activity
The following table summarizes stock option activity during the nine months ended September 30, 2025:
Stock OptionsWeighted-
Average
Exercise Price
Options outstanding at December 31, 2024445,136$51.34 
Granted139,87239.32 
Exercised(70,307)34.27 
Forfeited(103,013)37.68 
Expired(16,354)87.74 
Options outstanding at September 30, 2025395,334$52.18 
Exercisable at September 30, 2025191,882$68.62 
Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions
The following table provides the assumptions used in the Black-Scholes pricing model valuation of options during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
4.13% - 4.17%
4.28% - 4.30%
Expected life (years)
6.25
6.25
Expected volatility
52.12% - 52.99%
50.62% - 50.72%
Expected dividend yield0%0%
Schedule of Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity
The following table summarizes restricted stock units activity during the nine months ended September 30, 2025:
Restricted
Stock Units
Weighted-
Average
Grant Date
Fair Value
Per Share
Restricted stock units at December 31, 2024763,261$38.25 
Granted278,50039.95 
Restrictions lapsed(212,526)40.55 
Forfeited(103,268)36.40 
Restricted stock units at September 30, 2025725,967$38.49 
Schedule of Nonvested Performance-Based Units Activity
The following table summarizes performance stock units activity during the nine months ended September 30, 2025:
Performance
Stock Units
Weighted-
Average
Grant Date
Fair Value
Per Share
Performance stock units at December 31, 2024180,173$60.75 
Granted1
153,50359.71 
Restrictions lapsed(32,977)96.41
Performance change— 
Forfeited(68,887)57
Performance stock units at September 30, 2025231,812$56.17 
1 Includes a target number of 54,320 PSUs granted as part of the May 23, 2025, Inducement Awards, 27,160 of which have the same market condition as the PSUs granted under the 2022 Plan as described above, and 27,160 of which also include a performance condition with anywhere between 0 percent and 100 percent of the target number capable of being achieved during two six-month performance periods depending on revenue and then anywhere between 0 percent and 200 percent of such achieved PSUs capable of being earned and vesting during a three-year performance period depending on the Company's three-year cumulative total shareholder return performance relative to an index and the award recipient's continued employment.
Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions
The following table provides the assumptions used in the Monte Carlo pricing model valuation of PSUs during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
3.98% - 4.08%
4.37%
Expected life (years)
2.61 - 2.85
2.88
Expected volatility
52.40% - 53.20%
51.40%
Expected dividend yield0%0%
Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions
The following table presents the assumptions used to estimate the fair value of the ESPP during the nine months ended September 30, 2025 and 2024:
Nine Months Ended
September 30,
20252024
Risk-free interest rate
4.09% - 4.29%
5.07% - 5.16%
Expected life (months)6.006.00
Expected volatility
41.89% - 65.60%
30.97% - 47.92%
Expected dividend yield0%0%
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.25.3
Accumulated Other Comprehensive Income (Loss) (Tables)
9 Months Ended
Sep. 30, 2025
Regulated Operations [Abstract]  
Schedule of Comprehensive Income (Loss)
The following table presents the changes in accumulated other comprehensive income (loss) balances during the three and nine months ended September 30, 2025 and 2024:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Balance at beginning of period$(24,563)$(29,432)$(27,984)$(28,013)
Foreign currency translation adjustments
Other comprehensive income (loss) before reclassifications(227)2,430 3,076 827 
Amounts reclassified from accumulated other comprehensive loss— — — — 
Net current-period other comprehensive income (loss)(227)2,430 3,076 827 
Net unrealized gains on investments in securities
Other comprehensive income before reclassifications66 150 184 334 
Amounts reclassified from accumulated other comprehensive loss— — — — 
Net current-period other comprehensive income66 150 184 334 
Balance at end of period$(24,724)$(26,852)$(24,724)$(26,852)
XML 38 R27.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting (Tables)
9 Months Ended
Sep. 30, 2025
Segment Reporting [Abstract]  
Schedule of Segment Reporting Information, by Segment
The following table summarizes selected financial information by reportable segments:
Three Months Ended September 30, 2025
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$109,361 $26,005 $— $135,366 
Segment expenses1
81,028 28,696 16,683 126,407 
Exit, Disposal and Goodwill impairment costs— 149 — 149 
Income (Loss) from Operations$28,333 $(2,840)$(16,683)$8,810 
Three Months Ended September 30, 2024
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$99,571 $26,048 $— $125,619 
Segment expenses1
73,884 28,446 14,709 117,039 
Exit, Disposal and Goodwill impairment costs— — — — 
Income (Loss) from Operations$25,687 $(2,398)$(14,709)$8,580 
Nine Months Ended September 30, 2025
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$320,340 $76,294 $— $396,634 
Segment expenses1
238,823 87,815 51,576 378,214 
Exit, Disposal and Goodwill impairment costs— 110 — 110 
Income (Loss) from Operations$81,517 $(11,631)$(51,576)$18,310 
Nine Months Ended September 30, 2024
(in thousands)
United StatesEuropeCorporate UnallocatedTotal
Revenue$299,593 $79,547 $— $379,140 
Segment expenses1
223,333 86,121 48,280 357,734 
Exit, Disposal and Goodwill impairment costs— — — — 
Income (Loss) from Operations$76,260 $(6,574)$(48,280)$21,406 
1 Segment expenses consist primarily of raw materials, equipment depreciation, employee compensation including benefits, commissions and stock-based compensation, facilities costs and overhead allocations associated with the manufacturing process for molds and custom parts, marketing programs such as electronic, print and pay-per-click advertising and trade shows and other related costs for our United States and Europe reportable segments. Segment expenses for our Corporate Unallocated reportable segment consist primarily of personnel and outside service costs related to the development of new processes and product lines, enhancements of existing product
lines, software developed for internal use, maintenance of internally developed software, quality assurance and testing, employee compensation including benefits and stock-based compensation, severance, professional service fees related to accounting, tax and legal, and other related overhead costs.
Schedule of Long-Lived Assets by Geographic Areas
Total long-lived assets, expenditures for additions to long-lived assets, and depreciation and amortization expense were as follows:
(in thousands)September 30,
2025
December 31,
2024
Total long-lived assets:
United States$168,988 $181,291 
Europe42,337 45,972 
Total Long-lived Assets$211,325 $227,263 
Schedule of Expenditures for Additions to Long-lived Assets by Geographic Region
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Expenditures for additions to long-lived assets:
United States$3,636 $1,368 $5,929 $5,734 
Europe426 187 863 2,605 
Total expenditures for additions to long-lived assets$4,062 $1,555 $6,792 $8,339 
Schedule of Depreciation and Amortization by Geographic Region
Three Months Ended
September 30,
Nine Months Ended
September 30,
(in thousands)2025202420252024
Depreciation and Amortization:
United States$6,904 $7,156 $20,916 $21,667 
Europe1,470 1,718 4,560 5,194 
Corporate Unallocated55 35 $217 $123 
Total depreciation and amortization$8,429 $8,909 $25,693 $26,984 
Schedule of Disaggregation of Revenue
Revenue by product line the three and nine months ended September 30, 2025 and 2024 were as follows:
Three Months Ended
September 30,
Nine Months Ended
September 30,
(dollars in thousands)2025202420252024
Revenue:
Injection Molding$47,770 $46,831 $143,908 $148,574 
CNC Machining63,043 53,327 177,831 154,498 
3D Printing20,082 21,437 61,491 64,300 
Sheet Metal4,262 3,743 12,776 11,218 
Other Revenue209 281 628 550 
Total Revenue$135,366 $125,619 $396,634 $379,140 
XML 39 R28.htm IDEA: XBRL DOCUMENT v3.25.3
Net Income per Common Share - Narrative (Details) - shares
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Earnings Per Share [Abstract]        
Anti-dilutive options excluded from calculation of diluted weighted average shares outstanding (in shares) 214,801 466,127 380,740 450,275
XML 40 R29.htm IDEA: XBRL DOCUMENT v3.25.3
Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Jun. 30, 2025
Mar. 31, 2025
Sep. 30, 2024
Jun. 30, 2024
Mar. 31, 2024
Sep. 30, 2025
Sep. 30, 2024
Earnings Per Share [Abstract]                
Net income $ 7,216 $ 4,427 $ 3,599 $ 7,189 $ 4,540 $ 5,268 $ 15,242 $ 16,997
Basic - weighted-average shares outstanding (in shares) 23,889,157     24,980,536     23,974,054 25,304,985
Effect of dilutive securities:                
Employee stock options and other (in shares) 301,882     41,949     275,615 77,295
Diluted - weighted-average shares outstanding (in shares) 24,191,039     25,022,485     24,249,669 25,382,280
Net income per share:                
Basic (in dollars per share) $ 0.30     $ 0.29     $ 0.64 $ 0.67
Diluted (in dollars per share) $ 0.30     $ 0.29     $ 0.63 $ 0.67
XML 41 R30.htm IDEA: XBRL DOCUMENT v3.25.3
Goodwill and Other Intangible Assets - Narrative (Details)
€ in Millions
3 Months Ended 9 Months Ended 12 Months Ended
Jan. 22, 2021
USD ($)
Jan. 22, 2021
EUR (€)
Sep. 30, 2025
USD ($)
Sep. 30, 2024
USD ($)
Sep. 30, 2025
USD ($)
Sep. 30, 2024
USD ($)
Dec. 31, 2024
USD ($)
Intangible Asset, Acquired, Finite-Lived [Line Items]              
Goodwill, period increase (decrease)     $ 0   $ 0    
Foreign currency losses         500,000   $ 2,200,000
Amortization expense for intangible assets     $ 900,000 $ 900,000 $ 2,800,000 $ 2,800,000  
Europe | 3D Hubs, Inc. (Hubs)              
Intangible Asset, Acquired, Finite-Lived [Line Items]              
Intangible assets acquired | €   € 11.6          
United States | 3D Hubs, Inc. (Hubs)              
Intangible Asset, Acquired, Finite-Lived [Line Items]              
Intangible assets acquired $ 16,600,000            
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.25.3
Goodwill and Other Intangible Assets - Schedule of Intangible Assets Other Than Goodwill (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Intangible Asset, Acquired, Finite-Lived [Line Items]    
Gross $ 41,173 $ 39,705
Accumulated Amortization (21,634) (18,283)
Net 19,539 21,422
Non-compete agreement    
Intangible Asset, Acquired, Finite-Lived [Line Items]    
Gross 850 819
Accumulated Amortization (814) (703)
Net $ 36 116
Weighted Average Useful Life Remaining (in years) 2 months 12 days  
Non-compete agreement | Minimum    
Intangible Asset, Acquired, Finite-Lived [Line Items]    
Useful Life (in years) 2 years  
Non-compete agreement | Maximum    
Intangible Asset, Acquired, Finite-Lived [Line Items]    
Useful Life (in years) 5 years  
Software technology    
Intangible Asset, Acquired, Finite-Lived [Line Items]    
Gross $ 13,229 13,229
Accumulated Amortization (10,150) (9,123)
Net $ 3,079 4,106
Useful Life (in years) 10 years  
Weighted Average Useful Life Remaining (in years) 2 years 3 months 18 days  
Software platform    
Intangible Asset, Acquired, Finite-Lived [Line Items]    
Gross $ 27,094 25,657
Accumulated Amortization (10,670) (8,457)
Net $ 16,424 $ 17,200
Useful Life (in years) 12 years  
Weighted Average Useful Life Remaining (in years) 7 years 3 months 18 days  
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.25.3
Goodwill and Other Intangible Assets - Schedule of Aggregated Amortization Expense (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]    
Remaining 2025 $ 929  
2026 3,618  
2027 3,609  
2028 2,240  
2029 2,240  
Thereafter 6,903  
Net $ 19,539 $ 21,422
XML 44 R33.htm IDEA: XBRL DOCUMENT v3.25.3
Fair Value Measurements (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Financial Assets:    
Marketable securities $ 33,966 $ 31,792
Level 1 | Fair Value, Recurring    
Financial Assets:    
Marketable securities 17,318 17,261
Total 121,740 106,332
Level 2 | Fair Value, Recurring    
Financial Assets:    
Marketable securities 16,648 14,531
Total 16,648 14,531
Level 3 | Fair Value, Recurring    
Financial Assets:    
Marketable securities 0 0
Total 0 0
Cash | Level 1 | Fair Value, Recurring    
Financial Assets:    
Cash and cash equivalents 100,710 86,366
Cash | Level 2 | Fair Value, Recurring    
Financial Assets:    
Cash and cash equivalents 0 0
Cash | Level 3 | Fair Value, Recurring    
Financial Assets:    
Cash and cash equivalents 0 0
Money market mutual fund | Level 1 | Fair Value, Recurring    
Financial Assets:    
Cash and cash equivalents 3,712 2,705
Money market mutual fund | Level 2 | Fair Value, Recurring    
Financial Assets:    
Cash and cash equivalents 0 0
Money market mutual fund | Level 3 | Fair Value, Recurring    
Financial Assets:    
Cash and cash equivalents $ 0 $ 0
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.25.3
Marketable Securities - Schedule of Short-Term and Long-Term Marketable Securities (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Debt Securities, Available-for-Sale [Line Items]    
Cost $ 33,927 $ 31,937
Unrealized Gains 57 0
Unrealized Losses (18) (145)
Fair Value 33,966 31,792
U.S. government agency securities    
Debt Securities, Available-for-Sale [Line Items]    
Cost 8,000 8,323
Unrealized Gains 9 0
Unrealized Losses (4) (22)
Fair Value 8,005 8,301
Corporate debt securities    
Debt Securities, Available-for-Sale [Line Items]    
Cost 15,947 15,852
Unrealized Gains 10 0
Unrealized Losses (14) (82)
Fair Value 15,943 15,770
U.S. municipal securities    
Debt Securities, Available-for-Sale [Line Items]    
Cost 8,980 6,762
Unrealized Gains 34 0
Unrealized Losses 0 (38)
Fair Value 9,014 6,724
U.S. treasury bonds    
Debt Securities, Available-for-Sale [Line Items]    
Cost 1,000 1,000
Unrealized Gains 4 0
Unrealized Losses 0 (3)
Fair Value $ 1,004 $ 997
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.25.3
Marketable Securities - Schedule of Available-For-Sale Debt Securities by Contractual Maturity (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Debt Securities, Available-for-Sale, Fair Value, Fiscal Year Maturity [Abstract]    
Due in one year or less $ 14,817  
Due after one year through five years 19,149  
Total marketable securities $ 33,966 $ 31,792
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.25.3
Inventory (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Inventory Disclosure [Abstract]    
Total inventory $ 14,755 $ 12,989
Allowance for obsolescence (682) (684)
Inventory, net of allowance $ 14,073 $ 12,305
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.25.3
Stock-Based Compensation - Narrative (Details) - USD ($)
$ / shares in Units, $ in Millions
3 Months Ended 9 Months Ended
May 20, 2025
May 23, 2024
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Stock-based compensation expense     $ 3.7 $ 4.2 $ 11.9 $ 12.7
Stock-based award, weighted-average grant date fair value (in dollars per share)         $ 21.81  
ESPP            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Discount from market price (in percent)         15.00%  
Offering period (in months)         6 months  
Purchase price of common stock (in percent)         85.00%  
Stock Options            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Stock-based award, term (in years)         10 years  
Stock-based award, vesting period (in years)         4 years  
Stock based award, unrecognized compensation expense     3.3   $ 3.3  
Stock based award, unrecognized compensation expense, period for recognition (in years)         2 years 10 months 24 days  
Restricted Stock Units            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Stock based award, unrecognized compensation expense     18.8   $ 18.8  
Stock based award, unrecognized compensation expense, period for recognition (in years)         2 years 8 months 12 days  
Restricted Stock Units | Minimum            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Stock-based award, vesting period (in years)         3 years  
Restricted Stock Units | Maximum            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Stock-based award, vesting period (in years)         4 years  
Performance Stock Units            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Stock-based award, vesting period (in years)         3 years  
Stock based award, unrecognized compensation expense     $ 7.5   $ 7.5  
Stock based award, unrecognized compensation expense, period for recognition (in years)         2 years 1 month 6 days  
Percentage of target, capable of being earned and vesting, lower limit     0.00%   0.00%  
Percentage of target, capable of being earned and vesting, upper limit     200.00%   200.00%  
Long-Term Incentive Plan 2022            
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]            
Number of shares available for issuance pursuant to awards (in shares) 296,000 430,000        
Stock-based award, term (in years)         10 years  
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.25.3
Stock-Based Compensation - Option Activity (Details)
9 Months Ended
Sep. 30, 2025
$ / shares
shares
Stock Options  
Options outstanding, beginning balance (in shares) | shares 445,136
Granted (in shares) | shares 139,872
Exercised (in shares) | shares (70,307)
Forfeited (in shares) | shares (103,013)
Expired (in shares) | shares (16,354)
Options outstanding, ending balance (in shares) | shares 395,334
Option exercisable (in shares) | shares 191,882
Weighted- Average Exercise Price  
Options outstanding, beginning balance (in dollars per share) | $ / shares $ 51.34
Granted (in dollars per share) | $ / shares 39.32
Exercised (in dollars per share) | $ / shares 34.27
Forfeited (in dollars per share) | $ / shares 37.68
Expired (in dollars per share) | $ / shares 87.74
Options outstanding, ending balance (in dollars per share) | $ / shares 52.18
Options exercisable, weighted-average exercise price (in dollars per share) | $ / shares $ 68.62
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.25.3
Stock-Based Compensation - Weighted Average Assumptions (Details)
9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Employee Stock Purchase Plan    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Expected life (years) 6 years 6 years
Expected dividend yield 0.00% 0.00%
Minimum | Employee Stock Purchase Plan    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate 4.09% 5.07%
Expected volatility 41.89% 30.97%
Maximum | Employee Stock Purchase Plan    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate 4.29% 5.16%
Expected volatility 65.60% 47.92%
Stock Options    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Expected life (years) 6 years 3 months 6 years 3 months
Expected dividend yield 0.00% 0.00%
Stock Options | Minimum    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate 4.13% 4.28%
Expected volatility 52.12% 50.62%
Stock Options | Maximum    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate 4.17% 4.30%
Expected volatility 52.99% 50.72%
Performance Stock Units    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate   4.37%
Expected life (years)   2 years 10 months 17 days
Expected volatility   51.40%
Expected dividend yield 0.00% 0.00%
Performance Stock Units | Minimum    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate 3.98%  
Expected life (years) 2 years 7 months 9 days  
Expected volatility 52.40%  
Performance Stock Units | Maximum    
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Risk-free interest rate 4.08%  
Expected life (years) 2 years 10 months 6 days  
Expected volatility 53.20%  
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.25.3
Stock-Based Compensation - Stock Activity (Details)
9 Months Ended
May 23, 2025
performancePeriod
shares
Sep. 30, 2025
$ / shares
shares
Restricted Stock Units    
Performance Stock Units    
Beginning balance (in shares)   763,261
Granted (in shares)   278,500
Restrictions lapsed (in shares)   (212,526)
Forfeited (in shares)   (103,268)
Ending balance (in shares)   725,967
Weighted- Average Grant Date Fair Value Per Share    
Beginning balance (in dollars per share) | $ / shares   $ 38.25
Granted (in dollars per share) | $ / shares   39.95
Restrictions lapsed (in dollars per share) | $ / shares   40.55
Forfeited (in dollars per share) | $ / shares   36.40
Ending balance (in dollars per share) | $ / shares   $ 38.49
Performance Stock Units    
Performance Stock Units    
Beginning balance (in shares)   180,173
Granted (in shares)   153,503
Restrictions lapsed (in shares)   (32,977)
Performance change (in shares)   0
Forfeited (in shares)   (68,887)
Ending balance (in shares)   231,812
Weighted- Average Grant Date Fair Value Per Share    
Beginning balance (in dollars per share) | $ / shares   $ 60.75
Granted (in dollars per share) | $ / shares   59.71
Restrictions lapsed (in dollars per share) | $ / shares   96.41
Performance change (in dollars per share) | $ / shares   0
Forfeited (in dollars per share) | $ / shares   57
Ending balance (in dollars per share) | $ / shares   $ 56.17
Percentage of target, capable of being earned and vesting, lower limit   0.00%
Percentage of target, capable of being earned and vesting, upper limit   200.00%
Stock-based award, vesting period (in years)   3 years
Performance Stock Units | Inducement Awards    
Performance Stock Units    
Granted (in shares) 54,320  
Performance Stock Units | Inducement Awards, Market Conditions    
Performance Stock Units    
Granted (in shares) 27,160  
Performance Stock Units | Inducement Awards, Performance Condition    
Performance Stock Units    
Granted (in shares) 27,160  
Weighted- Average Grant Date Fair Value Per Share    
Percentage of target, capable of being achieved during performance periods, lower 0.00%  
Percentage of target, capable of being achieved during performance periods, upper limit 100.00%  
Number of performance periods | performancePeriod 2  
Award performance period (in years) 6 months  
Percentage of target, capable of being earned and vesting, lower limit 0.00%  
Percentage of target, capable of being earned and vesting, upper limit 200.00%  
Stock-based award, vesting period (in years) 3 years  
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.25.3
Accumulated Other Comprehensive Income (Loss) (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
AOCI Attributable to Parent, Net of Tax [Roll Forward]        
Beginning balance $ 664,707 $ 685,236 $ 670,151 $ 695,295
Net unrealized gains on investments in securities        
Ending balance 664,719 679,993 664,719 679,993
Accumulated Other Comprehensive Loss        
AOCI Attributable to Parent, Net of Tax [Roll Forward]        
Beginning balance (24,563) (29,432) (27,984) (28,013)
Net unrealized gains on investments in securities        
Ending balance (24,724) (26,852) (24,724) (26,852)
Foreign currency translation adjustments        
Foreign currency translation adjustments        
Other comprehensive income (loss) before reclassifications (227) 2,430 3,076 827
Amounts reclassified from accumulated other comprehensive loss 0 0 0 0
Net unrealized gains on investments in securities        
Other comprehensive income before reclassifications (227) 2,430 3,076 827
Amounts reclassified from accumulated other comprehensive loss 0 0 0 0
Net current-period other comprehensive income (loss) (227) 2,430 3,076 827
Net unrealized gains on investments in securities        
Foreign currency translation adjustments        
Other comprehensive income (loss) before reclassifications 66 150 184 334
Amounts reclassified from accumulated other comprehensive loss 0 0 0 0
Net unrealized gains on investments in securities        
Other comprehensive income before reclassifications 66 150 184 334
Amounts reclassified from accumulated other comprehensive loss 0 0 0 0
Net current-period other comprehensive income (loss) $ 66 $ 150 $ 184 $ 334
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.25.3
Income Taxes (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Dec. 31, 2024
Income Tax Disclosure [Abstract]          
Provision for income taxes $ 3,035 $ 2,679 $ 7,668 $ 7,957  
Effective income tax rate (in percent) 29.60% 27.10% 33.50% 31.90%  
Effective income tax rate, increase during period (in percent) 2.50%   1.60%    
Federal statutory rate (in percent) 21.00%   21.00%    
Unrecognized tax benefits $ 3,700   $ 3,700   $ 3,400
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting - Schedule of Reportable Segments (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Segment Reporting Information [Line Items]        
Revenue $ 135,366 $ 125,619 $ 396,634 $ 379,140
Segment expenses 126,407 117,039 378,214 357,734
Exit, Disposal and Goodwill impairment cost (benefit) 149 0 110 0
Income from operations 8,810 8,580 18,310 21,406
United States        
Segment Reporting Information [Line Items]        
Revenue 109,361 99,571 320,340 299,593
Segment expenses 81,028 73,884 238,823 223,333
Exit, Disposal and Goodwill impairment cost (benefit) 0 0 0 0
Income from operations 28,333 25,687 81,517 76,260
Europe        
Segment Reporting Information [Line Items]        
Revenue 26,005 26,048 76,294 79,547
Segment expenses 28,696 28,446 87,815 86,121
Exit, Disposal and Goodwill impairment cost (benefit) 149 0 110 0
Income from operations (2,840) (2,398) (11,631) (6,574)
Corporate Unallocated        
Segment Reporting Information [Line Items]        
Revenue 0 0 0 0
Segment expenses 16,683 14,709 51,576 48,280
Exit, Disposal and Goodwill impairment cost (benefit) 0 0 0 0
Income from operations $ (16,683) $ (14,709) $ (51,576) $ (48,280)
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting - Schedule of Long-Lived Assets by Geographic Areas (Details) - USD ($)
$ in Thousands
Sep. 30, 2025
Dec. 31, 2024
Segment Reporting Information [Line Items]    
Total Long-lived Assets $ 211,325 $ 227,263
United States    
Segment Reporting Information [Line Items]    
Total Long-lived Assets 168,988 181,291
Europe    
Segment Reporting Information [Line Items]    
Total Long-lived Assets $ 42,337 $ 45,972
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting - Schedule of Expenditures For Additions To Long-Lived Assets (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Segment Reporting Information [Line Items]        
Total expenditures for additions to long-lived assets $ 4,062 $ 1,555 $ 6,792 $ 8,339
United States        
Segment Reporting Information [Line Items]        
Total expenditures for additions to long-lived assets 3,636 1,368 5,929 5,734
Europe        
Segment Reporting Information [Line Items]        
Total expenditures for additions to long-lived assets $ 426 $ 187 $ 863 $ 2,605
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting - Schedule of Depreciation and Amortization (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Segment Reporting Information [Line Items]        
Total depreciation and amortization $ 8,429 $ 8,909 $ 25,693 $ 26,984
United States        
Segment Reporting Information [Line Items]        
Total depreciation and amortization 6,904 7,156 20,916 21,667
Europe        
Segment Reporting Information [Line Items]        
Total depreciation and amortization 1,470 1,718 4,560 5,194
Corporate Unallocated        
Segment Reporting Information [Line Items]        
Total depreciation and amortization $ 55 $ 35 $ 217 $ 123
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.25.3
Segment Reporting - Schedule of Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Segment Reporting Information [Line Items]        
Total Revenue $ 135,366 $ 125,619 $ 396,634 $ 379,140
Injection Molding        
Segment Reporting Information [Line Items]        
Total Revenue 47,770 46,831 143,908 148,574
CNC Machining        
Segment Reporting Information [Line Items]        
Total Revenue 63,043 53,327 177,831 154,498
3D Printing        
Segment Reporting Information [Line Items]        
Total Revenue 20,082 21,437 61,491 64,300
Sheet Metal        
Segment Reporting Information [Line Items]        
Total Revenue 4,262 3,743 12,776 11,218
Other Revenue        
Segment Reporting Information [Line Items]        
Total Revenue $ 209 $ 281 $ 628 $ 550
XML 59 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 60 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 62 FilingSummary.xml IDEA: XBRL DOCUMENT 3.25.3 html 201 246 1 false 48 0 false 6 false false R1.htm 0000001 - Document - Cover Sheet http://www.protolabs.com/role/Cover Cover Cover 1 false false R2.htm 9952151 - Statement - Consolidated Balance Sheets Sheet http://www.protolabs.com/role/ConsolidatedBalanceSheets Consolidated Balance Sheets Statements 2 false false R3.htm 9952152 - Statement - Consolidated Balance Sheets (Parenthetical) Sheet http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 9952153 - Statement - Consolidated Statements of Comprehensive Income Sheet http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome Consolidated Statements of Comprehensive Income Statements 4 false false R5.htm 9952154 - Statement - Consolidated Statements of Shareholders' Equity Sheet http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity Consolidated Statements of Shareholders' Equity Statements 5 false false R6.htm 9952155 - Statement - Consolidated Statements of Cash Flows Sheet http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows Consolidated Statements of Cash Flows Statements 6 false false R7.htm 9952156 - Disclosure - Basis of Presentation Sheet http://www.protolabs.com/role/BasisofPresentation Basis of Presentation Notes 7 false false R8.htm 9952157 - Disclosure - Recent Accounting Pronouncements Sheet http://www.protolabs.com/role/RecentAccountingPronouncements Recent Accounting Pronouncements Notes 8 false false R9.htm 9952158 - Disclosure - Net Income per Common Share Sheet http://www.protolabs.com/role/NetIncomeperCommonShare Net Income per Common Share Notes 9 false false R10.htm 9952159 - Disclosure - Goodwill and Other Intangible Assets Sheet http://www.protolabs.com/role/GoodwillandOtherIntangibleAssets Goodwill and Other Intangible Assets Notes 10 false false R11.htm 9952160 - Disclosure - Fair Value Measurements Sheet http://www.protolabs.com/role/FairValueMeasurements Fair Value Measurements Notes 11 false false R12.htm 9952161 - Disclosure - Marketable Securities Sheet http://www.protolabs.com/role/MarketableSecurities Marketable Securities Notes 12 false false R13.htm 9952162 - Disclosure - Inventory Sheet http://www.protolabs.com/role/Inventory Inventory Notes 13 false false R14.htm 9952163 - Disclosure - Stock-Based Compensation Sheet http://www.protolabs.com/role/StockBasedCompensation Stock-Based Compensation Notes 14 false false R15.htm 9952164 - Disclosure - Accumulated Other Comprehensive Income (Loss) Sheet http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLoss Accumulated Other Comprehensive Income (Loss) Notes 15 false false R16.htm 9952165 - Disclosure - Income Taxes Sheet http://www.protolabs.com/role/IncomeTaxes Income Taxes Notes 16 false false R17.htm 9952166 - Disclosure - Segment Reporting Sheet http://www.protolabs.com/role/SegmentReporting Segment Reporting Notes 17 false false R18.htm 9952167 - Disclosure - Subsequent Event Sheet http://www.protolabs.com/role/SubsequentEvent Subsequent Event Notes 18 false false R19.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 19 false false R20.htm 9955511 - Disclosure - Net Income per Common Share (Tables) Sheet http://www.protolabs.com/role/NetIncomeperCommonShareTables Net Income per Common Share (Tables) Tables http://www.protolabs.com/role/NetIncomeperCommonShare 20 false false R21.htm 9955512 - Disclosure - Goodwill and Other Intangible Assets (Tables) Sheet http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsTables Goodwill and Other Intangible Assets (Tables) Tables http://www.protolabs.com/role/GoodwillandOtherIntangibleAssets 21 false false R22.htm 9955513 - Disclosure - Fair Value Measurements (Tables) Sheet http://www.protolabs.com/role/FairValueMeasurementsTables Fair Value Measurements (Tables) Tables http://www.protolabs.com/role/FairValueMeasurements 22 false false R23.htm 9955514 - Disclosure - Marketable Securities (Tables) Sheet http://www.protolabs.com/role/MarketableSecuritiesTables Marketable Securities (Tables) Tables http://www.protolabs.com/role/MarketableSecurities 23 false false R24.htm 9955515 - Disclosure - Inventory (Tables) Sheet http://www.protolabs.com/role/InventoryTables Inventory (Tables) Tables http://www.protolabs.com/role/Inventory 24 false false R25.htm 9955516 - Disclosure - Stock-Based Compensation (Tables) Sheet http://www.protolabs.com/role/StockBasedCompensationTables Stock-Based Compensation (Tables) Tables http://www.protolabs.com/role/StockBasedCompensation 25 false false R26.htm 9955517 - Disclosure - Accumulated Other Comprehensive Income (Loss) (Tables) Sheet http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossTables Accumulated Other Comprehensive Income (Loss) (Tables) Tables http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLoss 26 false false R27.htm 9955518 - Disclosure - Segment Reporting (Tables) Sheet http://www.protolabs.com/role/SegmentReportingTables Segment Reporting (Tables) Tables http://www.protolabs.com/role/SegmentReporting 27 false false R28.htm 9955519 - Disclosure - Net Income per Common Share - Narrative (Details) Sheet http://www.protolabs.com/role/NetIncomeperCommonShareNarrativeDetails Net Income per Common Share - Narrative (Details) Details 28 false false R29.htm 9955520 - Disclosure - Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details) Sheet http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details) Details 29 false false R30.htm 9955521 - Disclosure - Goodwill and Other Intangible Assets - Narrative (Details) Sheet http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails Goodwill and Other Intangible Assets - Narrative (Details) Details 30 false false R31.htm 9955522 - Disclosure - Goodwill and Other Intangible Assets - Schedule of Intangible Assets Other Than Goodwill (Details) Sheet http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails Goodwill and Other Intangible Assets - Schedule of Intangible Assets Other Than Goodwill (Details) Details 31 false false R32.htm 9955523 - Disclosure - Goodwill and Other Intangible Assets - Schedule of Aggregated Amortization Expense (Details) Sheet http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails Goodwill and Other Intangible Assets - Schedule of Aggregated Amortization Expense (Details) Details 32 false false R33.htm 9955524 - Disclosure - Fair Value Measurements (Details) Sheet http://www.protolabs.com/role/FairValueMeasurementsDetails Fair Value Measurements (Details) Details http://www.protolabs.com/role/FairValueMeasurementsTables 33 false false R34.htm 9955525 - Disclosure - Marketable Securities - Schedule of Short-Term and Long-Term Marketable Securities (Details) Sheet http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails Marketable Securities - Schedule of Short-Term and Long-Term Marketable Securities (Details) Details 34 false false R35.htm 9955526 - Disclosure - Marketable Securities - Schedule of Available-For-Sale Debt Securities by Contractual Maturity (Details) Sheet http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails Marketable Securities - Schedule of Available-For-Sale Debt Securities by Contractual Maturity (Details) Details 35 false false R36.htm 9955527 - Disclosure - Inventory (Details) Sheet http://www.protolabs.com/role/InventoryDetails Inventory (Details) Details http://www.protolabs.com/role/InventoryTables 36 false false R37.htm 9955528 - Disclosure - Stock-Based Compensation - Narrative (Details) Sheet http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails Stock-Based Compensation - Narrative (Details) Details 37 false false R38.htm 9955529 - Disclosure - Stock-Based Compensation - Option Activity (Details) Sheet http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails Stock-Based Compensation - Option Activity (Details) Details 38 false false R39.htm 9955530 - Disclosure - Stock-Based Compensation - Weighted Average Assumptions (Details) Sheet http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails Stock-Based Compensation - Weighted Average Assumptions (Details) Details 39 false false R40.htm 9955531 - Disclosure - Stock-Based Compensation - Stock Activity (Details) Sheet http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails Stock-Based Compensation - Stock Activity (Details) Details 40 false false R41.htm 9955532 - Disclosure - Accumulated Other Comprehensive Income (Loss) (Details) Sheet http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails Accumulated Other Comprehensive Income (Loss) (Details) Details http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossTables 41 false false R42.htm 9955533 - Disclosure - Income Taxes (Details) Sheet http://www.protolabs.com/role/IncomeTaxesDetails Income Taxes (Details) Details http://www.protolabs.com/role/IncomeTaxes 42 false false R43.htm 9955534 - Disclosure - Segment Reporting - Schedule of Reportable Segments (Details) Sheet http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails Segment Reporting - Schedule of Reportable Segments (Details) Details 43 false false R44.htm 9955535 - Disclosure - Segment Reporting - Schedule of Long-Lived Assets by Geographic Areas (Details) Sheet http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails Segment Reporting - Schedule of Long-Lived Assets by Geographic Areas (Details) Details 44 false false R45.htm 9955536 - Disclosure - Segment Reporting - Schedule of Expenditures For Additions To Long-Lived Assets (Details) Sheet http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails Segment Reporting - Schedule of Expenditures For Additions To Long-Lived Assets (Details) Details 45 false false R46.htm 9955537 - Disclosure - Segment Reporting - Schedule of Depreciation and Amortization (Details) Sheet http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails Segment Reporting - Schedule of Depreciation and Amortization (Details) Details 46 false false R47.htm 9955538 - Disclosure - Segment Reporting - Schedule of Disaggregation of Revenue (Details) Sheet http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails Segment Reporting - Schedule of Disaggregation of Revenue (Details) Details 47 false false All Reports Book All Reports prlb-20250930.htm prlb-20250930.xsd prlb-20250930_cal.xml prlb-20250930_def.xml prlb-20250930_lab.xml prlb-20250930_pre.xml http://fasb.org/us-gaap/2025 http://xbrl.sec.gov/dei/2025 http://xbrl.sec.gov/ecd/2025 true true JSON 65 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "prlb-20250930.htm": { "nsprefix": "prlb", "nsuri": "http://www.protolabs.com/20250930", "dts": { "inline": { "local": [ "prlb-20250930.htm" ] }, "schema": { "local": [ "prlb-20250930.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://www.xbrl.org/dtr/type/2024-01-31/types.xsd", "https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd", "https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd", "https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd", "https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd", "https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd", "https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd", "https://xbrl.sec.gov/country/2025/country-2025.xsd", "https://xbrl.sec.gov/dei/2025/dei-2025.xsd", "https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd", "https://xbrl.sec.gov/stpr/2025/stpr-2025.xsd" ] }, "calculationLink": { "local": [ "prlb-20250930_cal.xml" ] }, "definitionLink": { "local": [ "prlb-20250930_def.xml" ] }, "labelLink": { "local": [ "prlb-20250930_lab.xml" ] }, "presentationLink": { "local": [ "prlb-20250930_pre.xml" ] } }, "keyStandard": 231, "keyCustom": 15, "axisStandard": 15, "axisCustom": 0, "memberStandard": 26, "memberCustom": 22, "hidden": { "total": 10, "http://xbrl.sec.gov/ecd/2025": 2, "http://www.protolabs.com/20250930": 1, "http://xbrl.sec.gov/dei/2025": 5, "http://fasb.org/us-gaap/2025": 2 }, "contextCount": 201, "entityCount": 1, "segmentCount": 48, "elementCount": 474, "unitCount": 6, "baseTaxonomies": { "http://fasb.org/us-gaap/2025": 780, "http://xbrl.sec.gov/dei/2025": 29, "http://xbrl.sec.gov/ecd/2025": 22 }, "report": { "R1": { "role": "http://www.protolabs.com/role/Cover", "longName": "0000001 - Document - Cover", "shortName": "Cover", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "c-1", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.protolabs.com/role/ConsolidatedBalanceSheets", "longName": "9952151 - Statement - Consolidated Balance Sheets", "shortName": "Consolidated Balance Sheets", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R3": { "role": "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical", "longName": "9952152 - Statement - Consolidated Balance Sheets (Parenthetical)", "shortName": "Consolidated Balance Sheets (Parenthetical)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "div", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "longName": "9952153 - Statement - Consolidated Statements of Comprehensive Income", "shortName": "Consolidated Statements of Comprehensive Income", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:CostOfGoodsAndServicesSold", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R5": { "role": "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity", "longName": "9952154 - Statement - Consolidated Statements of Shareholders' Equity", "shortName": "Consolidated Statements of Shareholders' Equity", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "c-40", "name": "us-gaap:CommonStockSharesOutstanding", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-45", "name": "us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R6": { "role": "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows", "longName": "9952155 - Statement - Consolidated Statements of Cash Flows", "shortName": "Consolidated Statements of Cash Flows", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:NetIncomeLoss", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ShareBasedCompensation", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R7": { "role": "http://www.protolabs.com/role/BasisofPresentation", "longName": "9952156 - Disclosure - Basis of Presentation", "shortName": "Basis of Presentation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R8": { "role": "http://www.protolabs.com/role/RecentAccountingPronouncements", "longName": "9952157 - Disclosure - Recent Accounting Pronouncements", "shortName": "Recent Accounting Pronouncements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.protolabs.com/role/NetIncomeperCommonShare", "longName": "9952158 - Disclosure - Net Income per Common Share", "shortName": "Net Income per Common Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssets", "longName": "9952159 - Disclosure - Goodwill and Other Intangible Assets", "shortName": "Goodwill and Other Intangible Assets", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.protolabs.com/role/FairValueMeasurements", "longName": "9952160 - Disclosure - Fair Value Measurements", "shortName": "Fair Value Measurements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.protolabs.com/role/MarketableSecurities", "longName": "9952161 - Disclosure - Marketable Securities", "shortName": "Marketable Securities", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:InvestmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:InvestmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.protolabs.com/role/Inventory", "longName": "9952162 - Disclosure - Inventory", "shortName": "Inventory", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.protolabs.com/role/StockBasedCompensation", "longName": "9952163 - Disclosure - Stock-Based Compensation", "shortName": "Stock-Based Compensation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLoss", "longName": "9952164 - Disclosure - Accumulated Other Comprehensive Income (Loss)", "shortName": "Accumulated Other Comprehensive Income (Loss)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:DisclosureOfReclassificationAmountTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:DisclosureOfReclassificationAmountTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.protolabs.com/role/IncomeTaxes", "longName": "9952165 - Disclosure - Income Taxes", "shortName": "Income Taxes", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.protolabs.com/role/SegmentReporting", "longName": "9952166 - Disclosure - Segment Reporting", "shortName": "Segment Reporting", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.protolabs.com/role/SubsequentEvent", "longName": "9952167 - Disclosure - Subsequent Event", "shortName": "Subsequent Event", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R19": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "c-5", "name": "ecd:NonRule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "ecd:NonRule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.protolabs.com/role/NetIncomeperCommonShareTables", "longName": "9955511 - Disclosure - Net Income per Common Share (Tables)", "shortName": "Net Income per Common Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "20", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsTables", "longName": "9955512 - Disclosure - Goodwill and Other Intangible Assets (Tables)", "shortName": "Goodwill and Other Intangible Assets (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "21", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.protolabs.com/role/FairValueMeasurementsTables", "longName": "9955513 - Disclosure - Fair Value Measurements (Tables)", "shortName": "Fair Value Measurements (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "22", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.protolabs.com/role/MarketableSecuritiesTables", "longName": "9955514 - Disclosure - Marketable Securities (Tables)", "shortName": "Marketable Securities (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "23", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.protolabs.com/role/InventoryTables", "longName": "9955515 - Disclosure - Inventory (Tables)", "shortName": "Inventory (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "24", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.protolabs.com/role/StockBasedCompensationTables", "longName": "9955516 - Disclosure - Stock-Based Compensation (Tables)", "shortName": "Stock-Based Compensation (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossTables", "longName": "9955517 - Disclosure - Accumulated Other Comprehensive Income (Loss) (Tables)", "shortName": "Accumulated Other Comprehensive Income (Loss) (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfComprehensiveIncomeLossTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfComprehensiveIncomeLossTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.protolabs.com/role/SegmentReportingTables", "longName": "9955518 - Disclosure - Segment Reporting (Tables)", "shortName": "Segment Reporting (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.protolabs.com/role/NetIncomeperCommonShareNarrativeDetails", "longName": "9955519 - Disclosure - Net Income per Common Share - Narrative (Details)", "shortName": "Net Income per Common Share - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "28", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "0", "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "0", "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails", "longName": "9955520 - Disclosure - Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details)", "shortName": "Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "29", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:NetIncomeLoss", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "0", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R30": { "role": "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "longName": "9955521 - Disclosure - Goodwill and Other Intangible Assets - Narrative (Details)", "shortName": "Goodwill and Other Intangible Assets - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "30", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:GoodwillPeriodIncreaseDecrease", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "us-gaap:GoodwillPeriodIncreaseDecrease", "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:GoodwillPeriodIncreaseDecrease", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "us-gaap:GoodwillPeriodIncreaseDecrease", "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails", "longName": "9955522 - Disclosure - Goodwill and Other Intangible Assets - Schedule of Intangible Assets Other Than Goodwill (Details)", "shortName": "Goodwill and Other Intangible Assets - Schedule of Intangible Assets Other Than Goodwill (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "31", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails", "longName": "9955523 - Disclosure - Goodwill and Other Intangible Assets - Schedule of Aggregated Amortization Expense (Details)", "shortName": "Goodwill and Other Intangible Assets - Schedule of Aggregated Amortization Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "32", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.protolabs.com/role/FairValueMeasurementsDetails", "longName": "9955524 - Disclosure - Fair Value Measurements (Details)", "shortName": "Fair Value Measurements (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-97", "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R34": { "role": "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails", "longName": "9955525 - Disclosure - Marketable Securities - Schedule of Short-Term and Long-Term Marketable Securities (Details)", "shortName": "Marketable Securities - Schedule of Short-Term and Long-Term Marketable Securities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails", "longName": "9955526 - Disclosure - Marketable Securities - Schedule of Available-For-Sale Debt Securities by Contractual Maturity (Details)", "shortName": "Marketable Securities - Schedule of Available-For-Sale Debt Securities by Contractual Maturity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.protolabs.com/role/InventoryDetails", "longName": "9955527 - Disclosure - Inventory (Details)", "shortName": "Inventory (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:InventoryGross", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-3", "name": "us-gaap:InventoryGross", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R37": { "role": "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "longName": "9955528 - Disclosure - Stock-Based Compensation - Narrative (Details)", "shortName": "Stock-Based Compensation - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-5", "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-5", "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails", "longName": "9955529 - Disclosure - Stock-Based Compensation - Option Activity (Details)", "shortName": "Stock-Based Compensation - Option Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "c-4", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-4", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R39": { "role": "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails", "longName": "9955530 - Disclosure - Stock-Based Compensation - Weighted Average Assumptions (Details)", "shortName": "Stock-Based Compensation - Weighted Average Assumptions (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "c-141", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-141", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R40": { "role": "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "longName": "9955531 - Disclosure - Stock-Based Compensation - Stock Activity (Details)", "shortName": "Stock-Based Compensation - Stock Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "c-124", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-124", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "shares", "xsiNil": "false", "lang": "en-US", "decimals": "INF", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R41": { "role": "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails", "longName": "9955532 - Disclosure - Accumulated Other Comprehensive Income (Loss) (Details)", "shortName": "Accumulated Other Comprehensive Income (Loss) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "c-31", "name": "us-gaap:StockholdersEquity", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-143", "name": "us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:ScheduleOfComprehensiveIncomeLossTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R42": { "role": "http://www.protolabs.com/role/IncomeTaxesDetails", "longName": "9955533 - Disclosure - Income Taxes (Details)", "shortName": "Income Taxes (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:IncomeTaxExpenseBenefit", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "number", "xsiNil": "false", "lang": "en-US", "decimals": "3", "ancestors": [ "span", "div", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R43": { "role": "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails", "longName": "9955534 - Disclosure - Segment Reporting - Schedule of Reportable Segments (Details)", "shortName": "Segment Reporting - Schedule of Reportable Segments (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:SegmentReportingOtherItemAmount", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "ix:continuation", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R44": { "role": "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "longName": "9955535 - Disclosure - Segment Reporting - Schedule of Long-Lived Assets by Geographic Areas (Details)", "shortName": "Segment Reporting - Schedule of Long-Lived Assets by Geographic Areas (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "c-3", "name": "us-gaap:PropertyPlantAndEquipmentNet", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LongLivedAssetsByGeographicAreasTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-163", "name": "us-gaap:PropertyPlantAndEquipmentNet", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:LongLivedAssetsByGeographicAreasTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R45": { "role": "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails", "longName": "9955536 - Disclosure - Segment Reporting - Schedule of Expenditures For Additions To Long-Lived Assets (Details)", "shortName": "Segment Reporting - Schedule of Expenditures For Additions To Long-Lived Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:SegmentExpenditureAdditionToLongLivedAssets", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "prlb:ExpendituresForAdditionsToLongLivedAssetsByGeographicRegionTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-5", "name": "us-gaap:SegmentExpenditureAdditionToLongLivedAssets", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "prlb:ExpendituresForAdditionsToLongLivedAssetsByGeographicRegionTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "longName": "9955537 - Disclosure - Segment Reporting - Schedule of Depreciation and Amortization (Details)", "shortName": "Segment Reporting - Schedule of Depreciation and Amortization (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:DepreciationDepletionAndAmortization", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "prlb:DepreciationAndAmortizationByGeographicRegionTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-151", "name": "us-gaap:DepreciationDepletionAndAmortization", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "prlb:DepreciationAndAmortizationByGeographicRegionTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } }, "R47": { "role": "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails", "longName": "9955538 - Disclosure - Segment Reporting - Schedule of Disaggregation of Revenue (Details)", "shortName": "Segment Reporting - Schedule of Disaggregation of Revenue (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "c-5", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "first": true }, "uniqueAnchor": { "contextRef": "c-175", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "usd", "xsiNil": "false", "lang": "en-US", "decimals": "-3", "ancestors": [ "span", "td", "tr", "table", "div", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250930.htm", "unique": true } } }, "tag": { "prlb_A3DHubsInc.HubsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "A3DHubsInc.HubsMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "3D Hubs, Inc. (Hubs)", "label": "3D Hubs, Inc. (Hubs) [Member]", "documentation": "" } } }, "auth_ref": [] }, "us-gaap_AOCIAttributableToParentNetOfTaxRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AOCIAttributableToParentNetOfTaxRollForward", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "AOCI Attributable to Parent, Net of Tax [Roll Forward]", "label": "AOCI Attributable to Parent, Net of Tax [Roll Forward]", "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period." } } }, "auth_ref": [] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "terseLabel": "Accounting Policies [Abstract]", "label": "Accounting Policies [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Accounts payable", "label": "Accounts Payable, Current", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r26", "r823" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Accounts receivable, net of allowance for doubtful accounts of $2,378 and $1,975 as of September\u00a030, 2025, and December\u00a031, 2024, respectively", "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current." } } }, "auth_ref": [ "r1015" ] }, "us-gaap_AccretionExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccretionExpense", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Interest on finance lease obligations", "label": "Accretion Expense", "documentation": "Amount recognized for the passage of time, typically for liabilities, that have been discounted to their net present values. Excludes accretion associated with asset retirement obligations." } } }, "auth_ref": [ "r757", "r1051" ] }, "us-gaap_AccruedLiabilitiesAndOtherLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccruedLiabilitiesAndOtherLiabilities", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued liabilities and other", "label": "Accrued Liabilities and Other Liabilities", "documentation": "Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other." } } }, "auth_ref": [] }, "us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccumulatedNetUnrealizedInvestmentGainLossMember", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Net unrealized gains on investments in securities", "label": "AOCI, Accumulated Gain (Loss), Debt Securities, Available-for-Sale, Parent [Member]", "documentation": "Accumulated unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), attributable to parent." } } }, "auth_ref": [ "r105", "r106", "r108", "r115", "r116", "r953" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccumulatedOtherComprehensiveIncomeLossLineItems", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Line Items]", "label": "Accumulated Other Comprehensive Income (Loss) [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r114", "r115", "r458", "r459", "r460", "r461", "r496", "r497", "r498", "r499", "r500", "r501" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated other comprehensive loss", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r17", "r18", "r48", "r101", "r600", "r636", "r637", "r1093" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccumulatedOtherComprehensiveIncomeLossTable", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Table]", "label": "Accumulated Other Comprehensive Income (Loss) [Table]", "documentation": "Disclosure of information about components of accumulated other comprehensive income (loss)." } } }, "auth_ref": [ "r114", "r115", "r458", "r459", "r460", "r461", "r496", "r497", "r498", "r499", "r500", "r501" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated Other Comprehensive Loss", "label": "AOCI Attributable to Parent [Member]", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r1", "r10", "r18", "r453", "r456", "r509", "r632", "r633", "r953", "r954", "r955", "r1004", "r1005", "r1006", "r1007" ] }, "us-gaap_AccumulatedTranslationAdjustmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AccumulatedTranslationAdjustmentMember", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Foreign currency translation adjustments", "label": "Accumulated Foreign Currency Adjustment Attributable to Parent [Member]", "documentation": "Accumulated other comprehensive income (loss) resulting from foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to the parent." } } }, "auth_ref": [ "r2", "r10", "r18", "r46", "r47", "r115", "r116", "r497", "r498", "r499", "r500", "r501", "r953" ] }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AcquiredFiniteLivedIntangibleAssetsLineItems", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Intangible Asset, Acquired, Finite-Lived [Line Items]", "label": "Intangible Asset, Acquired, Finite-Lived [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r265", "r266", "r267", "r269", "r640", "r725" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Additional 402(v) Disclosure", "label": "Additional 402(v) Disclosure [Text Block]" } } }, "auth_ref": [ "r889" ] }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AdditionalPaidInCapitalCommonStock", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Additional paid-in capital", "label": "Additional Paid in Capital, Common Stock", "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." } } }, "auth_ref": [ "r36" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Additional Paid-In Capital", "label": "Additional Paid-in Capital [Member]", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r646", "r1004", "r1005", "r1006", "r1007", "r1094", "r1149" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Adjustment to Compensation, Amount", "label": "Adjustment to Compensation Amount" } } }, "auth_ref": [ "r902" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Adjustment to Compensation:", "label": "Adjustment to Compensation [Axis]" } } }, "auth_ref": [ "r902" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote", "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]" } } }, "auth_ref": [ "r902" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Adjustment To PEO Compensation, Footnote", "label": "Adjustment To PEO Compensation, Footnote [Text Block]" } } }, "auth_ref": [ "r902" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based compensation expense", "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r325" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Common shares issued on exercise of options and other, net of shares withheld for tax obligations", "label": "Adjustments to Additional Paid in Capital, Stock Issued, Issuance Costs", "documentation": "Amount of decrease in additional paid in capital (APIC) resulting from direct costs associated with issuing stock. Includes, but is not limited to, legal and accounting fees and direct costs associated with stock issues under a shelf registration." } } }, "auth_ref": [ "r11", "r68" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:", "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [Abstract]" } } }, "auth_ref": [] }, "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table", "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]" } } }, "auth_ref": [ "r935" ] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate Erroneous Compensation Amount", "label": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r861", "r871", "r881", "r913" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined", "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]" } } }, "auth_ref": [ "r864", "r874", "r884", "r916" ] }, "ecd_AggtPnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AggtPnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate Pension Adjustments Service Cost", "label": "Aggregate Pension Adjustments Service Cost [Member]" } } }, "auth_ref": [ "r936" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "All Adjustments to Compensation", "label": "All Adjustments to Compensation [Member]" } } }, "auth_ref": [ "r902" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "All Executive Categories", "label": "All Executive Categories [Member]" } } }, "auth_ref": [ "r909" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "All Individuals", "label": "All Individuals [Member]" } } }, "auth_ref": [ "r865", "r875", "r885", "r909", "r917", "r921", "r929" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "All Trading Arrangements", "label": "All Trading Arrangements [Member]" } } }, "auth_ref": [ "r927" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based compensation expense", "label": "Share-Based Payment Arrangement, Expense", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r356", "r362", "r363" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Allowance for credit loss, current", "label": "Accounts Receivable, Allowance for Credit Loss, Current", "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current." } } }, "auth_ref": [ "r102", "r204", "r240" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "AmendmentFlag", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Amendment Flag", "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Amortization expense for intangible assets", "label": "Amortization of Intangible Assets", "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets." } } }, "auth_ref": [ "r6", "r120", "r264", "r271", "r729", "r732", "r733", "r735", "r737" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.protolabs.com/role/NetIncomeperCommonShareNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Anti-dilutive options excluded from calculation of diluted weighted average shares outstanding (in shares)", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented." } } }, "auth_ref": [ "r161" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "totalLabel": "Total assets", "label": "Assets", "documentation": "Amount of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r75", "r82", "r100", "r129", "r130", "r131", "r165", "r173", "r191", "r195", "r237", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r446", "r449", "r494", "r586", "r587", "r596", "r673", "r749", "r750", "r760", "r823", "r839", "r840", "r852", "r1054", "r1055", "r1107" ] }, "us-gaap_AssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AssetsAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Assets", "label": "Assets [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "totalLabel": "Total current assets", "label": "Assets, Current", "documentation": "Amount of asset recognized for present right to economic benefit, classified as current." } } }, "auth_ref": [ "r94", "r104", "r129", "r130", "r131", "r237", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r446", "r449", "r494", "r823", "r1054", "r1055", "r1107" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Current assets", "label": "Assets, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AssetsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AssetsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/FairValueMeasurementsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Total", "label": "Assets, Fair Value Disclosure", "documentation": "Fair value portion of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r467", "r468", "r811" ] }, "us-gaap_AssetsFairValueDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AssetsFairValueDisclosureAbstract", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Financial Assets:", "label": "Assets, Fair Value Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails": { "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Unrealized Gains", "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax", "documentation": "Amount, before tax, of unrealized gain 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)." } } }, "auth_ref": [ "r210" ] }, "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails": { "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Unrealized Losses", "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax", "documentation": "Amount, before tax, of unrealized 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)." } } }, "auth_ref": [ "r211" ] }, "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Cost", "label": "Debt Securities, Available-for-Sale, Amortized Cost", "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)." } } }, "auth_ref": [ "r207", "r246", "r595" ] }, "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleSecuritiesDebtMaturitiesAbstract", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Available-for-Sale Securities, Debt Maturities [Abstract]", "label": "Available-for-Sale Securities, Debt Maturities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails": { "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Due after one year through five years", "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, after Year One Through Five", "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing in second through fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r215", "r591" ] }, "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesFairValueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleSecuritiesDebtMaturitiesFairValueAbstract", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Debt Securities, Available-for-Sale, Fair Value, Fiscal Year Maturity [Abstract]", "label": "Debt Securities, Available-for-Sale, Fair Value, Fiscal Year Maturity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails": { "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Due in one year or less", "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One", "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r214", "r590" ] }, "us-gaap_AvailableForSaleSecuritiesDebtSecurities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AvailableForSaleSecuritiesDebtSecurities", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/FairValueMeasurementsDetails": { "parentTag": "us-gaap_AssetsFairValueDisclosure", "weight": 1.0, "order": 2.0 }, "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails": { "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis", "weight": 1.0, "order": 3.0 }, "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails", "http://www.protolabs.com/role/MarketableSecuritiesScheduleofAvailableForSaleDebtSecuritiesbyContractualMaturityDetails", "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "verboseLabel": "Marketable securities", "terseLabel": "Fair Value", "totalLabel": "Total marketable securities", "label": "Debt Securities, Available-for-Sale", "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r208", "r246", "r467", "r489", "r490", "r491", "r492", "r583", "r726", "r811", "r815", "r822", "r1017", "r1098", "r1099", "r1100" ] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Exercise Price", "label": "Award Exercise Price" } } }, "auth_ref": [ "r924" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value as of Grant Date", "label": "Award Grant Date Fair Value" } } }, "auth_ref": [ "r925" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]" } } }, "auth_ref": [ "r920" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Timing, How MNPI Considered", "label": "Award Timing, How MNPI Considered [Text Block]" } } }, "auth_ref": [ "r920" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Timing Method", "label": "Award Timing Method [Text Block]" } } }, "auth_ref": [ "r920" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Timing MNPI Considered", "label": "Award Timing MNPI Considered [Flag]" } } }, "auth_ref": [ "r920" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Timing MNPI Disclosure", "label": "Award Timing MNPI Disclosure [Text Block]" } } }, "auth_ref": [ "r920" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Timing Predetermined", "label": "Award Timing Predetermined [Flag]" } } }, "auth_ref": [ "r920" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "AwardTypeAxis", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Type [Axis]", "label": "Award Type [Axis]", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r351", "r352", "r353", "r354", "r355" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Underlying Securities", "label": "Award Underlying Securities Amount" } } }, "auth_ref": [ "r923" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Name", "label": "Awards Close in Time to MNPI Disclosures, Individual Name" } } }, "auth_ref": [ "r922" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Awards Close in Time to MNPI Disclosures", "label": "Awards Close in Time to MNPI Disclosures [Table]" } } }, "auth_ref": [ "r921" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Awards Close in Time to MNPI Disclosures, Table", "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]" } } }, "auth_ref": [ "r921" ] }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "BusinessAcquisitionAcquireeDomain", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Business Combination [Domain]", "label": "Business Combination [Domain]", "documentation": "Business combination or series of individually immaterial business combinations." } } }, "auth_ref": [ "r262", "r265", "r266", "r267", "r268", "r269", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r413", "r414", "r415", "r416", "r417", "r418", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r434", "r435", "r436", "r437", "r438", "r439", "r440", "r441", "r442", "r443", "r640", "r770", "r771", "r1089", "r1090", "r1091" ] }, "us-gaap_BusinessAcquisitionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "BusinessAcquisitionAxis", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Business Combination [Axis]", "label": "Business Combination [Axis]", "documentation": "Information by business combination or series of individually immaterial business combinations." } } }, "auth_ref": [ "r262", "r265", "r266", "r267", "r268", "r269", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r413", "r414", "r415", "r416", "r417", "r418", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r434", "r435", "r436", "r437", "r438", "r439", "r440", "r441", "r442", "r443", "r640", "r770", "r771", "r1089", "r1090", "r1091" ] }, "prlb_CNCMachiningFirstcutMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "CNCMachiningFirstcutMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "CNC Machining", "label": "CNC Machining (Firstcut) [Member]", "documentation": "Represents the CNC Machining (Firstcut) product." } } }, "auth_ref": [] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Cash and cash equivalents", "label": "Cash and Cash Equivalent", "documentation": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate." } } }, "auth_ref": [ "r21", "r96", "r730" ] }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CashAndCashEquivalentsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/FairValueMeasurementsDetails": { "parentTag": "us-gaap_AssetsFairValueDisclosure", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Cash and cash equivalents", "label": "Cash and Cash Equivalents, Fair Value Disclosure", "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r490", "r491", "r492", "r1096", "r1097" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "periodStartLabel": "Cash and cash equivalents, beginning of period", "periodEndLabel": "Cash and cash equivalents, end of period", "label": "Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Including Discontinued Operation", "documentation": "Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate." } } }, "auth_ref": [ "r21", "r60", "r126" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "totalLabel": "Net increase in cash and cash equivalents", "label": "Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Including Exchange Rate Effect and Discontinued Operation", "documentation": "Amount of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including effect from exchange rate change and including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate." } } }, "auth_ref": [ "r0", "r60" ] }, "us-gaap_CashMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CashMember", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Cash", "label": "Cash [Member]", "documentation": "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." } } }, "auth_ref": [ "r96" ] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Changed Peer Group, Footnote", "label": "Changed Peer Group, Footnote [Text Block]" } } }, "auth_ref": [ "r900" ] }, "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year", "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]" } } }, "auth_ref": [ "r897" ] }, "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested", "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]" } } }, "auth_ref": [ "r895" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "CityAreaCode", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "City Area Code", "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Company Selected Measure Amount", "label": "Company Selected Measure Amount" } } }, "auth_ref": [ "r901" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Company Selected Measure Name", "label": "Company Selected Measure Name" } } }, "auth_ref": [ "r901" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CommonStockMember", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Common Stock", "label": "Common Stock [Member]", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r843", "r844", "r845", "r847", "r848", "r849", "r850", "r1004", "r1005", "r1007", "r1094", "r1147", "r1149" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, par value (in dollars per share)", "label": "Common Stock, Par or Stated Value Per Share", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r35" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, authorized (in shares)", "label": "Common Stock, Shares Authorized", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r35", "r661" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, issued (in shares)", "label": "Common Stock, Shares, Issued", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r35" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, outstanding (in shares)", "periodStartLabel": "Beginning balance (in shares)", "periodEndLabel": "Ending balance (in shares)", "label": "Common Stock, Shares, Outstanding", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r11", "r35", "r661", "r679", "r1149", "r1150" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, $0.001 par value, authorized 150,000,000 shares; issued and outstanding 23,677,746 and 24,226,088 shares as of September\u00a030, 2025, and December\u00a031, 2024, respectively", "label": "Common Stock, Value, Issued", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r35", "r298", "r304", "r599", "r823" ] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Compensation Actually Paid vs. Company Selected Measure", "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]" } } }, "auth_ref": [ "r906" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Compensation Actually Paid vs. Net Income", "label": "Compensation Actually Paid vs. Net Income [Text Block]" } } }, "auth_ref": [ "r905" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Compensation Actually Paid vs. Other Measure", "label": "Compensation Actually Paid vs. Other Measure [Text Block]" } } }, "auth_ref": [ "r907" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return", "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]" } } }, "auth_ref": [ "r904" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Comprehensive income", "verboseLabel": "Comprehensive income", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r19", "r111", "r113", "r117", "r584", "r608", "r609" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ComprehensiveIncomeNetOfTaxAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Comprehensive Income (net of tax)", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent [Abstract]" } } }, "auth_ref": [] }, "us-gaap_ComputerSoftwareIntangibleAssetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ComputerSoftwareIntangibleAssetMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Software technology", "label": "Computer Software, Intangible Asset [Member]", "documentation": "Collection of computer programs and related data that provide instructions to a computer, for example, but not limited to, application program, control module or operating system, that perform one or more particular functions or tasks." } } }, "auth_ref": [ "r725", "r805", "r1040", "r1041", "r1042", "r1043", "r1044", "r1046", "r1048", "r1049" ] }, "us-gaap_CorporateAndOtherMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CorporateAndOtherMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Corporate Unallocated", "label": "Corporate Segment and Other Operating Segment [Member]", "documentation": "Component of entity providing financial and operational oversight and administrative support considered to be operating segment and operating segment, classified as other. Excludes intersegment elimination and reconciling item." } } }, "auth_ref": [ "r1010" ] }, "us-gaap_CorporateDebtSecuritiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CorporateDebtSecuritiesMember", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Corporate debt securities", "label": "Corporate Debt Securities [Member]", "documentation": "Debt securities issued by domestic or foreign corporate business, banks and other entities with a promise of repayment." } } }, "auth_ref": [ "r765", "r767", "r769", "r811", "r824", "r841", "r1144" ] }, "us-gaap_CostOfGoodsAndServicesSold": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "CostOfGoodsAndServicesSold", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Cost of revenue", "label": "Cost of Product and Service Sold", "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities." } } }, "auth_ref": [ "r51", "r52", "r544", "r733", "r738", "r810", "r993" ] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "terseLabel": "Cover [Abstract]", "label": "Cover [Abstract]", "documentation": "Cover page." } } }, "auth_ref": [] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Current Fiscal Year End Date", "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_DebtSecuritiesAvailableForSaleTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DebtSecuritiesAvailableForSaleTable", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Debt Securities, Available-for-Sale [Table]", "label": "Debt Securities, Available-for-Sale [Table]", "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)." } } }, "auth_ref": [ "r206", "r207", "r208", "r209", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217" ] }, "us-gaap_DebtSecuritiesAvailableForSaleTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DebtSecuritiesAvailableForSaleTableTextBlock", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Short-Term and Long-Term Marketable Securities", "label": "Debt Securities, Available-for-Sale [Table Text Block]", "documentation": "Tabular disclosure of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r1019", "r1020", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030" ] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Deferred taxes", "label": "Deferred Income Tax Expense (Benefit)", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r6", "r84", "r1000", "r1003" ] }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DeferredIncomeTaxLiabilitiesNet", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Long-term deferred tax liabilities", "label": "Deferred Income Tax Liabilities, Net", "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting." } } }, "auth_ref": [ "r368", "r369", "r597" ] }, "prlb_DepreciationAndAmortizationByGeographicRegionTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "DepreciationAndAmortizationByGeographicRegionTableTextBlock", "presentation": [ "http://www.protolabs.com/role/SegmentReportingTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Depreciation and Amortization by Geographic Region", "label": "Depreciation And Amortization By Geographic Region [Table Text Block]", "documentation": "Depreciation And Amortization By Geographic Region" } } }, "auth_ref": [] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows", "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Depreciation and amortization", "verboseLabel": "Total depreciation and amortization", "label": "Depreciation, Depletion and Amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r6", "r121", "r165", "r178", "r195", "r732", "r749", "r750" ] }, "us-gaap_DilutiveSecuritiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DilutiveSecuritiesAbstract", "presentation": [ "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Effect of dilutive securities:", "label": "Dilutive Securities, Effect on Basic Earnings Per Share [Abstract]" } } }, "auth_ref": [] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.protolabs.com/role/SegmentReportingTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Disaggregation of Revenue", "label": "Disaggregation of Revenue [Table Text Block]", "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r1057" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensation" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-Based Compensation", "label": "Share-Based Payment Arrangement [Text Block]", "documentation": "The entire disclosure for share-based payment arrangement." } } }, "auth_ref": [ "r323", "r328", "r357", "r358", "r360", "r773" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Abstract]" } } }, "auth_ref": [] }, "us-gaap_DisclosureOfReclassificationAmountTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DisclosureOfReclassificationAmountTextBlock", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated Other Comprehensive Income (Loss)", "label": "Disclosure of Reclassification Amount [Text Block]", "documentation": "The entire disclosure for any adjustments made during the period to avoid double counting in comprehensive income items displayed as part of net income that also had been displayed as part of other comprehensive income in that period or earlier periods. These adjustments include reclassifications to net income of items in accumulated comprehensive income, such as deferred gains or losses on qualifying hedges when hedged item reported in net income, holding gains or losses on available-for-sale securities transferred into trading category, unrealized holding gains or losses on debt securities transferred from held-to-maturity category into available-for-sale category and accumulated translation adjustment attributable to foreign subsidiary or investment in foreign entity upon sale or liquidation." } } }, "auth_ref": [ "r44" ] }, "us-gaap_DisposalGroupNotDiscontinuedOperationLossGainOnWriteDown": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "DisposalGroupNotDiscontinuedOperationLossGainOnWriteDown", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Impairments related to exit and closure of facilities", "label": "Disposal Group, Not Discontinued Operation, Loss (Gain) on Write-down", "documentation": "Amount, before tax, of (gain) loss recognized for the (reversal of write-down) write-down to fair value, less cost to sell, of a disposal group. Excludes discontinued operations." } } }, "auth_ref": [ "r6", "r7", "r67", "r119" ] }, "prlb_DisposalGroupNotDiscontinuedOperationLossGainOnWriteDownAndGoodwillImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "DisposalGroupNotDiscontinuedOperationLossGainOnWriteDownAndGoodwillImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Exit, Disposal and Goodwill impairment cost (benefit)", "label": "Disposal Group, Not Discontinued Operation, Loss (Gain) on Write-down And Goodwill, Impairment Loss", "documentation": "Disposal Group, Not Discontinued Operation, Loss (Gain) on Write-down And Goodwill, Impairment Loss" } } }, "auth_ref": [] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Document Fiscal Period Focus", "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Document Fiscal Year Focus", "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Document Period End Date", "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Document Quarterly Report", "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r856" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentTransitionReport", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Document Transition Report", "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r888" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentType", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Document Type", "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year", "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]" } } }, "auth_ref": [ "r899" ] }, "prlb_ESPPMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ESPPMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "ESPP", "label": "ESPP [Member]", "documentation": "ESPP [member" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EarningsPerShareAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Net income per share:", "label": "Earnings Per Share [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Basic (in dollars per share)", "label": "Earnings Per Share, Basic", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r88", "r118", "r139", "r140", "r141", "r142", "r143", "r144", "r145", "r146", "r151", "r153", "r158", "r159", "r160", "r164", "r296", "r361", "r389", "r445", "r464", "r465", "r585", "r610", "r741" ] }, "prlb_EarningsPerShareBasicAndDilutedEPSAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "EarningsPerShareBasicAndDilutedEPSAbstract", "presentation": [ "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Net income per share:", "label": "Earnings Per Share, Basic and Diluted EPS [Abstract]", "documentation": "Earnings Per Share, Basic and Diluted EPS" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Diluted (in dollars per share)", "label": "Earnings Per Share, Diluted", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r88", "r118", "r139", "r140", "r141", "r142", "r143", "r144", "r145", "r146", "r153", "r158", "r159", "r160", "r164", "r296", "r361", "r389", "r445", "r464", "r465", "r585", "r610", "r741" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.protolabs.com/role/NetIncomeperCommonShare" ], "lang": { "en-us": { "role": { "terseLabel": "Net Income per Common Share", "label": "Earnings Per Share [Text Block]", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r150", "r161", "r162", "r163" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Effect of exchange rate changes on cash and cash equivalents", "label": "Effect of Exchange Rate on Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Including Discontinued Operation", "documentation": "Amount of increase (decrease) from effect of exchange rate change on cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; held in foreign currency; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate." } } }, "auth_ref": [ "r1106" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://www.protolabs.com/role/IncomeTaxesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Effective income tax rate (in percent)", "label": "Effective Income Tax Rate Reconciliation, Percent", "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r371", "r776" ] }, "prlb_EffectiveIncomeTaxRateContinuingOperationsIncreaseDecreaseDuringThePeriod": { "xbrltype": "percentItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "EffectiveIncomeTaxRateContinuingOperationsIncreaseDecreaseDuringThePeriod", "presentation": [ "http://www.protolabs.com/role/IncomeTaxesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Effective income tax rate, increase during period (in percent)", "label": "Effective Income Tax Rate, Continuing Operations, Increase (Decrease) During The Period", "documentation": "The increase (decrease) during the period in percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [] }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "presentation": [ "http://www.protolabs.com/role/IncomeTaxesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Federal statutory rate (in percent)", "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)." } } }, "auth_ref": [ "r129", "r132", "r371", "r380", "r776" ] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued compensation", "label": "Employee-related Liabilities, Current", "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r28" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock based award, unrecognized compensation expense", "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount", "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement." } } }, "auth_ref": [ "r359" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock based award, unrecognized compensation expense, period for recognition (in years)", "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition", "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r359" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EmployeeStockOptionMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Stock Options", "label": "Share-Based Payment Arrangement, Option [Member]", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [ "r1060", "r1061", "r1062", "r1063", "r1064", "r1065", "r1066", "r1067", "r1068", "r1069", "r1070", "r1072", "r1073", "r1074", "r1075", "r1076", "r1077", "r1078", "r1079", "r1080", "r1081", "r1082", "r1083", "r1084", "r1085", "r1086" ] }, "prlb_EmployeeStockPurchasePlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "EmployeeStockPurchasePlanMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Employee Stock Purchase Plan", "label": "Employee Stock Purchase Plan [Member]", "documentation": "Information pertaining to the Employee Stock Purchase Plan." } } }, "auth_ref": [] }, "prlb_EmployeeStockPurchasePlanOfferingPeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "EmployeeStockPurchasePlanOfferingPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Offering period (in months)", "label": "Employee Stock Purchase Plan, Offering Period", "documentation": "The offering period during which employees may purchase stock through the Employee Stock Purchase Plan." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Address Line One", "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, City or Town", "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Postal Zip Code", "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, State or Province", "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Central Index Key", "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r854" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Common Stock, Shares Outstanding", "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Current Reporting Status", "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Emerging Growth Company", "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r854" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityFileNumber", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity File Number", "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityFilerCategory", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Filer Category", "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r854" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Incorporation, State or Country Code", "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Interactive Data Current", "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r938" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityRegistrantName", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Registrant Name", "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r854" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityShellCompany", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Shell Company", "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r854" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntitySmallBusiness", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Small Business", "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r854" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Tax Identification Number", "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r854" ] }, "ecd_EqtyAwrdsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "EqtyAwrdsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Awards Adjustments, Footnote", "label": "Equity Awards Adjustments, Footnote [Text Block]" } } }, "auth_ref": [ "r893" ] }, "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table", "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]" } } }, "auth_ref": [ "r934" ] }, "ecd_EqtyAwrdsAdjsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "EqtyAwrdsAdjsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Awards Adjustments", "label": "Equity Awards Adjustments [Member]" } } }, "auth_ref": [ "r934" ] }, "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table", "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]" } } }, "auth_ref": [ "r934" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "EquityComponentDomain", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Component [Domain]", "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r11", "r86", "r87", "r88", "r114", "r115", "r116", "r134", "r135", "r136", "r138", "r145", "r147", "r149", "r166", "r238", "r239", "r276", "r295", "r308", "r361", "r378", "r379", "r386", "r387", "r388", "r390", "r444", "r445", "r452", "r453", "r454", "r455", "r456", "r457", "r458", "r459", "r460", "r461", "r463", "r496", "r497", "r498", "r499", "r500", "r501", "r502", "r503", "r509", "r606", "r632", "r633", "r634", "r646", "r697" ] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Valuation Assumption Difference, Footnote", "label": "Equity Valuation Assumption Difference, Footnote [Text Block]" } } }, "auth_ref": [ "r903" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Erroneous Compensation Analysis", "label": "Erroneous Compensation Analysis [Text Block]" } } }, "auth_ref": [ "r861", "r871", "r881", "r913" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Erroneously Awarded Compensation Recovery", "label": "Erroneously Awarded Compensation Recovery [Table]" } } }, "auth_ref": [ "r858", "r868", "r878", "r910" ] }, "srt_EuropeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "EuropeMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Europe", "label": "Europe [Member]" } } }, "auth_ref": [ "r1151", "r1152", "r1153", "r1154" ] }, "prlb_EuropeSegmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "EuropeSegmentMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Europe", "verboseLabel": "Europe", "label": "Europe Segment [Member]", "documentation": "Operating segment for Europe" } } }, "auth_ref": [] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Executive Category:", "label": "Executive Category [Axis]" } } }, "auth_ref": [ "r909" ] }, "prlb_ExpendituresForAdditionsToLongLivedAssetsByGeographicRegionTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ExpendituresForAdditionsToLongLivedAssetsByGeographicRegionTableTextBlock", "presentation": [ "http://www.protolabs.com/role/SegmentReportingTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Expenditures for Additions to Long-lived Assets by Geographic Region", "label": "Expenditures For Additions To Long-lived Assets By Geographic Region [Table Text Block]", "documentation": "Expenditures For Additions To Long-lived Assets By Geographic Region" } } }, "auth_ref": [] }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r467", "r468", "r481", "r811" ] }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value, Recurring and Nonrecurring [Table]", "label": "Fair Value, Recurring and Nonrecurring [Table]", "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis." } } }, "auth_ref": [ "r467", "r468", "r481", "r811" ] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Fair Value, Assets Measured on Recurring Basis", "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]", "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)." } } }, "auth_ref": [ "r1096", "r1097" ] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Asset Class [Domain]", "label": "Asset Class [Domain]", "documentation": "Class of asset." } } }, "auth_ref": [ "r472", "r473", "r474", "r475", "r476", "r477", "r482", "r726", "r814", "r822" ] }, "us-gaap_FairValueByAssetClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueByAssetClassAxis", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Asset Class [Axis]", "label": "Asset Class [Axis]", "documentation": "Information by class of asset." } } }, "auth_ref": [ "r472", "r473", "r474", "r475", "r476", "r477", "r482", "r726", "r814", "r822" ] }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueByFairValueHierarchyLevelAxis", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value Hierarchy and NAV [Axis]", "label": "Fair Value Hierarchy and NAV [Axis]", "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient." } } }, "auth_ref": [ "r293", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r466", "r468", "r469", "r470", "r471", "r480", "r481", "r483", "r490", "r515", "r516", "r517", "r726", "r758", "r759", "r765", "r766", "r767", "r768", "r769", "r811", "r815", "r822" ] }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueByMeasurementFrequencyAxis", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Measurement Frequency [Axis]", "label": "Measurement Frequency [Axis]", "documentation": "Information by measurement frequency." } } }, "auth_ref": [ "r467", "r468", "r469", "r471", "r811", "r1099", "r1102" ] }, "us-gaap_FairValueDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "Fair Value Disclosures [Abstract]" } } }, "auth_ref": [] }, "us-gaap_FairValueDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueDisclosuresTextBlock", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurements" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value Measurements", "label": "Fair Value Disclosures [Text Block]", "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information." } } }, "auth_ref": [ "r469", "r476", "r478", "r479", "r480", "r483", "r484", "r485", "r486", "r487", "r581", "r811", "r816" ] }, "us-gaap_FairValueInputsLevel1Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueInputsLevel1Member", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Level 1", "label": "Fair Value, Inputs, Level 1 [Member]", "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date." } } }, "auth_ref": [ "r293", "r313", "r318", "r319", "r468", "r481", "r490", "r515", "r726", "r765", "r766", "r767", "r768", "r769", "r811", "r822" ] }, "us-gaap_FairValueInputsLevel2Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueInputsLevel2Member", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Level 2", "label": "Fair Value, Inputs, Level 2 [Member]", "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." } } }, "auth_ref": [ "r293", "r313", "r318", "r319", "r321", "r468", "r469", "r481", "r490", "r516", "r726", "r758", "r759", "r765", "r766", "r767", "r768", "r769", "r811", "r822" ] }, "us-gaap_FairValueInputsLevel3Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueInputsLevel3Member", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Level 3", "label": "Fair Value, Inputs, Level 3 [Member]", "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing." } } }, "auth_ref": [ "r293", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r468", "r469", "r470", "r471", "r481", "r490", "r517", "r726", "r758", "r759", "r765", "r766", "r767", "r768", "r769", "r811", "r815", "r822" ] }, "us-gaap_FairValueMeasurementFrequencyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueMeasurementFrequencyDomain", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Measurement Frequency [Domain]", "label": "Measurement Frequency [Domain]", "documentation": "Measurement frequency." } } }, "auth_ref": [ "r467", "r468", "r469", "r471", "r811", "r1099", "r1102" ] }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueMeasurementsFairValueHierarchyDomain", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value Hierarchy and NAV [Domain]", "label": "Fair Value Hierarchy and NAV [Domain]", "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value." } } }, "auth_ref": [ "r293", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r466", "r468", "r469", "r470", "r471", "r480", "r481", "r483", "r490", "r515", "r516", "r517", "r726", "r758", "r759", "r765", "r766", "r767", "r768", "r769", "r811", "r815", "r822" ] }, "us-gaap_FairValueMeasurementsRecurringMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FairValueMeasurementsRecurringMember", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value, Recurring", "label": "Fair Value, Recurring [Member]", "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." } } }, "auth_ref": [ "r811", "r1096", "r1097", "r1098", "r1099", "r1100", "r1102" ] }, "us-gaap_FinanceLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FinanceLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Current finance lease liabilities", "label": "Finance Lease, Liability, Current", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current." } } }, "auth_ref": [ "r505" ] }, "us-gaap_FinanceLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FinanceLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Long-term finance lease liabilities", "label": "Finance Lease, Liability, Noncurrent", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent." } } }, "auth_ref": [ "r505" ] }, "us-gaap_FinanceLeasePrincipalPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FinanceLeasePrincipalPayments", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Principal repayments of finance lease obligations", "label": "Finance Lease, Principal Payments", "documentation": "Amount of cash outflow for principal payment on finance lease." } } }, "auth_ref": [ "r506", "r507" ] }, "us-gaap_FinanceLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FinanceLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Finance lease assets", "label": "Finance Lease, Right-of-Use Asset, after Accumulated Amortization", "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease." } } }, "auth_ref": [ "r504" ] }, "us-gaap_FinancialInstrumentAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FinancialInstrumentAxis", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Financial Instrument [Axis]", "label": "Financial Instrument [Axis]", "documentation": "Information by type of financial instrument." } } }, "auth_ref": [ "r206", "r207", "r208", "r209", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217", "r218", "r219", "r220", "r221", "r222", "r223", "r224", "r225", "r226", "r227", "r228", "r229", "r230", "r231", "r232", "r233", "r234", "r235", "r241", "r242", "r243", "r244", "r245", "r247", "r248", "r249", "r294", "r307", "r451", "r462", "r488", "r493", "r495", "r512", "r513", "r514", "r515", "r516", "r517", "r518", "r519", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r539", "r540", "r541", "r542", "r594", "r607", "r755", "r811", "r814", "r815", "r816", "r817", "r818", "r819", "r820", "r821", "r824", "r942", "r943", "r944", "r945", "r946", "r947", "r948", "r1030", "r1031", "r1032", "r1033", "r1095", "r1098", "r1099", "r1100", "r1101", "r1102", "r1103", "r1104" ] }, "prlb_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Thereafter", "label": "Finite-Lived Intangible Asset, Expected Amortization, After Year Four", "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Useful Life (in years)", "label": "Finite-Lived Intangible Asset, Useful Life", "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Accumulated Amortization", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r98", "r251", "r270", "r729" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2026", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r272", "r725", "r729" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Remaining 2025", "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year", "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." } } }, "auth_ref": [ "r1155" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2029", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r272", "r725", "r729" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2028", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r272", "r725", "r729" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2027", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r272", "r725", "r729" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]", "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r263", "r265", "r266", "r267", "r269", "r270", "r273", "r274", "r545", "r546", "r640", "r725", "r729", "r782", "r783", "r784", "r785", "r786", "r787", "r788", "r789", "r790", "r791", "r792", "r793", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808" ] }, "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]", "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Gross", "label": "Finite-Lived Intangible Assets, Gross", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r251", "r270", "r546", "r729" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r263", "r265", "r266", "r267", "r269", "r270", "r273", "r274", "r640", "r725", "r729", "r782", "r783", "r784", "r785", "r786", "r787", "r788", "r789", "r790", "r791", "r792", "r793", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofAggregatedAmortizationExpenseDetails", "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Net", "label": "Finite-Lived Intangible Assets, Net", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r545", "r1046" ] }, "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Weighted Average Useful Life Remaining (in years)", "label": "Finite-Lived Intangible Assets, Remaining Amortization Period", "documentation": "Remaining amortization period of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r545" ] }, "us-gaap_FinitelivedIntangibleAssetsAcquired1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "FinitelivedIntangibleAssetsAcquired1", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Intangible assets acquired", "label": "Finite-Lived Intangible Assets Acquired", "documentation": "Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition." } } }, "auth_ref": [ "r265", "r640" ] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r865", "r875", "r885", "r917" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount", "label": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r865", "r875", "r885", "r917" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount", "label": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r865", "r875", "r885", "r917" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Forgone Recovery, Explanation of Impracticability", "label": "Forgone Recovery, Explanation of Impracticability [Text Block]" } } }, "auth_ref": [ "r865", "r875", "r885", "r917" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Name", "label": "Forgone Recovery, Individual Name" } } }, "auth_ref": [ "r865", "r875", "r885", "r917" ] }, "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year", "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]" } } }, "auth_ref": [ "r898" ] }, "us-gaap_GainLossOnSaleOfBusiness": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GainLossOnSaleOfBusiness", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Costs related to exit and disposal activities", "label": "Gain (Loss) on Disposition of Business", "documentation": "Amount of gain (loss) from sale and disposal of integrated set of activities and assets capable of being conducted and managed for purpose of providing return in form of dividend, lower cost, or other economic benefit to investor, owner, member and participant." } } }, "auth_ref": [ "r448", "r999" ] }, "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GainLossOnSaleOfPropertyPlantEquipment", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 8.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Loss (gain) on disposal of property and equipment", "label": "Gain (Loss) on Disposition of Property Plant Equipment", "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property." } } }, "auth_ref": [ "r6" ] }, "us-gaap_GeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "General and administrative", "label": "General and Administrative Expense", "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." } } }, "auth_ref": [ "r55", "r682" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Goodwill", "label": "Goodwill", "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r97", "r252", "r582", "r750", "r756", "r777", "r778", "r779", "r809", "r812", "r823", "r1037", "r1038", "r1092" ] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssets" ], "lang": { "en-us": { "role": { "terseLabel": "Goodwill and Other Intangible Assets", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "documentation": "The entire disclosure for goodwill and intangible assets." } } }, "auth_ref": [ "r1035", "r1039" ] }, "us-gaap_GoodwillPeriodIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GoodwillPeriodIncreaseDecrease", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Goodwill, period increase (decrease)", "label": "Goodwill, Period Increase (Decrease)", "documentation": "Amount of increase (decrease) of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r1036", "r1092" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "totalLabel": "Gross profit", "label": "Gross Profit", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r49", "r53", "r81", "r129", "r130", "r131", "r237", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r494", "r744", "r749", "r1009", "r1011", "r1012", "r1013", "r1014", "r1054" ] }, "us-gaap_ImpairmentOfLongLivedAssetsToBeDisposedOf": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ImpairmentOfLongLivedAssetsToBeDisposedOf", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 15.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Loss on impairment of equipment", "label": "Impairment of Long-Lived Assets to be Disposed of", "documentation": "The aggregate amount of write-downs for impairments recognized during the period for long-lived assets held for abandonment, exchange or sale." } } }, "auth_ref": [ "r6", "r66", "r813" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "totalLabel": "Income before income taxes", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r50", "r77", "r81", "r586", "r588", "r604", "r734", "r736", "r738", "r744", "r749", "r1009", "r1011", "r1012", "r1013", "r1014" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "terseLabel": "Income Statement [Abstract]", "label": "Income Statement [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.protolabs.com/role/IncomeTaxes" ], "lang": { "en-us": { "role": { "terseLabel": "Income Taxes", "label": "Income Tax Disclosure [Text Block]", "documentation": "The entire disclosure for income tax." } } }, "auth_ref": [ "r129", "r132", "r366", "r371", "r372", "r373", "r374", "r376", "r377", "r381", "r383", "r384", "r385", "r593", "r639", "r645", "r776" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/IncomeTaxesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Provision for income taxes", "label": "Income Tax Expense (Benefit)", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r83", "r85", "r129", "r148", "r149", "r165", "r181", "r195", "r370", "r371", "r382", "r611", "r734", "r736", "r738", "r776" ] }, "us-gaap_IncomeTaxesReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncomeTaxesReceivable", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Income taxes receivable", "label": "Income Taxes Receivable, Current", "documentation": "Carrying amount due within one year of the balance sheet date (or one operating cycle, if longer) from tax authorities as of the balance sheet date representing refunds of overpayments or recoveries based on agreed-upon resolutions of disputes." } } }, "auth_ref": [ "r74", "r950" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Accounts payable", "label": "Increase (Decrease) in Accounts Payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 13.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Accounts receivable", "label": "Increase (Decrease) in Accounts Receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 14.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Income taxes", "label": "Increase (Decrease) in Income Taxes Payable", "documentation": "The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued liabilities and other", "label": "Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities", "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other." } } }, "auth_ref": [ "r998" ] }, "us-gaap_IncreaseDecreaseInInventories": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInInventories", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Inventories", "label": "Increase (Decrease) in Inventories", "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Changes in operating assets and liabilities:", "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Increase (Decrease) in Operating Capital [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Prepaid expenses and other", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period." } } }, "auth_ref": [] }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "calculation": { "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Employee stock options and other (in shares)", "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements", "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." } } }, "auth_ref": [ "r154", "r155", "r156", "r160", "r327" ] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Individual:", "label": "Individual [Axis]" } } }, "auth_ref": [ "r865", "r875", "r885", "r909", "r917", "r921", "r929" ] }, "prlb_InducementAwardsMarketConditionMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "InducementAwardsMarketConditionMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Inducement Awards, Market Conditions", "label": "Inducement Awards, Market Condition [Member]", "documentation": "Inducement Awards, Market Condition" } } }, "auth_ref": [] }, "prlb_InducementAwardsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "InducementAwardsMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Inducement Awards", "label": "Inducement Awards [Member]", "documentation": "Inducement Awards" } } }, "auth_ref": [] }, "prlb_InducementAwardsPerformanceConditionMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "InducementAwardsPerformanceConditionMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Inducement Awards, Performance Condition", "label": "Inducement Awards, Performance Condition [Member]", "documentation": "Inducement Awards, Performance Condition" } } }, "auth_ref": [] }, "prlb_InjectionMoldingProtomoldMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "InjectionMoldingProtomoldMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Injection Molding", "label": "Injection Molding (Protomold) [Member]", "documentation": "Represents the Injection Molding (Protomold) product." } } }, "auth_ref": [] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]" } } }, "auth_ref": [ "r927" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]" } } }, "auth_ref": [ "r857", "r933" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "terseLabel": "Insider Trading Policies and Procedures Adopted", "label": "Insider Trading Policies and Procedures Adopted [Flag]" } } }, "auth_ref": [ "r857", "r933" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "terseLabel": "Insider Trading Policies and Procedures Not Adopted", "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]" } } }, "auth_ref": [ "r857", "r933" ] }, "us-gaap_InventoryDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InventoryDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Inventory Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_InventoryDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InventoryDisclosureTextBlock", "presentation": [ "http://www.protolabs.com/role/Inventory" ], "lang": { "en-us": { "role": { "terseLabel": "Inventory", "label": "Inventory Disclosure [Text Block]", "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory." } } }, "auth_ref": [ "r250" ] }, "us-gaap_InventoryGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InventoryGross", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/InventoryDetails": { "parentTag": "us-gaap_InventoryNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/InventoryDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Total inventory", "label": "Inventory, Gross", "documentation": "Gross amount, as of the balance sheet date, of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process." } } }, "auth_ref": [ "r951" ] }, "us-gaap_InventoryNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InventoryNet", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 }, "http://www.protolabs.com/role/InventoryDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets", "http://www.protolabs.com/role/InventoryDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Inventory", "totalLabel": "Inventory, net of allowance", "label": "Inventory, Net", "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [ "r103", "r731", "r823" ] }, "us-gaap_InventoryValuationReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InventoryValuationReserves", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/InventoryDetails": { "parentTag": "us-gaap_InventoryNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/InventoryDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Allowance for obsolescence", "label": "Inventory Valuation Reserves", "documentation": "Amount of valuation reserve for inventory." } } }, "auth_ref": [ "r65", "r951" ] }, "us-gaap_InvestmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InvestmentTextBlock", "presentation": [ "http://www.protolabs.com/role/MarketableSecurities" ], "lang": { "en-us": { "role": { "terseLabel": "Marketable Securities", "label": "Investment [Text Block]", "documentation": "The entire disclosure for investment." } } }, "auth_ref": [ "r940", "r941", "r1016" ] }, "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Available-For-Sale Debt Securities by Contractual Maturity", "label": "Investments Classified by Contractual Maturity Date [Table Text Block]", "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments." } } }, "auth_ref": [] }, "us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "InvestmentsDebtAndEquitySecuritiesAbstract", "lang": { "en-us": { "role": { "label": "Investments, Debt and Equity Securities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "totalLabel": "Total liabilities", "label": "Liabilities", "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others." } } }, "auth_ref": [ "r16", "r27", "r28", "r29", "r30", "r31", "r32", "r33", "r129", "r130", "r131", "r237", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r447", "r449", "r450", "r494", "r660", "r743", "r760", "r852", "r1054", "r1107", "r1108" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "totalLabel": "Total liabilities and shareholders' equity", "label": "Liabilities and Equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r40", "r76", "r602", "r823", "r839", "r840", "r1000", "r1002", "r1034", "r1105" ] }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "LiabilitiesAndStockholdersEquityAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Liabilities and shareholders' equity", "label": "Liabilities and Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "totalLabel": "Total current liabilities", "label": "Liabilities, Current", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r29", "r95", "r129", "r130", "r131", "r237", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r447", "r449", "r450", "r494", "r823", "r1054", "r1107", "r1108" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Current liabilities", "label": "Liabilities, Current [Abstract]" } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "LocalPhoneNumber", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Local Phone Number", "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongLivedAssetsByGeographicAreasTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "LongLivedAssetsByGeographicAreasTableTextBlock", "presentation": [ "http://www.protolabs.com/role/SegmentReportingTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Long-Lived Assets by Geographic Areas", "label": "Long-Lived Assets by Geographic Areas [Table Text Block]", "documentation": "Tabular disclosure of long-lived assets, excluding financial instruments, long-term customer relationships of a financial institution, mortgage rights, deferred policy acquisition costs, and deferred tax assets, by geographic areas located in the entity's country of domicile and foreign countries in which the entity holds assets." } } }, "auth_ref": [ "r63" ] }, "prlb_LongTermIncentivePlan2022Member": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "LongTermIncentivePlan2022Member", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Long-Term Incentive Plan 2022", "label": "Long-Term Incentive Plan 2022 [Member]", "documentation": "Long-Term Incentive Plan 2022" } } }, "auth_ref": [] }, "us-gaap_MarketableSecuritiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "MarketableSecuritiesCurrent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Short-term marketable securities", "label": "Marketable Securities, Current", "documentation": "Amount of investment in marketable security, classified as current." } } }, "auth_ref": [ "r949" ] }, "us-gaap_MarketableSecuritiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "MarketableSecuritiesNoncurrent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Long-term marketable securities", "label": "Marketable Securities, Noncurrent", "documentation": "Amount of investment in marketable security, classified as noncurrent." } } }, "auth_ref": [ "r949" ] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "MaximumMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails", "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Maximum", "label": "Maximum [Member]" } } }, "auth_ref": [ "r168", "r280", "r281", "r282", "r283", "r322", "r352", "r353", "r354", "r364", "r471", "r543", "r630", "r631", "r638", "r652", "r653", "r700", "r702", "r704", "r705", "r707", "r709", "r710", "r712", "r713", "r723", "r724", "r754", "r761", "r772", "r777", "r780", "r781", "r815", "r816", "r820", "r821", "r834", "r1056", "r1109", "r1110", "r1111", "r1112", "r1113", "r1114" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Measure:", "label": "Measure [Axis]" } } }, "auth_ref": [ "r901" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Name", "label": "Measure Name" } } }, "auth_ref": [ "r901" ] }, "prlb_MichaelR.KenisonMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "MichaelR.KenisonMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Michael R. Kenison [Member]", "documentation": "Michael R. Kenison" } } }, "auth_ref": [] }, "prlb_MichaelR.KenisonTradingArrangementCommonStockRelatedToOptionAwardsGrantedMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "MichaelR.KenisonTradingArrangementCommonStockRelatedToOptionAwardsGrantedMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Michael R. Kenison, Trading Arrangement, Common Stock Related To Option Awards Granted [Member]", "documentation": "Michael R. Kenison, Trading Arrangement, Common Stock Related To Option Awards Granted" } } }, "auth_ref": [] }, "prlb_MichaelR.KenisonTradingArrangementCommonStockRelatedToRestrictedStockUnitsGrantedMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "MichaelR.KenisonTradingArrangementCommonStockRelatedToRestrictedStockUnitsGrantedMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Michael R. Kenison, Trading Arrangement, Common Stock Related To Restricted Stock Units Granted [Member]", "documentation": "Trading Arrangement, Restricted stock Units Granted" } } }, "auth_ref": [] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "MinimumMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails", "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Minimum", "label": "Minimum [Member]" } } }, "auth_ref": [ "r168", "r280", "r281", "r282", "r283", "r322", "r352", "r353", "r354", "r364", "r471", "r543", "r630", "r631", "r638", "r652", "r653", "r700", "r702", "r704", "r705", "r707", "r709", "r710", "r712", "r713", "r723", "r724", "r754", "r761", "r772", "r777", "r780", "r781", "r815", "r816", "r820", "r834", "r1056", "r1109", "r1110", "r1111", "r1112", "r1113", "r1114" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "MNPI Disclosure Timed for Compensation Value", "label": "MNPI Disclosure Timed for Compensation Value [Flag]" } } }, "auth_ref": [ "r920" ] }, "us-gaap_MoneyMarketFundsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "MoneyMarketFundsMember", "presentation": [ "http://www.protolabs.com/role/FairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Money market mutual fund", "label": "Money Market Funds [Member]", "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities." } } }, "auth_ref": [ "r1058", "r1059" ] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Material Terms of Trading Arrangement", "label": "Material Terms of Trading Arrangement [Text Block]" } } }, "auth_ref": [ "r928" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Named Executive Officers, Footnote", "label": "Named Executive Officers, Footnote [Text Block]" } } }, "auth_ref": [ "r902" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "totalLabel": "Net cash used in financing activities", "label": "Cash Provided by (Used in) Financing Activity, Including Discontinued Operation", "documentation": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit." } } }, "auth_ref": [ "r125" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Financing activities", "label": "Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "totalLabel": "Net cash used in investing activities", "label": "Cash Provided by (Used in) Investing Activity, Including Discontinued Operation", "documentation": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets." } } }, "auth_ref": [ "r125" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Investing activities", "label": "Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "totalLabel": "Net cash provided by operating activities", "label": "Cash Provided by (Used in) Operating Activity, Including Discontinued Operation", "documentation": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity." } } }, "auth_ref": [ "r60", "r61", "r62" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Operating activities", "label": "Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 10.0 }, "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows", "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity", "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Net income", "terseLabel": "Net income", "netLabel": "Net income", "label": "Net Income (Loss) Attributable to Parent", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r54", "r62", "r78", "r88", "r93", "r109", "r112", "r116", "r129", "r130", "r131", "r133", "r137", "r141", "r142", "r143", "r144", "r145", "r148", "r149", "r157", "r237", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r296", "r299", "r301", "r305", "r361", "r389", "r445", "r465", "r494", "r605", "r680", "r695", "r696", "r734", "r736", "r738", "r851", "r1054" ] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Non-GAAP Measure Description", "label": "Non-GAAP Measure Description [Text Block]" } } }, "auth_ref": [ "r901" ] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Non-NEOs", "label": "Non-NEOs [Member]" } } }, "auth_ref": [ "r865", "r875", "r885", "r909", "r917" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount", "label": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r892" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Non-PEO NEO Average Total Compensation Amount", "label": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r891" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Non-PEO NEO", "label": "Non-PEO NEO [Member]" } } }, "auth_ref": [ "r909" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted", "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]" } } }, "auth_ref": [ "r928" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated", "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]" } } }, "auth_ref": [ "r928" ] }, "us-gaap_NoncompeteAgreementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "NoncompeteAgreementsMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Non-compete agreement", "label": "Noncompete Agreements [Member]", "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party." } } }, "auth_ref": [ "r786", "r1040", "r1041", "r1042", "r1043", "r1044", "r1046", "r1048", "r1049" ] }, "us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OciBeforeReclassificationsNetOfTaxAttributableToParent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Other comprehensive income (loss) before reclassifications", "netLabel": "Other comprehensive income before reclassifications", "label": "OCI, before Reclassifications, Net of Tax, Attributable to Parent", "documentation": "Amount after tax, before reclassification adjustments, of other comprehensive income (loss), attributable to parent." } } }, "auth_ref": [ "r15", "r18" ] }, "prlb_OlegRyaboyMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "OlegRyaboyMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Oleg Ryaboy [Member]", "documentation": "Oleg Ryaboy" } } }, "auth_ref": [] }, "prlb_OlegRyaboyTradingArrangementCommonStockRelatedToOptionAwardsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "OlegRyaboyTradingArrangementCommonStockRelatedToOptionAwardsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Oleg Ryaboy, Trading Arrangement, Common Stock Related To Option Awards [Member]", "documentation": "Oleg Ryaboy, Trading Arrangement, Common Stock Related To Option Awards" } } }, "auth_ref": [] }, "prlb_OlegRyaboyTradingArrangementCommonStockRelatedToUnvestedRestrictedStockUnitsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "OlegRyaboyTradingArrangementCommonStockRelatedToUnvestedRestrictedStockUnitsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Oleg Ryaboy, Trading Arrangement, Common Stock Related To Unvested Restricted Stock Units [Member]", "documentation": "Oleg Ryaboy, Trading Arrangement, Common Stock Related To Unvested Restricted Stock Units" } } }, "auth_ref": [] }, "prlb_OlegRyaboyTradingArrangementCommonStockRelatedToVestedRestrictedStockUnitsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "OlegRyaboyTradingArrangementCommonStockRelatedToVestedRestrictedStockUnitsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Oleg Ryaboy, Trading Arrangement, Common Stock Related To Vested Restricted Stock Units [Member]", "documentation": "Oleg Ryaboy, Trading Arrangement, Common Stock Related To Vested Restricted Stock Units" } } }, "auth_ref": [] }, "us-gaap_OperatingExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OperatingExpenses", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "totalLabel": "Total operating expenses", "label": "Operating Expenses", "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." } } }, "auth_ref": [ "r738" ] }, "us-gaap_OperatingExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OperatingExpensesAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Operating expenses", "label": "Operating Expenses [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Income from operations", "label": "Operating Income (Loss)", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r81", "r734", "r738", "r744", "r1009", "r1011", "r1012", "r1013", "r1014" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Current operating lease liabilities", "label": "Operating Lease, Liability, Current", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r505" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Long-term operating lease liabilities", "label": "Operating Lease, Liability, Noncurrent", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r505" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 8.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Operating lease assets", "label": "Operating Lease, Right-of-Use Asset", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r504" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "presentation": [ "http://www.protolabs.com/role/BasisofPresentation" ], "lang": { "en-us": { "role": { "terseLabel": "Basis of Presentation", "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]", "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure." } } }, "auth_ref": [ "r72", "r89", "r90", "r91", "r641", "r642" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Other long-term assets", "label": "Other Assets, Noncurrent", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r99" ] }, "us-gaap_OtherComprehensiveIncomeAvailableForSaleSecuritiesAdjustmentNetOfTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeAvailableForSaleSecuritiesAdjustmentNetOfTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Net unrealized gains on investments in securities", "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParentAbstract", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Foreign currency translation adjustments", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Foreign currency losses", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax", "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." } } }, "auth_ref": [ "r2", "r48", "r606" ] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Foreign currency translation adjustment", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax", "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature." } } }, "auth_ref": [ "r2", "r606" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Other comprehensive income", "label": "Other Comprehensive Income (Loss), Net of Tax [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Net current-period other comprehensive income (loss)", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity." } } }, "auth_ref": [ "r4", "r10", "r73", "r110", "r113", "r145" ] }, "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Net unrealized gains on investments in securities", "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax", "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." } } }, "auth_ref": [ "r105", "r107", "r236" ] }, "us-gaap_OtherIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Other intangible assets, net", "label": "Other Intangible Assets, Net", "documentation": "Amount after accumulated amortization of finite-lived and indefinite-lived intangible assets classified as other." } } }, "auth_ref": [] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Other long-term liabilities", "label": "Other Liabilities, Noncurrent", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r31" ] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Other income, net", "label": "Other Nonoperating Income (Expense)", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r56", "r810" ] }, "us-gaap_OtherOperatingActivitiesCashFlowStatement": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "OtherOperatingActivitiesCashFlowStatement", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 11.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Other", "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Other Item", "documentation": "Amount of cash inflow (outflow) from operating activity, classified as other, in reconciling net income to reflect cash provided by (used in) operating activity when indirect cash flow method is applied." } } }, "auth_ref": [] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Other Performance Measure, Amount", "label": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r901" ] }, "prlb_OtherProductsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "OtherProductsMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Other Revenue", "label": "Other Products [Member]", "documentation": "Represents other products." } } }, "auth_ref": [] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount", "label": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r863", "r873", "r883", "r915" ] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Compensation Amount", "label": "Outstanding Recovery Compensation Amount" } } }, "auth_ref": [ "r866", "r876", "r886", "r918" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Name", "label": "Outstanding Recovery, Individual Name" } } }, "auth_ref": [ "r866", "r876", "r886", "r918" ] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]" } } }, "auth_ref": [ "r890" ] }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PaymentsForRepurchaseOfCommonStock", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Repurchases of common stock", "label": "Payments for Repurchase of Common Stock", "documentation": "The cash outflow to reacquire common stock during the period." } } }, "auth_ref": [ "r59" ] }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Purchases of shares withheld for tax obligations", "label": "Payment, Tax Withholding, Share-Based Payment Arrangement", "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [ "r124" ] }, "us-gaap_PaymentsToAcquireAvailableForSaleSecuritiesDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Purchases of marketable securities", "label": "Payments to Acquire Debt Securities, Available-for-Sale", "documentation": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r20", "r122", "r205" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "negatedLabel": "Purchases of property, equipment and other capital assets", "label": "Payments to Acquire Property, Plant, and Equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r58" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Peer Group Issuers, Footnote", "label": "Peer Group Issuers, Footnote [Text Block]" } } }, "auth_ref": [ "r900" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Peer Group Total Shareholder Return Amount", "label": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r900" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "PEO Actually Paid Compensation Amount", "label": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r892" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "PEO", "label": "PEO [Member]" } } }, "auth_ref": [ "r909" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "PEO Name", "label": "PEO Name" } } }, "auth_ref": [ "r902" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "PEO Total Compensation Amount", "label": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r891" ] }, "prlb_PercentageOfTargetNumberCapableOfBeingAchievedDuringPerformancePeriodsLowerLimit": { "xbrltype": "percentItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "PercentageOfTargetNumberCapableOfBeingAchievedDuringPerformancePeriodsLowerLimit", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Percentage of target, capable of being achieved during performance periods, lower", "label": "Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Lower Limit", "documentation": "Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Lower Limit" } } }, "auth_ref": [] }, "prlb_PercentageOfTargetNumberCapableOfBeingAchievedDuringPerformancePeriodsUpperLimit": { "xbrltype": "percentItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "PercentageOfTargetNumberCapableOfBeingAchievedDuringPerformancePeriodsUpperLimit", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Percentage of target, capable of being achieved during performance periods, upper limit", "label": "Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Upper Limit", "documentation": "Percentage Of Target Number, Capable Of Being Achieved During Performance Periods, Upper Limit" } } }, "auth_ref": [] }, "prlb_PercentageOfTargetNumberCapableOfBeingEarnedAndVestingLowerLimit": { "xbrltype": "percentItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "PercentageOfTargetNumberCapableOfBeingEarnedAndVestingLowerLimit", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Percentage of target, capable of being earned and vesting, lower limit", "label": "Percentage Of Target Number, Capable Of Being Earned And Vesting, Lower Limit", "documentation": "The lower limit percent of target number capable of being earned and vesting at the end of a three-year performance period depending on the company's performance in the final year of the performance period and the award recipient's continued employment." } } }, "auth_ref": [] }, "prlb_PercentageOfTargetNumberCapableOfBeingEarnedAndVestingUpperLimit": { "xbrltype": "percentItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "PercentageOfTargetNumberCapableOfBeingEarnedAndVestingUpperLimit", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Percentage of target, capable of being earned and vesting, upper limit", "label": "Percentage Of Target Number, Capable Of Being Earned And Vesting, Upper Limit", "documentation": "The upper limit percent of target number capable of being earned and vesting at the end of a three-year performance period depending on the company's performance in the final year of the performance period and the award recipient's continued employment." } } }, "auth_ref": [] }, "us-gaap_PerformanceSharesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PerformanceSharesMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Performance Stock Units", "label": "Performance Shares [Member]", "documentation": "Share-based payment arrangement awarded for meeting performance target." } } }, "auth_ref": [ "r1060", "r1061", "r1062", "r1063", "r1064", "r1065", "r1066", "r1067", "r1068", "r1069", "r1070", "r1072", "r1073", "r1074", "r1075", "r1076", "r1077", "r1078", "r1079", "r1080", "r1081", "r1082", "r1083", "r1084", "r1085", "r1086" ] }, "us-gaap_PlanNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PlanNameAxis", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Plan Name [Axis]", "label": "Plan Name [Axis]", "documentation": "Information by plan name for share-based payment arrangement." } } }, "auth_ref": [ "r1060", "r1061", "r1062", "r1063", "r1064", "r1065", "r1066", "r1067", "r1068", "r1069", "r1070", "r1072", "r1073", "r1074", "r1075", "r1076", "r1077", "r1078", "r1079", "r1080", "r1081", "r1082", "r1083", "r1084", "r1085", "r1086" ] }, "us-gaap_PlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PlanNameDomain", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Plan Name [Domain]", "label": "Plan Name [Domain]", "documentation": "Plan name for share-based payment arrangement." } } }, "auth_ref": [ "r1060", "r1061", "r1062", "r1063", "r1064", "r1065", "r1066", "r1067", "r1068", "r1069", "r1070", "r1072", "r1073", "r1074", "r1075", "r1076", "r1077", "r1078", "r1079", "r1080", "r1081", "r1082", "r1083", "r1084", "r1085", "r1086" ] }, "ecd_PnsnAdjsPrrSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PnsnAdjsPrrSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Pension Adjustments Prior Service Cost", "label": "Pension Adjustments Prior Service Cost [Member]" } } }, "auth_ref": [ "r893" ] }, "ecd_PnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Pension Adjustments Service Cost", "label": "Pension Adjustments Service Cost [Member]" } } }, "auth_ref": [ "r937" ] }, "ecd_PnsnBnftsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PnsnBnftsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Pension Benefits Adjustments, Footnote", "label": "Pension Benefits Adjustments, Footnote [Text Block]" } } }, "auth_ref": [ "r892" ] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock, par value (in dollars per share)", "label": "Preferred Stock, Par or Stated Value Per Share", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r34", "r306" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock, authorized (in shares)", "label": "Preferred Stock, Shares Authorized", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r34", "r661" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock, issued (in shares)", "label": "Preferred Stock, Shares Issued", "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt." } } }, "auth_ref": [ "r34", "r306" ] }, "us-gaap_PreferredStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PreferredStockSharesOutstanding", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock, outstanding (in shares)", "label": "Preferred Stock, Shares Outstanding", "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased." } } }, "auth_ref": [ "r34", "r661", "r679", "r1149", "r1150" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock, $0.001 par value, authorized 10,000,000 shares; issued and outstanding 0 shares as of each of September\u00a030, 2025, and December\u00a031, 2024", "label": "Preferred Stock, Value, Issued", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r34", "r298", "r303", "r598", "r823" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Prepaid expenses and other current assets", "label": "Prepaid Expense and Other Assets, Current", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r952" ] }, "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Proceeds from issuance of common stock from equity plans", "label": "Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised", "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised." } } }, "auth_ref": [ "r3", "r14" ] }, "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Proceeds from call redemptions and maturities of marketable securities", "label": "Proceeds from Maturities, Prepayments and Calls of Debt Securities, Available-for-Sale", "documentation": "Amount of cash inflow from 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)." } } }, "auth_ref": [ "r122", "r123", "r1018" ] }, "us-gaap_ProceedsFromSaleOfProductiveAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ProceedsFromSaleOfProductiveAssets", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Proceeds from sales of property, equipment and other capital assets", "label": "Proceeds from Sale of Productive Assets", "documentation": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets." } } }, "auth_ref": [ "r57" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "ProductOrServiceAxis", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Product and Service [Axis]", "label": "Product and Service [Axis]" } } }, "auth_ref": [ "r198", "r544", "r623", "r624", "r625", "r626", "r627", "r628", "r629", "r727", "r733", "r736", "r738", "r762", "r763", "r833", "r834", "r835", "r838", "r842", "r939", "r956", "r957", "r958", "r959", "r960", "r961", "r962", "r963", "r964", "r965", "r966", "r967", "r968", "r969", "r970", "r971", "r972", "r973", "r974", "r975", "r976", "r977", "r978", "r979", "r980", "r981", "r982", "r983", "r984", "r985", "r986", "r987", "r988", "r989", "r990", "r991", "r992", "r994", "r995", "r996", "r997", "r1052", "r1053", "r1117", "r1118", "r1119", "r1120", "r1121", "r1122", "r1123", "r1124", "r1125", "r1126", "r1127", "r1128", "r1129", "r1130", "r1131", "r1132", "r1133", "r1134", "r1135", "r1136", "r1137", "r1138", "r1139", "r1140", "r1141", "r1142", "r1143", "r1145", "r1146" ] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "ProductsAndServicesDomain", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Product and Service [Domain]", "label": "Product and Service [Domain]" } } }, "auth_ref": [ "r198", "r544", "r623", "r624", "r625", "r626", "r627", "r628", "r629", "r727", "r733", "r736", "r738", "r762", "r763", "r833", "r834", "r835", "r838", "r842", "r939", "r956", "r957", "r958", "r959", "r960", "r961", "r962", "r963", "r964", "r965", "r966", "r967", "r968", "r969", "r970", "r971", "r972", "r973", "r974", "r975", "r976", "r977", "r978", "r979", "r980", "r981", "r982", "r983", "r984", "r985", "r986", "r987", "r988", "r989", "r990", "r991", "r992", "r994", "r995", "r996", "r997", "r1052", "r1053", "r1117", "r1118", "r1119", "r1120", "r1121", "r1122", "r1123", "r1124", "r1125", "r1126", "r1127", "r1128", "r1129", "r1130", "r1131", "r1132", "r1133", "r1134", "r1135", "r1136", "r1137", "r1138", "r1139", "r1140", "r1141", "r1142", "r1143", "r1145", "r1146" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Property and equipment, net", "verboseLabel": "Total Long-lived Assets", "label": "Property, Plant and Equipment, Net", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r9", "r508", "r592", "r603", "r823" ] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Pay vs Performance Disclosure", "label": "Pay vs Performance Disclosure [Table]" } } }, "auth_ref": [ "r890" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Pay vs Performance Disclosure, Table", "label": "Pay vs Performance [Table Text Block]" } } }, "auth_ref": [ "r890" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "RangeAxis", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails", "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Statistical Measurement [Axis]", "label": "Statistical Measurement [Axis]" } } }, "auth_ref": [ "r168", "r280", "r281", "r282", "r283", "r312", "r322", "r352", "r353", "r354", "r360", "r364", "r471", "r518", "r527", "r543", "r630", "r631", "r638", "r652", "r653", "r700", "r702", "r704", "r705", "r707", "r709", "r710", "r712", "r713", "r723", "r724", "r754", "r761", "r772", "r777", "r780", "r781", "r815", "r816", "r820", "r821", "r834", "r845", "r1050", "r1056", "r1099", "r1110", "r1111", "r1112", "r1113", "r1114" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "RangeMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails", "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Statistical Measurement [Domain]", "label": "Statistical Measurement [Domain]" } } }, "auth_ref": [ "r168", "r280", "r281", "r282", "r283", "r312", "r322", "r352", "r353", "r354", "r360", "r364", "r471", "r518", "r527", "r543", "r630", "r631", "r638", "r652", "r653", "r700", "r702", "r704", "r705", "r707", "r709", "r710", "r712", "r713", "r723", "r724", "r754", "r761", "r772", "r777", "r780", "r781", "r815", "r816", "r820", "r821", "r834", "r845", "r1050", "r1056", "r1099", "r1110", "r1111", "r1112", "r1113", "r1114" ] }, "us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Amounts reclassified from accumulated other comprehensive loss", "negatedLabel": "Amounts reclassified from accumulated other comprehensive loss", "label": "Reclassification from AOCI, Current Period, Net of Tax, Attributable to Parent", "documentation": "Amount after tax of reclassification adjustments of other comprehensive income (loss) attributable to parent." } } }, "auth_ref": [ "r15", "r18" ] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]" } } }, "auth_ref": [ "r858", "r868", "r878", "r910" ] }, "us-gaap_RegulatedOperationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "RegulatedOperationsAbstract", "lang": { "en-us": { "role": { "label": "Regulated Operations [Abstract]" } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ResearchAndDevelopmentExpense", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Research and development", "label": "Research and Development Expense", "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity." } } }, "auth_ref": [ "r365", "r725", "r734", "r735", "r749", "r1115" ] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Restatement Determination Date:", "label": "Restatement Determination Date [Axis]" } } }, "auth_ref": [ "r859", "r869", "r879", "r911" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Restatement Determination Date", "label": "Restatement Determination Date" } } }, "auth_ref": [ "r860", "r870", "r880", "r912" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Restatement does not require Recovery", "label": "Restatement Does Not Require Recovery [Text Block]" } } }, "auth_ref": [ "r867", "r877", "r887", "r919" ] }, "us-gaap_RestrictedStockUnitsRSUMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "RestrictedStockUnitsRSUMember", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Restricted Stock Units", "label": "Restricted Stock Units (RSUs) [Member]", "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met." } } }, "auth_ref": [ "r1060", "r1061", "r1062", "r1063", "r1064", "r1065", "r1066", "r1067", "r1068", "r1069", "r1070", "r1072", "r1073", "r1074", "r1075", "r1076", "r1077", "r1078", "r1079", "r1080", "r1081", "r1082", "r1083", "r1084", "r1085", "r1086" ] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Retained earnings", "label": "Retained Earnings (Accumulated Deficit)", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r37", "r68", "r601", "r635", "r637", "r644", "r662", "r823" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "RetainedEarningsMember", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Retained Earnings", "label": "Retained Earnings [Member]", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r86", "r87", "r88", "r134", "r135", "r136", "r138", "r145", "r147", "r149", "r238", "r239", "r276", "r295", "r361", "r378", "r379", "r386", "r387", "r388", "r390", "r444", "r445", "r452", "r454", "r455", "r457", "r463", "r502", "r503", "r632", "r634", "r646", "r1149" ] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Revenue", "verboseLabel": "Total Revenue", "label": "Revenue from Contract with Customer, Including Assessed Tax", "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise." } } }, "auth_ref": [ "r79", "r80", "r165", "r174", "r175", "r189", "r195", "r198", "r200", "r202", "r309", "r310", "r311", "r544" ] }, "us-gaap_RevenuesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "RevenuesAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Statements of Operations:", "label": "Revenues [Abstract]" } } }, "auth_ref": [] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Rule 10b5-1 Arrangement Adopted", "label": "Rule 10b5-1 Arrangement Adopted [Flag]" } } }, "auth_ref": [ "r928" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Rule 10b5-1 Arrangement Terminated", "label": "Rule 10b5-1 Arrangement Terminated [Flag]" } } }, "auth_ref": [ "r928" ] }, "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]", "label": "Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]", "documentation": "Disclosure of information about acquired finite-lived intangible asset by major class." } } }, "auth_ref": [ "r265", "r266", "r267", "r269", "r640", "r725" ] }, "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Debt Securities, Available-for-Sale [Line Items]", "label": "Debt Securities, Available-for-Sale [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r206", "r207", "r208", "r209", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217" ] }, "us-gaap_ScheduleOfComprehensiveIncomeLossTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfComprehensiveIncomeLossTableTextBlock", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Comprehensive Income (Loss)", "label": "Comprehensive Income (Loss) [Table Text Block]", "documentation": "Tabular disclosure of components of comprehensive income (loss). Includes, but is not limited to, foreign currency translation adjustments, foreign currency transactions designated as economic hedges of a net investment in foreign entity, gain (loss) and prior service cost (credit) for pension plans and other postretirement benefit plans." } } }, "auth_ref": [ "r45" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.protolabs.com/role/NetIncomeperCommonShareTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Computation Of Basic and Diluted Net Income Per Share", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r1008" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Intangible Assets Other Than Goodwill", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r729", "r1045" ] }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfInventoryCurrentTableTextBlock", "presentation": [ "http://www.protolabs.com/role/InventoryTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Inventory", "label": "Schedule of Inventory, Current [Table Text Block]", "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process." } } }, "auth_ref": [ "r8", "r41", "r42", "r43" ] }, "us-gaap_ScheduleOfNonvestedPerformanceBasedUnitsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfNonvestedPerformanceBasedUnitsActivityTableTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Nonvested Performance-Based Units Activity", "label": "Schedule of Nonvested Performance-Based Units Activity [Table Text Block]", "documentation": "Tabular disclosure of the changes in outstanding nonvested performance-based units." } } }, "auth_ref": [ "r70" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Segment Reporting Information, by Segment [Table]", "label": "Schedule of Segment Reporting Information, by Segment [Table]", "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment." } } }, "auth_ref": [ "r22", "r23", "r24" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "presentation": [ "http://www.protolabs.com/role/SegmentReportingTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Segment Reporting Information, by Segment", "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss." } } }, "auth_ref": [ "r22", "r23", "r24" ] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]", "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]", "documentation": "Disclosure of information about share-based payment arrangement." } } }, "auth_ref": [ "r324", "r326", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r360" ] }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Share-Based Payment Arrangement, Option, Activity", "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]", "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." } } }, "auth_ref": [ "r12", "r13", "r69" ] }, "us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions", "label": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]", "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions." } } }, "auth_ref": [ "r71", "r1088" ] }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions", "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]", "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." } } }, "auth_ref": [ "r71" ] }, "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity", "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]", "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." } } }, "auth_ref": [ "r1071" ] }, "prlb_ScheduleOfSharebasedPaymentAwardAwardsOtherThanStockOptionsValuationAssumptionsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ScheduleOfSharebasedPaymentAwardAwardsOtherThanStockOptionsValuationAssumptionsTableTextBlock", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions", "label": "Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions [Table Text Block]", "documentation": "Tabular disclosure of the valuation assumptions of share-based payment awards other than stock options." } } }, "auth_ref": [] }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Aggregated Amortization Expense", "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]", "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets." } } }, "auth_ref": [ "r729", "r1047" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "Security12bTitle", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Title of 12(b) Security", "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r853" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "SecurityExchangeName", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Security Exchange Name", "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r855" ] }, "us-gaap_SegmentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SegmentDomain", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Segments [Domain]", "label": "Segments [Domain]", "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity." } } }, "auth_ref": [ "r79", "r80", "r81", "r82", "r165", "r170", "r173", "r174", "r175", "r176", "r177", "r178", "r179", "r180", "r181", "r182", "r183", "r184", "r186", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r195", "r196", "r197", "r202", "r253", "r254", "r255", "r256", "r257", "r258", "r259", "r260", "r261", "r275", "r278", "r279", "r437", "r440", "r612", "r613", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r622", "r746", "r749", "r750", "r756", "r837", "r1117", "r1118", "r1119", "r1120", "r1121", "r1122", "r1123", "r1124", "r1125", "r1126", "r1127", "r1128", "r1129", "r1130", "r1131", "r1132", "r1133", "r1134", "r1135", "r1136", "r1137", "r1138", "r1139", "r1140", "r1141", "r1142", "r1143", "r1145", "r1146" ] }, "us-gaap_SegmentExpenditureAdditionToLongLivedAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SegmentExpenditureAdditionToLongLivedAssets", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Total expenditures for additions to long-lived assets", "label": "Segment, Expenditure, Addition to Long-Lived Assets", "documentation": "Amount of expenditure for addition to long-lived assets included in determination of segment assets by chief operating decision maker (CODM) or otherwise regularly provided to CODM. Excludes expenditure for addition to financial instrument, long-term customer relationship of financial institution, mortgage and other servicing rights, deferred policy acquisition cost, and deferred tax assets." } } }, "auth_ref": [ "r165", "r184", "r195", "r749", "r750" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "SegmentGeographicalDomain", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Geographical [Domain]", "label": "Geographical [Domain]" } } }, "auth_ref": [ "r167", "r200", "r201", "r547", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r576", "r577", "r578", "r579", "r580", "r586", "r587", "r588", "r589", "r649", "r650", "r651", "r701", "r703", "r706", "r708", "r709", "r711", "r712", "r713", "r714", "r715", "r716", "r717", "r718", "r719", "r720", "r721", "r722", "r728", "r742", "r762", "r764", "r825", "r826", "r827", "r828", "r829", "r830", "r831", "r832", "r836", "r845", "r1117", "r1118", "r1119", "r1121", "r1122", "r1123", "r1124", "r1125", "r1126", "r1127", "r1128", "r1129", "r1130", "r1131", "r1132", "r1133", "r1134", "r1135", "r1136", "r1137", "r1138", "r1139", "r1140", "r1141", "r1142", "r1143", "r1145", "r1146" ] }, "us-gaap_SegmentReportingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SegmentReportingAbstract", "lang": { "en-us": { "role": { "label": "Segment Reporting [Abstract]" } } }, "auth_ref": [] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.protolabs.com/role/SegmentReporting" ], "lang": { "en-us": { "role": { "terseLabel": "Segment Reporting", "label": "Segment Reporting Disclosure [Text Block]", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r82", "r165", "r169", "r170", "r171", "r172", "r173", "r185", "r187", "r188", "r193", "r194", "r195", "r196", "r197", "r198", "r199", "r202", "r745", "r747", "r748", "r749", "r751", "r752", "r753" ] }, "us-gaap_SegmentReportingInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SegmentReportingInformationLineItems", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Segment Reporting Information [Line Items]", "label": "Segment Reporting Information [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_SegmentReportingOtherItemAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SegmentReportingOtherItemAmount", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Segment expenses", "label": "Segment Reporting, Other Segment Item, Amount", "documentation": "Amount of other expense (income) and loss (gain) calculated as difference between segment revenue and separately disclosed expense category to arrive at segment profit (loss)." } } }, "auth_ref": [ "r165", "r187", "r188", "r195", "r749" ] }, "us-gaap_SellingAndMarketingExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SellingAndMarketingExpense", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Marketing and sales", "label": "Selling and Marketing Expense", "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofCashFlows" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based compensation expense", "label": "Share-Based Payment Arrangement, Noncash Expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r5" ] }, "prlb_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardPerformancePeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardPerformancePeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Award performance period (in years)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Performance Period", "documentation": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Performance Period" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based award, vesting period (in years)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period", "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition." } } }, "auth_ref": [ "r773" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPriceOfferingDate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPriceOfferingDate", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Discount from market price (in percent)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Discount from Market Price, Offering Date", "documentation": "Discount rate from fair value on offering date that participants pay for shares." } } }, "auth_ref": [ "r25" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Forfeited (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period." } } }, "auth_ref": [ "r345" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Forfeited (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value", "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event." } } }, "auth_ref": [ "r345" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Granted (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period", "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r343" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Granted (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value", "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r343" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Beginning balance (in shares)", "periodEndLabel": "Ending balance (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number", "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date." } } }, "auth_ref": [ "r340", "r341" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Beginning balance (in dollars per share)", "periodEndLabel": "Ending balance (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value", "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r340", "r341" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Weighted- Average Grant Date Fair Value Per Share", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]" } } }, "auth_ref": [] }, "prlb_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsPerformanceChange": { "xbrltype": "sharesItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsPerformanceChange", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Performance change (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Performance Change", "documentation": "Represents the amount of shares related to a performance change related to equity instruments other than option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [] }, "prlb_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsPerformanceChangeWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsPerformanceChangeWeightedAverageGrantDateFairValue", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Performance change (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Performance Change, Weighted Average Grant Date Fair Value", "documentation": "Represents the weighted average grant date fair value per share in connection to a performance change related to equity instruments other than options." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Restrictions lapsed (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period." } } }, "auth_ref": [ "r344" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Restrictions lapsed (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value", "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement." } } }, "auth_ref": [ "r344" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Expected dividend yield", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate", "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term." } } }, "auth_ref": [ "r353" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Expected volatility", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate", "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period." } } }, "auth_ref": [ "r352" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Risk-free interest rate", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate", "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares." } } }, "auth_ref": [ "r354" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r324", "r326", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r360" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Performance Stock Units", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding [Roll Forward]", "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Number of shares available for issuance pursuant to awards (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized", "documentation": "Number of additional shares authorized for issuance under share-based payment arrangement." } } }, "auth_ref": [ "r1087" ] }, "prlb_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPerformancePeriod": { "xbrltype": "integerItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPerformancePeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Number of performance periods", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number Of Performance Period", "documentation": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number Of Performance Period" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Option exercisable (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number", "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan." } } }, "auth_ref": [ "r334" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Options exercisable, weighted-average exercise price (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price", "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan." } } }, "auth_ref": [ "r334" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Expired (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period", "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements." } } }, "auth_ref": [ "r339" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Forfeited (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period", "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan." } } }, "auth_ref": [ "r338" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Granted (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross", "documentation": "Gross number of share options (or share units) granted during the period." } } }, "auth_ref": [ "r336" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based award, weighted-average grant date fair value (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value", "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology." } } }, "auth_ref": [ "r346" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Options outstanding, beginning balance (in shares)", "periodEndLabel": "Options outstanding, ending balance (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number", "documentation": "Number of options outstanding, including both vested and non-vested options." } } }, "auth_ref": [ "r332", "r333" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock Options", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]", "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Options outstanding, beginning balance (in dollars per share)", "periodEndLabel": "Options outstanding, ending balance (in dollars per share)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price", "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan." } } }, "auth_ref": [ "r332", "r333" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Weighted- Average Exercise Price", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails", "http://www.protolabs.com/role/StockBasedCompensationStockActivityDetails", "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Award Type [Domain]", "label": "Award Type [Domain]", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r351", "r352", "r353", "r354", "r355" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Exercised (in dollars per share)", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price", "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares." } } }, "auth_ref": [ "r337" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Expired (in dollars per share)", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price", "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired." } } }, "auth_ref": [ "r339" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Forfeited (in dollars per share)", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price", "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated." } } }, "auth_ref": [ "r338" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Granted (in dollars per share)", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price", "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options." } } }, "auth_ref": [ "r336" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based award, term (in years)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period", "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r774" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationWeightedAverageAssumptionsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Expected life (years)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term", "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r351" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationNarrativeDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Purchase price of common stock (in percent)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent", "documentation": "Purchase price of common stock expressed as a percentage of its fair value." } } }, "auth_ref": [ "r1087" ] }, "prlb_SheetMetalMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "SheetMetalMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Sheet Metal", "label": "Sheet Metal [Member]", "documentation": "Represents the information pertaining to sheet metal." } } }, "auth_ref": [] }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.protolabs.com/role/RecentAccountingPronouncements" ], "lang": { "en-us": { "role": { "terseLabel": "Recent Accounting Pronouncements", "label": "Significant Accounting Policies [Text Block]", "documentation": "The entire disclosure for all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r127", "r128" ] }, "prlb_SoftwarePlatformMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "SoftwarePlatformMember", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsScheduleofIntangibleAssetsOtherThanGoodwillDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Software platform", "label": "Software Platform [Member]", "documentation": "Information pertaining to software platform." } } }, "auth_ref": [] }, "us-gaap_StatementBusinessSegmentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementBusinessSegmentsAxis", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Segments [Axis]", "label": "Segments [Axis]", "documentation": "Information by business segments." } } }, "auth_ref": [ "r79", "r80", "r81", "r82", "r92", "r165", "r170", "r173", "r174", "r175", "r176", "r177", "r178", "r179", "r180", "r181", "r182", "r183", "r184", "r186", "r187", "r188", "r189", "r190", "r191", "r192", "r193", "r195", "r196", "r197", "r202", "r253", "r254", "r255", "r256", "r257", "r258", "r259", "r260", "r261", "r275", "r277", "r278", "r279", "r437", "r440", "r612", "r613", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r622", "r746", "r749", "r750", "r756", "r837", "r1117", "r1118", "r1119", "r1120", "r1121", "r1122", "r1123", "r1124", "r1125", "r1126", "r1127", "r1128", "r1129", "r1130", "r1131", "r1132", "r1133", "r1134", "r1135", "r1136", "r1137", "r1138", "r1139", "r1140", "r1141", "r1142", "r1143", "r1145", "r1146" ] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Components [Axis]", "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r11", "r35", "r38", "r39", "r86", "r87", "r88", "r114", "r115", "r116", "r134", "r135", "r136", "r138", "r145", "r147", "r149", "r166", "r238", "r239", "r276", "r295", "r308", "r361", "r378", "r379", "r386", "r387", "r388", "r390", "r444", "r445", "r452", "r453", "r454", "r455", "r456", "r457", "r458", "r459", "r460", "r461", "r463", "r496", "r497", "r498", "r499", "r500", "r501", "r502", "r503", "r509", "r606", "r632", "r633", "r634", "r646", "r697" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2025", "localname": "StatementGeographicalAxis", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Geographical [Axis]", "label": "Geographical [Axis]" } } }, "auth_ref": [ "r167", "r200", "r201", "r547", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r576", "r577", "r578", "r579", "r580", "r586", "r587", "r588", "r589", "r649", "r650", "r651", "r701", "r703", "r706", "r708", "r709", "r711", "r712", "r713", "r714", "r715", "r716", "r717", "r718", "r719", "r720", "r721", "r722", "r728", "r742", "r762", "r764", "r825", "r826", "r827", "r828", "r829", "r830", "r831", "r832", "r836", "r845", "r1117", "r1118", "r1119", "r1121", "r1122", "r1123", "r1124", "r1125", "r1126", "r1127", "r1128", "r1129", "r1130", "r1131", "r1132", "r1133", "r1134", "r1135", "r1136", "r1137", "r1138", "r1139", "r1140", "r1141", "r1142", "r1143", "r1145", "r1146" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementLineItems", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Statement [Line Items]", "label": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r134", "r135", "r136", "r166", "r297", "r298", "r300", "r302", "r503", "r544", "r643", "r647", "r648", "r654", "r655", "r656", "r657", "r658", "r659", "r661", "r664", "r665", "r666", "r667", "r668", "r669", "r670", "r671", "r672", "r674", "r675", "r676", "r677", "r678", "r681", "r682", "r683", "r684", "r685", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693", "r694", "r697", "r736", "r738", "r846", "r1148" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "terseLabel": "Statement of Cash Flows [Abstract]", "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "terseLabel": "Statement of Financial Position [Abstract]", "label": "Statement of Financial Position [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "terseLabel": "Statement of Stockholders' Equity [Abstract]", "label": "Statement of Stockholders' Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StatementTable", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Statement [Table]", "label": "Statement [Table]", "documentation": "Presentation of information about comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity." } } }, "auth_ref": [ "r134", "r135", "r136", "r166", "r203", "r297", "r298", "r300", "r302", "r503", "r544", "r643", "r647", "r648", "r654", "r655", "r656", "r657", "r658", "r659", "r661", "r664", "r665", "r666", "r667", "r668", "r669", "r670", "r671", "r672", "r674", "r675", "r676", "r677", "r678", "r681", "r682", "r683", "r684", "r685", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693", "r694", "r697", "r736", "r738", "r846", "r1148" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Stock Price or TSR Estimation Method", "label": "Stock Price or TSR Estimation Method [Text Block]" } } }, "auth_ref": [ "r862", "r872", "r882", "r914" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Stock Appreciation Rights (SARs)", "label": "Stock Appreciation Rights (SARs) [Member]", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [ "r1060", "r1061", "r1062", "r1063", "r1064", "r1065", "r1066", "r1067", "r1068", "r1069", "r1070", "r1072", "r1073", "r1074", "r1075", "r1076", "r1077", "r1078", "r1079", "r1080", "r1081", "r1082", "r1083", "r1084", "r1085", "r1086" ] }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)", "label": "Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture", "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)." } } }, "auth_ref": [ "r11", "r34", "r35", "r68" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.protolabs.com/role/StockBasedCompensationOptionActivityDetails" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Exercised (in shares)", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r11", "r34", "r35", "r68", "r337" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Common shares issued on exercise of options and other, net of shares withheld for tax obligations", "label": "Stock Issued During Period, Value, Stock Options Exercised", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r11", "r35", "r38", "r39", "r68" ] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockRepurchasedAndRetiredDuringPeriodShares", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Repurchases of common stock (in shares)", "label": "Stock Repurchased and Retired During Period, Shares", "documentation": "Number of shares that have been repurchased and retired during the period." } } }, "auth_ref": [ "r11", "r34", "r35", "r68" ] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockRepurchasedAndRetiredDuringPeriodValue", "crdr": "debit", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Repurchases of common stock", "label": "Stock Repurchased and Retired During Period, Value", "documentation": "Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital)." } } }, "auth_ref": [ "r11", "r34", "r35", "r68" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.protolabs.com/role/ConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.protolabs.com/role/AccumulatedOtherComprehensiveIncomeLossDetails", "http://www.protolabs.com/role/ConsolidatedBalanceSheets", "http://www.protolabs.com/role/ConsolidatedStatementsofShareholdersEquity" ], "lang": { "en-us": { "role": { "totalLabel": "Total shareholders' equity", "periodStartLabel": "Beginning balance", "periodEndLabel": "Ending balance", "label": "Equity, Attributable to Parent", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r35", "r38", "r39", "r64", "r663", "r679", "r698", "r699", "r823", "r852", "r1000", "r1001", "r1002", "r1034", "r1105", "r1149" ] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "StockholdersEquityAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "terseLabel": "Shareholders' equity", "label": "Equity, Attributable to Parent [Abstract]" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SubsequentEventsAbstract", "lang": { "en-us": { "role": { "label": "Subsequent Events [Abstract]" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "SubsequentEventsTextBlock", "presentation": [ "http://www.protolabs.com/role/SubsequentEvent" ], "lang": { "en-us": { "role": { "terseLabel": "Subsequent Event", "label": "Subsequent Events [Text Block]", "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business." } } }, "auth_ref": [ "r510", "r511" ] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Tabular List, Table", "label": "Tabular List [Table Text Block]" } } }, "auth_ref": [ "r908" ] }, "prlb_ThreeDPrintingFinelineMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "ThreeDPrintingFinelineMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDisaggregationofRevenueDetails" ], "lang": { "en-us": { "role": { "terseLabel": "3D Printing", "label": "3D Printing (Fineline) [Member]", "documentation": "Represents the 3D Printing (Fineline) product." } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Total Shareholder Return Amount", "label": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r900" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Total Shareholder Return Vs Peer Group", "label": "Total Shareholder Return Vs Peer Group [Text Block]" } } }, "auth_ref": [ "r907" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Trading Arrangement:", "label": "Trading Arrangement [Axis]" } } }, "auth_ref": [ "r927" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Trading Arrangements, by Individual", "label": "Trading Arrangements, by Individual [Table]" } } }, "auth_ref": [ "r929" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "TradingSymbol", "presentation": [ "http://www.protolabs.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Trading Symbol", "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Financial Instruments [Domain]", "label": "Financial Instruments [Domain]", "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." } } }, "auth_ref": [ "r206", "r207", "r208", "r209", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217", "r218", "r219", "r220", "r221", "r222", "r223", "r224", "r225", "r226", "r227", "r228", "r229", "r230", "r231", "r232", "r233", "r234", "r235", "r294", "r307", "r451", "r462", "r488", "r493", "r495", "r512", "r513", "r514", "r515", "r516", "r517", "r518", "r519", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r539", "r540", "r541", "r542", "r594", "r607", "r811", "r814", "r815", "r816", "r817", "r818", "r819", "r820", "r821", "r824", "r942", "r943", "r944", "r945", "r946", "r947", "r948", "r1030", "r1031", "r1032", "r1033", "r1095", "r1098", "r1099", "r1100", "r1101", "r1102", "r1103", "r1104" ] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Adoption Date", "label": "Trading Arrangement Adoption Date" } } }, "auth_ref": [ "r930" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Arrangement Duration", "label": "Trading Arrangement Duration" } } }, "auth_ref": [ "r931" ] }, "ecd_TrdArrExpirationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrExpirationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Expiration Date", "label": "Trading Arrangement Expiration Date" } } }, "auth_ref": [ "r931" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Name", "label": "Trading Arrangement, Individual Name" } } }, "auth_ref": [ "r929" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Title", "label": "Trading Arrangement, Individual Title" } } }, "auth_ref": [ "r929" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate Available", "label": "Trading Arrangement, Securities Aggregate Available Amount" } } }, "auth_ref": [ "r932" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Termination Date", "label": "Trading Arrangement Termination Date" } } }, "auth_ref": [ "r930" ] }, "country_US": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2025", "localname": "US", "presentation": [ "http://www.protolabs.com/role/GoodwillandOtherIntangibleAssetsNarrativeDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofExpendituresForAdditionsToLongLivedAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "United States", "label": "UNITED STATES" } } }, "auth_ref": [] }, "us-gaap_USGovernmentAgenciesDebtSecuritiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "USGovernmentAgenciesDebtSecuritiesMember", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "U.S. government agency securities", "label": "US Government Agencies Debt Securities [Member]", "documentation": "Debentures, notes, and other debt securities issued by US government agencies, for example, but not limited to, Government National Mortgage Association (GNMA or Ginnie Mae). Excludes US treasury securities and debt issued by government-sponsored Enterprises (GSEs), for example, but is not limited to, Federal Home Loan Mortgage Corporation (FHLMC or Freddie Mac), Federal National Mortgage Association (FNMA or Fannie Mae), and the Federal Home Loan Bank (FHLB)." } } }, "auth_ref": [ "r739", "r740", "r765", "r767", "r1116" ] }, "us-gaap_USStatesAndPoliticalSubdivisionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "USStatesAndPoliticalSubdivisionsMember", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "U.S. municipal securities", "label": "US States and Political Subdivisions Debt Securities [Member]", "documentation": "Bonds or similar securities issued by state, city, or local US governments or the agencies operated by state, city, or local governments. Debt securities issued by state governments may include bond issuances of US state authorities including, for example, but not limited to, housing authorities, dormitory authorities, and general obligations while debt securities issued by political subdivisions of US states would include, for example, debt issuances by county, borough, city, or municipal governments." } } }, "auth_ref": [ "r765", "r767", "r824", "r841", "r1144" ] }, "us-gaap_USTreasuryBondSecuritiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "USTreasuryBondSecuritiesMember", "presentation": [ "http://www.protolabs.com/role/MarketableSecuritiesScheduleofShortTermandLongTermMarketableSecuritiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "U.S. treasury bonds", "label": "US Treasury Bond Securities [Member]", "documentation": "This category includes information about negotiable debt securities issued by the United States Department of the Treasury which generally have maturities greater than ten and as long as thirty years, are interest bearing, and are backed by the full faith and credit of the United States government." } } }, "auth_ref": [ "r1116" ] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Underlying Security Market Price Change", "label": "Underlying Security Market Price Change, Percent" } } }, "auth_ref": [ "r926" ] }, "prlb_UnitedStatesSegmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.protolabs.com/20250930", "localname": "UnitedStatesSegmentMember", "presentation": [ "http://www.protolabs.com/role/SegmentReportingScheduleofDepreciationandAmortizationDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofLongLivedAssetsbyGeographicAreasDetails", "http://www.protolabs.com/role/SegmentReportingScheduleofReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "United States", "verboseLabel": "United States", "label": "United States Segment [Member]", "documentation": "Operating segment for United States." } } }, "auth_ref": [] }, "us-gaap_UnrecognizedTaxBenefits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "UnrecognizedTaxBenefits", "crdr": "credit", "presentation": [ "http://www.protolabs.com/role/IncomeTaxesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Unrecognized tax benefits", "label": "Unrecognized Tax Benefits", "documentation": "Amount of unrecognized tax benefits." } } }, "auth_ref": [ "r367", "r375", "r775" ] }, "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year", "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]" } } }, "auth_ref": [ "r896" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Diluted (in shares)", "totalLabel": "Diluted - weighted-average shares outstanding (in shares)", "label": "Weighted Average Number of Shares Outstanding, Diluted", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r152", "r160" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome", "http://www.protolabs.com/role/NetIncomeperCommonShareScheduleofComputationOfBasicandDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Basic (in shares)", "verboseLabel": "Basic - weighted-average shares outstanding (in shares)", "label": "Weighted Average Number of Shares Outstanding, Basic", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r151", "r160" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2025", "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract", "presentation": [ "http://www.protolabs.com/role/ConsolidatedStatementsofComprehensiveIncome" ], "lang": { "en-us": { "role": { "terseLabel": "Shares used to compute net income per share:", "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]" } } }, "auth_ref": [] }, "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2025", "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested", "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]" } } }, "auth_ref": [ "r894" ] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482130/360-10-45-5" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482739/220-10-55-15" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "30", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/220/tableOfContent" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Paragraph": "1", "Section": "45", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.BB)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482130/360-10-45-15" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(f)(2)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/810/tableOfContent" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r83": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2" }, "r84": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9" }, "r85": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r86": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r87": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "9", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9" }, "r88": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "9", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9" }, "r89": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/205/tableOfContent" }, "r90": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481034/205-10-S45-5" }, "r91": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480922/205-10-S99-3" }, "r92": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1" }, "r93": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7" }, "r94": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r95": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5" }, "r96": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r97": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r98": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r99": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r100": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r101": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r102": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r103": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r104": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r105": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r106": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r107": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r108": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r109": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r110": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r111": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r112": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r113": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r114": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r115": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r116": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r117": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r118": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r119": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r120": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r121": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r122": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-11" }, "r123": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r124": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r125": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r126": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r127": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/235/tableOfContent" }, "r128": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1" }, "r129": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/260/tableOfContent" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-28A" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "275", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "275", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/280/tableOfContent" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-11" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aa)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aaa)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(aaa)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-11" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-14" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-16" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479130/326-30-45-1" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-4" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-7" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/330/tableOfContent" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-4" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4.d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(f)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-1" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-2" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-3" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-3" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(01)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(01)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3A", "Subparagraph": "(24)(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-7" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718/tableOfContent" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1D", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480454/718-10-45-1" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "17", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479983/718-10-S45-1" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "720", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/740/tableOfContent" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-10B" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-4" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-6" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.1.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1B" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8A" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "54B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6B" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482736/825-10-45-1A" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-11" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-11" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-32" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "12A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/855/tableOfContent" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481444/860-30-45-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(4)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-20" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-20" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-28" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-28" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "280", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "940", "SubTopic": "820", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478671/942-235-S50-1" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-3A" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-3A" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "740", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477617/942-740-50-1" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478898/942-825-50-1" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column J))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column K))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.W.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "740", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478822/944-740-50-1" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "805", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478072/944-805-50-1" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-1" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-2" }, "r643": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r644": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11" }, "r645": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13" }, "r646": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r647": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-6" }, "r648": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4" }, "r649": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r650": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-2" }, "r651": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r652": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r653": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r654": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r655": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r656": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r657": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r658": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r659": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r660": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r661": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r662": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r663": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r664": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r665": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r666": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r667": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r668": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r669": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r670": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r671": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r672": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r673": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r674": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r675": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r676": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r677": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r678": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r679": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r680": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7" }, "r681": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r682": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r683": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r684": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r685": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r686": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r687": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r688": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r689": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r690": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r691": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r692": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r693": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r694": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r695": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r696": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r697": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r698": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r699": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r700": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r701": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r702": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r703": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r704": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r705": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r706": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r707": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r708": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r709": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478322/948-310-S50-2" }, "r710": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column A)(Footnote 3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r711": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column A)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r712": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r713": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r714": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r715": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r716": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r717": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r718": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r719": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r720": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r721": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r722": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r723": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1" }, "r724": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1" }, "r725": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" }, "r726": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "SubTopic": "10", "Topic": "825", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-10" }, "r727": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r728": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(b)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r729": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "SubTopic": "30", "Topic": "350", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40" }, "r730": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r731": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r732": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-12" }, "r733": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-11" }, "r734": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-14" }, "r735": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-18" }, "r736": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-21" }, "r737": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-24" }, "r738": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-4" }, "r739": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1" }, "r740": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r741": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52" }, "r742": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "275", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-18" }, "r743": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r744": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r745": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r746": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r747": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r748": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r749": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "48", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48" }, "r750": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "49", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49" }, "r751": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r752": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r753": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r754": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A" }, "r755": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479081/326-30-55-8" }, "r756": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24" }, "r757": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481639/420-10-35-4" }, "r758": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B" }, "r759": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C" }, "r760": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "64", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481620/480-10-55-64" }, "r761": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r762": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r763": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r764": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r765": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r766": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r767": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5" }, "r768": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5" }, "r769": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17" }, "r770": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11" }, "r771": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6" }, "r772": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8" }, "r773": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r774": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r775": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "217", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217" }, "r776": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "231", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231" }, "r777": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-8" }, "r778": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "39", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-39" }, "r779": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-41" }, "r780": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "43", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-43" }, "r781": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-47" }, "r782": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r783": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r784": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r785": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r786": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r787": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20" }, "r788": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20" }, "r789": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20" }, "r790": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20" }, "r791": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29" }, "r792": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29" }, "r793": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r794": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r795": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r796": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r797": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r798": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r799": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r800": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r801": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r802": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "31", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31" }, "r803": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r804": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r805": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r806": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r807": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r808": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r809": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "805", "SubTopic": "740", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478064/805-740-55-13" }, "r810": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r811": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r812": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r813": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r814": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "101", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101" }, "r815": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "103", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103" }, "r816": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r817": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r818": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r819": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r820": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r821": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r822": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-12" }, "r823": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10" }, "r824": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481395/860-30-55-4" }, "r825": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17" }, "r826": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21" }, "r827": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "29", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29" }, "r828": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3" }, "r829": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2" }, "r830": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4" }, "r831": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5" }, "r832": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6" }, "r833": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2" }, "r834": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F" }, "r835": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r836": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r837": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r838": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E" }, "r839": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "605", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-11" }, "r840": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "605", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-14" }, "r841": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-17" }, "r842": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18" }, "r843": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r844": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r845": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1" }, "r846": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r847": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r848": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r849": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r850": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r851": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10" }, "r852": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12" }, "r853": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r854": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r855": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r856": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r857": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r858": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r859": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r860": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r861": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r862": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r863": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r864": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r865": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r866": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r867": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r868": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r869": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r870": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r871": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r872": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r873": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r874": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r875": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r876": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r877": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r878": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r879": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r880": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r881": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r882": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r883": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r884": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r885": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r886": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r887": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r888": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r889": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r890": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r891": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r892": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r893": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "ii" }, "r894": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "i" }, "r895": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "ii" }, "r896": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iii" }, "r897": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iv" }, "r898": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "v" }, "r899": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "vi" }, "r900": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r901": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r902": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r903": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r904": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r905": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r906": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r907": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r908": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r909": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r910": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r911": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r912": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r913": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r914": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r915": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r916": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r917": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r918": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r919": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r920": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r921": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r922": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "A" }, "r923": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "C" }, "r924": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "D" }, "r925": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "E" }, "r926": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "F" }, "r927": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r928": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r929": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r930": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r931": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r932": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r933": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r934": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Number": "229", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1" }, "r935": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "A", "Number": "229" }, "r936": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Number": "229" }, "r937": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "i", "Number": "229" }, "r938": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r939": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r940": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Topic": "321", "Publisher": "FASB", "URI": "https://asc.fasb.org/321/tableOfContent" }, "r941": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Topic": "325", "Publisher": "FASB", "URI": "https://asc.fasb.org/325/tableOfContent" }, "r942": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "a", "Publisher": "SEC" }, "r943": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "b", "Subparagraph": "(1)", "Publisher": "SEC" }, "r944": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "b", "Subparagraph": "(2)", "Publisher": "SEC" }, "r945": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "b", "Subparagraph": "(3)", "Publisher": "SEC" }, "r946": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "c", "Subparagraph": "(2)(i)", "Publisher": "SEC" }, "r947": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "c", "Subparagraph": "(2)(ii)", "Publisher": "SEC" }, "r948": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-K (SK)", "Number": "229", "Section": "1402", "Paragraph": "c", "Subparagraph": "(2)(iii)", "Publisher": "SEC" }, "r949": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r950": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r951": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r952": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r953": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r954": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r955": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r956": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r957": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r958": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r959": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r960": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r961": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r962": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r963": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r964": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r965": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r966": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(k)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r967": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r968": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(m)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21" }, "r969": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r970": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r971": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r972": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r973": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r974": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r975": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r976": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r977": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r978": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(k)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r979": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r980": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(m)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r981": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r982": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(o)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r983": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(p)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r984": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(q)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r985": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(r)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r986": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(s)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r987": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(t)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r988": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(u)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22" }, "r989": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-30" }, "r990": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-31" }, "r991": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-32" }, "r992": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-33" }, "r993": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r994": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r995": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r996": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r997": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6" }, "r998": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r999": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r1000": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1" }, "r1001": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r1002": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r1003": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r1004": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r1005": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r1006": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r1007": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r1008": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r1009": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r1010": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15" }, "r1011": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r1012": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r1013": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r1014": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r1015": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2" }, "r1016": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/320/tableOfContent" }, "r1017": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-1" }, "r1018": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-11" }, "r1019": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r1020": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aa)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r1021": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aaa)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r1022": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r1023": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r1024": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r1025": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r1026": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r1027": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r1028": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r1029": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3" }, "r1030": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9" }, "r1031": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "321", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3" }, "r1032": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "321", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3" }, "r1033": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "321", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3" }, "r1034": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r1035": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-20/tableOfContent" }, "r1036": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r1037": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r1038": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r1039": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-30/tableOfContent" }, "r1040": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r1041": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r1042": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r1043": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r1044": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r1045": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r1046": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r1047": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r1048": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r1049": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r1050": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r1051": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r1052": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r1053": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r1054": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r1055": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r1056": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r1057": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r1058": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r1059": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5" }, "r1060": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1061": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1062": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1063": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1064": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1065": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1066": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1067": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1068": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1069": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1070": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1071": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1072": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1073": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1074": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1075": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1076": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1077": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1078": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1079": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1080": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1081": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1082": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1083": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1084": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1085": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1086": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r1087": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-4" }, "r1088": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "50", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718-50/tableOfContent" }, "r1089": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r1090": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r1091": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r1092": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4" }, "r1093": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2" }, "r1094": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r1095": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "54B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B" }, "r1096": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r1097": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r1098": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r1099": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r1100": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r1101": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r1102": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r1103": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10" }, "r1104": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-11" }, "r1105": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r1106": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r1107": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r1108": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r1109": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r1110": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r1111": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r1112": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r1113": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r1114": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r1115": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "912", "SubTopic": "730", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1" }, "r1116": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "942", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-2" }, "r1117": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B" }, "r1118": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r1119": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r1120": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C" }, "r1121": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D" }, "r1122": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4G", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G" }, "r1123": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1124": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1125": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1126": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1127": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1128": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1129": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1130": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1131": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1132": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1133": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1134": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1135": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1136": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1137": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1138": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1139": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1140": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1141": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1142": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1143": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1144": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-1" }, "r1145": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r1146": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r1147": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r1148": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3" }, "r1149": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r1150": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r1151": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r1152": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r1153": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r1154": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r1155": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" } } } ZIP 66 0001443669-25-000013-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001443669-25-000013-xbrl.zip M4$L#!!0 ( QM7UL6U4V'/ 3R>'9\S8SNV)SEY_\E"T++( MQJ \B6?_NEJT,U"$@@0#>JL'8\M<>FN^E5U575UU>?_^_KD<<\HC-S __7/ MXD#X,X=\.W!<__'7/Y_?7UQ=_?G_#O_K\__7[__OE[OOW-? GCTA/^8N0F3% MR.%>W'C"Q1/$_3T(?W>?+>[6L^)Q$#[U^\EM%\'T+70?)S$G"9(ZOVS^;7@F MCDQ'MR34']N6TU?&MMBW-,WL:[)D:,)X)$NVP3^>C2U#A-PC"QX^N[[D^@CE_C$/+CV!*5HR) M]!%/0^@+4E^4>NE#\)6_9S]%$@3Y(WP]LB(TOQR^==S%#:L7:Q^3+^>7.NC= M=1&R!X_!\T?\!0Q$77VFNV,,KA_%EF\OQQ"M7_TBSZ\5/_[OC^_W]@0]6?V- MNS9FFMXGFJ;YD7P[OQ393O;(\1=K(Y^&WFCMD=,PB //&D4#.W@BEPJF+/26 M#.OC1ZW=,7_T+IZ):E\P^K*8/F?[) <\Y?9P M\OL_[WO#SQ-D.XX; M33WK[

P84H3'YU'0?YY%?\_376.Z%K)^]_C>_0^->>W!)RSRY]_+JW"SRZT/*N? >]_@]ZZW$N1N*XCTDZ%#"\%47&ZN7SQ[6G%GC) MQ2P,\1N^N9%M>?] 5GCI.U^Q*NQQ"=Q^[6&(GCGXD_X3?LJD[UC+,6B]H2AA M%![^^KD"7K[_&_XD6KQ![PV!^E6]X!9?'CCKKS!ZP[_*A[_@'#_=(6_PK,=U MJHW=5^3TQY8'RC)]F]D;D@^*O5"2YJ],A>KL?F*%Z M6P\Y%\#1%?D0TPWF( M%<4C@N%\>5M>F_3AT;'7239,/H9NISL>&UY"S!_R&,/PZ"\EX MUG $"\29,PM7),_09"P8HE#PC4:9-V+Z8S6X\<:/ZZHM1&.$%8J-H@R-#"OJ M64068SPFCJRP9S'6P[_V(O=IZL'*3#Z;A##D->4[>(TN@U4L)G:TX" ]\[<;]\.%7Y =/KI_UV+RD67O$ MQ_71[YHUFH5;*7CY\ZX0!?W9TPAM/B[Y:XI_+?2TZ5+U3!/5\_[!1+]-WVNH M/"])!9&\!]:/^>>(+/'SOS#Q\-]C%X4<$1*4:19>7/W/^M+__N;%"-:?GDQJ M_A>VA,,8%GJROO8%$?\WOV_YW6*8SLJE9A],H?5OYG_/7_)Q;=[99) H($/B M$L3)S$0!6P.+!Z7?'#(SF;:9K?&LS,P4NF:F]%/[L_S,5 IF]EXH]>,+I48; M&93\9%"J(X-.(1GRJN@*R6#4389T-N@1[.SD3P>_['7JN;8;_T"PP'..B[\E M$;VE&1_C*<$]E]BIQTXRMN6QS^W'T?FKB^V]^67X<^RUWL>!_7ORK,\?,U^Q MH,9B)(WI(;/E)#]W'!<<"NQL6ZYSY5]84S>VO+:07Q1:3O\[%%NNCYQ+*_2Q MJQJUAO"U6\5U ]^V9T\S#[81;N()"N&Z$$W@:<_HRK>#)]0:7M1NFK=9[Y=P MG>05!I59E\7:/8RNK!(T,(L&IXD&.M3N8K5^::6!2[5[@%UVM5\H*&_:2:IL8TI8QCCFAN0TFK*"]#8HYHL_1G MCF@SA)>9(TH/+^AS1"N;&G-$ZZ(MGZUI(%+;7>3J7# FF!< MVSWG(SI@527&RVUW>AMRP"JC?]L=X&,[8)41ONV>+P4.6&6G<]KN#!]+\+_)6[(Q@ M57FG2MN]S68B;PTQJ^4'6RNC W,7V\ EYENVDW$JJT#5QB MCF@[&:GA!GR-:V=3:[H@VYNM2H01,,:GOB[O$=L":XU'8WF0H'K G&M=US/J(#5E4:L-YVI[?EC_"L(+SXK>@>XZ &!-48S.'T-$4-J:TT:/.6\YBLO7*F%R&R=0ZVP>Q HRH M68S"^V G=G:[A"K2?=.JY4N.H9U/K:A;B2M.Y-63'O>=\6R3"H];=2YF?UE%KD^PMRTL8\? MD0#6"F//Y:]_F8TB[,0/X-^:@[UPYJ,O27F"O>\N+=4ND+H-\#T@L(.9'X=O M9S_O&?LK8#\->^Z'GWY:TX6EZ$!O4,)RP[]9W@Q]>2.K4)9=9D63RCRGY>M^ M)-VQ8;S?0O3O&?+MM_47+RY>N32Z0_8L#%W_L88A+7[]"Z:I%=J3M^_H&7E; M1G7E8W,U(E>(K3&,J O),"!6"42I-4"D+FS$@%@E$.76 )'>T!8#(O5+:=& 9* MBI;O*D'9YET9!DJ*EN\J0=F&'9HN(:,]+G ;MDRZA(SV^*%MV,/H$C):XPR* M0AMV%;H$C=:X9*+0ACA_EZ#1&L=(%-H0;>\2-%KCGH@"O3%OU[=\V[6\*SR_ M< 9WKQ/^Y_UOP3,*??+-(X:+BZ*O:!3? R+<&/_5GF6=WB#O/BY!ALMN6=S\;.>ZS"T]J$0_HC=SMY\%#2%:CMR^! M[[01__0&J"A? "I=AND-!M&X %1*>GJC+50O %7R0*0WK$'E E I[:F-&]QZ MEG]M/:&5XY[? __Q 85/5[X-SW^&\]P^)D@-OOC[ X]J7Y(7S]E=Y''UTC(' M'D616L>=(MZH^0^CJM45X!1%:CUGNGB#A4'(R9O52\OQAEI_^OS%"IV'M^DJ MUF2-0% M3!I;[NY0%(>N'2.',/*G[\;1W?W/;IHY$G7!F,:6O-/B>UL"/4?G3DV[!5+; M(CJG)0[4175HX4Y=]@9U(94]!+]%(90_MGP;W4^LL$6)*A)UD8SF24V%SJ$N MVM \7VI:?&5JG?R,+<;\*&R$ZWT2%O>C "UPHP F=IH0AX(D//- M%X&?M"%DB*@$$=2%/ H@8H5'#!;5PH*ZB,C)PV+=,%[E=#FK@+H82&,QSQ,Q MN67J@C"-13M/A>-M"^P[)U,5_ZM>]&>OWVI;A[2RT)U9$4DP[*HW4 MA:+JU[^,ZS)U@:Z3DO6&-+Q"76_9WAV:2L#FUKOJ(O M)6!#:U\*G7!E+8RL*$U M4*4V+K)@X)=9Y/HHBNZ31T0KSCBD%T.F,;YR_G4W5SJ5VA!)'C9=SL)@BKK- M(/KC)-D,VJCZ=NX[-_$$A1WE$_V!$:KT74.&H4I_((02?=<4@^@/>="E[YKB M$_TQ#JKT75-^%/V1#$KT75,,HC]209>^:XA/&OT!":KT74-A!ZW588- M,*BM 8<&[;M&^-36N,/Q]%U-Q]K\\^99T5!$2Z/.$V^> M%0TYVSIUSG;SK&C(#]"II69?R&;E)()\'/\1WQI'#SA MWSNZI%#G@U/*GZ96&"K]=0KYT]2"0Z433R%_FEI_J/3L=_#GXOKBAV5/7!_S MYIL;1K$]ZVAZJT&EIT\7:QI:=0PJ/7^Z6-/0@F-0&0.@BS4-K34&E=& ':QY MF(0(?;T-7?P"8(Z///S_CJXV5$8&:&-.4^M-VZ($34E.(RM.VT($34E.(VM. MV^(#]Q.$\%VQY75TG6E;0.!H#&EJ;6E;!."8$M+$>F*VS>\_IH0TL8:8;?/V M2>YU^GU'R]"8;7/SC\F3AE82LVW^_9'EI)'%I&UN_9'EI)'UA#IO'MD.M(]Q MGUUG-L^\(-SXX=H3"WEW@_]!OAO5WEV\J<6$.@^^*H;D>M%#:,%.YWD8[GC1 M\B*HF@W3N B>G@*?U.2]0TD=PR#I=)[T'_H-7XD_;,UQ"Y.Z4$%;49#5D+9U M:* N3K$5#3<>>KQ[LT;!6T?5,W41BO*L.%PDEZ\HKI+;(GV20%T,I$TL_QO6 MO\C)TL+M 0!U,9 GJ:39'@A\=%_/0A0%L]!&4?+G!%D.&0^F^/ S_D&0 MX8JB(SGZ6%"DD:6,1LY(<239ED?R>"3JMF'_$W"SO">*WSR,D"?7[T^0^SB) MSQ1U&G]Z<9UXN&GZ.IY<^OM@,O",_^@.$CC,>?QGB0_;'UY'IO M9W]^P,R*N&OTPMT%3Y;_9S[",TJOB=S_(/Q,_'CRYTOZ/D'X!-MK\_>+DO!_ M/L&L^PZRH5@"YOS9S,=SA:OP<"P:AL%-0C3^M0?@ZP-;35EX1:^OLB@.)O%3 M;_A@C3S$!6/N ECHQ]'GCQ:F.U!Q3OX%$X:?8W)U.JU1$.*W]/'L/&L:H;/Y M+Y\<-YIZUALDHN>G3DQ4^8N:-@C@.GLZ =\\HC.%\0-_RW$?_C,PA^7K) MUH&0L#;& (J=^9O3KP?XJX^;GYO&P!2ROQ(&(OG\(WE>./\R):4\C7OD'CP3 M(,"O/;GW;K+I\/&5G!/,@!C UD]3RP%A/A,X$3]C_H*/9.89*"93369M8YJC ML+<5M_CA!0%CO .,G@&8WO#G]=7#Y5?N_N'\X?)^G=]T#?3^\N+GW=7#U>4] M=W[]E;O\WXN_G%__=LE=W/SX<75_?W5SW@#[$STN-\"XP.![EG7P-[!JLD=.[LD?5IC"\8BD+_KV0-6SYEF),( MO98H2VE@FKMU96ZUJPP,,9?:W:9C-[3H[LNDZ2M8F?;NJ/M6'<*TF1] =I/ZCIH^'?\8'AXA*EG^5'_0!(6 ME]Z_SJP0:QOO[0Y-@S#N<:3G;HR-S=?X;.R^(J%E]P&LG M)\K7SS UZ(I*UF ;D*B=UG[=9'T6Q!R M\01Q_YXCC4L<(0YA@]LY8,&Y);=?)D&U=< Z^),^=@CC"=S6=ZRW_ANRPC[R MYP"6L76$IC'Q]_[T!U$3/LD"SX&5OWO16G)NJX7Z;D5/&=0';F!22 .5J*PC M&U-!R!;?VA??3JT(I!^7"R[Q]B5A;'G18DU0,,HZNAP\W)U?WU\1I=_)]:"A MI2!>0&R^%HS#X(E;<9NX.%C[X.;EW+FLJ!';%OJPJ\IX%BVI7LR@A[M"C&P%J8FB..R>&UAN2 \K< M=VL4\=R5;P]RTX2"J,&'RU?+CLE<(9@8+N;(61$739$-L7J'.+>?*_L!CA8\Z?#U/0$*%%BTJ/%@NTM+$+FR58!/Y(JE*=A$XZ_8S-C)L MV-B.T30,GN$Y2\-9[PU_N+Z/HB"VJEWM6TS:!^OU*MU5LPEYU[6UT1LJ(J2& MFIID["1:RX"Y)8!#P,7A13Z /$;N7[/0C1R7%)0 #>>N I%<%CY:OOL?\OX&]P,N;=P>UUD B?.TZ(HBC]YSM^ MGC@77[,W5%5%X&XQUQ#FXT6(T._TN??@__<&01/U3Q,7(0U.8(N>3.?)@(GHS@#EG89)B M^JP"B7[87 !]R&5#[*1(F;^@_"91N\=)[/\$VT &A5L:8?8Q)M4>B/!9<@>VDN^]?CD_QNM4.Y=R8B\EE MJIB2+;[W,1A06^_"+SK6;'B<_PC"WQ-!XN:/V!]8*.2+NCY$<,\DO0GS%8[= MV!!7'[UAZQOA63Y!GN3+!)$@.YBJ*UN''\1?N(D58;O=PT:NY7FI>0ZV[[]G M+EB^V. =H?0"_,R%\2M#2#[)8DA-X!7+>4Y9,(OA:\ABX!S\+5Z$X=)IB&Q$ MEF11XD@&5L1]P,_#;.2B&5YDHDD ^Y?S#?]X8L7OQ_YBK8\2AIC%I:)1O(M9&&(*)HE H#%C*YY%"P$T>L-_H.B]L#5$V* AFEX' MA0(4+=(E(&-8O)[<.,8"B3PL9F'@P\+BO7$(+S)OW!6L-Y9-8IE?K=A*\EW> MJ9KE,U:=[KL9OE(15- F=^AQYB6[8_?]A[KU2C*>A;I T2],&>3*(UCP&EB= MZH:%,C"9,NBR,G CSN(\/ ?$6;:-E0&TNG:(_(2P+&=^RF$D]#._B)ZP%L%O M">=+"\;?$Y[_&P]6"'X<7KJ!7H_<8QB\Q)/YUP-LE" R-@>-79\D$9+=E=ZV ML?6X7N:'VT?0(U9&;\L(>I"11907]NOZTMQ66C60!AV+&TKF0!+D2H)]8G5Q M0[VR3/"JY[?[40TFE1_?N5LFLH876/X>@_ MP[)/2&W[-E MF[*L\XI2]M>-@B*Y).T%U/E[UG+=X&5044H#-8RZSEK0N\BK:O/NZ#^!6A5 M[K>95=T 2=&5CY#CRRS"#XJBO4>I)+'<6:H.K 27V5;W::)G3HS?""TNY@[( M/A1)^U#4MA#X>(='"$E#F8ZL.\X*:)$P%EZX_(!$H691XDWB.2;GD3/.IF&' M%-[EO<'+7US\:OQ:SL?3"D#//;L160A]R[==RP,S%Q8@FR//F\.$^8%"06$)RUFJW9]]8I+"I@-8_ M\%.:F7'AE1:XFEM%ROL*6;# X7Z1 ^E(,C=!5B+(5XBX8!83M0?Z;YYSDDJ2 M&T4S*+N0IG^25"9$HG=VD@X1)>D05C2_ TKZ13'6GA!W)DF5'-1X6!RE_4:^ MP'?.?#?!1C**WCN\2#TLX[:+C;'HU][5];>,K:YE)4&2>!'=+.>Q#B<\X[X3 MD-IQ\$!L?V"C C]+6(!+Z0TEF==T@]>5Q3'=^5"'"T)! ;G5+)"I%7+/JUD@ M4ZCS"!?SW L*T1IIK9B[L>-@4<9",I(R%KEBCW(VCEH1C*2_5-UJL<5ID!@3 M9R&4IW2?T4;YQ>40R+N%Y2W6* J\6;S]EFUYQ,//H_!C9D7"H@4E]45!R4FX MM+,?47\4(NOWOC7&+SVSO!?K+0*ZL*J3AP^CRJJ3&2)/AD=!BOSFB7T:DN2S MQ_IP_N7[)=3LN+BY?KB\?MA>]/$=H5NC2PMOQFS_7!&T:K9U](%L%$M2KW]0 MYI%W=>K/%,X^YG<5HZ?&XDU-3?HKBNS0)97B3V[NM]8CRMJC>&?+B.I^XVE' MJFHUX7(*WY,I]:+:Q/%MA.H(R!:VFXX^C-1N^D..ZN@"QOOYW0-WE6$ZU;4_ M1\VQOR0 G<6R>EZVP3+L Q?BEMP;BH,MG**K="83O3S,_+:(D).""T];?)C& MV,MT;DV,EYBZI5_=:A"T/%EU>TB$Z.C#*,;,'Y9O)4UR_AQQ7]W(GB45*2&W M]=RWO+?()3'HI5J^"'PGV?F$:^Y0-/-B43U9A=TSL@)E_A;00-R:[1$0#XP^\^=^@P+T@FL'&H34*9C$'W3)0S-VY MT>\T@8!IY9K@ 15$F5:F7BM#S5>FE3LB=@84ZO#C$'.#:.3;,+"1 TJ8)@XS ME5L3[XNI7!;VIY.3IC@/^[.X?PM64%-A9V:&;YE#=2 M.Y;Y0KCY%8TMDKORYN8-*7=TY2>52LA1 M5GJ8R_1M76QG^K85^A9:WFI,WW9$\(";EZ\3=^2R$XRGP6U9W*5FZ:T$=20- MJ>+AB%74FX(C^JS@5&<*3C507HHD>@ZX;U?7Y]<75^??N:OK;S=W/\X?KFZN M-\LWY42EW*-QKE"LAQ,'7/;!^@.GJN68*JLC5FRL6(!($1E2,?^+Y5G0._M^ M@E 6G^@9]HC5$VCB@Y?D9V205R003FDUTMI(-).J0\_?6OFN'CE MR].C_>CR.;+LWQ]#O'HY_906MHT0ML4;[961C[3G4;1J0>SH3[UODOO(?;3[ M"W-K3/Y'%[>RJZ:G_3(YZW"NO9ML8:K7=7]%,L:1?P5*V6=%$V+UVO +=)-] MMKPU3ROE9)%)"UQ3Y4'S3?J/I2:W.BG2XYZ266WM'3"+G/>- ^35Q@'P5](W M8!;U'RUK>@:H./<=^.=R"8GS^,(*0V@7\SI%[QZ:J_>Q M,_%$NBJA-&BSDDF[Q8J1BM$A4^+;*AQ[EHP?"T(N,Y(7O=2+B82$%PJ%-T2] MK$CL@&8=ZT0>._24$;1'O5:(()D@2("*?U0@Z*C>^DI\.KV_#Q>?F95NYN2# MQWG2-##B0F0CO&)BYO*P;0BA :$\7CV:+/(#EU]L<*%=3Y M_'7?@O!K^K+Y\.X6HSL0<% 9@)=U8[,K%OA6A::Q1TIJG8:*Y88W]8SF7DGO MLD6<-!$C64B:<_%DEO/@8?J=2+Y3>,SZ: H=(9^1][8GI627=LQK4;=5.^Z# M[P:/KU%\()NUWE#7>=T4*+$YJPS/G3*$]JF."B&D]X::QJN"0@F$3L%MN?*? M,:>"<'O7Z%.V+O?HSP7Q,.:+@MU(S$E=IL2<9 [)4?1E&R"4ZT<[>$)<;+VB58?C(&W9=5-AK[8$4CX )9?60D$94(3>4.$U@Y;()K,R MCZ0U*X"."/ZT*6B40.<4K,O;$$TMU^'0ZQ3Y45K@)R#'[^Q\>_RG;$KLT:!1OQ.J%-,@IG#Y7,WCW$WDW(>>M9 M?HR-E,LY18N'TA0-:V)1Y&6)EE@:LW2/9.E6AR$H*"WIO*31$L+OQ/F-; C\ M%@3.B^MY+.Y:7&_.:5<4W]#529=YTV3!UF[A98^./!0O)FUXZ;!IF90P<_W8 M\A]=2#1.?'UF6QZH(PD]KQ;D3)ROXC:!"N=13%Z5:0E[,;/R*"JS*OC %I58 MQ6DF9E'NX_[WP'^L^KA&UPV' XYK7 >^?5 ,2Y6(*A7+[R PZY,J$!UP8N-P M$,$VE,[KY;/LF$FZUR2=(JB;YC]R'K(BQ#;V#S=&YY3\#H2\@Y?U6E M9>%GMN/Q@IEEH6,2Z$BE\X_HLAE;D?Z9K31KS,!K<[VIG-/N@MCGRFPM*.>: MT!OJJL8;:ND 0QM26ID0G;H0Y95D?Z\\.P:Y^JN&N=UU59= MF:2,9P+%?CQ4K'8Y#4/K1#@KN^KR=]<:N1[9PB$YT*0#PB3P,&VB/Y.,Z'A[ MW0E6DYDJVW)>D]E;\K2*PLR4NU79ZO>8JJ2]A#J%\A"+6G13ZRVK+D3I\&N; MS<+.&7\YRZG=)E@X[.R6)I&4!=G8K/O7V@T))@5=DH*<%>'*20$D[JBL%MRQ M%[-PAF!^3U ((&V-S?9>BJX#ET]3+WA#Z ZZER)GQ0LZ4!@@AT?F):WTDL V M8JC"T1Y-6CF.X%BXQJMJZ1JM%.[*T*Y4O7>Q$%(%B>7V'&1E T%7I&%>L&;E MHZ*2 >?!==Z06190M["TWU:M'DLZ.;B@2;1@Z11,UWET,GB7A)XG6GG*%DBA M3/2Y3+PMS(\-[!O0>8@6\X*9J0WDFF^"I)CVA"+'O&30TJ?G%$S4N?(-&4\]Z M@X&B[8BJ\ZHJK5[:,S[M GOS.0R9$RS&N$>9EPZ]Z1*<(.%UI:K*#LVG259D M-9\@V/8L"^7!)O>&JLQ+Y?N_U@ZV3B2_[2LP4G50HNMFTV%!B8//JN@*N)QB MEQ(N&(P.#EL<#B/2Z%*36:F1(ZK6:D,670_D'1*RV"8/8_<5.?W_H##($ 4- M$D(-290^41+&8Z'@YB(:JPC:0 H44>Y:L)=NE>F@,<+<<*"G'3-%RVG,KRDM M%_W)5GRWXN4?=8/DYP@RLT2[A:(]6K-B%,$.FLRKU.PF=-@0?5^OA!F@Y8N6 MK(+_4%_,$'I#E1=9PFS'\).GM;5__N55&4R;VA+O.R5E7B[$E4P:#N_@X'4>YKJE]! MN78H402AXD(;[2/449U?QWV>/SB]OP\7GXD&T4S')<9M. \T1G%@_\YS?]RU MRMRBD$C7SM7FZOI;1NOJY"WW\));*[P)[V,X+?LV;Q) @Q4QQNZVQ(U9VHW$3(J*/S MQ=OR+>W+V6D[J)T]OF*,+SL^/6U\3_Z?@P7)F#]Q;A3!X3YRH&\61S'^!?(\ MCL"+*_+FC*D8A4E]R.MOEK/-&(-Y%'9O(X$I'.7U.TE@BEB>]P,I-]0X*^*" M,8P+_WJ-IC)Y&*$R6'%G@.4F05)X@\2NR5[\3R7?*8EG"JP0+2Q9QG->9 M3Q1Y_KUP4V)[X=U$S=Y6PV50(].&FJ.Z=509LA?!TU/@E[)B]ZVPR2L*FHSF M@2;LOK7NL,$ M8SP?8#3S'+Y]BO#3GI'W5L*$[GJ*RQX3>H7_J27TWN(1!0FDB)*<%9;Y=!0; M.0\L9!!Y2F!1:2D5D\Y-CG,\5""QY6%#S77ZKL_9UM2-+8^E-!U0K6I!S5M, MS"O_(B'E"O +[I** C;[%6SQ&2HM7<)90.$XQ:JJAY(*4))YO9.)3K0JV#L4 M6_A#AT-6Z.-!L\S[ _3JG(B7*0W/;7OV-"-U,K^BL6N[15/^1 %J ,H&KY;/ M&F5&*%50VJ-7:X 2G&I2%%X1JDJ88X9KKDJK<[XEU55)(>L039 ?8?>=\X+H M=++R/Y32M1$>.?XMHUSFG,(DU?IBE;[)Z97OF,C7*+X9/UBOA<7&(-$=/,6JJLNQ_/[VPFV/M5P!W$0,-UW@1;4UB?XG447P?8>"/*J[QNINK>SY M5&S:75 7^0^=G?M.!->1#,/DZ=?G*?]RN&OF2*^M%7;M\'7 * M+QE+\HAMPR'RAV5&UG>>5=KUJ I:4^<>Z1&&2 C],89V?O/DEY4,S2TP MAL2@>((B!')'Z$,"B$EA.1<\6$A_?,(3B0;K^3\K)$A?KH!]-PTBLDUW%D+; M+O<9?7IQG7B"ATY$?^6NE#'"\A9KA$L05 M14=R]+&@2"-+&8V)(LBV/Y/%(U&W#_J<()T22FR8+ 9Y:CZ@_"I'U>]\: MX[F=6=Z+]18! E?AAK&V2N_WI-I*D/&X#K E<,<*-0A)P\0SK %1"%?AX5@T M#(.;A+"43$-OU(=\-U,67M'KJRR*@TF,%[\'D&L0@PM8>##./W^TAEE,ID7F MLYO-WX9!''#?L0CQW)5O;Q=6"L9ZL:IJ[A<*)F'"ZIY%$OBD>2H?KGRL/X-9 MA%U&3'GT:B-8:":)KG6X*0KG?SV1OK"_4#V;G[XUJ;B DZBZ-3*1O M3K\>X*\^;GZNR -=,3*_$@9BYN?;'B5* \'(OF7;H[9_K@A:58/2#)V^05%) M*<%0=SXJV[0V]YO6.\S\?-8J>T!;'K G-KKSA>;&91D1BF01J-UGS[DT/& S M"G$_\'63B+O$UI7S>11^'"X.%7"RP.>HD=$ULESC3XI0I0QJBL"4>L*!*9ZG MIDK]$MT&4BEE1:MK!&'8.1 [V::-*.VP;8ZU^++WE+0YZ"PNEA.IZW& M#U) MX$=G-%3>8O=7='\KJV'G#+O?H6?DSU"9?+KFMBISSK'P7F7#.Y(YIU5D2U+= MET]/4/ M#)X@H@Q/_+L;3RYF$9X9"J]\VYL!1L1$;UY,="PFNLF+RF:9J5:?%J?2E[H((I*;%&;[5$4.,5!R5.'XG@C0 M\&;\6Q X)#D2A<^NC:+[P,M9>&H%^P:D1?*"S@H4=0Q">ZST"B%D]H::PL&(0H@= >"[8Z"$E";RB))F]H#$,=P] >\ZY"#$$)14'G#;-TUUVZ:E-0 M:<7]%@91Q$W#8.S&96I/4'\.]?C&'2'M+:%L81F0\%(L\I)9VIIKPQDRAK-2 M%F 9G,F]H:KSDER5P\QPUF*<[3$3R^ ,ML-TC=?+]WQF0&L_T/;8DF6 !AM* M.EXY%?I7SBX'!]/D(/^10Z]3Y$<[6N66FS%5,L#Z$+:/4M3;!9YCL+BEXFBK;PBJF1FH:JWJ&M90:A'&YC MA1"":K)2MY)X&(1R>(050L@@K=4%E6FACD%HCZ]7(81@^]+D!;UCR1]T&W1W M*$)6:$^(/>>@9^0%4S@BPM)!#DI,3XB)I>'KDI0'RH,LD);1%;3.8%NQ=*%H M;]YVE2@2>T.3U_72Q=88B.@"T=ZLYBI!)/6&LL0K!BT[^@Q%QTKZK1)%,D:1 MR&L9361;G1="MX'W&_(1E"($^\YRGES?C>*0E UD@;M#DD(25&K:KN+^4#'QNE;:8V#!O&)'NB*.E(5&#A<'''IUXR2RYT;3( (S$#K- MDVKN+,*7R_S;TDWL-\OUH5W8C7^/H7\S_C*+\'NC*$L6#"P+576B89XS)4#9 M9]]MQ<>J(AV[K\CI_P>%019N3,BS,211^L3 TRWP;!AUY;6, ML%E36\8DBA M!"G[S+;R:D81:5,SE?9$TRFUU9*6:$'^/%N6BWY(O&Z1R)PZ,E%13T:1B$>L M&/0GI+.3#TU;?>71)F-?P> UE1WH8FC;%_LKCS;8?5 -7CF-7H<,;J5LS?)P M@TT*Q>0-N:JH(#O<=0@FDIY/W#@,GN8&:."7B@>>HK3D-3P3:H.35EA>M-[0 MX VQJGR)YI7SJ31-;]#R+ $W'>"F&@QN#&ZY3<\2<#.P-6#P,E-O#&_Y;<\2 M>#.AMAFO"*4KNM>.MRX7K+J))RCD7,)&GO-1J:I5W96'?=8E4/$Z\(-UN3@P M6T.%O2->*;])S9)^Z$+1/J.Q6A2)@"+),!B*NH6B?;9@M2B2>D.EBD,"#$5T MH6B?A5&D8D'/[5]!)$T6%Z[2I M"CF<+%66<,2<]Q;C=H^921-N53@.;6BEUP4&V_;#=H]=2Q-L-5*AR62Q4H;; MO98T3;C527$ZLWQ9*!9S+0&NVS!X=B. %69?>0N]\ZYJ+CL<"T[JG'Y!/CJ@ MUK%J@(\JR%7E7K%(!R7PR64.EX4.>U\IX0 M@P]=\,EE'9:'CPCP,=6.G>^FTGR[1G%JM-5C+G>H.V^Q>7="WO<8JQ@\A^?, M:!)(N232GS)30=B!"1,3ICVF>SEADD&8Q,K:LS)A:AY;3)@.=V3*"1,YNL9+ M2E6%;9DT-0\N)DV'^W7EI"DI'VA6UK*W]CC]? 0+"I. M,!MY:'V:ASZ:#8WVH9U&Q(&;(BQK$RM$9ZS;6X?N/XG:UU^LR+7+1"([9#%E MS:Z5=M$M"N]!'^V,@TGOS:-+*_3QO*/YW00:"TM(6%I"6F\H#"KKITW!K@C# M>S?QKE6#=QWP+G5H$YGAO9MX%ZO!NP%XUSK4II#AO9MXUZO!NTGPWK%M>KK= MCJ^N-XN14R)FMBWXT#$9+CCQ3HEW,76QGOM/WG^[.?(G9ML^B()(; M[8P*">^-B;^3)R/G'$_.>D37LZ<1"F_&B:JXF<51;/E E308G"<'<,7^4'I# M2>8-P^3%C&-=53"K[)K2,69K#3);30HS& *ORING>QBS*V>VV""S-2+9IJ[P M0D8E#L;LRIFM-\AL*+FB\K( TKU96F*-V:>\&U>1O]!FE!YD;*3DW !K89P: M9 4239$7Y,W0.PTN3Y12XS=C1D<5;';$(AT2XK) M:QJ3;EI-CLK8+29&AR'Q4D;_H"RC@XKH,;N?LON[$='5,P7Z(GB:AFB"_,A] M1EQ:-?L#!'2#,53C^X4&KD-KD$B4W#6* M;\8/UFO14^D&J3XD5-:H8SQ82!!M0P8=A7[Z=* M85!([U!5*%W]ATD#DX9&ZO54*0TJD091I:66;W:(Q]P5X4FROI)';"L9M,\W MV_6,"C+>V!"[-D2"TX^QA:_ _SKN\_ S_C%_S9,5/KI^4L-*6%>U-H*&&,?7 M/P\3Q%DVY ):_AN>"N<',7ZP%>*/?>Q_Q^@QM#QN:H5)4&F"(@1JB=#'BI'# MC5W?\FT77Q3%^(,G/)%HL- /[TF0OEQ1\>BF0>2"3CD+D6?%6&E]>G&=>(*' M3C3CRETI8X3E+=8(CV 6;[^E6=J**AZ.O$Z%U9\P4-"UKB@ZDJ./!44:622/1Z)N&_8_)>RRIC=-%OIO:CVB_BA$UN]]:XSG=F9Y+]9;! A< MA1O&VBJ]WY-J*T'&XSK EL =+SI!TC3F#"\3*(2K\' L&H;!34)8::>A-^I+ M@J2:LO"*7E]E41Q,8FP>/UC"+R;3(?';8^#8,XH#[CD6( MAZ#Q=F&E8*P7JZKF?J%@@ EDCVD2>)A[T9^YRW_/W/B-YJE\N/*Q_@QFD>4[ MF/+HU4:PT$R(KGW"1E,<_;)U_.]@!&8/ >/Z H9GX5G3")W-?_GDN-'4L][. M7)\,B-ST*7U8JE5!-;P/_0*UDJ^76F,@))HC#4&G;TZ_'N"O/FY^+BL#4=,S MOQ(&8N;GVQYE# P]^YMM3]K^N6RJ;$PG/B91&!B"0MF@@%"[QY3M":G[/:$= ME5/S6P![7E MIQ(Q@Y!V3D(<^.RC(!98EK4'ELR\F8'/ 4^-IH"^_<< MB0#[6! &+\GO4NLH<8Z'"::^Y7T>A1^'MY;K]*]\\ON%-75C_/E)T^<.Q1;^ MT"$4F9\O/FV2G-OV[&GF$;?C)IZ@,$'+:HB5? *UT4^;4@_!>_DY(!^O,OU/ M.[62Q,@\>5GUKY6TT^J<.,452-=Q+BMNF1_+;&+O.;7W'"GKM2'%\,7R+-]& MG!5S7Y&-(/.DP1):?6IK/?3KR2/WUC=-KZZ_I:Q;XS]!.(FE$_;UY)3 M&I+&"\;FYG'5^D-%E7E=*)WBS&2 R4 =,B * MM0L!G Q6%%X1JNHRS(2 "<'>67TH) 4;JHY3H!;;Z?9C$I/@W"B:(8?#'Z!7 M%-IN1/+H@BGP(>(L'W\%NRP\EYY>3F][<>/)!'D.,!U.-'/!",^)Y.UM#Z)+ MQ6B9J21:(4];RG1(>P(^1*BN"$.^SD),AEL\K""MV3#O_8(?0B6 M&1&0#''EIVD0*YH!?D*0_2*(XBAK7873H]JF>.#(:SIC\ 6YNP58QB[,/#[1EV:7$*1-TI!DU N^UWZ%_S]S(C=$]"I]=&R5^_AVR@T>?/.5OEC=# MA2-J:F\H\Z99NE(&PR%3$(PQC#%4,>;H]O\Q-;=&E^8^D9V0.S2=A?8$\YB< M6[?3C1'P+I8['R>SF['=PRZSG;&DL7/N8T&)W3!K=Z/P/H;>&ZJBS.L9#058 MI+,5J,K2VU*.7>>]B$I5\*:6-7I#"H(T#"U'VE@IA):""[8))3HUB<&I0W#: M4^ZX/CA)@H UD\@K&:DP#$\4X8GM#E'*F$IWA^H4=.B>(O*"+CR690( MZ_6BF3+;'&*1+,88QAC&F/8PIDHS'J\$20UNJ!!3>/V6(%"KFJ5;,S#0,&D^ M5<94::N7DV:9+FGNSK8+>=89;*.Y=@Y$D$)>))5K7XNQRCQ@=C^[_]CW'[L) M>T/Z_5L0XC]]SIZ%(?+M-RX.+3_RDA1-:['USAQQ9H@PQC#&,,8PQC#&'-.G MVM/*DECC&4W+P,5*U_:+=&E_@)4]>>6Y[SPLU_EEAMV!K\GW(YS48V(Q0C%"-4NPF5(_"8KSW52=D:&6;&P7%%Z / :Y6=],[= M3*RIB&/C]L7>3D4_K-">S-L4J642C@[J[-8*H=ER EP_7@-6)8M7PNCMUSHM-NW4 SUH5]/)MCR01:OR7WD0JJE^:B%HP@3EY@3F@ M3U@QZTD4L?6DZ+PHENZBQ$2*%H@QD=HA4G4W)I-$"18HC5?5TLWYF$C1 K%3 M$ZE"Q_^EC3YG=75XDD09"Y?&&QG=-@H?]V=BU3C,3DVL"DG51M^TRH5)Z0TU M%4N34%7O&HJ"9^W7DD3(F]5-7C8W M@QZ4[&KL @/UVQJE#F#DEPC:L^.[PLYBANM1&TE)H@:MXLJW)F6HHPUU3(DP M=C)VTLK.8FO"43M=2:)._9K0G2(J]?3 *I?"09.@I'JOMA(Q74N_9N4JCLG M(8JVH\JW^U%/.RI)$GI#7>45>3.O?\,W/F9,I%7*E!67HI0QE>Y2U-A=0Q*A M:(\BEFFNP>!$&9R:Z\J$5Q0,)TW6&9QHAA-;-BAE3*4;&77*.2D#+ZB;A\J. M+N) ,;3YMGFQF^6HTO>MH(229% M^#JI1+/*V@CE\9+9_>S^FJ,L)]BB99\>K[!%BRSTAAJOJ_27&*\HO-*X[M[; MHN6_9S[B9*%$AY:B[7):)S-;#D4>LT.++)(.+8:N\%I&C=:J0T'5\+H[-8>+ M3;MU ,]:%*KHT")+571HJ;T=%Q,8)C#E!:;V#BVR#!U:3-X4F$@QD3H%D:J] M0XNLP )E\K)2ND,+$RE:('9J(E7H++!\O XMLHJ%2^%5K8*:$4RL&H?9J8E5 M(:FJO4.+K/6&FJ;PNE#ZL%!;VAO3O@%"9X>6S02C*]7;2^6:4U",G['S\ 4V3^6S3>$F-6O(=S>)(KY,=;-3>/V%#!9> M%#>+$#(X=@..3+LP=C)VTLK.(HM%GK*&M:X59FO6BNY4?#A^1Q=V:(11BN4, M5VO'TU:H7Q&@?J6F5Q5THR!:W5DR+U=5C) MI@>MDE6TPTJ^W8N:.JPHD*:I&KRB;F;!'-9BI>+#')0SFU79JC-AI;F>)PHD M7/*&4J9X_0XU3G'4L,-P:JX7@J+TACIOFCGZ6#$X-:[-64TIVAA32,Z;:VVD MJ+VA*/%&GGYU=[XW3 8!DWC%*,4BR+B^5)M)XQY2S8QFKXJU ;NG30F^&+*GQ1!"^1(GB= M5%Y.92TB:&VKS>[OSOTY8@TGV")BCQJOL$.$*L'NMU"^0T1;JMPUKKKW=HBX M1],8/8U0R)5J$Y%./V5(,JV->A:GUD1"UH[81$*521,)3==Y7=DTA:KV?(^! MA.X43:V2**T3CBS/=$_WPEP-*%2EB@84U6JN)GQ1)HI,%$N(X@&]8 I:?6IO MJ*@";Z@5U\QBPLJ$]<2$M?8^-*H&BZK!JUKICJM,6)FP=DU8BV40;;2XJ:T= MAZJ3=ARZE*/(!Q-8)K G(["%Y+7VQ=5(^WR(FST$VK6XDOCHQ]C"K\+_.N[S M\#/^,1_NDQ4^NG[R7@$+)YX*7+F833(L/!//FD;H;/[+)\>-II[U=N;ZA)'D MID_IP](IJM.-49%1)U]_>G&=>()?*@SP+(']:0PW?7/Z]0!_]7'S M^94P$#,_W_8H8V#HV=]L>]+VSV5396,Z\3&)PL 0%,H&!83:/:9T&V7^9:J9 M)2/1"9GK_4;+6D?83(VI$C!K]O^S,,7MYO9;:%$LNZ MD9]'X<@O?RDZUZ1>E0U;OBD1VRC4L5M9+-UCQ;HGNG MVGE:G3]AMR//R=F<%*GYLFS8J\= ?34S8N_IS'LJ2@1M/,ZT-XGH*[+3'"*1 MY!#))W#0OF ND"(<,Q<(3O&IO"Z)O*EN'N:K.C^W"$>[$SW-FESKP)H1!54V MFH@?D)NC"1B!M!0Y8A!G$%^'>.T=O36Q-U0TC3>,S0TY)@04P(4)@2+5+@2D M]83&RV;I7!(F!$P(:LG14#8V?6O+T= @0]_@!7$S9[F-%5R8(- N"(7D($_K MC'+P5WI#S51YR:SJ^!-VF!#+V\@J0K\K*- M%\_Y*(9OTMM>W'@R09X#3.=BZY4+1GA.I+#0*=2D*1KM4?-T_-IL4YU$?LC/ M+^];Z14- FDJ7FY,WM0W/1!6!H6506DW8XK9>'M.F^5J;[D46/@)D>^+((JC MK(5.ZPU5N8R1QP#$))LQAC&&*L844[E[3A56K7)U2E3NB=3^(:SIDV[/I(?" MW$;%/@7\OKT"4->JO;)2SXPQC#&U!:6J,-R/V)=>,Z"GL*1W:..[LSAD"H(Q MAC&F-LU=A?U_3,UMTJ6Y3V1K8MFD.8*]!CO=JHRNPI[&U_? MIP\OMIV@"UA"9)4W-'&_F\V"*"RZU2[&5+JA4&,#>EV$$JJF2$'_>0:GJN"4 MIZI337"2>D.#ES(JLS$X400GMFQ0RIA*-T7JE'.Y-Q0U7M0JJ _%]D@*]$> M!E][NB)T+4[ CB,,8PQC#$=8$R55CQ>"99-.PNOWTIOJ/)2^:*L##1,FD^5 M,57:ZN6D6:5+FKNSVT">=0:[1ZZ= Q&DJ!3)8*JDAUD>#YC=S^X_]OV5>MST M-M-..Z%S=MH*G8N7W<\Y:['CS!QQ9H@PQC#&,,8PQC#&''4#)&]#C&VMH\'9 M2E?YBW21?X U/GGWN>\\+%?\98K9CL;1NM8;FM+F@?0V%F1@&,MVW!O'F$X) MQBIU\^EU V#+;;;H,<\]6JX?0;T#UW]&:X\%NN_'O%ZOZ>>A&^*O5U*E= M1IJ!C;2JFDDS?%&"KSV;>,?$ETD1ODXJ ^^BJMV]/*XWNY_=7W/HID27TJ[J M\0P5OE3%Q5(S##CFQBMR50=!:V[!63Z:T[CNWMM=Y(<5VI-Y:Q&E3&+&0=V8 M6B$TV0=&U6,V'3%$TG1$%C5>T(7::TY6P^ON%"8N-NW6 3QC55"K:%1B2%4T M*BFJ7RCNCX,70^L- M-4/G97'3^Z=MI3J1'1 Z6[]LAD9E3$HGF(T\U.EP' 5=80R]-Q1UC=>-BD)T MU>]J[ (#]=L:I1+5\TL$[?G%76%GH14V3U6X3>DF]7S(=S>))KY,E;.3M<8: MO:$N;+;T9GCK!MZ8^F#L9.RDE9V%5H,\Q=[*K@9F2U:#[A28.'Y;G#8F:;+L M;,88QIBF' W:FBN8)*=.4JK:P&(X9 J",88QA@[&5.D44*>Y1;HT]XELVU3= M%B>;"K0*5-&V./FV56IJBV-*O:&LJ+PDYZBL?LR82ZMT*"OO0RECBB7N--<6 MQY1[0XV7M,U,;E;)I[5P:JXMCJF W:.7ZK+$X,26C5-E3#$Y;ZXMCJGVAJ+ MF_IF)>YV5^>BU[>II"U.&^,$+(##&,,8PQC3 <94:<67:J1A:F"GJTI5"><, M-$R:3XXQ5=KJY:19ITN:N[/;0)[56%N<-A1>8O>?WOTG4@^[SK8X;5SOF"'" M&,,8PQC#&,,80\<&"'5M<4RC-]1*;8HPC%&&,>K:XI@F)1@[D>Z8QVF+T\;= M:I9&P!C#&,,8PQC#&$/%)@LU;7%D0>@-3;&B ^8,7Y3@BYJV.+(@4H2OD\K MJZPM3A[7F]W/[J\Y='.";7'VZ?'JVN+( AQSXTVUJ@YFU%?V;%QW[VV+\]\S M'W&R4*(K3M$61:V3F>SSHMH1N^+(@DRZXHB*SFOBYNFTJO-IJN%U=^H\%YMV MZP">L2AH%73%D06EBJXXM;= 8P+#!*:\P-3=%4<65.B*(_)XK$RDF$B=@$C5 MW15'%K2D*XZD;![19B+%1*H5(E4H@4,[6E<<6="Q<)F\(E=0_H")5>,P.S6Q M*B15=7?%D05(I3.@0!3]_M2);(#0V15G,S+:TJXX:0Y";9M)Q38#6EUPOE1^ M-P7] Q@[&3L9.QD[&3L9.QD[NU95X/B]4-J8F<=25)ON'DVB]4 :2U:]OA* M]17:ET490TGD59WAJ4-X:JQQ@RPJO:'.:QDY%0Q.%,&)U2>CE#'%Y+PY,8?^ M+"8O"5TK$T6OPU5)?Y8VQBY84(DQAC&&,:8#C*G2B"_3T4$6-3#31<.D)&C* M0,.DN76,J=!4+R?,.EW"W)T=$/*LQMJSY/%_V?WL_F/??R)UF>MLS]+&Y8[9 M(8PQC#&,,8PQC#%4N%1[&MC6U3"CH'-F](82K\A551ABZ*,$?:T GTD7^$ZD ML>-Q.KJT<7N;Y1TPQC#&,,8PQC#&4&'%'>A#U-!Q0Q)Z0U$M;:DQ@-$%,'KP M)=*$KY-*VJNLI4L>IYS=S^ZO.:AS@BU=]NCQ"CNZ2%)O:/*Z5E4V!_55*1M7 MW7L[NMRC:8R>1BCD2K5U2:>?,B29UD85HY-K^F(>L>F+!$U?%%X5!5[0*VKZ MLL,"/@82NE/DN$JBM$XXLI:-YFP,F%EPEKF#+N^T9*J MMO8Y$K3/T7A#+=,^APDL$]BN"6PA>=UH=U6YF$)C'MWD3;/BIM9'%U82(/T8 M6_A5^%_'?1Y^QC_FPWVRPD?73][[;@?+1ICD884X("_8#X2'">(L&PZP6?X; MGCGG!S%^L!7BCR%]+4:/H>5Q4RLD'7?B"8H0X(/0S(J1PXU=W_)M%U\4Q?@# MDNLV6/#K/0G2ERLJ'MTTB$@1R+,00?KC,_KTXCKQ! ^=0'3EKI2/PO(6:X1' M,(NWW](L;445#T=9I\+J3Q@H@-\514=R]+&@2"-+&8V)(LBV/Y/%(U&W# M_B>XB>E-DW ^^*GUB/JC$%F_]ZTQGMN9Y;U8;Q$@SOD-@SB M@/N.)8WGKGQ[NTRW9TH7JXKK?J&N"$NM:,)]\X*7J /S_'#E8U4=S"++=Z)? MNC"AG[XU2=I>)!D'5ZN(631QX/UK&F$SN:_?'+<:.I9;V>N3]Y+ M;OJ4/BQ=>$![OEOS"5&2KY>*=2 DRC7=(DW?G'X]P%]]W/Q<%P=8SV1^)0S$ MS,^W/4J4!H*1?L"> M;?>=+S0W+LOPTQ*QKMTWR2GLU_@3[@>^;!)QEWAQ=CZ/PH_#M2WY-7^@#'F* M\(-ZPDED+V'_CG;]T&T#J90L$!700<=2%$?7)WE3,8\>Z.[,0 M0WC>?=ZJZ>2[0^YO_:&ZG,&)[:4O2V>7TS3-PJ')AD.,.:=5),:X9P.O5+$L MR80T>%Y2-C,--XT=4KPW_IJ4CD!L-(WB8L#+D28 MY[;K(=*^/EG7X'/XRX;HTS0,GEWL[G"C-R[(L&'.JC!B&LLESDFT;$@V86ZU MD%)5&H:20:]D?453+$UN6IC-=SCK*< #^P_YH .E%8YO8:U2%/_NH;0XR?D* M80LO/"(D3?%:9;NZ%!A>#$PYS)5:P"215![34"@!4Y56#,VZ]@2ZAQ]?W9)S M35_>M\LL+!-)*R]3VNS)PDJ-M1H^^]IY50,?!<-'XG6QBXU4:5:I7]$8A2'6 MI['UVHE28$W8JPD)D[#(@_5ZF:Q&7Y"/QFY<6!14*)LGJU5E]S-+M488%9H5H-+*Y@?QE%,=1=3))2$>Y3MN6V'Q(=+92(+[SH$F2FQ(Y@9>APS- \NH!@R+;@X%?L2=HE(]=FG MJ>6&L $!&:[HWS-W>G#_BE9:"A7JP*L%+6_&WP/_\;O[C)SS*$)Q]!!\05_= M:!I@?^QFO&XIC-U7Y/3_@\(@2SC,15%)9G=V"TU[-&W9ALD=E>$,U"\W3)7I=1#CO^%^UY]AB4WV[0,?UF HX7GC_SUT8_0U>/&S M9%GL#16%A6\[!J!]^V,' RBW::%(E9D6S/@N;GQ_@ X0OX -[J2\!KT[#2&M M)WXC^IB9X\5T\):XW4J99"P"-^/;E,:WGN7'EW,:9TF(7$7$@MG=M,=[JX(+ ME-7;S#U@T=R:F$[JI)^.>5H(XWEU(Z'AXC3,^2*1%,XZPU'GQ0GH++RK6#WJ MFR6)\P.>&:5TK:A[-&,IL&@8+$+I-#]F:19B_L7$\A\1:2RVDBY.@DC$PO1< M:Y3Z^8>ECF?3A5IA*)$ZGL>NZC:EJK0K9)U>H3FW;3P+$B.SD?L,Q1Z8E7'0 MAHAOA["[_A4E_U[Y<]+>+2A;-&M"T4E"HZ1MYN$PNX,F(-61@5,+H(S>4.%5 M0^R@:4*SEKWRG[&E&(3=Z'1*A79=(6EA*2!-@05Q\P#HT<,7+-#5N%8M 205 MCA+SLE1:G5(8#*-9G=Z&:&JYSOS(3>+>!:<5(:LC0+8I'"FEY]G :6+;N>^0 M\$B2H9$E&&)O*&NTY+DQT_5(NPG5X4?"^!'+5"EG!FI! S4IOW!:!W!JV67( M]-O"V!O,Y;W[&,75RB25MKY6M_T6#(7;M-J?[E[6<$7F1&BEMA23)[ M0]7@A?*B5(A[+;"J3Q&&^VOWU@1#3>@--8%7Y=)5:VJ'X0$=7NK*T2O?_8*" MD76\@P-L44>L@T/[.SCK&EIE:Z64$C9>:?TH*F/99+C6B2 M>D.#EV4*]O5.Q0O%O,,#=R)N' 9/7(09Y4J.:7[-TSVQ9%39P9F M#=J:#J+)6#Y$6I*6V<[,<3S%PZ"B](9RZ9KH%.ZZ4*U,5\W:)RO\':6M9I$] M"P^/Y77?XBAJOYX_6ZX'I/T6A" 2]PL"?T6CXF8';'G+O)H1MV-6;&LQ5=2* MK1A3KU8PWWJ!&1+=C+7WGZ9?ZT;1C'39P0ZL'3P]!3"4P/X]^1;VD^(W M#OO_K.M.:4_V*B7US9BT_HM^^EBU7.$/?+(YX#O9'0%AHS;"EWDS("'IY'F3 MQ" *KTLB21XVJTHU8PXN)2 LX. V#T*)U+$QV797@]M=$>$]]^+&DPGR'& A M'*,OW62M^QL5.3>_[I+F'0_!@_7Z=Z!RX %%(&Q42=M77>X-95X4*4B^89M@ M1]X$JQU;T%*8-Z6.M;VD63G?H>FJ>EXUQ$_'[*Y##V.A6-+V9GQ!"$O,E\)2 MH4)U*%Z7*2CPPPSG(ZO<"F&D81],Y4UULU]4J\_7TZQ=;T/7M]VI!1OX\ST] MTD*MT@;#W;=/]NC<)$*(O@,U%R2?2U"6*.C8$Y0W$V29!=M:A.Q1IX41 HV' MF1W:X.;XN$C4_X3.%A]S3N> 58- 1L M 6N\4"I3XUB'W3MO&U^.Q\A.6LN_VJ07$1=:,>+LM"\1AA-9$$CW8?@%M@2? M,4O][IA"_L-I:OK7*L9*RN MU@(!O\)-2Z6!6U'MDM+*,&6%"T2M2G,BX87M/9EDNLLJ M.PK=,5CN61 HAZ4"R5!"^4+B= 7C:5T!+K9I?)X;H4?7]R'&!+4L"-^99U%, M$I4:);&P$590#M7>T#!Y0:^J'Q7S,=H,Y#8C6<-(EGG=+'V E+D;M2TV".HB M;5MF:HP8TQ3S^V--\^Z$!I);K(#@!+N@\(I453^0YM?2'4X8DU8FK7J;Q=7 M]H+.&SK]%<@/."N:C"5YQ*&G.G<]8V6R,O[&"690>*6RQQ][B(3"'TGU&/RO MXSX//^,?\]<\62'VD1/.@A"EM_=!3YW) VWE(\+)]+,5!L,!'Q0>7Y@?)HBS M;#MXPJ]] Q_?#V)H;Q/BCZ'V0HP>0\OCIE9(-B'C"8H0R#@A(Z2YSU-0\$51 MC#\@N4*#A6B\IU3Z%P'V!*X8WT;) KY; 9GV^ J/!R+AF%PDQ"6K6GHC?J2(*FF++RBUU=9% >3 M&*^T#Z1X%!:#"UCDR':(-!S"-I1Q_6\CQ_4*.-\4X M'VAEL;>;%)) UJ8&)LZ)W)_^8$BB^(E+#9GKV1-^G+VYI[-NJMR$CY;O_H=@ M9DDX_ $,R\@7*W))7O3JV^:F23J)=VC$WZ5/)A[M0VLPZ M-/,M;,[%)+,1"X;[M!^@"3D"C.7O>$7@.6P2#K@/Y!./?( 7+.XB6=UX[@7Q MW S?$W+!+/R%FUC/B!LAY'-32#P/DY1*6 U#AR2>P_E+\O?,)P6(IDE.+)1U M?D0^MBL][PV^1]-DT.1M/WTR!3)&,KYSPAF+^_!S<#_@?CL_O_V%'.B<3W*Y M@+I^8J$"JR \0MX/SW1]; +/[*2R'9[L-WP9)PK]OY++SL$JQ(I)%.!U=^AQ MYB7/N.__[QP/U;.3/.P,2E>[=@X&#^H;R<[W8D@0$@93UP>:D$* /EX_ 3\) M/M;LGRQSAL/+@@=I6%!DT'+^-8OBY',?V2B*K/"-,-3BQI8; I@6XIG:3',( M$LVC?XI6G[TXZ #OG-LW/'YE-/.2KX.%"[,,FHV]X"5*S@7CQR?ALFC^:N0, MN,M7@"5G14F9\1<7VVU.HH4P.O$GR/7YU)Y;G1+8=FY$C#T?P.C!4.Q9& )Q M,+*?H@&WZ*NS&.4JGN># 1L26Y,+(F&VXFL<+ I@Z\$+YG?'$RO&7'FC!JQ< M0V =(0Z]3I%-[.J4MV,7/%/N#5DA<-/B7B:!A[9;V%2H\D2AKHE IF!!KDE MM![4,2'Z;J$E,3Q(+=EH16!!^3U9OV,R13%VV^.T$Z<51;-YX4\")BM)FX3W MXI$$(1#4>DHZ)./Q)+7V^=6.G@#S9X278 A"O\+A7/@-'IX\A)SIG4O0#$9E M)<^'Q6GG'.$9SHS(SW(\9#DA@C+@SNUX1@X_)=* EQN/U"[%7Y,5QG'Q;,*D MXDLBL(O9#V IX,:SD+026%D_8#IP$Z8747'IPKI_0871I@8B* E\OTO"+,L% M[KTN._=]&/X=F1'^\N(7\DHT"F>@AZ7D@2HUJH1R05U;^];0 M\<7RB!%T/T$H64?&6YC'O>!OL0^%M;JS0&D!R(UF$'S!4X+5(D4;66I7I2U5 M!J2QXU)%I,ON#%^,)7I]+5T)1W /$VPZ_Q4C! L5EJA-K/Z5BR9$[D8@H9:3 M:J9_S?PDR+E Y7OT%Y&H+9+TY]TR1*2":HPWM5Q:4:+E$,8IUN^CX/G]NOCQ MG0=4R(E5Z'5BI0.=V'OWT7?'V 3SX_.%7W.+\6MC-;OIFIK"IFMJ"INNZ1V" M6 :W?"0X93[^W9['$0[P4LF+Z-.8J=!BY>00A162N8,CZ 1@1KU$0%=>*5 MCQ=6Q#U8K_@%'QZP^VESNB+\B%!JDQMX:;>^NZ=&+IU MQ#4(0JHCE%1'8.E?"/_]S[EX*WU!ID^\%\J8ZZ?&6V)'8Q%'$^Q#0J CO;2/ M/1CB5H*46X^/(4JJ6:P*/79H9J.8Z I)$OI$7;R[&L-JX]WI@YO3&2\3UYZ M4$ ,B+AYX#FX=\*, &_L6-YV-,)VQY1_AIT41!^4-8UCTEJ[W-,0N+@D: MQ9,PF#U..-A!!1HD>N4=45)5L4#^XDD#@J(403!&1&(#P!GB/22*81ZT6B8[ MDXVUI9(05:(D-#Y53.NQKGVWZ7SB0:!U!5-0NZQ.!!/803'<[Z,UM?/>C%@A M/\6^*-8%_SW#LP4]O%,/J'U!I4@/+"V:*Q*C3Y:W/G>!UR0WYKX'4;1<_V5) MPP+] UG #0)2V$M]@?FZ_R>Z5; MHTBZKWSL>/:=$L<5FD40:W+ MY680S&"&9Q#-R>)@0]<+D@ZX\ SB-&!5&#P3T2,MO-)X#B'-XD9,L7]!0'_U M 5@<'E,],$W*8,"&W,N:P3T)7N YJ0PB/!5$^$8VS<)@!*H$"T2IV0 M1]]]-Z.)%24;Q4\H7E4R6J5*IE(C@8RN3B63'5H[P30OK8HT+UEG:5X=2?-J M,"PL'Q@6OK1"T$MPJI?4*,Z(!(L9D6!Q,Q(,E012_Q3K+2ZIQ,F1AQX6!!:I M"P)#'I:-5YIX[G/"1$G%=J*3L4Z=P3(_@CK/L9A5BJ.7]&-/]* M,>&DY#MVCZ,XB:$-L.OOD4?5_RY^4?Z!;+#!8Y9WK?C=Z9TD1OA"]LN6250K MCR,A[FD PC/?PL8S@25R?03DOM0*A-4&.P$S.VL(B_ZC).\F^;R?,,AZ(='KQ]""'!V. M:*2U"^R5LN!)5Q?RI/35\%YB","Z/L)S6$PZ>1+,"V$[)GA#\_',+R$/PQ-# M(H)%>*\Y8?3SP2\3%B[3@4-'CPLBI&EJZ'M%>TYR4O*=3!&6RABJYH@* M;PB;A[+)/ M.4:-PBC)4H=-X4=HLB;@(+("!CCB,P'@2I>DE2U]3%M@N>;)+ MC@$!44-J"%&G@[_SQ1CZT\15\][X0P1%I%!0E-Y0-@1>5S:/M1\R19W"*:I0 MDUW@)7VS4-A"%_C@XNY1!=Q<%$AZ[0(*[_?(BF54V!-LM'AH<[+$3B2G$V]"4V7L0L0AZ9D^0E[P EE6)$B=9D/92V[#>CPBIG$2-]ANNIX5 MB%:F_=K73O/A:7O6-$)G\U\^.6Z$#9RW,](C) MUTNG>2 DCG-:?2%]<_KU '_U7.V3*1Y:!4\N6QPM)J2328@HHWHD*64?!4?B3FR268)Y]'X+A'R&LR\ G3L3-F^ MS;T'(,<'DDD>S")LOIEHX1[M1J!>ORL1@1VD:!! MK=H&&BJU*:N3(2=4P[$S5O&Q=?[UPI4^O+AXAP"E5VB(3+E)I2]U=: N# M)]F6A3S#HI6P3+TWU'E)U*@OA,7*UC%AJD"8M#J%R0!A$LOW;&'"1 VVF# = MWAVCG#"9I'F%I+"*JDR:3D*:]C3U*"-->'!8FC3>-#=S+FB3IBIW4" @24#M;R9Z;F:]G1T4I]M/CG:HST,2^OZ>$O4\H>DU24&]&9.,CNAF M25G"A(*9+(H@0KL[WC!,7E0WE6P5S"HL1-UF]N[4QGJ9#5F:"F\: J_*FZ$3 MQNS*F;T[/:]>9LM$LDU=X05ULW,R8W;ES-Z=J%@OLQ7,;)67!9#NS9S$4]J M7O:G7AZ46.2%'F9]T&I5GOK]%5G5-+=<3R"]?H1FXT@/,ZD+FM2D2R@<*;:\ MY#Q@HH7/XSAT1S.2K/L0S%.FD7-KO<'%YV$(Y3[)4>3""EKM#65!Q(;V9ER0 M+<5'-K(;8+_6&RHB;RJ;>RR,^T>VNAO@OHZM,UWE-7&/:<;87[\=W@#[87]5 MYR7SM WS^=GQ&L.$95+)VHSX@P*(*3\V'-#"\#9)5$DT15Z0*UK?FLS+;#,0 M#@HN5@4$42!!"$&2>&5?$((!@<+ 8V5 $(E&D!23US2F$2@VANH&@I2$)0V) MEXS-T^"GF2N==>SX .,_7Z]0>:#I^-NR'L*A]U?03,"U/L]&>D?;7ATAVSS=5'[@V%@;RY[A1,'=LA M,76D6^ZP=!C>NXEWK1J\*X!WJ70:/\,[PWN]>!>KP;L*>-9EU['" M18O+/Y*DWM4N<6L]GS*[QN7KD:8(BQYIU'7>4@[LO#7O*7GN.\MFDTE[UV5? MZ(VN 8JTV8X+?[;9CBNC9>7R-8LVLL7[C]G;9H"L,W%QHND8K#<#3T<8Y"9Q;"-\O>/0#+'9T[$NMMWKYCL(', M0]IT?',Q==%W]QEM2%QVBPY%4JANT;$BT$D;Y+3S6(SYLB2]%6\C*V'"O!=I M^I5(OE(2N;&@XX?G!2]1YSIWB'KA)A+;'J4-3#G[FP;;4> O)-IZ9-!(*!K' MQ)B7S)Y,\9.WQ,Z$RH.XHEKJ0/*1 M&C:8N?HU;&_-6OG1M"Z1;>Z9<7.GK,X#?2%V\LCO4G<(^#-"XYE'^D1]=\>( M@YY);\@*R_5".D5*SL\OT=>K)#W=,O1I:NJ#ES"0%?7EJF,W4EJD?1;&$31,0A1@3'06D*KF-#GMCU[FGE6 MG';*.W\*\+#^0V+YC/[U _T:Q90ADRVS4VU%S>><&.R>83YU?!SX>]],48>5M/8:(E)9L9WV3?!-NVW'@?+,JU"A+V=TI:T<> M$/$V>IO]L22U-S145N&$(?YXH<,C07[%[UMU^;*$0,-"(&Z6@=B(:S+\,_RW M1>-CMSL+ZGIOF-&YB:E["H#!X*[O:?E^B(%C@&YG):T8XBDU< Z'? $#Q^P- M=6'S-#8SE:?H0D:3R0 MQ;-V1JP?(?O,F860Q[.$#52<'PCO#PYR_=V''W6]IN%(O:&Z.9SULTI-[J;1 ML^EX"(B4 FIFD0"VNL8F1Q'%'(PD)82EK8QL<^'Z?)RX#\;QBQ4B+D;VQ,>O M>WS;NLNX*[$P8]*9RWMK5T*CK.^3I[7"RD*IX(52YJ7*ZEQ14(FGLT JYE(< MCJ2M+D5!;*D86P(O9FPLY'_MBB6 M8-03 8+*8**P(P1$5[OG;C*L9/!'(4%%N=K@3ZN2%!?!GRE>;8%<'L4.>;S@*ID%%< DD5&<6*3$(_FEXF],-@U17]=(!5 MK$!@6N,5B6FGCL%(//(RIY+FT9I*2\,K!J2JEKG#D535,@Y[PL2E.AILZ6\8;>2@(M-NPMKLGQD-%Y$6]AL9E.UC5 MT%X-$Z\NBE M,BK(MF3"UCCX3DW8CB-KAQB**G' %$DZA96LU?8(-AS,4!Z2!\&P9QX%DC>%W\ M$H2_<\B/W=C%[\,0./?L+C'>X^QHR+H)$P)CU\[N"_Y[];\*+(A?L'W /^ ":+1^T' M3ZY/&+[)05(B(;3\B+A*T-P8GH1\PG!DV9/_Q]Z7-BF.)&G_%1GO]DZ5F9)& M$A(H:PRS[#IZ:[?KV*KJ'=M/:P*"1%-"HG7D,;_^=8^0A$#B$ @(2#?;[E21RTX;3HR0,@4$4]B0:5BLAGU/(HL2+\4BW:K;^%CT(V M9<"0#TSYZ,-/6%OYL/J:Q \9N'#_@I&\ -:((WL9MY?7OX)MLM*D?4F44['J M8AOE>2#V^98/#A-:=$_^91G9)M4JG<4C(&B!E\3K'SDF&,YVK<&[5_16]J7P MWVGN"LZ=>W8SA.W^>>-,8)JWCO?H/$>H)(L:$-1?<>M65[UV;9/),32B\/S' MR&V?,0V]X@\W];*/SQ)Z>#-!MTQC.D+RY.LK% M6]10/B8P.*L8/5E?]R(SY[!LVHTN6>=UWAV]EC[65M5Q!.("?ZWJ9:X[EE2' MT!Q_@&Y(=C"K:CSD;H2[UGMM* M,6@'EF8.RV)H4RI4^".\L]:^FIM->?'57R:KUKQB4ZQ.O4B+U?3[->2\\I7; M>BKA1G+CGGH.,:@!^2. E9<1O>"YGCQN8' M#/\;'!I^+M8/JHG!KLS170D3)ID]>1_%0&ONT-[?A^Q>_%FE4H9.A(<;?\FS M'3EA^(R>[(/C)0OW.GT>54^%(PVD6N,9N]QAGP1P[GHL-#OBI-RX:_R0N7)* MA=WSG'G$;K,_WHS=:.XYS[>NSS>"/_0F'2SU/LUR#B;W/\37"Y>LW1%N69H< MFKXY_;H-7_U:_KQOMGM:O_*K3ENK_'S=4)A\W-Y35N=+8V(CS? MO>..6U&Z>-RI]FF/G=#;ME7WDNODNW&B7-&R-R,X$C;S"SA#Z-3]+Z^=*%U/ M6F9K8%> =UT%AL:.1 *9M9I2V 6N/$O9GNQ\^1G&_?'(O ?VB9\(ZEZG6QRW MT-*J#B0OQ]X Q_;VXMB*91+';N985)P_'H/:C-KCC-IY\:JU3ZKUA(R*X:W: MK-H'0JEZMUPI_<)TJDTZ]72L^B' ^_*:G&H?AU,O2ZG^F+*0\7M(4JUU^17O M&CE^.[75: TNU*WI#O23=*NK1V2)671&@OK;B]!/'2S;L M 45*#DG@[FEK*_VJ1+C!>/UAJ7Y[#;X^8W*O],#J+"/<6%?3QOJX-^ET]:'3 M'0['P^Y8-T;&T)@,M=ZH/_H_!#K<>'6DKP!RX*V^.WD^?1S\4&4A"PJWT+V="$#L)%@G.+T,QQM^6X21U/X M<,HGYN!@,Y$WLZG/U9KL&3%^Q5MERZFY&XV SWE"WG<0][$3CB/E;3!V)Z#7 M<$5JGOS6_,SX8+8.&CUXE8^YO>+M MLX7 \&33MI+NC@)V)D#O!52=&TTQ*[6X35.7A4XXFCZ+K0D93X*-E)$',\QY M<''_'@R!7@_\PANOTA._\('KSQ-,])GB5/E\D*L7+^/9KB$3R:P\E<5C#\R+ M1-(R?Y9/8N8\2\/R1Q2^C>\%[DPBD0V;DK:PD762$\Z^@W\@C<^UC9HTC,0- MK/[F3/OPWTF 1Q>NL2*N:7@*7ZI1(I&RAT!@Z$SG90,+[>2RJ$U,M^-FZ\1T M_.U?2J8AX"4"H.1]15!(RU@R2D93M-E_+3$JLF7DPJR4K,PEF>F$=:Y1 :&M+P\7FURI\5+F?. MQE$RGP=ARJ[ 8;'@9S_(&)8+ GK;Z+TN'H,C.'=VL=))5-L5?&1Y^7?C1F%I M&58;./[SWZ)B_FMA^HLM2#U_[G$.\_/$&)<[%H=[47=6W!?ZAH(;(F\4!Q%XJA2ES)NN]B<3S:8$C M/RH,'?\GG/AXH594_8KTYV@5X$VPJ_C<+/#9<\8'LR1.P-.9)/YX^;TP,BHM M?IRLY(,(N>Z!B2*,*"VXRZR9X,>E ?\65:\VGR0,&TV!:6^XLN0$"OS[]%_W M6 VBPG1]?N+S5%3*21+QM=M=^&3_7.MS 1G3 MS&AFDLVLH0JL]8T73ZM>JH\#;YUH>D@769EK4_@"=V\B4+4Z&4M-^+)J(1.: MFVM-D ?N_#'^S_O%[7E%4G_MLA/LQ]'IJ#WMBAH8DW1U?:TQ54OL)!D[;<%J.@H[Z<1.U\I.6WHW M'\_>81LG9SP7ZY[E6E M/*3RSALOK[5&S<2)>NN^"M'?>B07W=(/CYS;.E@/75-[%5V;]HM.[5R)>8XP M*,D6R=;6X$1CLF4T%8T@T9*&TTBT#HG2["9:FSW4QJ_G2*S.SV4D5@>%JQHS M62;6M5JJ8325.DC"=7Y>(^$Z*'#7F'!9347J2+:D8362K8,BF$TXA+W+<0A? M7!M26A0MBA9%B]JW7_%RZY'51KDU^A5;._0K/E-S8FO/YL0?\RX]Y184&.1< M;0YL]\LMB0MIDM\+:9)[-"06HU>\4\8&%UDO)-'HB+?5:[Q%$;YGI7D/MONY M#["1QAC[9CC9_>T-.#LWD9/VG!7=JD8H/"O-,=HU.63Y&GCUNIAW3:E@';N" MC':9=;8T"G%]X<$ABX3LW@G'_&<5#;#6[GQU6ZE]&X[<[L?6N/)KZ#C2[;8- M8K; MH9[@U2.):ITMR+1']P3[>'ZR^TU%W"6(1Q!G-<%9^SN"=FM@E TWL1.QTPY^ MX*[E6J;6D0T/F7CM7+S6E*>HX:68VJDX=EPTPK:\CF(,6B!*PF=E&/AC"A:N MD88M://'=A$UQ/9J(BF#3N37Q5E[NXB:474K2MQ$W-2HA]@ MHBELH2S:ZYI#B1S5MKIXDY*7*05E52><.759LUH#PU!M_> K=P4<7/I05#HDGM.BF"C:(!#AO@I<%&96"$2H9# M2*A15X%-0ZA1A!I%J%$R[ANA1A%J%$70=DG&V-9E],A7KSI'C3+T@^N[*&8M M#0.2Q!U1XG:]>]TYU4YOKMTWR: T+/GB9+!F9?R1A'#;U:RNMP9ZN:\B75L*8N9W4.*F5TY&^P>,T58@0J55-:MC6D/_8Q3(!*]_Y2N<5U ML5;SYPV32GLNB-=J^M5'8K:M?K4%5O\0OYI8Z<+55F/^HT"]] @M"GBK).XAX9!0<0+XK5Z M[N&QF&VK>]@%]Y!BB%)STE$9:;UW6.85LS6P;5E:L%QSC)"@I"CQI(;0G[D[ MDX%04IIJ&X1R0P)' G>&DT&/TIE) B]> FN=F,[4YLM G*ENN7LG93.3A,DO M84<4L,9N&6SN3/;LIN[;"6B*X(MH4=>PJ J@*501J+9MY6J]ZU--U.5K=7SJC)"W3%@N6[B;[IQNE1$_F@<_)F#[VS(]YO3<1 M#!GS#Y0Q\I+#J8,_Y/\4?T=,F;B^XX]<)'P,7R"9HY6=VRA"Z;JZ"+7&*0\_ MN T9>,[N UL@K*%K47@J%?7.XA%G"#*?Q.L?*:%JG)1LF@G3L5?VI?#?:6[D MYR D-T-@^I\WS@2F>>MXC\YSA.JIR(+ ?\6M6UWUVK5-)L=@2>'3@,^%B@?) M 4J:A?@KF(XCPS24:8A>YSSTAC=Z1S=MH_/$GIX,36M/8W"4?W#9 ;9^BSXJ M,/'??W4&5?02+N/G9 83'*W>C:SZL!_]!Q;%7"@RF67CWY[Q'>AS)H[W*96R M=R \? X_8+C?O&#T,W=8NYV6PL"-G2,7APD37G91HM)?=NW^C=Z22U7] (WQ MG5NZ7$<>.8\9X1N?G/X8+=N#)IGM,-V M*<>;R<;WCMW)!$SF) QF5;O,]Y^-G 0T/NZQ&T4)"W.34* 2;69K,'4>Q#;Q MXYT2!^!RL+GSK 1#L#]<8B/ET45@MSC]BKM'<^8['NYB'=?C(L!.^UK;T!L" M.[7:W=YFX$VYT3)?*#+AQ:""RBK *X#;;*>!3[EG\ RRAZW_QV?\"OV&$@4,,U@WK=C6\-U'[FOPY M M><5X[J@Y];%QHDGL)B[J?*!$[T_!/*-#^F.-WA[H,T_1#;_@%V'04KVE^R M, '=5K6N38EYE)A')OAJ=,;^=ZA=@YKU7/0EUJ]+84P18D#:NIHVUL>]2:>K M#YWN<#@>=L>Z,3*&QF2H]4;]T?]U[=;FN(1^Y#AC]:GM_B]#,<;#DXFP^FE'9Y*:I3'<,50\H5 MPUVL""8#RS&\",G'(L'9BR>!N/\!?-Y&#RY,WYS M.''#*+YQ?37]"R-KKSY\_/#E-7^TK6 <^FTP@XU[5N8PTV",V@+F'[('ESU& MB@NKL9Z(?2-5HMCOX^ MFL)K/?9EDA/OK;CZ6W?)8)8N&61BP0+Y\@M*=Y4M\0Y[LG('L'QOB0^-^67S M^/;:8JR6W>Z8]7H8K8VQ=MNV5?W5F=LD&1<<^#W_ !1ZOOC0\Q[-G2YP(XJ] MG;)]J-7?Z0IB +EYHW,_G?MKGOMSIX\7']0^W5L\E-XSRU4(LIWNJ12!Q.GX MI0@'BA."7^JJW3\X?DXW4P?PPUUV*N>'^P#S1>' R^"#EW,=5:L ;E<;@Y=* M/(3UC<&T'BJ1';J(<4E8PM?$'KOJS)W8PT;V*..^G9P]KOE8D5-$Y6%7S+K- M5"(=,<@GVE?]?V9Q78_([/ #1J='#0I)F%Z$,.UJ+/<1)HT?+XR._*?U%W<7 M?Y6+6I-@L'3175GRMUN"@:G+FV#0WS/!8)%7\&6"UYC,CU*7F$.$(#!6]'WJ MA.PW+,K\*NI!HO(M+>Q-*0?!U,LY"-]C>.J&#Z84W[=71H)X0<5K9:LU^^(K M_YEXSTJ?UY?I*K_V'0:8/X"5Q6[(1J!C(Y$Y\("W[_#]US"( ^4/9QBIRD=_ MU.:/*G\$_OW-#Q;.\#.\K7^ 7WJ.GR4?/#J%88;/?*3T?OIO6(\&I)P&WAAK MI)Q8<93O<\:+9#\Q%N.U-,SG>_%'L-MWR7T2@4ZUL]EC3D&4#"/V5P(S@'4! M2_GC- =H>7X[=WOI]L?OLGYUG1#?[JKO(*5U?QLHHY39(07A!F/Q=[ MSK<0M^LU)CBX_@AKN$5)%-BSH<@!X?.,%I5_/"R#A64\1C-/0OR+5T\YCT#" M2.'%G,OCX^KAOZBAD&-AB6N-LGA=&)+^KG-VM!3:_?+.TM;=1&QT.T["1S!B$?,7 M^]5M#6"56<[YLNH3M8XK!>U%X4GEV_':RI=4/M+"576CQ&5: ?D2A8*7]HD\ MG\(62B\7Q@7)A=D:Z+:U22[:RI_E75JBHS(%I8?_=H:NAW7%L,'W(>YTA,94 M">:\;E--_XED1I7.-Y.[O9'RZOO=M^BURM4EL!AJ9_[C\B=\^V&L@.M._M&- MP&-(:8HB.G*B*3)):G[$-VWE;CW5>>$I"+_SQ(4_$U[)I=2J):6<)B*?;U28 M'=^Q&!@#" :?S]PX9@RKD;.TO(5.RW0BB%56>8NQ,& !OL7*H^MYRA S]H;_ M!(\ADUTGCAW7SWX>H4'G*7QS%O)5HG3..%8)3S/+A2]['N<935+Q2U^X2"/$ MT*@[8D5%+;@@WFFA?,XY$ HX*4QP%B8=YI/B[#%DL-?.:.HR4%)B'V$%-UQ, MP!2P<.1&3&"D\'46F9^_&YE<4 'A0RJX\)[Y+.2YE;C]?A#C9F(-(9(@K='' M@OP4CD7D?.*&"%G%/X,DY(L+_&P"?DE5"T:0%Z2EF'$*2C3@"B9(8I[3RE,3 MRX*L;?(\"T[9J_SGW,N"[SS,B+J?\G'F2 5NU3$_U5<^L&&8..&SH!%/NPV* MMB&="&>/"!6.8!*0CTP49@X(T,I$\AU]BEC"+8T_L,W^O*'Y;<>8Y>,*,K1CU M]?9;8K;^LG166/:%?((O2N&+M [A%UT%?M&:($]U M;,F0+,CSHTI]""V-KL8&QT15ADFLY. L$2ID=)A2HQ'XPB!RV#3TPN+G3&=M M')0]C=@\YH4&:)0>A?N4VL%4HPG'TKD/625"VGGVMSK.^7XV]X)G<"F%MOV: MA*!N(^&#R##KW>M#N'G?M!SEU?OO7[^^%M?@0'/0KBY*$4N?X>4[\^P)!SS5 MT.5B5CJLIY9J=09++BP#IQM^.($%@O$1-4@B.,CKB1(\TZ>5\G L"0/NT .? M"YZ$-R1SG,_:@[R85/D@OW3U5'W6V^<8_RZ=] (>&;Y M41U52Z9G>"?H\C$=]F.4'JU$051.C>+A1RT>RKB;Z[EP A*02L(919(N2K%V M"%)ULRU!W7J;\0MGEXQ;D%FRA=4YV?9;@\A]N@$>B*>ED^T**PA$*#P$P6<> M6_!=RBE,'!K0]]),KK$^!P\B25XSN:,\1\_G@7G/X.J*DRY&^&!#JSA/+7 Y M'KHX7Q?9/0M#Q4?AN'VB"SDU!)^]Y<(EZ"28IY+?[-:@OY7?%I6):T^G6^4[ M/:+R^D,E#AU.KK'SG#V\*OJ8A"@>\9R=GI#8:*R[;P+O&O]F,LR\VG!\+QPA ME\(L3,R2#L>$%B-6:-]VPG)6MG),M[+/;+J/;*+ A M7A88JC53ZU@SU5J#;KN<[)G/-(,.!GN'03I4CY$B(AM+)5 ")A+7A==2RTI. MK;]>[5CK18 4K5U.[]Z?-+UC3=7 9)%-7)31QL6/=>MN:9:;.D'V+$6^UHJ>JL5[\NI:/X'_P<;W_!RYCN$ M^KAG_._WV9T;/]>IKRSD#+Q1,)J+ M@Y;%(E/UJ9+/]#M7[U7R8+4&IM8VRM5ODJ;O'[LZ^%Q,];NXY=E+!VU?Z67( MSYILP"/;%+[ST<P;#5?J\<=VJ"HB^C '@?O:H=IE>C6KQ1 M5[?V6P/#;AL'MWJ\K/+B<[%/1H[]=.CVM4HE*^N+Y?=4HGA"_HB-=<;ODL5- MHTB.+L83\UVNK2/MUJ#748U..?R["XQ:+<][)QU907'2D7OHR(PC]E63/;Q: MZK;UIEHGD*.YN6MGEDWZ$ES-QM7D@;YFNOF8$/^QJDQA!SW:PXKKCJ%VM#)^ MP7Z*E)Q-.11I!7/45:4ZJ-)>V^J3QWD:CY.GZ9._>7I%NBCVVE^18C:"I1KF M#LA/Y)!>D!ZMX(VZ>K3;&O1[[5Y345%R2?>YBBNG:ASBWKRXN[BCU5 W=1?7 M,S$^9JI&Q>U#TX[LPHNC[\WF!)#TGNU'MZKZ6U-,D]\)2%* MTVNA7^WBX-3+BF@,PZJAJ=5-E+ITRYNR<=:JOEF+2W9USZ--3I,][2K>1MJ: MVJ^ /":[2G;U_':UP.)U[2J'\FY;DMVIUD\T/@QF\<@0D<>>XCZHCK*5)10/ MJQE"S0)\)@5#VA$$J51BUZH^.0 "3ALAMBT M## B1>W3>I%YS-+0':'L"XL79:]YO6O&8QP:A\,K9-Q6L[AG>P7ED8*4AR06 M\2^QAKW0-;UD"?M::Z!K[;Y6LH0K7$ 0,AF$C$80,M<,(6-40LAT6PU45Q8E MN)@-E;<7N8NB9"8^6U-IV=H M#WB-XG)CVAHEBHW10_J-VS54>WS6O82M.DLSWW-%_[ZYT<^;"4*=N$@&..OB M\7Q]V\%CE;5NW!-I#@J; Z;K,*>6L&RZC9T5\^-?P;M$E+R#\FQXDJ7]#O M)2"VA NT<(%&N2M!E8!<_3TWXD/!^=)S)TQYQ:.VC23+7X4<'_]:HHJ/,YH@ MW'QUU!W)M&#G7FM@M76S=#&TO[;?I?"!>('S@MZ1BA?Z._/"E7OWN6)["#!F MCVT.CE2.<'FL+*7_GA'L?W)ZK;7?MD@A+*G9^EY)E+3,;K<&FHZ=U]T!2VAF=M8OM8N!]AS,'/LFN*'^1#5"/^A:,*-B7Q).BUEI3U= MGBS),IL(/Q[BH_G0/-'2*2?8[9]2>;2=%!EO'X(P_0A_M\.1W[9: WV!@@*%.(_L8>@(L.$U]P75C4]5%Y]^_[GZ[S-89AV:+G) M^@\6^A]F31-YK@_/LSDL'9CW8%W:!.2/&_?I9NJ.P0+=(G/T6@/>SB'=UD*K MHG7Q+./L.<1V_X0YQ'_;)7N89WI7MZU7E^FZH).@L.LKD\3S:LQTM='A(2EZ MI2CD@H>YS-V!F[+\"1?"+:T1;/OB$O8*K1&J>Y=2DP1*OJ/D.VJ2L-GPBZR[ MA;="'1,*'1-X<8:"U1G\GWA&5O@AF?\3' "%VZ1SI)@!4TOB+T;42N%@V&O] M:,T4WO/^LA]](%S" 96^X'G\Q]3QT[*&_%RW5P&ZU>FT!CW+4'6K7)Q$31:H MR<+1<,7T([59V%U@]JCDLSI::V#T"^D,+[T'PUGL@6&^)S+-9HN4ZV=J& M2&\-]%Y?-3OEJPB"RCVN*C;/I(H/KJRV.@;OVV ?K(\O"T7WK*>'1;28X'0E M4\'_PQV;O55P%V$*=-74RPW7"&;W2G7P,LOLI8.Q.J/3-IORB]UN#GFZJME4N;3YU\/RZ0^37' BW+C(0;O- >+=<#716I[].@L26 M[A.')0SO-?@QT-;/OBA*CZY.C[:D28^VM Z9YTL"(P*P97B(+9USR'26&N;-8$14]^!$^ @SLQE/%\9\?N088LOB1,;]V M?:/>JS3_"+YY"W/&5"M@^2^3'WP2PD]]Z\Q1>WZ9_,9 L[YW0A]XU<\2F_\( M'EGXASMSXV5_=N(^@0S]BX5!11&0I>FM00N &@P.,D])=>D:$4HXH'J7?],7OB^\O12G&)J/;=N0O+7H70!DJ(S'C< MD[;RHV)F*(]<@GEV.0OX%\#XXT2,4H2<>[@0(@P+R?T@F5<50)X7@/PK!/ \S4#/' ML8,BYMMRA/L3"FKG+K0^9KW%=J$"$"D2H0(0*1#:?=JA"A"I$#CXE4XG( MP;=<]J7>U+6?*L#Z?"CZLMD7OM :&KMJ] M\4I;KHA3+DOY'E[4HFNM@6VUNUM0$:ZYUJ08"QI-D28OH>BD,8W(TQR. MQ^(%ZKSEQ-F:[%%@;KTUX)?G^AOR1Z50B:=FEAU4XN[<9*SG)O)4Y:H O#"O MXY+\TX,K /5N:V#UU7Z?7-2SZV/I2_]TLS4PMU0=O13G]#CU>,NU#2_IIK)W MJ3>5.@*/&YK:KVC$U+1?>[ O>YGWD56KNSS.WV@1JK/6);]UA%D/3*NJQ^Y9 M7? :^6CU<[[VK)';]V>48K='BIVFES94^FMC3?GHC[QD#(-5%/_4-:=&YT)O M+<$U'IA=U= K*FIXQ<6]N%Y7G$B9.V&<-0[XY#PKNI'51W[TQ\F(+T,1Y71J M_1W4+G4';<0T5$'_EG<0-DM40$X=K(N!?8M@3:7"%=Q<_')IPWDF/_\8]EA7 MOGH._QTP["ATATB18?# U,U%6^LV6[_0S08YV[[9L*A <85TB[XEBQ!WON7- M%/89QJ'5;W>CJV/@=3^\OG'C$!D7[%?J!-#5=Z'?\I18+_W9AB^)Z=016 MVE85R+85!3KI#+-BB[5[5."I>KL2L#L:]?)J7=*Q<,PB+S@L&R(!FM M0?P8E#=L;X,@M=,1:UA M2BAHFRIJZPJ6M;W<-DI0Z6:BPXW8+N6VJ8PY6UENI9F4J$ZM4=SZMY.5M?YM M34'KNG:QFP$R=BJB$^JDHO]2J MUJ&H(N\"!CBD(L^^O!JTSZ@2/@F5\!Y5@JC+*ZJ%.IOS*H MH520B]*1#Q;ZLE<9M]2V*"*?3.:_&#A; ?LPRYV?&HO^@[FX&0W6^#5C!*LXUF7@:AS M[;Y9BM$T5L>Y+RSKI>GD=>2VI")WEY.[OY;JWU*S"I5*_J)R&[MB[;2G][._WWOJTZK*/$18Y!#2S*>?+G;6!A=EJ#7KN,N-5$_XHUZ+NG M:6!1 I*7K8&%R1M8E&,XHH$%@9]7@Y\;!'Y^S>#GYMG2GZKOA3.ED79J^9J$ MHRGH#)XXOKRR/<'9UR1\9[H*WYJ]%-]9([',U"\PL8Q%R#?5B65@(S#)<8:- M)%:Z3*2)R.^_?_UZC&0R G>G5#(I,\$HE8Q2R2B53+JMHE0R2B5K+B[6DR^- MQC1XIE6YA>U>MUTG#/SNO, N+E"O6.#YK[I(0%;XQY:0?_ ^N-VIR#/;0T"Z M'0D7B)?!;=ES7Y,JDL M@S+I3D9_74+Z=RF3KO%,NO6Z/KMYALUFZU]YS%_1!&F"-$&:($WP$B:X.2>[ M.OT4+;NK:6-]W)MTNOK0Z0Z'XV%WK!LC8VA,AEIOU!_]']Z$;,RHTL^2V/Y'S<#5C,OI>)8I M_#0.8W<7IY_AV,M)>G>C%$L/SCH<6XX#[H5L"HX: N9]]$?!C"FO_@@BO&;8 M5#E=G68IWBI7,J!8Z&AIH6ZZ4 \7BLGB_&L7,P&#"8:!80!?&25AR/S1LQ*# M^QIY8J'.^)])%'.D7)[>Y[.8)[&#&X^YY?>.ZT=B8 9#X\[PK&_Q@ L+9S"L M&[LL:BN-9'DND5!0$.FW)G/3LBX[4O[P=Q4KOJ+6C56K MD[9UX_K.SQ58%,LMUFZ0J6'N\%W6]<181+5ZH!>[JFD9 MVYLTUY2LVCT6&T@;(U&X,E&PC-.)0A]$P5:[1CFOBT2!1.'LHJ!IIQ,%T>C1 M[G=)%$@4Y!.%[NFL0@_;,=F"-#SO> M*LN0MDK/-_3\-1_OMR=6#!FF4B#TWE(:RWH6U^OM3*65NUQ[H.UL$+Z,W-_X MWJYF"$6?68R-1I_NXCATAPE/(O@1?'5 Y<15=@&! O5RF5(^ZQ&?72V?;7$T3\IG?=GXK*'( M)7^OT9/4'P7JI?'X^";K_K$MJGE(\'*W]$/YY>Q884W<^S7U;)F@?0U"7@JY MXQG/;BB^N7/BJ.R1@VMAP69CHH_K309LC\>7+S3!Y7,5$L(F (1#,ET.KP0Z5@[(2YR9 M%"._T%P;2K*I9[9Z)[I>[!NM@477TU?'/_U3\4^W-=!,RI^Y.@:R3\5 )C!0 M1>T#,=!E,Y!9JJL\%@-9K8%AR,) E"!#"3+'='7IPOEZ^6S+:[A2?E, MN@MEXK-3>9 GY3.;^.Q:^6R;HWE*/K,[LO$9);K=;9LYVMB([] M<)X6?6W+34EMN]R_UK;+_6O3_K0P&A8/[=&>5@Q:\2I=PCZH&&5T_&=L3QLE MPW^R4:S$05;U$3M/6$PU2[S8G0/'_C,)W6CL!@]NA-L%!JCP(FQ5^P$^6;1,K>Z4JI2: MI*K\F6PA(1NAM(WAZ^(R%J^%J?Y;'2.[7#AKKN6]]T]SYD?L-^:SB;N(P5H9 M P+CMP9&NWPSI0!5/8[/# NJ-36KL:DA0FN[7/2834V%;8WFP!SN _.>%X3: MT-%V'9V61:A:E2V;[RXVI)T'D8L_N T9HED_L$4?VE^6Q2I5P9W%(\X0='$2 MKW^DU(;KI+*(_7 '6G=E8PK_G>8.S=RY9S?#D#D_;YP)S//6\1Z=YPCM1E&Q M@%8I[MWJLMY1L7Q%L6/PZ<[@RIZK;<(LNG^HZE+K3&=!%O6VZ"3 MZJO+7F-3,UJ#_@9-OJHNT=!6;BY8RJ'#&\+[7#EF-A3) 3SD*6PR$;^-MGYH2*,Y][KC"S\Q#;>3^E+Q(O73Q>>/W2*+N9VDX<<; MS6;IAO-]-K%\T[_!K-X*V0%_^,N<"2F-\NT'$^.I$RLPNN('L<+ :7#1./!9 M AV&0FE$V: /CI?: L?S@D>\ (YVE,2<. M!V-#:]L2BF8UO4X@FC;XI9NT;#U&O03)7';J9'+8ZIAS](PVT$0D_>2$&;LP M;!B)"D =@P<2Q4Z*7^R/5<1^0X?1"3 M^9[-9>G'5:RK=3:D9#6G%0^?)QZ\M0I7P+0I, U>#[((Q49 DOP5BB M$@BAA[^*P1LDI&"-2=HD:EEZ0"YC%T3A&6@\B5B,B@KY"^1NC&*#+/8X=4?3 MI7#+7^"E8@&I[**3S7?JC#E^T"BX]SF"T))JB /$(8*-JW6N,#:?*_XLO Y8 M(3U61!7G"DW'"-&F(T^$ KA.D&L?B+J-31P;9;3+M[$K$P?;4YRWIJ8*OWA: M4H4:=R=*@4B/0>*-\6? S,C4#OP]3L0"4QN<$I@'D'MOH@H;+&PSR.H0!!:A MH;BM*)1 XR1YW8D7^/#9!B X>7[)*\H?_&5_TQ 174%RZL+ M>P7[.,+M^X_VM[:B*:T[!7;"$P=C.&Z/A8T,EQ2V,D_"*'%\'O/^X<:P%1\_ M(D/]1QM#/6WE&SKK6K>EHN,"QM1#0H*Q3#T81^SZ%["TO[GWRF_,26)WDGCP M+WCUW2A67GWY[;??[EZWE;N(,RUGX)1C^8QGG$*3=-IB/2ZPC(C#X[_&^0N! M\ L"9]'W8EPA)6>!DY8B[D*'8QQ0&08^V(XQF\.&I'N!WX$H ./ >KV4(5W1>ET9PXRBV!WA@L$I!I.!/\3? M@&<'"W;2!\"N)/ 3?H;) U&IF*5.X3IWLJW\ [8F$*[>$VH/!<4,@R? Q)XR MFCK^/3>401(JP/X!3B[WEYQ5! F@#8&M$X:T4GE_V^P]ZX/VL%-72K&H>K:NT3#=[O8LS2)+_:T/2_VOK-[ MW*=O7,4! 3?<[_5 3%"S\OU>.J:2#[K/)5\Z?GGWZ;4J-"N<\*+"3^$/GK#"$^A!F> 3^?,P M^V&0Q,(\PV%.5 JC8(.(@_SG,9=Z&Y',89![%MR'SGS*M=D]#^ZBT7>C.-5V MW *!DX5J*N;WGSB_]PF84Y:]-9P'7.W\Z:?3@Q_C?^_Q7"4<=W@.>/"F8D8J M:JM'!EJ6J\F"1ATS\)B".6=G_/<]>&AX9L._G?',]6&6(;\M@SE'<7I"+KKO MXX"_-\ZV#?;4!4T<@Z%#/R0NDB";C\2>_D?DV=0]$ZUOG>QTD\<4A'44;A;_ M-8JP,$KXXX?,N'(M/F3,QU "[&4:EA]S!F%/G&;CQ:%9$ Y_(M!U!.G%V9HA MUPY9_(BCI0:;/QCDX1GA#"Z%\-.9XJDD/[)E?7UO,ALO %#QX30J@G_F'F8Z M$+#QR(FFF8.:_2A'3%73@UT6.UDP*;QZF(!=1V',Z4]WN&ON<$VZP[V*.]P: M#LIH"@=1CWV9K+HJ'WV18 FS_.TY_;+":3$KG BS[+1L<$/T2C?$D- -F008 M:!5^.#=PR0QU,IZ)(^8Q?GQ;>,GN8@/1YZ@PC+#-V(SC[/-^Z/E\!?^A-.EBJDU 85ZL)D2G%UPLY;7>$K*;%C.F;TZ_;\-6O MY<]UJ]WK]2N_ZK2URL_7#:7UVW:G^JMU0ZW_O-NQKGA2W7;'K/ORDTS*V#A4 M9:FLWFTM[,S:DEAA($^?\EY]1/S![RP^B:N*]VO.^TLYYMNJA'?-+Y>UZN$5 MCX$$201^VH9>4'56O%OZ,@UPH@$.Q76JC72_'8;^1$K!WDDG+!VH]VKA\,(V M3,0;:*>V[U1E-(8V;@<[C9>CM>QP0V@=YS+#W]@#@U,5X7.\C-++>A ^VC;8 M2LX[B%:) 0<<\Q]N/'V;1+ V%G[,DC7N>*";WZ_7+,GL:59KH'5LU;#*^:3[ MH55*4PM-%<\D=M5B5ZIX/KW8]7@E=*=3SG$EJ2.INTJI*_56;ECJ-J$R][3& M4>9)XL[/@"1Q.]<Z_88)S>3"0\ZE0/X[=DS%GG$W7K\?BGBQK*H:=NI3D=-/Q[ M$(P?L?X%RR3<<"9JOJ.8&D?6<_]X?7>VL[_#ILP_!S$60&3)?GEM-[8%^-UQ M_2_^/T(W9N^"1__.'V=T^)B3 7]7(^ZB=V7KAD5=UX[M*1Z+ZL-8[C^;691=KL2IENC8]Y.EW6DTF7G3H:>O(2+U[2] II\5I442U M;H[3R.B*[E+JK?LJM,/6^.J7K,)QT62K]KFSSR-AAM%4_.+\-Y0;(ALD5=,D[=Y\@"1+&D8CR:IYACJ>9!F=M9%W$BT2 M+?E%J\'+B";$26L-^FI?D[__-+7*H2E>PA0K^N%0H7_QU<53H3X7^#:S[*D)&FMD]>RV6H;<& MMJV:/:KS)ZE[(5)W_@I(PQ!U_MV#ZZ1(ZJ1A0I*ZC5)GG;/.WV@\WYPD[OP, M2!*W

FRMA.+DS=#E7&7BW3G;@V=N=@7U_V:12RQ ""![BB 0@> M@. !"!Z X $N:>,('H#@ 1I8]U5$C#2S=_82KFZ_-3#TCFI4P"/+5L)%=9,D M=HV(7?_\8F>W!CU+U>V#ZZM(ZJ1A0I*ZC5)GGQ,?P&P\3YTD[OP,2!*W2>+. M;N5,#9Q+VU(M0WXS1_@ AT^#\ &D/4HV7$-IZJV!;O35ODY-MZ^.E;8NSO32=$$'"YM>TTQ9,C M!&2/WZ!.OC6L3%&[_ICY\>V-8._+R+92E*:SP_9,4D,M&KE1K,Q#4'LAO$L) M)DKH/"J@&>$5H$Y5A?V5N'/^V)C-0U"0/"(#G\_F7O#,& PRP^'XQXJ;Y38J M0^:SB1O#"/"#F1M%&,?A%Y!1'(Q^WN"&C)<>5I6),W(]V%(^M2@6/P]@)Z?, M&2MI-: 8)XH"G H,\>C&4R6>,IBTG\ (<1+B^^=A,&)1A'I>F07>6 PVXCF8 MRMP)<6:PZ)\L3G]]'SJS2(F2T11&5YC'1G$8^.Y(Q>V!Y>/C<^?Y9H[(%)X[ M^JDX8T[D" ? ;^/0&3,EF@:/Z MM0LT#$&OJ*V4*)<-4UDM63%&-:EA*5'@^TQ<# =)'+FX !8^N".63CB;?ASP M31ZS!^8%@B%@!!^8,MWI=!GPKW$RBA5D/V0??^KX(\;7@0^P)YA%NN/\=RNY MAV!?DQEPY&A)1Z3,W45Q*\MBCO3Q2VOIJ51S=1:/.$-084F\ M_I%2R>=)W2'-A.EHULI&%?X[S8W]W+EG-\.0.3]OG G,\];Q'IWG"-5M4;>" M8BWNW>JRURYN,CF&8A*:''RO0$1[;\%;8J%0EG]W9)B&,@W1T<1+B1N]HYNV MT7EB3T^&IK6G,?C&/[BH 7=CNC=R^M]_=095]%KA[LR[U+K@M*[_UKS16O6, MX^G=]53*_?=0+N&G9EZ"3%D]E ZG* M7PE(7OR,*C\)^3-,+>E"9S3" M!"@^A=AYXJ-[[-[QU K5GYLPKE+;VU3>DL8K@Z$M'V[^"/S[/T#?C;&:((Y^ M>_Z=H2F;3]W1'2B"B//F#QC@-[ ./_,#3;_34A@<<^:HWL*$;62PT[,3+V97 MO "9&A>'U&=HLKD%'+M@Y%,KB*PO? *@2L4#2(VBY\(_<&:8SO8O\4%J5)5' M!GSKX*A@2!^CVV4R73YZ54]K&WJW&?@CO6WTZPUU DPFG-3FH?8^&U\&;,VQ M<6\NY"JY-C[3^2$^=H3B6@+>^OLP_'6 [DB-%6YAE8O9B'=LE.Z#EN]#/1"R MBTF7V(#V4K9WMSOPP@$QR4,Q=/9]_IC079>5T+T1>>O@-#*95EJ[ OGZ[C4T MR]A\L_$50T9A_/S5<_SXSA^_SX)UGUGMVHP^PO5;?=7N]R7)>#M!M3Y)Q/F7 M54\BNB>4"!UAP355MP\NH*04BS$"^JINB4_S.P>UR\GB"CNFTPGP]3H0FN' M:/!RDN%J0M%.M^V\'O5]X>[Y0Q#>93?//X(-E_#?V#W\9MTM?*_>+?Q%W#-W MNVW#;.R>N=.7KOW=7DHO2..2TG4$&7L%7=YM)_KF-#B'?VY)VKN5U< MTX.M7NHPI5+1S"C]C-+/7G*RS6[HP 7%FL7$2B&QVF'M?FM@J)9Q<+T]Y:*1 M>!Q+//KG$P^[-=!4PZ)431(/:<7#/IMXV)W6P%1MW2;Q(/&05#QZN_45.HIX M:"@>#31AH+1F2FL^5 QVZXFTFQB4.5W'1.:F0+LHBUD:KMFM_]&^7&-@X0?E MOE\=UVS)>CV0:[K8;HVZ]ET=UVS)YCRFHX:ITZK5.3AQFNHG=J^?J DQ0]45 ME/^]JC.VE.H=4V-8X/"J'>O@BBLJM9"&\TC4-HC:EG+&8XI:#V/PIDE5321J M+T+4FHS4U!2U/O8)Z=EDU4C47H2HG2_QPL:F\:IA-'5U)E4UH4SX]S3%%S+% M1FL0WQ6@;._\\5T!R';7JL-^IR;V+U4=;AWJ)1?X23DIJCJD 0X;@*H.J>J0 MJ@ZIZI JQ_:M.J2M(JZB>L0-&/8K74F*ASFJ/J294?4A51^^X 1Y<\M]4U%_ MPM\>JXB)U8Q^]SL:7C39'5DRXZEPA.2B)!=;\A&/(A=Z:]!3-9/*<4DNI)6+ M+9>F1Y$+ \\MJJV18)!@R"H8UI9*PZ,(1A=!OU7+.KB*AFH,J<;P4,NPI5KL M* )@8G9HM]>1I'2#ZH$:XZ8MV?U'X28+N:FG'8SW0=PD&S=M 9$Y"C?UL$C$ MM$@W71LW6>>(F?4134*S#XZ949'B+OSP-@CG0>C$3/G3=SPO&,&?X[TNN^"MD_0PQ/,["RLGLX*&DMA(R=(=ZK(2B=J5IV4U"')&3GYSD2LOW1.(XB9-C6VU+M?E.W*H3#<;D( M$C1%F7 X)U6$Z>67XK,S#8)R, M8@5_I,13_'\L#<>HBH\?S0)>#D^+FT:!HTJ5TG1;@C-,!A Q#N".&.O%CD7FY[J"$R$9B8MF,B1!:/:T?CH_Y.)N.^GP,/9 M$IK(E>=Z];9D?*2J\D,8S-["DSCF/]QX^C:)8&TL_.B/O 3W!%&UX?_&/YRG MVC']?FO0[:F]PVL"*2>2Y.18>J?+$ONTZ[MZ7DZA1"H;<&EJ%VNM2Q^-JXJ[\%\.D4W&6T!J:A&CIU M4;\Z[MJ2_UFC@B$GO)QEY;BC)/P5Z(W65VU:XM"][2-L'INAO@3$YA4A8'.BTTV^J!:L$H0;B+L%=6_"D3\%=/8X6VC6N M""V"N$MPU_GOW73L'@W<95_1?0)QE^"N\]]6Z39P5URN@@O*AN'>PJTME<-N8Z_UV.H<&)4>U1U/KZF.O\=R(& M1^Y2>[V#VWD0=TG&7?;Y[T0, [A+4W5I4-RO.:KX)9ZR4$FI2G'%:IDXQDU. MF>VQ%XYQ45/F'D0;ZE/DYNJXYQAW&F7NL5H#2[^B]$CB'L$] MQ[BS*'-/#W'^*:YW?.(+%-\UWMKA-6U7EBS\ B'8SG^+9/3A]&:8JF$U%1P@ MW,/S\R )W?X OJ<0.AL#KEJ9X(L1?_#>J M=/.(SO$B1MRMA=Q(^= M!Y&+/[@-F0>_?& +V-A?EK%\TWEW%H\X0UA $J]_I(26=5)MJ9F_8#G-,C)O M\;\X4U13KJ:-]7%OTNGJ0Z<['(Z'W;%NC(RA,1EJO5%_]'_=7K>5/37-%<3< MN6G><(250$ ';]F^*.KV[6VBV93(YA0(0^!(6-S5:1 MBJ!A68B_@NDX,DQ#F89HO>:A-[Q!!#C;Z#RQIR=#T]K3& PN1Z)6@HF"-@O8 M*OK[K\Z@BLK5*,SZD8&HUP!?!C%3-%WY]__7US7MC5(/D_M[,HS87PDL]OT# MKKB,P]W5A>T'@6?CNSC]#$=:1N=>C*3PHU8W:&P;.JO)VZ;*+\8*.I#U._?U:^3"8P3*@JCZ['V[(Y8;PR&NA\YD1,B0-E MB+#B"IO-O>"9,54!MP5AN1YP.@\"Z%07DVPK=Q&R\LI45>53V$YGH[B1X@>* M%_CW\%SAG9R5>F^BM;-5@I#/XXF-$O[V(/M\4ARGK7QRPI'R7RR;M]B'C%9:2JSV MBOR2^4K-5[\)\V61];H6ZW5L[5IMO3[&;*;HJ"A\X)H93#L7_7>@,Y(HRAI4 MWOF.]QRY7*E]<'W''[F.AVL=NWD3RV\L2KR8_^3+G(D=C&HT4&A^\7RP6S<& M81_M%<4PP=(J"A]F<=_X(,; M$J%B9TZ(Q!ZGV,N"0U/#K/\[ =,&O/P,9)H'8.7@M1_@R*]HG9O_YF/A M^^]\T,Q>Q4_^"^,#W$8\PRO2;AKOV"B%]]:XNN^VR]3>49/U6C+*!ZS^T0G' M-W\$P4_WV3IFSK.:S3C] M"-W!U<]&*,&E'U9]*(1]]5/V- !1Z.S$%W^';O03> N/#R$.Q/F2ZT8^ M192 (!,6X!I@P 2&1L69:7UQ2L!=#V'+0-N.77".N?S 4[Q- #P!K!#RR"LN MWX7SA"MD-$K 3U_,M*V\%?-8;!K.,)]'/C,AEF,X$H;N4 S%3;MVU\ZH\@T? M_" >S$DSV<$VJ'@X>&2P\?"_N-19$*$&0==YD[W )DJN!Y/AQ@U9H"#K.//W M3R/8D7M^ZH 3"C>TK[Z_?_NZK8ALZ(PJ ?Z9,BWGCWS]7A0H7"SAEN!6P U'R0P>@"E'>]OY7D=*._\%V.7!98_R6G5@513Q MP,\4*&HW;YR[ZQY,$/2]"K(1@2L8H?<4%@'@1S@5T-V0,>MN%? M[K^$/Y&-"_\2XV2R[7(FBZ;.7/1I2R4-!AGBC_'I47I#A5;=X3_WW FL?!0& M483, S]YGF^"&>?NWT?/(8URD8;8!JM1H*K0;O"! '8PO<)0'<)!9C!\M MSQ4TP=P9NI[03Y/$ ^7E\2!2R*V/@QLY!"GD*T?G_A$=J^4QA&+*%)PC: 1' M:S1_,?SC)SX(U)BYR6SE4=QX'V@A]LQ)8!^X9_]7$O!MY_1<>B)Z!DK/A.J? M JMX0@7+1=#F"41B2$3@,#U,WL%5 &E#*X"B-5'!187R5 M#^JY?R7N6(F 'T8H)\/78>6XK\BH/W-%,M+B3Q"6& M>^7./X%?!;F$/ V3")X'8G$&@JU[;S=P'/<;)P&1!2.T;KBL=DP0(9;>'M4S!<4=K,\68,&^&C M$N&G[=D\@:G<."Z>0<'I<>_!<3#>*6_OWKV&,\(D?D21@+>FW^43R=D0B,/] M@Y#['S ?<,%O@$P_&9K\=+[P&/@KW#SRR44)\!;X?%-TR.#+"8O$E.!TSQBW MI_ DZ"V@G5@-QD==>!S^'<&.(/,5M"QPSLV8 5W'@N?@8= 8J"P*,K0@6^$= M!$0L(>)+ U_($>'PHJPNB8:0=-PK%V;LX'KQ(52TL%O" MA+#8Y>Z[D%)\:H8>Q6)^N 0W2G<.SATA&@<:#'?4 M%8'KI:7(*TK_2-<")A8V$&P,$X&30J@G/?#^Z?,X#C^.IPYO$L+/0,$M[C3T M-'"R=(7Q-[!9 ;AIN"UC%SQMX>S.@><>&)H5/!WFH9^46Q?/EDQ29M1@8K\S M=%N?^:%(#./R9! F"#?R@@AM\O)% HP)KXZ#^'F.\:2L%G++ZE''?M7@'!>]\QQXKCB1,]'R\[(A<<$#A'P4IQOBO6/%]24!0JH;$$YZ@I ML807MDH&;@OYSA4V(C_]9J/S>ZXAJW!P^$;[2Z[A"O\(GZ;@R:SS8.05WR_< M+@GMM#+[0AOA*(MY<9>*RX=2:L&C*DO(T:I2 ;D6U4 ?Q%'S93;D;50F7-K M\33/Y"&W1;@>L=GW#+@@%O?(R(I/"TN=FI!'?H*%I?QD^3D[$J8+XPO"F+$G M9$C^5*5W]BC.%B+T$G"M#*?YW"CE$3;,5XF%$2[MG7@=_EPXDNG$'&XR@R6/ MCL<\?#@DS_&6!34*FJ"2IYKQ&48_,(=&A%8P6IG>6>)Z\/3Q(*; >)AEE&X= M>!'C/%2?RQ/0(0M&9(O)]O,K:CC/&2*7Y2\&X08%C4/<>\$0UKVS&U^TIMYS M2F>A9/%N;@RSP&F.V1S=]$G%^HOG$578:_RX:+$+>H([#F&1OA7>-8^_SKF5 M4M,[C71FZ-#YPA7C:^/,]6K!=2KG2IA&/&J_7F^>7]05KMW$%6[/H"MRP=+\AB@ MU;X/G3F8P>RGW+V[SRX?Z'1 IX,7?#J05[A3[8-1## 9+DK3) QFG,"1X_&[ M'N$9E?>'QP"V1H3WC@>OG$Y ][@1OQL_\%A2>AP#^GP3TG=P'QH77[PD6&:O M-/23?7:#G\$^I$&II=EL'AU^>C/C/\7\EZ705G$1&\S8]. MG"'F/."C$7]&R$OY8B1<\,D]\YF(MW-.6406\YL,C);FZ36%Q J>6)IF5K#) M) B%C@$9#GFZ:?:2-'+&_%39HXJ/E7M'["6F8$-\(WGL4+UVM M\ D-G[,W"1V-D<^,0;(1TOM.?OS(5(\GY(^LRK1&Z)9LS1#2H&.$23)K@-AQXM:JJBQEZR$,_HK<:,\]@"^._L# M?\/##5H75FMWB6)'D[(BC4!0A.^TB4!WWGSJ\'0T02&3*'1*F2J:[UUEZILS M=\>8U%SPIWZ'7\]5Y8\_WJ9T[!$)&R9A>IX)$DQ-]Y:FESVRX0W&]##L7;S-%V*'IH[HUBS=.*'&12_GJ:BC/$U?.//S M0M ^^\7.'C56JXLW+]4=P_(]9QZQV^R/-V,WFGO.\ZWK\Y7PA]ZD@Z6Q=HP7 MKP*IH6B(KQ>AY'9'A)-3'+?TS>G7;?CJU_+GIMG6+:/RJTY;J_Q\W5!VVS"[ MM49:_WFW8]&<3CRGWL:1]L9EV( 1L5NM/@UP*0-L09'<^$*[]+,*S!MQ?7AZ M$)CJ"Y ?F.ZF?(+?32/E/;^7_<[F<5IEU5'7(H-?[Y9\1F=_QQTYA%OJL*?T MFX;W#COPR@DD^1*VJGNH6%W;AA#O[,D[)P(]/A=&679#]HK?8L-!'Y.:7A, M\LM J$OAA&6#=R-,1>+8=1PKL'B)8XEC+X1C4R!;XECBV$OA6($"*QO'GJA9 MW+EV_>WJ/<,N)[8]UBP5J^F:JIMZ$RO==C2]^)W255/3:*>V[U174_L]@W9J MAYTR5*NGG37>8["@1]81) ME*5T9CEM(1L%]SZ\;9P5P(EOHWF*"0ZCN@'B-SUPP)X4C!/3!#&+,.$7^06D MFT7F'"_S7QHU&VE= 3FY9AE9"%U 2NDU@'U6> ^NCZ??,+!$J9!"N/G MI, $6=&B$Z= !2["_;KS.9;J\,JHA\ =+2\D6T.Q,C#%[HDV9@OBX$G$)HDG MJH7@][S^$V;/'APO$=6F/.66UST_XS]S3*>85P2+E0F4SD*)ZA*JX3*2_"75 M$+\-1&57-.LW64:M8$?@F"3.&WSN.B\@!@'+RH[3M0UXP.F0^F[AIMBIPU.AG"O-5_+U: M+/<6\(@4=/@M\GWDW6;%T_K:\"J\(/A(R#L7*TZ%CWE0+ M/ITKP)>9,H'7.QS9>P&7E:$?\PJ[MH) D[!3&8PG3F6T0N>5UV=0&,H8TWLW MU<^^)/ -O;-RF"W\EW T"$>COKK]!^(G3S#7\)Z;AWEJ+Z(4WED(IX=*BT,* M+4NMT%:/*V.(1>$82V,NT)\=1.Z9(XJBGZ&:I@.*2N/EJ2 BU-*X"-K$$8Z% M6\4!^5)LY"(: ,<6%%>7/E-6 %&J5YXL*,41(&G%P(@$O^83X4(^\ M5!I<)L3T%'"G0<@0!C);NUA"M'BJL"^PB\7*)'5I %&N/4),B!2Y&DN_SXQH M4-,[^I*[>^^?T+ SB3L9+.;*TKD6D0]6BM:1O50\=C G'&7@6OP(D/OZHEA? ME-X[8U#[,%(H0.FS%[25KVN\ @XIB@R#@E^$RD1K'_CX#O3!G=%T =:.8 +W M'/U!XMHFU#/Y 8%O"+M_3L&:3B+W[%( M=P'T%G!'&C'Q\GX+BPYL10R8]/2U@/59(-QQP+6,D=043%X L^3.W;AP],KY M.W47!32VI(JEFHT^E<6Q?:YX1L5;^98U >;_E.T,8C=B!O0F(-5 M1]/@L1B:R)14=@XK'G+$P@4V1#:M;!M63AD%/';>[6'Q)>_=D0=I*I1N1=1D M^RX(F&CA1^2O*D(U+G!3P.5YS+VB2Y*(;VML4?M,4J&LF] 6V<@56>X#(H!1 MBAF5TG,%;JPX.(R *#4+C%"!1EDH_\8 W13#3MGO<]":E9^M#)M#?4^"@@>; M1-R_Y#A;62PK^Q);9J1QP7'^N KVR>&UZ>!V)B%_1ABV2(!DO>5+7'W)XO7X M_VGP33CB:2<=$<%PYIQC,#XJ.G)QJ#;8830L_%"EW'U_JQAFYZ;;48^H,FNR M[T9T-\HOP?!F&.$X>4'$N1:. M5HH)7$))N"CE]_M:7_MLZF_]E YU#M;[ T7;F*O,"6-+&A,;EB04-# 0G\BA%BOH0A/>.[_Z++^^B&/+MJIU" ME(0@2G<-08X+@&=GX]%:L^1 A8A3R#OQH+X8LY%HVH-G-P\[C:6-S':'_2P= MM9=$H7QD*0::\ MDU%;^2V[DL!&:^($E8+LC?^99,ZB0G=#[KPZ@LU]CH;MBA:$ M.Q%?+K9>$\_ARN&CCYTU5+P+D3C0D-ZEYE,ML%81D'$UW):S!H(>1NF9/O#+YS416!U]W=P=^GK>P<%+![MK+6T@VS*L)3"\ = M@3./QS,!)2-:\H'+"N^;!)X;Y B\&3@E;X"7.]$XY\N+>GY%A".N&-&+%]*B M_'">9(Y^+L\YY9,8Y\Q3,HJHTQ,V1ON/C@AO,H\WL=Y2Z%H\)SR4 !,=$!;H M*1VU<"W)?=R\FSO^A+=HP!G@30\?<\B> W[(SYI;"K52$<*E) M1@+\@7\?Y M0V'DJKO'YSV"%DXR5UE93W9A[".>J,:O2(0OGPTV9-C5,=.E/L- G/"[T@<6 M?9GS9W#H5%&FH]?JZW012'5:MVV8=B-H9U9;-_2&$-@TLQGTO&[;[FQ&8#O] MG.3G^<.4+O?@$* MZ2HZ))!"(H5$"NDJ%)*M]KJ]"U='I'0$+7OM/JD<4CFRJYSKZ+E#/A#Y0*20 MKD,AR=E2B102*2122"]1(6D]M6M?NH-$6D<0L]NV)-D9-O5)-VZ-ICUVZO%T=8G2[]=ZK%*8G+.3LJVVK?(H,A'&=,D M@R(3/?1.3^W;=6^D25).XGKM?KU,DG+\(*&FVCV=!$4ZPIB2R,E+R^W_O="] M:Z^8WI4%GBU-U>VZT3ZZ19"3F%VSQHGN JXN7R(-S9ZJ&Y>>9D#$S 52]GL] MHN$V&JH=BPSD=="RU]9('"^;A%K/4GN620)Y%=3LRI_X0C3<*I%PANR2B;P. M:H++JI-$7C8-3=74ZP9]21[EI*4AO3B^M,S0+Z5^>[M@#>UU[4'/T_/T/#U/ MSY_[^6/=DPK_PY;7VGWBC2G1VO&FV8ZWP=SMX)9=EO.E=U6SMV>-U87YRY=% M&*U?WRV^K+/H9=%#U_='K")!.:Z@U*YF)D$Y(CU4V]SS\H+DY(ATZ=>_AR Q M.>)%K:%V3'*\Y",,V)/=2R%(4(Z?OVFKG=Z>Z6(D*'1">3'T,%2[=A$JR8E< MA1#'%)-CW6))'^#[QB+FA*,IC^^-V0/S@OF,^?M51UQD+8[647N=NH8.F$+DI/CRXFF6IVZ\3V2DU/("8%GR40.,B824D67Y&3R8K/W?F<^"QV/ MQ_:<\@U 8[HB.SX]+%4W*8E/ M0L+H-0+A)"C'CR5UZ"99/JKL@;5#0G)$/K@WG MDSW;ZY*@'%=0J'9"(GH8JFE;)"?2T:4GB3UYL2E\V*LL4D+F.3$;*W&@L"CN[%"2D+#( M2AD2%GE(0D9%0J*\XEV[7Y.O$' 'T'L>$JP.SCM"P)1-K':A!#JKX.81K\^9 AU,M%PVY? MM4SJZ9IDD1*1DVC#AP(2:24-(0CI-8G>;P*6NZ! DE=SHY* MD8_^*)@Q91(&LRRH'/@')8]>"Z_VU;ZV)R++^?5.0_=3UT)+JSXJV-G= "+A MBCB:?1+'ZZ"E51\OAL11+A+J!@GCE5"RQJT.":.4)-3ZJD&^ZI40LUL#WX+D M44H2ZIK:[=0M829YE).8=?!F2!ZE).$K0^W85NW$51)%V>BH==OF*R43.4R"4920*AJ!\LI$C^X>C5)(3DYA3*@/LD3D,%2S2SZ7?'3I MD#61B1R:VC'K]CHE,3E!I$^WV[W=(WV7"#922A'I7M1+_(2PU [QI[87G2Y=$P_ MC%(5I"*':O6H';V$=*$L:IG(89C4%%4^JE"7;;GHT5.MVO>!)">G2 ^EO#>) MR-%3;9-ZT.8>M0;DI.O_)>U%PY[L@^INVM5=UJ_ M;AR:U)VO&?TC7R4G(3ENNG$)2>:3RY&04S53U;MUR M;U)[>%"": M5-UQZ-AI&[*044IUM^[R.?L^'="&+]=RH=@NL:&IRG2%&F*&Y4";11-D:8H]Q2K+?FOL0,#P?^.W8?!W^$_V<]G3GCO^L+) MZ7#K7O1.UOI&)W!;OL?!Z.?-T(D8KG,V9W[$FTDK[ G_YE""7C*&;UU?B:<, MYNS$;,;\.%*"2:'YM#)V8D=QAL$#X\6C^-MX&C*F./Y8\>'%R@QF,XT4YN-P MW]D> M,X_8;?;'F[$;S3WG^=;U^;;PA]ZD@Z5\8\Y+_B7W/\77;Q[=<3R%EW;:0)]? M6GD>8?KF].LV?/5K^7/3:G=[9N57G;96^?FZH>QVQZQ^8MU(ZS_O=BR:TXGG MU-TXTMZ'A UGJMVT)PUP*0-LR6+>^$*[]+.*2,,(-#X+3W_8[E5:K1_H>J@^N;4.(=_;DG2O'_^&G03C4\1.=JGS[_F?$#V1? MX8^ZY5LO[CJNWKJEO<@P5,/<$__H_%=R&ZHKB5^OE5_MVEW;B5^E(=^+XU>M MH]JD8(EA+X=A-;5G[PGU=CR&O?*Z_?>SN1<\,[S%0)=\GH2CJ1,Q9>XY_B$= MG2XKI*>*6:UD\FGZIE2^O8Y1.SS?0)HV3>U2IW;EA\.W M011C=GK('IB?U#X%7K=JOPP%WC4NM[D,\=<%\%>O+OP6\1?Q5PT'5#7TNO%X MXC#BL#HWE% M,_F-1.2!6K5_>$1U0YA4[6=)(6 M&>G2,-Q4.N.9Z[M1C.&2A](]V_5Z99IJT=E20KJ MUQ; M,Q-=3N#'J!V3^KO+2)>]:Z?I='G*^H1RCL_+2$>LMVYIY6R?^H1:2S_368+X M]3KY=9_Z!.)7:1"Y>."Z#9G'8Y0+S';$:R\\E^ M#(M?_.\T%^2Y<\]NAB%S?MXX$YCGK>,].L\1;F411]_U;XI[M[KLM8N;3(ZA M)(7>&K-1(#H,W((F9"'^"J;CR# -91JR">QNZ UO$%35-CI/[.G)T+3V- :C M\H.W(0@FREMX!W9,^/NOSJ"*7CMWBFB&H_A@MVX,K#M:6G\U".K;8#9W0C<* M?%S+-NCMY2X.-9HVG'"=U3;YVTJUT#FFO,L$E>&S$K)Y$*9M+M@]IBKP+<>F M&US38;QIZOCW+%IIQE'=@Z-,N*MOOV%TV[95_=6UM)6@.=&P?NY'+R7[63 .>ZVB9<,3N$M>V50=W)KG 3D5O M^<&$&A)=5:>44@3_/%96^GWZA<=0>'+(:KR!>A,1&Q$;$1N=DHVNL[E5]6)3 M0=FOEG]G;+C:5>J[))[2S&AFES>S*T_Q_=-W\9[E.S9$W[T[WJZ553*MM'9Z MSH4DX71LU;"HPE(^RO0[[3VS^0XBR\G7^OL@!^8*D=LZ_+-M63:KKEI P M/;M]CA8Z_[^];^MN&U?2_2M<.>DSR5XT(UYT<^_)6HZ=]/;LSF7B].QSGF91 M%"2Q(Y%J4K2M^?5350!)4*)D4=:%DO'2'4LB6*@;J@#45\KK**]S *^CMU7; MKCK*Y25&.F>ST[2B>6,2A=,7!(=@M?1&8\N6MJJ^>Y\9;M>HVD!S%V(YD8CF M1:H$VJJCL!AJ*)B&<0Q(&66K]56)-XZ]='U$V>@Q!=(PK(-+9$?'*/1>JU/? MJ)E?9ZC:LT<50I]V(;3=U.U6[2JA#[QE\0SMK9?%=5N;P3 M=7E64V^95=N;*9=74VDJEZ=>(?_<2'5[;Z"AWEY]AI>_?I-[Y MB3N5SP/7V6KP??0S5I-2DU*3>L&36@_/=708G:])E.XR:G[@18S@F5]WC;8& M+QK[8:!K8:3!.O>+7A$]QR.H)/AN%M)3L3MAVA3(#/M8%(H%OX;V [X 3S, M1OA92LF#&VO3R ?NP&2U?N3#QXCT ZQ)B<2?N[ 6ND.FD3BT>W<,CR*-(4QJ M#)R%#POWTC4OB4&<+*U*W>E,/I0!$>D2<^G1(CT%CG<*'._NB^/?Q]&P,VYYL,X'O(- M=."U:5@I95H_B<#:=DL2 CVY0$B'-YQSU"XL2XK M*1"=CCF#WPWA7P'2!B/@AQ\B?^;'(^T;.AM"ED+N:RD47_IL43]NJ(;:J"\* MUTU%_NO: ]I&= _?6J9N-2TM"?R_@'>I:8*$@AD(&YC[,/(]< M9.8D\MY7A M]0$F#=I11M(!WIQ:*BI5TVC]H@VB<++:M*I+!SWGDB12@>5^ B2#8'[2VC&, MV -Z=-[<+O"W$_\1"<^=L!A7N,:_$C<"5X#FMY&5@@GAJ-1PAPU]#PP5 MAL9'F!L%Z0) :T/,&27/+L;W/)"Q"O/K(9>8#R,FT^G8QV>!V%'H>X0RA\0* M;OKI,!I0"?P)&.NCWP1]'(Z(8)Q Q, #Q#AX.!CPT9" ; TC.891-VW*)R% M8[>'^C%["*.?AB8ORE.V+!'BMF8ZAOG+'CQR?;V-A/DWC<)^ IS 'RFTO_>5 MT/ZLKM'<&1):5=S 0Z"S*9H43;NER5%H?VH -8!"^U-H?PKM3Z']*;0_A?:G MT/X4OM;^8=H4XY2"*1Q I4:'5*-C5&<#PQ0(8#D'7S1LG*+LG"@[$ C@GIU) M>0IP&_S)/.KG_3D<([4*!?#T@'&B66)^S%U!U[2V0=)9A]VDO;4+O[]1/+&U.WF\W-(7R53 X@DY91 M >9Z1Q(YY^W'NQ%C,^TSF[GCE[/YZ.A6ZTA9B$H.UZ4QE==!)94#2$5OJYWZ M.LJE\E&@DLH!-NHKHS4KJ1P@Q;*-(XGEG+<=O\Y&+'JRF.CLDA"KH6[&U$\J MC0P"U+#!95T>B7$F=I;M1$S/E2I0K M4:Y$N9)G-P=3CF2? F@_=;7O+-U(.8*QV7P:POAY[7?VW#I(D:A(5"2NP"&J M;U.J#\7^#GJATTC6 K[C$BMH32LO/BET!^J4'J:#J##3RVC4?SE$GA1]CKL M"@%CVT:W^(1TKRP?&=N!^.YX/,>6'S%\3X2U#/N7K'D*/BM5,V2=9):D(#CB M8">(:1C[2-UEVBXH;P"!S1^DIX1N-/)'W!XH23);_<@2$-]!!6XV\1#%+K)! M_N\HRB.1(;OH 1=_7K@#H//2'3^X\Q@56M9>4%V9=XO37CFYP6 ?VLP# )!^ M&%&/J\LD #/%7P$Y;AW(T$81&P!WHW'O B&LNW;CD3T^VJ9IC&80F?R@GB;A M0+N&=V#;J[^_<]^7R:M.+J1HOA8U2Y)-L'"RK^,G#!R%YN'7QVNIDWKJ"PH5 M+]N&M2?>T6"7/C@OW]N F]=A3*W0,G[]%H5QC*V+!OZ,>,P_^$S36>W3#J$6 MSYN:<:S67BD=)4WGGK"(?X)\R M U:VAAP!+UD>)=S#FH>"X6W\<*'U\]Z1,8WJ&$XV*O:>=!^TB0O+"BS@I-(B M!,&O\<]!,A[ K['Q7]YH"HB-=?KZ-<04\G PUS@, L;'6GA@J3T:4 ;C8J\P M9!P+8G+2V6.B@9H;! D0%X_":'8!E$Y6/3<=NZ JV"TLPG9A8Q>"0]XPC;+/ M"5CP/CHGE@= J=LE<'CV5^)/B8?$4]?SQ_YL?E'@#TFGD0$<'E)C02I+9]#JW.%CJP.O@J>LBL]U3PI M/?H*''3)<7U\1,-FX#9XT'(; ,?!@@/&%0QT[=Z/T>Q1;OQ;[8?[R.)3FB\8 MR$]&\\4YW;EC%A_-6K#_XJ1 3XST:$Q(0K8@V>WOI1MMV5J1^],URPRY4=-H MY09^B&6'Z(!/)WZ,.AG3WQ.84NYWTA6S45R B_(ON>H&E!05WGE3PS8RI+8\3ST+O MYT6/I"73=U*V@$V!0X@SC".9#'6=!@'P4%*FS!N'D)][D#FZ MN4_#I1W^^@WTQ@WF(L_FS;PA5,)NV!@+%+V=,+MRI2U5D\KV9VC_8MK([6M! M*%1R':\UR([]>W_F5W^38YS4-A=/'?P\=3B::_X7[C!YX3" 9_I:N$B76-MS M#U(I&<7(,M]26ER19=^\ZL7V5B\&;5CB<,4T.C<*#VP+'"MRIQCG\#TL<-4L MGHDW:?3I/7R $5WF@/-'L.N\1-ESZ736T&E7I+- URD9T^J,^Z@!#QL,\! 3 M%N.9^ZB!DR8+L+JXNU)-%_.PR(+POV W%FX19<-MO*U;0MO"3BZ/A&3SQ:4D MC$4Z\">XY[CO>WSE@=4%/'G$P,U#&C/VASZ>41%5,'P/(K^!/XO30>_=<<)# M&8@WP@S846?'ZNQX5PY_1=]>LEP_YO;Y!;Y?T[B;NP%GW'-DB>QNPR_<>OF(2,W?FE']!$Z:%?Q6#"%:,/6BQW0UOD M7^?NR6AP%R6*ZL2;Q=<&?/5N^7/;,;JM\J\@9RO]?-507:/1+']BU4BK/W<: M+463HJF6-#77CE1^A[K[]!7J?7;;50.H 6HVP(;EW^7U)F:U"]4EU2;U:C;] M1"RYNP;F>_[97?E;[:5]36E*E_U=%1(RC MH8GT,;6)8K[G%R8QY%+Q$KK(5L90>Z$NU:,>9Y&M/9]^P0V4M>@IBG%*P0ZM M8"^'/4J--E2C8_3G/-9DA:%<;J(;JZ;Z?*79"LA74:8H.SW*#H29?*Q$X(_ MQ_.7NYD[DXH0MFD>?K(P-*?=&MVV&KKM'*,1MT+L7"^93N,HK>=JB7)52264 MVZF_V[&Z7;W9K=J*1;F= Z!B=2OW8E%N1[F=$W$[C:=!]Y37.8)@6I5[VIR! MTSF;O:;RR7Y,HG"Z72^=DVS,U&[I5M=1';-J)QBS6[E'R"[$&/K5K-"JVQEI@>0B6.8!Y?(CLY2Z+U6I[Z! M,[_3$*UO.;1JLN>.^O_,>=?6HNQN2V_95=.'2I,_@5V+<^DM0)5:!Y1BG4SW MX#NKRN6=J,N#+,S<]NQ9N;R:25.Y/.7RE,M[RDC:NE-YCUAYO'H*TS%:RM^M M;"FUMASZB9N5S^N=L]7@.^C[HR:E)J4FI2:U1?>MYC$P=KZ6]-KJ:Z_-MM$L MX.,ZA(];"5MGHTX!'\JP?72))'JT<,6\@,?>6.B6TC*Z>Z'S>TX0O],@M35X M;>?(;X)9$FC>[FBXQ9*I@$"Y\KUA M8;N/=A!!R<:SZ,XR&O>G-$EC,7T>IW M10UB);D"!Q9K\&"VH%:!YB51Q )O#N^X9P3^**,6TV S^,$0_D5MVN!1_/!# MY,_\>*1]0TLD5";DLI:"V*6$%/7@A@J0CXLEN=:X;G*0V4WXKFL/C+!PX5O' MU#MM6TL"_Z^$9?WQ!)P[BSBD)O 1AH6_L,M=UN\*6,H5$+MMK%2FRK0AAJ&7 MQ. -X6-L-@-Z%J?DYL; NPK)+?R&$7M F$@_+@>!Q-]._$>D.QT_'[<:E8NX MBRN5%_%($XQ6$9MRZ'N@O_!N0@UVHT #M1K"L.3E8\Y(>?HQON>!5%DH9P_Q M(ID/(R;3Z=C'9V$VH]#W"+Z, ([Y//QT&(+$CC607Q\1+F$-&HY$3Z3)-&)@ M'S$.'@X&?#0D8 \#Z-YAGWV+0IGX=CMH;+.'L+H)\>Y3#D_9:5"!RE4#DK*[1W!G 5E4XND. ?BF:%$V[I*+!H M&<> V#K_Z_?*[1Q_6J;3T9OM+>_2*[>S3[=3'6]%N1WE=D[#[;QQ]%:KM3GV M@7(XAT (J8)&<0:^YCPVF,IG>OWE6OOL>B,_*,D'-]+ADT14,=MMO6.;"I*J M=I)QG,I W$HL!S"8IJ,[7269^DG&:1@*6J]^8K%LW;:K[@A ;;RJQU$XL+4>W&ZK[4?T$8[:/ MTH9$B>6)G39+[S2Z:O>S5C)Q#.?@$CGG',7M/]HZ>UV2V6' MM1.,?93F%4HJ3YB+J5NFVGRLGV#LH_2/4%)YPEST9E-92PWE8E=NO*:V'I_D MZM?9B$5/UA.=72+2LM0EX/I)I7&4RWA**NNETFRJ[:WZ2:51^2!.267_4FFK M9:5^0C&=8ZTKY[SUN+82_:D)OKBF$-7F75M3VJ[U5Z7)GT#B?"Y=(0A?LU:R M/)'"F#5ZI#S?F7J^K3J *<]73VDJSZ<\G_)\>VP$IAQ?/87I&%M>G#A/M[>+ M?F!BKV _;7XV&7P?O8O4I-2DU*1>\*3JW0_L0[%!BE[HY),VWJ(^/GWL?1-@ M1Q57P^JE7_*O_4 K5'"G V";(KQM4/RI=-4R>Q.V5('?.H95_&WA5%VG%CJ^ M.Q[/L4U.#*,0-382D[5#@J>6(,86WN,83O$!J6Y(;D7&8$*:A[\Y7.L<(1T' M^[I,P]C':5RF?;'R=B[8RD5Z2JAI(W_$[8&^)K/5CRSA:AY>^208=&*#_-]1 M%DM,W2&[Z(&L?EZX Z#STAT_N/,8;4LV)+ BF7>+TUXYN<%@'_$1#]M Q\*( M&KA=@H=A$?X*R''K0(8VBM@ N!N->Q>HMEV[\<@>'VW3-$8SB"=_4(>B<*!= MPSNPL=O?W[GOR^2UNL]1Z@PO*'"];!O6GEP<#7;I@T?QO0WT[CJ,J8E=YE=^ MB\(XQNY: W]&/H)_\)FF<]0N5\^;F:&EQ!_8LE,ZREI-6D:CT#VQ:73VT,)1 MQ\YTX+YQZ1H!90R'=WE[26P"5T8=;Z77VD9MTH!:WH+PM9,WX,31L#=A& 2,#U7XO;[<^@\(@V&QS1TRC04Q M.:7L,=$FXY=5"%*B"<8;0 )$];'Y'B!]*I]!3=2 ML+)H)(TJJ,,!^ROQI\1(8JSK^6-_-K\HDD:2SQMW'K>I7D5WL]9O'LWY<"*F MG"K)\S07>MS:$&WNHWXF[Z2@??Y)!3VORAYDDIT5?@ MGTNNZ^,CVC8#S\'C_ML ^ UV'3"N7:!H]WZ,EH]"X]]J/]Q'%I_2?,$Z?C*: M+\[ISAVS^&BF@MU#B_3$2(_&A"1D\W%*U^T]>-:%U;*8?.9KV_K5A_RJG2]] M6ZU&\/G$CU'CXJR';*7522Q)D>2(8K%.95P'1S6,W D/"8I+=\-H+39TWIC1 M#R,6/"\5K4$7UYBY$01QR+ ;W@L9E].TZZWT;3__ME1Y&T:WH+S6OI2W1,]6 M:^F"N,UD@)=@/V0,_ M=TI^^C<6P#2YT*[Z$S_PJ7TT,/&H[GHHD>46R"I5?%O6*5#\MF'O1_%+_:ND M0]:"?FR6.$B:C>^=0M[CATF,+_%C;QSB'*\_?M6 !0'?^<(T#U(KCSK3;]%1 M/.COQ\IDZT8&+,BN8$G-)RUI,ZOMR./$L]#[>=$CM9#I.Q6CY$BAQ"9)$NQ1 MI![8*SN$Z,4XO&T29;0F@0!X@"I31FJJ>9"ENKGSQ) "_OH-],8-YB)_9V1- M+HK.RD0GK'K1%!X@J& 7_? A0&$/_$?XRHU!$3(M,K?4HJ5'5Z]?/7!&D&55 M3K IQ,.=$/@5+V2"Z-T?RIU62>(R_ M"UM^\O9+8:4K?Z\MN><*[P5-^+HT7J7-AWQ5],![P-*!K%D@B';_8#%B/+C$ M!)D^O8$$<@&6(,K:N#-M2'XL?B9TW'63*>[^71X M6E8@I/R0L!##EDT*E?[$(M35^R%'C5#98(#'KQ#4S-S';+/=!C6MN+.>A[$F M;H#)IFF;>*R&1&1,'HTMI(@]Z[XX0O0J"4[GQB/M$[C$XU*]ODASA(X=_38%_Z1#<3+!9>-_ M,-T&9^KA- 8XC:TV'=!]7E9@@* A]9-T(XNCA54OU35GE'*/IU;',X@N;\;"!LB\,#GISZ70MWW54L! OHT2PV=$; MS2W[M=2Z1% I['DJ;*NA-^VJ72[VKK ' IH\^K*1Q/P C&^(KU\R-BK2/4E8 MJC=MO=,X/!R^@@I;)Q.SH;J?3WES+ M%+[T 83BM/1&%7]\6NC2QV+K1SJZI'LMC_QZ##^_3*_*X/$>>@:Z<83_P.J3 M>W?,CSA>2BS0[53%-E?1P/ZE8E5.$50XL&DX4*@JW-0!J'3\/--QLZG;S2T; MRZK]H^/+[\4IK*,W.K7;[U1@5NZ]H"WZ>^9=)62[TPP7C0I%3WP\(1?5Z+2!IAF$C&\30GJ,!SE]VCX M[?_\T>S._LHPA]_F;CC255^7/LS.U[FK67,5O"D]2^^_89[\I*FON%Z:70%: M0&[@ES\W.N4C"IJ=_#8Z5D*%X.WZHA("F:U%K,\FTYR9$Q?XESW/ZTKYW2#F M25^\-LW\-JFN^7&!V:BN;P\O:CST\25AO9+!PRXM&#/Q/FRHL29RG*@63N#\ O>(L6)X.! M[_G(9#"'"4* X>L>PN@G?YM@=[EW "8# 1'C=_Z1RT#N&$QOQB_9P=*NF9:X M9WI& Y:4A MW(%;N>=Q^W\F]$-4F;0"+PB#"]):JC[3\>EQ0C!Q?3:-F.>[&1B..PG!=?T/ M_X"J6)NR$UU54IG5[ F_*]6>]]F 46'J#.LT1&6LA%*0;N<5RJPE)S3VW1[" MR"!CI=H7JJ.;82<1_'UQ2)H(^-C)U/4C;D$X/;(?EN/2<+CY+DFJC[&VUM-M\2!VHQ!M0^3-DFN1H%$6[<3H MK/OUTY9@+KV.PVY(@ZPT#Q$0+CS_A (6@%Y*M+%C- L#2JQ*(SOZ2 KNR#M, MLD0AZY)8"Z5^9MQPFUT!.9FX8=WM%QI T-Y)GY M@"F1AP-LD)*((N)*:5W=G>W3 MT8B-2[?(T .'&'T";;2G)'8?"=3)]7+?6<#%P8& + 'HPD%P:,N9)[;R"YX, M-E\["[&@@,SASER&AI'V14]E75ZM,DXK;=ZUJW5Y><2GMW:-[C+K]ZE!RX'# MSM3(2IM)EZD1N9YTW_WI;?<2]?+[__[*-\V^U6\/&H[5K]]S^I;MV3U[ MT#/;7L?[[W;WU7%ULKRXZQJC'H1FOO(\A' BQ%T1=$GA6L&C2V26II5AS8/YW,_B :QNB?<$X49]4 M@C17'A=LT?.G",@J4/] V^![-A5(8?B2/P(?_Z)!27VO$&_4<[4W?QAWAO;; MU=6WM_RTBI.6I>0S0N :9&3%.5EBMST&%T*[]>[/'($+K.#/I#]D.?P.V%XB M(ER.9Q)#/.D/@ 8,MTO81&EY.AP!J.1@?C"K+^&,:5:ZI[()$W%##[[]!B:I MW=[JVBU\I7724[DK#M3WG4U#^!XF_RF,)IK9N/AGAFTR9VXDG%QZWJ<5COJ M1K+Z(,S!T]-]' &FXJ7Z_?24JZ*E;>L).E8M/<%WALF&[ >^16$ __:X1.OK M#$!S0*M :R;"C'!QH\D4S%:>C YY(JNLT^YT"BHI\/RY7@NU-KGM^K'VGPE\ M#H'\O$2U_W-[G6G64F=H[K:!DP8NSSAH)EH5?#!._[[A;H2N$[B],)D)<&OM MNQ__K(-6E<_MD\ BNTZQR.I";KD17 %S):Q&]'TIFEI^\)M?"&I]5G00BYO"N6N06L-MPZP:L@Z:%SH;L3+ 9)M-C3@D!QBGC%^!!T8> MA49I<#< S!FZ1I)005-K%"TD96>+" IV,BO)Y]<(H(O0C"GA&#$) <6%D2AZW M1#/F6@2.S- ^E7T,/ _P8@CZ@CCFEZ)$A)3&1H*1E$&620[(R\/7=--3:H5# M*96KC>93W/#EP9G9^"75.FG\E/ %X6G2#9DX0:CY])F',(%,-(_*D8D\3]^5(#VI?/^;)T5VAP=/"[E4UAE9\F54BO3VV+]PPN.S4-[B$1 ]W MN:-P'*?=9CS6QUBR#CZ\G/"/.:@HR#P/?^L\D]5A##SO\HT%G>^%$.0_[K-Y M_C2;)3K$ZY'/!MK'1^8E% A\Q:G3T M0J^YRV_G?DP]RQ4O\#2[MH-!L@:61U;ZAJ(5Y:G:U\Y0)FB#T8'%>O1-S:-%;?E.T8 M3>;HON)+O&VM800'42"Z3=RIBFBKC:8O9_)BRXN\7D_>D (RDSC=;..,%)G* M ^Z>X?%8A+'AQ)])TBV(E"2 NWRL+VYT8\"CYP"2?8&LCX/C']B\ I1TS&^P MH"F(]V.?.PAK7+0Y7++\@9_O!*KC9#Q.[JCC9'6[C]?_]/QW+;/\* M9IR,Q68N>@ZQ_0W6.DGX"2'EDN%DD@20;$B]8N25+;]_NO5*YM(&811.(TR( M";$'(EDN\=80#U'I#N@!,0N)NG)D\Q3QBB=)(47E(KRCD,K8XW! MVQ6KT5OY]&%MO,!7.2([S4MQ1:)%%I<"-'[NA$6,201KQ! .^@EL4\Y1WXCP]"NQ@B-.QQ)O9#X]@U\/\RO9HMW M>6Z FTX].M?%EA3IU0=1]X"W'O,PO"^Z<*P^]*5)]T.-#\KWO 0;, 6;\[X8 M4P Y 0%#I?U7]K0P-HU-K K@PZ)M$^@0&%4 M8^,JGET"V1A+68U?9>KI(_/7'9W7I_!_R]Z M.M[/*EWE1W&7P(O\'E]XUU.]]5H&F49]5= RM#\",%:LS,+8@1H9(Y<_\CM, MTOX&>JT_N/,3"T*-%?8K2([UH@2=MI/>CB2/$N+A",RA#W$T5P(W 8\M$GA^ M34VZZY8U]J7=FVQ,VF/]QK\2%W-*O\/8+IRRX(*K.64:Z>ODHF/YBIS0\>5[ M9?+JIJ6>&P87U]F%!X9TXIYO.P1L&,[X=;KL/6)/SN4U2&)T:;H2,X".9(KO M>PTJG) Z(Y9%'?1HGTUI/P\8!>$!=J$5[E#.:O'U0JU MH;PT[(#\;0*6//^W>.$":-K05CQ#-Z4@/0@GOH=I C]7QDL#T^D8LFK<09"K MP76YH@,OH_:S [+Z.IF;/ 7;Z "(@C-9TE:SHSM-9ZT6SS);E5R2$ B6J>;% M2Y+A":>%9R'26+*9\XAUGN%UK,#6H!O&;BRZYL1GU]K&:1BF:=6O'TVW6ZW? MCB*J9D0YF[03.IE^,"NV0VC?:8.N*!NB29U,AY,?Y(^_\.4<@8FX__Z6.O87 MR)(KC"2&#((47)N^N7X?MR4Y9UX@.Y[2$%Q3J6<49=:84B40^7H0M$,&2M>. M^]HW#ML4B1_R)7TU"O#Y,O.S^^A/DDEZH_&_TMA9,)7VZXA'G]VY]O\A^OS M)$[_D873G*'T2^!JRE#MS>IV5MLBSV[5Q:E.$);_D8 JFB(&3&-$^E!LT&S4 M#&LK*/5]L;=6B)ET%FDMH64J@%4%L+I&7>H&L:K,_C3,_KR-^S1,N-W2&]OV MV%)--=:7,B7#))XMA2OBXV<%+)LT>G@>(VNEI&;;T9MM<]>LJL*>,_)/9;.K MK>B=KF%:I]]U11FC,L;3-\966W=:#=5M9Q\7@;-CN<5X8?G [IA['*?BI3JV MWNG8*J-Y>1D-1 S;=BDZL8T'98O*%NMMBRU;MQOMT]Q=>&X18N=B$Y_ MLU'<+CIT_K +MIZ1&]DE5VJK:A *6%LV!]V1%=9]TT$Y&[59<:Z;%=O$'KO< MK%AN#[AI989=W\H,V]!NV,"E\K$_$.OAC@5^&$D5&?6]&/V%"G!F+*)+_"D* M@T+*)VB#[FIH@RJJV\I45P$B*$"$+9V,8VB?$4WJSAVPV5Q&WCP#Y[*I)=43 M:)ODTS2TKU03A=EMOM(" M=P*D,*]_^7D6C7^P:!)_'?R(^E=1] -^^F$<>C]?D> &%QT'8D86>^X4'7>4 M,*KJJ_(./O 50GX#WV[<&O-*ZA8'./LTOJ0'A!4LL(;+]Z3VLNWH]?H,8P\3('NX9M143??LX=@:-\L9;A9V!-7I^ M7/(R@37%6Y.^,=\6.N/R4DC!J$^1* 1, I^SB9=PO5IB7>L5 ;E,W''\[Z]N MOWQ:EF0>T%T-AU?WKC^^FLR*W R2R44_I-4)1X)4"F)A&*21,[?SZKW9T%L= M,^5M2N)[J;K,*U:#9?TP".+KD46>+\ -IKQB$(%$8VT8N8'XX>=OB(M:$+/GKF VU[W.W%\YW](KBZM5TTM7K!_-& 0AZ.-]P]1(5VE^]64AG M]VFM;16JMEW3FLV7N*9U#^.NFQ#1V'K#Z>Q]2>.*K>]F.;,:C0/Q!P(J1[<. ML)QQ_O 5WRZR:#-)#!+J_YYVEMR>M>:!6 OA5%-O-4M4;P7'J*=5;RZQBT-! ML$>$> ZR0L 5_.)0I +8(0['?;F:?]FJ%P0I>+J"-)]#:\S9+(.,H T+B#_< M!+$ D.\_@_ A6*:S0)+LK]Q'WLH+/J>W2UV\?,*S#A@7:08!+!$JH+'*B"V MV(GXH7(4E:$)=;8.HDH6K55!5' HW4C+M)2W%$"UM1H$(,V#VHJD+L.4!7#5$0]R> M4URP#*4$,9G%.H/ *'FK7N$OW;A2,)7CT)3$525*1-B8 ;:%""ZD7Z.1DM-S MHPA_2G@["PK*=U<;'3'R=S9$;%F<]-W%/]^JDQ \";$;.SD),:V]G82DO[L MS;L AJ$*7W*\[_EJ?AWSF*1 *7L<^3U_]NNYG9V4B>/7>FS8MPSP(,3U&I^@ M8%S* 9W0B_5#+Q'MZB*.A4\+UB") C\>(40P!ZH6L%WTYU2@5CP-_7]VB%%= MP[&JX02M_MRN.-(JFMJ.T>IT=P5>U&BN'VI[\*)R6!'0@!W:0.N_FYSK>T8?%H.4)!/MK%)\=VF-P-W M!0G#.;'NG@9C.V='1 M'_6Q47,&[?J=$1(W?(@2$TBZMP'0-0WS%D3?HA"2E=\A1-?Q2P,!B-*?\)T/ MH)EAAS1">TU=E6U(G6=IYSMK:/&= 'S%&[+^L]DZ?'=AOKO2TZ5=0L8U:;/< MM# A68JZ=N<&3L38K8,L \JDCV?2CMUN.UVSV3 ;'"O,_GK ME)&CD6]2':>,_/2-W+(:5MMIFV#D_^TX3=-N/;EH?YA?_.X^Q&766^CCE]:+ MYW[\-<36G]D0 M:RZI?"BW3;LC/'HTEZMAQ"B(_9M2>=NLMYKY.T FPJ**'%=N]9I M$L6)RZ/0.W&8;C>L]+$[-^JY 8LOOCZ.V1R/JY2IH*FH+.ZT3<5ZTE26NQK''U)H M4[L:DV_2/C(O]\V;O6>;R7D]7['L;J"97=O1Q8/\;BL,-<(:.^Q!23MT?5Y] M$O&:$W@-EBF#5/CE&=R^Z[&1.QZDI<2D)>('6&G*$@1HH/'R MPJW>9/HES% MZ1C=1K4.V:N&LKN&W5S?UWK3H3J&XZPO?=DPJMQM*#;Q^_TQ.^Q*@^'8XG6S M9X3A"ZNWZ7!5W043J_YLMTW.,]FL6_?V)2 L^+],(68XTNU26[E-SZ!JKHOO MXG?:'2) CK1_1A K!NX>D\)#U2IV%J3G"&+?I].[]FQM,NZYRW"/QI:[E7G7Y;A*N!_GW5YX7(O1?,%QV MNSO;?7Q1>"S6ZOVN=[VP/X?_C6:3\?O_!5!+ P04 " ,;5];# :U5JL, M "4@@ $0 '!R;&(M,C R-3 Y,S N>'-D[5UM<]NX$?Z>7X'J2].9TK+D ME]B>.#?R6\Y3._+8RMWUTPU$+B4V%*$ H&WUUW&Q\X%VP7)MZEC[KMVQZ.'AL76XUSTZW'6'>UW[Z)^C M$Y<>'3K4[5CV/CVT]H_V'.N('KI6!]QA=W?/=O<_N)KILS@1]A@FE*!I@3AY M%J>ML933DW;[Z>EIYVEOA_%1N[N[VVG_<7OSH(>VXK&^%WQ;&OT\Y'XR?J^M M;@^I@&3XE/O#I>%3SB3SZ5#LV&S25O;N'N_M)L,5,Z^ O1<(20-[SMZ1W)*S M*8A\&KS=5K>5G'UKMV/M=5J$2LF]82CA"B&X )>&OCQMA<'WD/J>ZX&#^/J@ M$%P:D+HM*1^!_$(G(*;4AC+V?7I'B/*[-YDR+DF0H76I&&J=!9>:K$4BC&Z8 M3:4./352X%!M7F9\&WPIU"=+?=IY%DZK75YJ**P1I=-*DM,TD?3X2A4-BC#. M4R.71'VR$CI+7;(Z701[8QT685Q-AX3NA3KDQNTZ4$R4^K,HJ89F),#>&;'' MMLW"0/)9F:#((TD^5 F')68.>%5D)\/5+QO+!-NI(C,9KG[)D4F#@$E-KZ[$ MUZ93+W!9= $OJ9@Y20+G'MQD*MM1:;24KUI]3#CNH23(D(V Y^M5ME "ETUM[\W"H(2% MBL/3ED <)OZ50U'$COT-XEZ M13[ ^\1S3EOG#)/,%E'7OMY?%R056F@T.F&7,%Q$X*==_5^'6(N$U"*:ZF-[ M=>P*EU" TP\^Z=]7YW1,' \I(%SQ2FFZY4F42Q9?3+Q7Z-- ,-]S5!Y^1GV5 M'CR, :2HX.=U' I\?WQ\T.T<*-\_H.=@[OP%*Q+S(A&S-TBDN*,7WT).S%R.9P]((Y'YY(-/L_TXB 6] MNN=4C*]\]K39LRZ?DQ&V@PKS#[D2S;9!8)U1X:%'[U)&E(8GC]8(R*%* #UA M^TR$'/"#YJ+\G^;3( 3NP4;E>[9N3GC!Z(ZS '^UH\ L#8:!C1&7#ZNX1 S) M@B-99MD@B+Z C!['6+CA4WK" KW$E\9F';T1E*-54)!3G!D0Y$4B9M$#IT%X M?&;,>?)\S(&=/F:]_!HM"4;>T(>>$%6**2,C(T+'JP@E+ GR))HI67 E$=L& M075%/?X;]4.X!:H\5&U1RZ/D"9D%A]'9WU=MSV@9Y^$$R^QLF ME."H8AHKZ6H)[1IRH^_W5GVO&5F:$TFS:A 4F#>&$Z4%1(_6G.[)#1/EUZ"R M_(Q@[:^"E>( /E=X4J1IC$@<9)3_!X.!7P/T8!+]:@L[_85.J/7,[7U M@@/1+!KD]#6U\$"EA>77F6(NQ8 <''0RJ6E!74W>1UR;M/2;ZN**:)5D9X0M MD^.6*;:;B%]NW5P1M"(>1J0R&?&:"KR)X.15TQ6Q*6!AA":3_^:6Y4T$9EXQ M5T1CE'=1 !Y'XMX0Q'4'RPYH0_1%K(PLJ[OJHT/-A8N%YX?XBHU)[X#KLFV MA/D+I9LBI)MYV58<(8DZR8ZW6"'2=_5.$%N7,CT5DH5Z4U?.DPX+&;QZAT]?#"F0<)BVR&P@6ACD&S6R5E>/;+W(SJE MT(+?6S 5(=H;C3B,5)+ I0BT:(_E WKQA_H#ZN MQ4.Y&#>]@9[/[X!O7!B69&=$*=OO6]=:;WH) MF._Q_E3][-GHE@T6VRH\C5!F>H$%4$8B2"+C#="Y1D-U:&YP/7*BYNQP]AG8B-/I MV+-['.@6<2\KR1@%F<:4*0IT%TJ+3EK0PQE92"=:_%M<+*&EV^^.)]'#XHKQ MGN-HF6+ 5G#<7H!4%FF,%/,?6ZQ$2EH%@CJ0N1)DP'+BZ"UFT@!> %IF>UH_ M&BR]6=I>E)008HR+[)^#&.(B+50WMI=>5;U%P1) GJ#Q.ST4I9[WCQ"$U=M? MFPHPHE]B ]P*^DL"H[Q"B_RK(_^QO7PZ:?1YZ013=7YI?#BRC@MU=N*?B?/Z MT4%/ZOQ#YX[.U*#>$^6._K'8O*"KW*A?)=0;1LT\U<70NQ$'\"S/?!S8(A@G MNM=_VG*IKPYO5">X8DB^KM1 O5@?JL,?)0_5B9'J9.J3*7"/.0-]I*,3\OC/ MG46(*N)C1'WZS%DX/6U%PST)DQ:)3H"<'U5](A,IUWA;\5J<%YOQ;>FGY%DJ MP;J'D1=OQC;[<8L2:N*S]/+=6WYF;.RE%_&LB5\N*0]PN1/)ED.]_Z\WWY)X M>??0BXU/NR%2.8Z5"ARV;G1T!=FC!B6L[>U=_(ILL>S?4?_>PF2HCE?--VS- MX%<$SF$3Z@4E['A@KL2E#)(O#2@V9-WH.EARI9Y*H%>4E:U*:@VR5W8G]5P) M_-] ^14+^=IY^2*>9J=$9\K+Y-8P.@<4K8>A)RO%[80%F#SP60D_)?LY,!KQ M.IJ&8 ;=W6ZW&'HC61UBX/+A[J[8C/2(6F@\F?IL!J 3B+N0VV/,-)1K^ZX+ M:BVZT^JL?[Z6I7^E!3,A*F$J:J)"AXXPJ1I$WW$1*B#.Z50IUG?/ /55#P&< M5H'S&PB5/M^P)^ WWL23:WWP[Y.IZ_CGC3C.KAG;: ; MYKN)K Z+P'7@A-$YC%%946S2NM&UM$3OR3IG093V5S0LG[B.=N(<4_F0>GQO M:&P1ASI8G&3DRV^M>YQC5J2'GLT60]*5/?8 MZXJ+,,[2$FNCA$UL+>^I(J@.#_KM6+6UO*B*H#JX;^,9&1G?=S,F;G_R%XC: MM@OC*X&$$?#7=)_^\0-\MT[._[^^N\2*4VTN@_F&FGM>B\(<>[T41G- M2S7"U%MRN(#X7SVW!F.3T[8HX74?%27GZE?578J^"T'$[XV*D\8"@CKDB)>A M^C:L4I;D#JV##1>>F#)!?C+%G$2QCI@ ME?YVK5N,6-_PCB,SK@[:Z_((X]\);6GH#^4.K8,-MYX]IN#?[_P+ D^8&B3K M1M?1D@&G:GU*I6_QD2VJZW@/>N/V@,5_J*/;/;I\!7\C-[[&CS^(/^5D?1#/:@WXT5?2?[IW?\ 4$L#!!0 ( QM7UMV M9;&Q*!H /7W 5 <')L8BTR,#(U,#DS,%]C86PN>&ULY5U9MN@_'V!,ZK U'R*9"DL>S3X@ZLD3$@ "G 5#2_OK- GC?!*K!IM;A MH$BPV?U5YM=9F5E967_[^]>#R;,C[.;CV?3GY_Q']OP93M,LCZ>??W[^YZ>W MX)[__9S-+R *>+9Z\[# O,S[Z,%_O/%OOX[*]9]Z_Q M47CV?A(69=8= /RR^K/7L\-OW?CS_N*98$*?7';RV^XG'GVV02"4%#*HDC@$ M8SP8*9QA)4J1W']]_JD$9W(H')(*!I23&5PP!3B6*)A,1=FRNNED//W73_5+ M#'-\1L.;SE<__OQ\?[$X_.G%BR]?OOSX-7:3'V?=YQ>",?GBY.KGQY=_O7+] M%[FZFGOO7ZQ^>WKI?'S=A71;_N*?O[_[F/;Q(,!X.E^$::H/F(]_FJ\^?#=+ M8;&2^IVXGMUX1?T)3BZ#^A%P 9+_^'6>G__RP[-G:W%TLPE^P/*L_OOGA]\N M//*PFRUFDQ#G/Z;9P8MZQ8O7L^E\-AGGJN!785*1?]Q'7,P)_^I^BV^'^//S M^?C@<((GG^UW6'Y^?MA-(E1%,R]91?&?-]_LQ1G %"9I.5G)XQW]?'S+"J81 M5ORZP&G&M5!.GCJ9I0L73:I*9MW)7]*#<++Z=+2($' M)W]?NMG!UII=S%H)=ZT^@KRM?O?($G=K''_,IND8BA4^5_1@K4_5Q 9PI5C( MB"IG$9ABH;&>KP5R'WV+IZ/O[87=3.__/9OE+^/)9)25%,PFA,!R!!63@ABC M!A^MSC('82UKK.J39]]'N_+I:'T)5^(3$L004+00J(6-F#RC95\&Y[[*%X]'<4W$WTS,OP> MNG_A(L0)?D0R,^/%&"]:G.*$108L.?*@4=,D$Z6!$IGWK&@4BC>FP^V([D,( M_70(T5#\;2?ZWZ8457P>$[#C68@(&K)/3C,#.A9';@?A\CX[L"EH*7SRJK2> M &["(05^'ZH ]\J?\S6H$3KG0A":8F5%_F=B M"8)D"C IY[D3-'C;F .WP+D/#>S3H4$KP;8 D%1($)0A" MG9VRTZ8$H4QH'?O=$N.W\7U.QF9]D9E[ ]EYFGD9U]49,R"39*[XA(;+'3@^ M@\UF;,*!^S@_F\B_&;U_FQ[1LV?=MSKUFLQM) D!-YG>LJ@-A,0E:,&=92%& MSU-C!IQ__O 2&BU4OK&$&T:_>!C&^=>OAS@E6SK-YU(M)R,LT43#K057*!Q3 M)2)$B:&N"I#3Q8NSTC0/@N^$-;PD2 M&M-9'N[DNI=ERNIA_P(3CHVJEB+,G MB$0LW!74H#/!4H*3-\:\ B:#BIZ)* JVGOINP3.\-$D+:C330,,)(LT.\%/X MBN= C3@F%P5*L,Z3*Y:4!9]9)O]<:G+#"K+0.DER+9#AY4;:3!G;RKR9^E^' M^3Y9J/I/S=P=A0D-;OYR\3ITW3=RU/\1)DL<>9&EB$:2UV(\,;-(LE9DMQ(S MS I$%$(WIL.]@ TO9]*"'NUUTHPN[\8ACB#IX\,@+I*!D,"KQF%LODMZ%J>&81Y)'IU-A0.Z=IC%J#>37 M27#-)3#+TF@,-PH%"]."28."= MDRD)EU-L[1_=Q>7'#:%Z9<"6"NC#X(VX2TH:%:!H^J*2"Q S0;'9!*)B=L6H M7;W\6XWD9))*(0CN/0TC6$/SB#/@E:572TOOT%IA9>N5T:LH!FK4'J3M6^S7 M)K)NN^YU#LRY=;B@JY=@$!@K%&RP6""D*"#Q7(*K#HKKIT<**.#<\X8P&1HGBU.T3Q;$HCBC9,W8!/-,."D8TV=,K:EHOP-^.:*!N=PN6-%1%OQ[X"2*F!P,ON&^ $G=6/6 M->/5I+O"1:3Q!D?FS/'J-A1@(96,+DHC6B5\V&R?LPIBCG=3@<+\+D]>S@ M8#9=/6Y4')?.%H1B"X4X)%T(CH9-H:\0P: VI3G5[T0U)&=[2VY!LDN HJ->=-8)>UJILZLW[H41SD4 MEKE$^JO%/L85<,1=")P .!F5":WKJB]C&)(SWI@&6XF[99'U.OMZ#H@O0I#7 M;P$QDZ$*Y =Z5!&T9D$(Y-:%UCO'KH$Q)*^[L>JW%?HE[?_MQ641O:.?FS1^ M^;B@KW7;\WQ6KIG?+@)Z>"N8NV[?O#G,@\;3J%W,:<[NS"<8H5 HN.&0N2%M M,] ?-1C-$P4[LWY4CC\H)L6&0:Z&51 M&+3+R;1.Z%P!\<"X!7JU'-LJ_\8$\$8B;]=JI*.!O.]FA9R58E ZI@K0_"1 M99$@853K*+UZ*5(T0/C=5'-<'J7'$5GW$BI M@RWDB;4>UPU0!F6Z-E?^C1M#MA!\XYU!=4QO:AS,DT]J:C(^O_R=!Z$#H,\-:C!7$<5<$[0TD-(I9 M'Q5K7B"W,T)O6'=,MYY=G.>/K=J(,V8%SPQHRB?MJT1B,X6$E2)R+Z)*NKGS M>RNB(67PA\+2:^N9V^BT?<'-.9,7%6>EELP:1X9.>:W )^.!7'Q!UJY@,:VK MS^Z,&!]W2A@LH[;47B]!FE5115D!60F>;9*H&F>H+L9S0.M;K]A82N6-!)^ M^TGW-+-6@F<,I0,KB)@JE PAI Q2YBPEHB&?8+?)S V*:G UL9&$USV6Y&,R0[N!T3KFSY;:.!AA4!NN+J5D!#G14A?M"!+&TQK/[$T_A@GNE5?+^7B*=96#&6E,EL!= MW:.EC(:H=(:2(PJ5%8^YM=FX"DQ MU]^TWT*!Z[$W*@^HG=+H >11'XWI;J^^_3FO>R'7VSFJXY#HM3_>_<6D349K M0.(-!4F>@8LI0DV'8_*\T"_;+\#=$]W6E4CAVTK>;V?=!SQ(/+I]FG\+6F'FKI%HV>X'[<#QV^(K2YEO^025Y)=60$QB2<@^P*)ZN<,Z'% M#)$5Y31RKF7K&MA-L0XJ&;!COO6JUUXV1+[OQB2(P[K18#V$D30A,\<2)"E, M7;LLY-33U.TPD ,7?>+-JPUN!?1 %_J[X%,[#;4\ZRCIDT)'44 -5MV+=OK637ST^SJR@SO':X60D:^]K#WMIX^QBF<#-I! MP.+!9.,M+\X$V;J4N]=IWD:NOQ^>*BY )3116T$&TD M0RYK@SR?6#U4(W&,.;I<=N/Z7H.NY;N_CNSHD[Q,*V6NCZ? HK7BPD*.>947 M=^ %.A^L\B:W+L2X&]60DK8]<>FVM["!JII[OI]F+]._E^,.;SS ;)0C M(?SAX*\P;@8&:6M=MD#T[79!(L)HM,*M"U1&9&T5ZU+51X(\2GXO+VSK*$6 M>_&"?P^+8SRKDR?6Z%<-Q">3^5ZY&?ZHL.P-.?'@G2BU>@L; I6;V'T@VW3@M,!\WN[_XP;DKWV,WGM66=UV- M0=_@^M]3W_S7KVD_3#_CA[# 7TO!M!BE[(QA#,&XH"DJE0:\)-/OC!?>NWKZ M4O.*E)V.<.MV0ZN[[)7S=]Z;;C6&4[1OQO/#V3Q,_KN;+0_KBNUXGM8%AYC/ MZ@U')9&)#"5 %CJ ,C[5+;P"BF8J""N35*W#[,:,3VZXAY$ MU[Z#_NO2)34]ZR)&<)F1"R(B&?B &C*+(=F43R68NOER$US4H];&?/TZ;FM^ONFYVF= MR3E\3N5D/CVW5?]CT%-8&FIP M"):\#5!()KYVNH'B!#<,DRZN=>^R3>FYT9[,2WRXN;_S64_?4RHB\))! MZQK1&EX@FA @$%^$)KE)WWJ]8UO,0XH#>N+A-7N)=Z?F_HX]N+0M/T=Z+"?; M9#2CB:U8!U&0W^5X]AQE9 %;3QQW0!J2K[TC:K544LNMYI?X?G),=!VNX<84 M0[Z0X:X>]*H"^(0(,>B,.B(SJ77>_U9 3R'+W[]%VE1#/9+F4M?AD=>LN)(8 ML'IF")F^0C1. 4H2C#,OE"NMJ^_N!#4D!_4Q9[.-%=5NNCJ?S/ICMK@VF57+ MXFMY_-[TKXZ$^6;V9;K:G4C.=@*;>:Q;)#+X&%T-T#1*1QYP\\/A-\4ZI&:' MNYK@=J'6AC[388=IO )%WT]PI9QI?GDPZQ;C_UU7F\:H6)2&@\_9U^[YJ@9U MM85^SABEU;'Y"4'WP36DXZ1WYCTU5E>[+O?7%RKK5 */.0+F6C2D>")4VM>. M(RH4KD31K:N"-R\OM]\761JHI+<==A=*@<[J@#A%AM(K0V $.7+<(@1A+9#G M7[A5:+UL?6# _9#=AS[N._.Y>]!9RQ,%NI7Q.]TW:DV2CEPX;CB"8I*,7JUU M#RP*(2BDU*+UFMIE#/?AB/^^3,Q6:NBIG:>7/DGF"G@=-:B KO8DRF!#0-08 MM#2M2XIO:>=Y0[Z0?5\\V%P#;0_/OF9<)[M<3W>^CD+6QOF2@-=V/(I'!MZ8 M CSZ;(3EQ>CF+Y/G.LLW]:*['/,^JC&^<3U*9Q[;O)"%^7"X?6&99 MYD 2J4U02L4:BP+!<\@),03>NJG$9DCO1;G'KDWO/R?47*D[2#1^P(3CHU4* M*YM@,\< ##6Y8E%+I4O5?>S>J2\!'FM>G\-'N%Z]0HYKTR,B(J"@P*Q"@H3JB[V*.($:Q3+L1H MA+&M:\SN#>Y>U/K.LM;]:*[?GCRG0733;JX],/D":]?W8@HT;]@OY:O4U$ MNB-B]F?\8WD0*2HHQU#6^\'WEHOY@O 1[T>>>VT#BZMXAEFG''"^0B2$)")@BF2(J.O+-2H-"A==7C]JB'5'ZU2TKN6-_]>@&U MT_*7\602CB/UWVA8T\]C&L/:?3F;ZB[_9G7YI_TP/;G%%BY #RB:S/]]2Z?1 MY/]V/*778^5T7L9!3LA(*!NRK$='YBC)*I92TRX">'""O$X796Z]+'@[H@:M MM&ZZ^ZH/^?+0SG.I>]D>KT7@AU/K0^7RFZFU62B(3Y+<"'69NS5 MB5,B K/<%96)U[SU2OFC3:O72/X/DO*G+S@YPM]GT\7^?$2V7":?'22A$H5< M/H&7HK:-D]HR5:+5K0\3V@[Q$YJ2'\*UAQC/QFK=R81]%?/_8.C>SI;=B(ANI\9$H]P$/PKCVU]PK M;\=S4F %/Z)W(EIN&)28:QM_#! =%Q"X)PX(:4PVC#FRLGPO:BIW9; MJ6[MEWRN&RTRK237$0*! 965!2?( +,4?)!.V\1;>T_WQ3:D;$0_).I%2_U. M5.MS82OF,WAG2?&/^S3;?L+N($QSK3BLWU[W%UO,;&T!-)D*>Y1)J[GS$M$N MTNO81ZI;BN>+6K(T'_$4F/8V0LRU%,3Q#-Y+#C[PA#9(7[!U(=Y#,;8VD9>> M=[: MUHA_G/:89A4 '4'[2LLLZ[69H^_O9Y-%UU(BV68')_O\:TW3W4++#MP6EM)JB?_ M]48F6F$\1=^@5[5_@X,0F8Q"NNQ%WQ[]PQ /*H?4!_\>9FZ;*GA' M\_L9YM7J(D'^M-_-EI_WWXZ/5NC/,BHC(Y) ISQH\JQ)_ZUW.S M&?0RQ'JV[=A74^L2H6V$;+7U,(M2\E#S\6-2=;?JO^=,?_QY_1+#''_YX?\ 4$L#!!0 ( QM7UMWX\7# M23, -& @ 5 <')L8BTR,#(U,#DS,%]D968N>&UL[7U9M&*>ZC;7K&*-4QLE659#IZ9I]@<7B0Z :1G 2H*O6O7X\$(5(D02*!2 \ MJJTE'E#FY^Y?1+A[>'C\VW_\>3IY\07:V;B9_NT']B/]X05,8Y/&T^.__?#Y MTR_$_O ?__Z7O_S;_R+DOU]]>/OBIR:>G\)T_N)U"WX.Z<4?X_G)B_D)O/BO MIOWG^(M_\7[BY[EI3PGY]^Z?O6[.OK;CXY/Y"TZY6GYL^=OVKRRX9#P'DJ-/ M1.;(B-?:$2VXU30'P:/]/\=_S=[JY#,C47I-I!6)6*\S89 #IR)F:7+WT,EX M^L^_EC^"G\$+%&\ZZ[[]VP\G\_G97U^^_..//W[\,[23'YOV^"6G5+Q>/S?XCNT\PY][+[[;>/SL:W?1 ?RU[^]V]O/\83./5D/)W-_31>O@!? MG^;?_N%5-.KEXI?XT=GXK[/NW[]MHI]W!KI7A!#\[_*TEUMC.D$@;3P/0/"G,"T4KXCQ MMJ=OC_G;LTB"[,\G\XJ(;SZ[*M[FU(]K*OC&HRN@[1Y$3N$T0%L3ZG?/O8)S M"?(ZPO+(L[:9-Q,?9C_&YO1EA^]U,YTUDW$J,^O'.?Y9IMI9DS^>^!9.FDG" MB?KG_SD?S[_>#_ZLG012IESJ!.U0]GCZ%1&0*^/IN$P_;_';BU<4M$,) W_. M89I@,2DM44R:^-V')F5*;+[9$-\,D^ZGH_,9.?;^;/3ME0@;WN"7LY&78!V+ M@@1&%<$%@Q,?72*XKC@:O34RQIL,F"T9E?TL=!RX>,7+HMV7,)G/EC_I]-WI M>C6*A6XKR/7)APF,LI36X&I#G,R&2)HX"39:DJ4WD+*'R--0,G4(OI?GDBU' M[5*RB]'7:Q');7-:U9[SIIH:%Y9"T#^\:%ID,?I-^*MN2OAKG#0S2'_[8=Z> MP^4/F^D<6?WSI'LA#E+A4^,X+W3\3^BA[ 8@G--F^G'>Q'_^UCFGH^R,3\P DH9X^CLB!6* M$ZU9C!"BR(97MOX-$#4M?YM'?]/L%8S3U-3L35/3;4U]E%*G1#]Y[\?IS?2U M/QO/_>0"G.#.>I$H 5S\"/I%D@3%D>/*6DLC Q-O"7ZV,ON=@!X#!>II?("1 M_P'F*!^DGWT['4^/9Q>H$H\8M!I.A%6(RFI%O$2Z6DFS3L"CE;5Y<#N2QT" M"CJ^:7F^]400X_GI^:2$W>_F)] 6B3'@+@OD%W@SQ?@<+H!: *\RE<1G@_$3 M,I)8HP+)#CP3/"C#9.U)85UPCX$?PUCB)F7$MI1!+"WX&?P$B[_?+!:V[Y(T M'YK)Y)>F_<.W:61L@J0UH(L4$6X0GM@8*?%*22VB"_A?9>+TA+A[^E3.3PQI MD@&\CRON4)??F[T[GY<]C[*1A'H0RB@VZB M>-R,V%+K [@H':(WL]DYI)_.6R3F>VC'35KPM?OS%>HDE?42%\MN[W/D&5?, M1%VV?04NQ#D1!P(#=%,63ZYP1JT=N&X \PDP:4"[#>#:'*5_G,_FW=;3IV9% MQ'9%K/)GV:E_W'._C M)M_.+'F3A7*@">_O?G(.W>_>G15I9C__"6T0T"99)9444*KA]3(=;R/2X*7Q0C+C) M>%UE6OT 9^=M/"D2'$T1XGSC'CT+'&%P8ZUJ$C+(\%Q*4AF7% 3M JL M=NJS#[['S<3!+'63568WK%H,@&@$CYP"8:),^0E=W."R)D8'IKD!R*I^2=': M\)XYM8F=;E+*;DNIWV&^R/>^;6:SD0Q26@R*B)?0;0@%XG 6)38K&DQB'C*K M3)KO #QN6FRNZYN&=]L:?E7>OV!#H._R)__G@J?757049O/6Q_F(,6VMIYF@ MS*B0B%\Y4(;PE+.EF5K.:V?(MD?]N"FV8ZO>DHG=.F%_EPBH(A@?3U^?MRU, MX]=/K4>O,';FFZ;NNTGG)%ZZETNA1\H)KYFTJ-6A.7UB3@J ZXK,45I>$Q@=D3T;65Y MIOH^2#' MLHM(GV#YE,*@J+W0TV)J2A&ZBY31;)(,JN4DK:U4]EWP'G<[D$M M.]PR']:L"+VY/6RU1 0VDF@-2IZH)($#!DTJ.4@^4:"U Y/U-^JK;#<[P[66 M41+)2CE/M(XXB08&+R2U(GD+@^PBWG:\ZN4U\K_%;S<^.O9KTZ0_QI,):JZ; MWMY,48G'XS"!H]D,YK/??=OB&OT%!\#S30Z0]7Y'C6-DVPE6Z3#9443# MM9!^*3+ 6WQ;NH[C[;>RGTS!>RD=T3$9'$69$FM5)I'3Y&G47(GJM;8]\&T] MJN()I/,)O,OWO_75U]_\/YKV]<3/9HOS-TK$C#,)(Y$Q'("N*X[4DE@5F U" M,*FK9V&W ;RKXVV#,>Q&UFQGYMOW.;E9.[^LROL5FN/6GYV,HY]T9ST,Y\'2 MB)&(,**4P"3B68H$0*B4560ZT'6(B&^Y0D+\[I* =P+8VWFXW=F_J6V'B@%B M!VK!KZN0+JI^UP'5Y]CB"9H*^JM8=1Z;\^F\_3KZ_''$$P1J MG"2"SA0++1".T%")B8!ZXSD0:)X@5(1.1:"I<4DBSRL'! M"BA/QSNK:9,!X-R9M#;!<;"^=AGCGHAR3S.$_?"DC_HK\J.D,T='XJ?_ M/ ^S-]/X8_G[PHL!RU4T,A&=@BY'% RQ02FB:$1IRYD8=6W3^F9N=/7C=[_7 M4=D&354%#G#X<)DBOGW+<,2\H5*AL-:'TLN#:V)E.6$;)8M:"0ZB=@'-W8AV MSXB=91>!TE4<,(B=IP$:V\1 MK8/K$9.FNEEV6$BR67G,*\CX;\I^, ?%J72<1,7+B5RK2QU#)$D[[[QRMGY/ MPH%$><0$/03C#]$IY+1IY^-_=?#>Y>NJ&V6MG:+9$AK*(>'2N30H6?8^H0JK=L*D'O(>9;._%F5LCGOJV&R#PN0/J)=#?_>DR MM;0.W('2\3VA[BP^TAW4D-=/Z-:QPC!M#,_.Y]!^;/+\#]_"-55< M@#19.6^5)28J7/E+/M)2ZDD$3IEPG$'P YREN1?8XV9-?=O4WEU<(EM>@;;L M!^PHB\AB7,QD6138,)*2O.]>8X[GO\XK5Y+H173IJ4BZP-*"]VJ MZ;+*%!A%.T6!JZ:/Q(-,Q$5/\?_9T;S6>G%/Z>"W%SZ=(&ES/0]A[ O.K0.C M8D7XE5?OO@9\0^5?-]\6FJM<\WL53DA1)(O>;G)2X>01/ E1.Q*UE2QKE8U8 M*U.W;P/>4!;?'+I+,,K5.@F_$H[9 M: -+4M98+K][Z0,TWL8ZVVTJYM>V]%;*EBH&FA(3=")2 [IT/FBBO%"&@PBT M>E_W^S =^!;Q-CL<5?=1(%HD[RD/EF3 M:G3SR=MQAA&$",Z")DZS'E^=$Q>USFP4:#D+21,Q7N'4Z%@F MWN!R'$,2F=*8F:Z]@[ AU"=)L'K&6WE!0-T*NU_\N.VZU_X&?G;>+O9)MJB5 MN_-Y-:K>U@=COV83SI&K5=@$COIA]*\[;2K@T_\'LS;9?? MOO*S\17:*2L,T\H2E3RN6$XFXD-P) O@P(02K/IM'U4%V'K>JP#F(NOK(H>< M'3J)AF(D(ACQG%,BN$B,!V:I.41-[K0R;G_G8^+Q=I3".JL?-!KDIUL66ZCEQ#5=$-)-.>RNWJ M4.?N*7._=G](O&;., E"D(1_$RF\))9J(%2E@779N888*_BMV8*7W_S[3]A_LOY-"VK#U660#E((I1":! ,"PYEJALO2&V+VY+I=W$NVSGL@;8H:.%=8#N M/02H9O%5I!K,7$/.8VN!MI&*F'DDEDL<5PRRF/V4HK!LB'[X];Z M[OAA4*N/E8:D5.<;S#H-L&63* C:.AT)"[SLZH1R)YL4A/)LJ9,NJ.H';.Z MLT>1M"UBP.-L/< MA//4"+*)%78T@XAET)BX92D%DJWS1 :C"#J"95]8<:TSX]:MU;)_2X*(ITF0 M3:PPI&?\ZNL5-?S2PO^X!5Q[1KN, U[+*CF.HZ5"E5 M#A 4L3J6^^4 5UAO$Z&:9L,]"$UK'Q_>&W76CY_VQIP^YMA5%/YM+KY8]_2V&.% M55V+#='WPL].4/SR5[FB\HN??!=:7 (>Y4!5=-X1QK3!P57N1=51D>C @0DZ M!%W[@N^UP>VAK+FN86_9+ZUOE0'6L*,O?CPI$<(O3?L145[>EOP3A/GE=X@S M,>5PU'A:M$$A$ZM4N8@U2QHQ@&3KW;?49V):$]MC(\\@-AFB"?$J+8PLSY0* M9TA.Y:Y>Z2RQ3E)",Q59Z02"W76U4]55[-&QHXK6=]1J>%$!4+A\2=O+#KH? M3YIV_@G:4X\+?#,]+E_>]B^V.#E1%T"-HQ8#JJ32V8PK?6-6SD27WE5PZ)0# M#410$Y%UI4I$*D%*5BD;S[A=KYM.C['>"^"VL]SW<^[U%UYDUR0+MO1J<#Z; M,OT"3LE1$F9X#,(%(:L?IU\#UJ[.0PS'E^MS7VU;',Q)AO'43^/83]Y,<84X M+X_L$B@ZX]P=#2,J>UPG FCB8THXK7N1@W+*Z=JWZJV LJ\,>'6+WSQTN+7F M!W#+N]LG,K0E]/T([9=QQ+#V7;X%[>P3/G)V^Z^63=S6D&6@Q'=-.?;6]'=[ M@C0'9MU#9VP L(EF1S)7&65B@GC\CT3K,V/)VE3]/.?A,_7^OL&'3=0^1AV MH)\__MI\@7;:*>88$.3U>/I;G0TX+8$2RZPEDD=-+!6TM$ ,3B@CHJZ]!;TN MMMW'LOMC0+,#\PW2A[@]:UH_AUO!^4!MT%00YPR"RXH2'W+$9T0_^7@>TOC+N"P&2Y0F*.DYSR1)F1"E M"21DSP@'II)3%(=![?WH]9 ]85X-8+H!?/WYJNWVTKZ^:HK!K]*KJQSG[8MP]V7:70AO47D.43-R- M][+78==)\_,4A\JD"/ KJOWRNDZ?G0I,:D(1+Y'4X\)..9"D-),61 99_4+, M&L"?,!,'L.P.]L_7%:+"%XRF")R$I+71&BP+JG(K:R]?U % M^#,]:UIVB"WZ=4L)F'0I1R<(B"")3-(1]!P4\4++[(+U#.3 ##R<\H[]D:R* M?7:TM_]QWL1_HH]0G(73,YC.NCX"O_L6@^KQ%]ABTW[-)]?8C=]$B%K;[">^ MA1NO/L(W3X^[[<577R\_\MY_[3)??_@V75)/&0%^ZWWNQS%:!66P<4LX-\Y:7IJ'EBAN3_RTW,;5;>1PR8P%Q8E3IO1O!TF\*;KT M63N'RX.ISM:K[]__+58[94!3R1(#Q!Q++!>YI770#+2]_SV2_6S0;VZ9%2;> M0JW#&SLD%Y0.AHC(%)%12HPG(! E9/0N0 RT]L[X+HQ\S][V4#;NH\W:5TXN MJSO?3"-.4^AK%FRH_.5I?@D9UTQO2$"A$)M-Q&OP)&N-:(54BLK['.EU7K3[ M\&H;(S0#:7"(S&6W\N"'.]:"2-%S4,0PFXGTE!&K0B+!,V%=#%J'Z@>[K@)X MVLOWYK88("FSN2(NQ9BF:Z-H'9D&\@*&D&<_OL06-+D>MQR*C0=P20:1C<6< M8T;9@N.EMVBY;M8X2G(*D%%P)43M^?'A\/8>]^C :=O'M+6]K)\_OG]_X0Y8 MR9W)29#H(NH%6E6">,%_J&FJ M5>T#S.;M.,XA== ^HV5F'SY^7EY<;XRG*67"6>D#*6DD-C# \).!=(K+P&JS MZ$Y STRJ:+ !?/SWT.:FG.*,T"EE6:V5A7.2*T.<]1C$!.U(P$"7*&,9RUQJ MX6N[.2N@/#.HBI$JEM1]?P&\DC0H2)H(:0).AX >',7UE:L WC)-55CK[-\Z MM]T_W03!YCH?PO#++OEKP.@3RZ]#@?J3POUA]Q;*OVZ^+317T9>X#B)ZB M,* X!^BW#UP"="#4&"!KU>$)]XL6KHOV\Y]GX_;*+=@C">CJABR(\\R44]X! M?5\=RU0L>(X8)*GJ77AJ@7^:C-ZYV0]IUBY=RYKST@"VN6AO];X=1XP!,Y0& MGC_Y.89S*0O0)N*Z9E*I\^ E'^B(BP:REBHJ4?NL])#R/$V6'P(Y*J;W%KL> M5U/8[\_;>((2E+34$N'%X'1!Q6RX)HPS5\Z0!^*34D1+=))QV(*EUT[UK-IP M6N^%3X9A@UEA@/.Q&\_UWT1:D5"@0'[R34CO(LG98MAZR)T?% 0QVDU9J;\YF]\??83;_MBBP49(0 M$@_H*?.@B-26DA -)Q%T8BYYY7CM.NJ:^)\<1?=F_)M$UGLC\J)<8O8K?G ^ M>W,1 _X7C(]/<.P>?8'6'T/WR^(B?^L0/>)12F:C):SK@Z6\13=92J*534$% MRR4<3""UF8C/P^& *'1SQ)AJU5U='QZX7?K?F^D7'.>P&/*S3\W<3Z[^OK0T M^;V9_S_H;CX_GG8)0&VSH%S$DBW7N*;YKH6^(-ER;CAC+-':G>H'$^;)C8+# MH,5-OMN#Y?MBO/_2M!<_*I]C(^NTERQ0DEVY.)1YCM8(0)1@WF9<%1W4/D:^ M6PF?1\;A$.CF<'%;9>,N@EYU/RM50>_R*T#7[V??3E'0 MZ=(5?-O\ >W;\>EX/C(, J/_56_/<_ZKA>O7T%/-PFO=@/)6%TY8 M%3A_:>>)9SA_>;"1RIR#JI[_?$S->WR447A=JLVD(#*6<]X6772'\[\W)B@P MM5O4/L7F/7U8.ESSGC[&/I3F/=^?RF0'Q#.\_]];/%@SD^O(=/S^?]>Y_][T60G!ZDWL/%#X:]/P=%RZS>5 MU!))J29.^4"4YIXR1KUW._>&#H:WO<[_'QQM^YAV +JN/G%LI(T^6$YR<*+< M!I]14P:]'"5$BE90II^/A@]HZ[6/AOT2'>3?Q]C?7><42X>O'L]:!\?@.\_92_HK#H)MH;L##O,$YH4+Q MJW1B1&K#B)<):@@'7.LQ;QW[K*VS0P[P1'0;#M"74"/2(&<_$ MALZ'H*65 RX$8JT;'1_&8=Y>:E]YF+>/S@8]S)LE3OB*.B*M18^/!TQ#^,P[\;&VUAG _8L[F82:XRV3&1"/?7HNV=)/'6I[)HEIA4S M]:^2>UQMR[?)>VYLB0%.PESS]==!\U3:EO>RS-TMK3=1Z_!MRU/($,J!@41# MP@G)"!("=P0H90%<^6WUME?[S\L-9>,^VJS>4'/5L;OETF-R2BE3DFQ&;!$< M"3GA(@312!"@M;UFZ;Z''@^D;7DO(ZQU<'$##0[5DV"3/>-OU>)72C ^C&?_ M_*4%>#.=0PNS^8?N[&[(S#I4&G6 8L63SSQ'+T]*F/@FH;HY6# M7-LUB#1/D_G[)\8AM?.X2[*_-Q-\S&0\_]J-:BDPD+6B])GB>M$ESF53+O^P MTC$(D;VV,J !TL7- MH=S1G$%[E=7!7-^XKE#/(V&O-%F9M]E%Q7GWTZ,X1_#SK]6+S&]]^G!UY?<+ MV5H[\B9:2&YN#LR*BTEPF4G(< M_HYQXHS4TF?N@EYK9^^YE+P:2X]C[,,L)3 MLTLF2!>J-\9[9*7DO3AP9REY'UL\E%+<=61Z+B7O54K>BR:[J,G=Q,8/A;\8 M'2;*HB-.A]*G2J&_G!CZRRQ8RI04'@;IB_<@>-NKE/S@:-O'M#N_(RH;SP.+ ME"!$1:0K/4F=,<10F;R.WGM6>U_C*=P1UZ(ZF.P'9:5NTQE"%029UU$ M[P2](Z=!$VI#8A&@W&KT7%:^(P;5,-+0)58.DM4L*Q*U*27N2&8;$!4'%I05 M%"0,=2G\]ZO@^:IE%CULLS=Y3>;J'47)5:12R;+=6<&.1PH M^FH^.X)>&D^&*5S4AJJS/)02JXHV[J/-VB56;Z;I/,*W*6JYX@1)LY!?_.1_/O[Z98NQZWGFO[\[GL[E'*:?''YK)Y)>F+9\?10PVI(N2!%'N MOHTFE#[_C!B,9Z1)*FA^,+4T?84[P-!SX!VN@Z3-(148WY1O?@+MIQ-_(?_L M6T/314^_D:9:.:%1T!30'!DL\3Q0DAS83'5*/!Q,D_^^PCV@\3$L06L-HT'9 M=4C%FO<*^GUS^!%C#E=37OK)E"QI*&5X)G.BI1,)_2J4?*W3LP&."W1);4@/!7:*G8PE9X] M97L>0[L>0UMPJ^*QWBXJ&T[(J_'=27G:*#-I!<;VQ,1<[NI-EH2H@3BGD[/H M;,=HUXJ9=PCZ>7#<$LH?*FD&N IO.%'1"AG&5^@/\HULQ_9U<'CO:$ZXV@1(3@; M6>W6$@>F@@XY57H %'Q0F:#UU3%B#B2%% @%7F[C0:.Z'#P1HO0[B2Q3 M>(!3YF.Z>?(0R'^ [D70NS^[40*A8.IQ:LJ M^?,P/LS%=C#V/LS,_OTZ4,"%B9X318NW 1%U %QC_ "06;!"B(=3H[%I!JNG ME[3>=6F(4C.+MRJ3>.%Q\3:AT$+UUU;3EQ+AE^&YQA MQID XU.CS4)N)4PQG2Z/LHB._BHG& M)(S6;KT>U[61/9-T9W8]F'AS(?.[?$.R$CX;%7%1C[$T4 [4$6=,+NN;DW*]CT#MJ'$EMJ=%U#W;MF+0M9TXW1\W94E&4R9]N?4/M2F-B[@V)(PG,SI= M,=MLY, \O1W8,TEW9=6*(46/E>%GWT[1,9ZFDI?$[Z^Z*TY;0X,EF96;%Y*, MQ+ILB5(@98HL:> 55_C52)X6!W=JMYNDTWL@W17W@P>C"U!"G40?&8(G%B0G M7&@.5'MKH:9;N1K),^D&L]M-TIF])4^Z/R[$64S:;$0S3])+35CTYGYY/_!Q2E^(J4K9P4KK# M?($W4_P (R-+ M?,:?)VNCI;7/4O?%N'67Y?7>MV@9IBSS*97; @(P(J50Q$6+(Q<2DR[3B/_; MCSYVVA9\4![=:+T\E($.I<_WQSG*5AZTR.\7^9II2>]W[:V\-L*SP(CEY597 M4=I;V9@(D\QC>"6XM=7O3;L+T+[Z_@U'@^N+:S5S#% W>@W311.M=4 -U/+O M5D#[Z?Q7T7#-4%K?&26H=%(&8\OI)1P!2/A2J5$ZK,4<71)6AMK3Q@ZI<$]_ MP%TSH8^R!V# &E/C19,L(6BB!H-6[W#6E25>=9PYDKFWS%*>=I"WXR_ETQ/C$V!4?5L-<)CB MZ-WK-T?S>3L.Y_/BRW]JWOL642+XDJG]\VH-7CFVQ3%\)"R@2J1&E7A*!8D: M?QZ4T5K(VK1:']Y!,JIB7#Z0H89H/EBN@3AI)OBTV6+1']ED=.(X>>)RCS,H M]0(E5XF(P)5FQK'$JU^>=P/%'A@RE-%N!-%;:7R -6O5@$!I87P\?7W>HA[B MUV[5];&SPO3V-7BIJ_=-V_WB%G4>A=F\Q:>,@M/@L@LD61]Q@&D46H'#)3OP MR(+5/*7*--N+H(^7R8?/FP$6X7=Q_ HR2O@!XL3/9N,\CGY18GPAQ&WH1Q(4 M%UPZ(E2Y'L4S]$@ETR1XQJT0CJ?JUWQOAG3W='T -+I._.$Y,,AE7=^#_04M M<=3$\4+!\\6FYYT"\&QSLDSB.I4P_D\LEPY-G$0KK$_!0="U/8.M03_S^7X^ M[Y890TS**U1^],6/)P4HZOZCG\!'B.UG/@ M$+8KR\RK')BQ\5NUQ\9IO:ODU>4Z/ ;VOQ*E7Y7=>)Q^I':#9Z1JXMAY.E[>#KG[;JZ\7OUP4"P61F>$I MD$A+$AR]>8*KGB<\9">DM#*)ZC>']X>YJ]J^ZNRYD1H>V$0'5];WZGR&BIO- MEF._*T()BHN@LT4_JSO*YQ3QVI2#*Y$;EM'EOG[LHUY9WVV #N ZWV'8L*JZ M;VNK#-$5G[P^G\V;4VC?3./DO%S2(#Z9/_< )QB((N1NWZ=V(GD#F'LCRW!1XM#&&J+*[)I..NH731R=-NS/'[DGL8(\_3.XR9%VIH9K-2D?MN^E\MNCT_-7^4G?-?FR;],9Y,WIR> M^7%;)"R?&TF?C41N$R.31O]'!&)%R9XGCPMHD@G\>BV"JT-[1-0Z -L-44VP M %WTM-PN&265M3),DF2RP%G46.)2$,1*H;4,.=#J9TUO@?&(J%-+V2MWUG>U M0?.VF1Z_'7^!5-;;^2Q\_16:X]:?G8SC42D8&&2[9MV7#KMYLY'HN]S* 0X9 M)Q-&= HXDI9]0>^E=.'/36V0C&/$.Q1(1?4IJ8JDY M>M[*J<"&7ELY?:PR>#Y_'3!/=2NGEZ'N3.QOHN7!32^"LM910="GP_F51B ^ M=-L8/D:>=9"I^I5,![Z54\_B?92[NZT<'5CT@)X]*%8Z""1'7!"",&8,<]$; M9>E]7O%A;^7TTOMZ6SE]E+:+K1QM-14Q2Z*@5.%)69+5UA*=66(R@X4UF\$> MX%;.QN;;5E$#S+;O"Z)V_O7]Q$_G1]/NDHRSBP+W40B& I03[-I9(A.GY6BS M(4)XZA)'Q+'V ?&[\!QH9F.;$*":^E>.Z5VE.'[^\PQ#]L7=.;\T[5%*W=MF MGYIK&8!!PT^^&--#GA]&,$+QPK75 R$,Z\22X[E1,,XU\= M7O8C)X%+)B54H0)D-J7YNJ3$6IVRSAH45-]@>NC9CQ[LJ9+]Z&&B?6<_9NW\ MTI&_3'KZ2>?$XZ(0F4FXV =*B12&$R?1I9 2C,B<&?0PUB$;ON4*T?"[2Y+= M">!!93GZ6+VIK?V*3E<':B'954C+SFEK@.J3Y;B/&JN [#;+4=%0S5!:WAD% MM,V<.RT(5\P0="HUPDQ(_!PPFM/9^.L;T@_!]"NR';NV?!_E5K1X+(43[=?1 MYX\C,-D*)8#D7&Y]-09*D,X)M48*E[FFX:YX:@;QQ^/FR\N+)RXL?/'-I8$O MW[>[>*FBXINMM%8QM5%D6@3L%Y&ZI%;&X ,!KA&'5HI89P()BH/QB7+&USKS M=<_@O/K.AVS!K?0W7%[Y2FBV#,MN1&4CSF14,5+"H\60GFE&@BT';+T4*0)/ M.M5.?/2 =ZAYD&V"@8&,L_>TR$]PUD(<=ZKRTW1T6C[PK^[;01(A:[QOV-1' M7X%WF>R0Q@7O2^1 !7H2M/1]%>4"9RM$S(X;YY[*J=V<4U!6H.PRXF3,=;F\ M&@P*D(.VP446J]]9],"3'7W84R/9T<=$^TYVK+=SR9W7CM)R36PY%9&SQ!C> M)&(T4R9+J1FK?EOX8RGUZ,6&7J4>?:PR^'[_.F">:JE'+T/=N?&_B98'-[UF MP PP3SBPI1S^)]E+N[4H_,(#%P4.1# M5-2B*^^%)MP&(X![*YA]V*4>O?2^7JE''Z7MHM1#I9B,MX'D4%K&B7*5I\J> M9*Y !Q:2]V8M(QY@J1C<-7DG!.[-^$H(&Z@,&":4+DS<2 M899KDM&QMTS% M__[Z-Q]/4*73XU_&[6P>SYT!_STOAV7OC((; KXL67QD$F]18J4H M6('21K5>IOFNMSQXRU938<5,5@?LXPD 7R M#0/:) 6<)HAKV?/ZDQ^\#;=25<4[:#HP729T*>3R]F4>0V3"$\;*399)*1)T MN4]>6V,A:Q'D>EVW;GGX@[?>M@H;X(Z-37H)QH_;Y&2&-E;M?/-WA>T0TR(+^V::QE_&Z=Q/9N^FDZ_W9Y%O MK9,OCUL0)Z9+OEQ_=J^L\09PM\P%XTM&1Y/)E5?\]AW'>LN_\H';S/._C>.) MA\F''_\O3,XP*5 D;M64.B,0.L MUVK[^I,/U"9;*:!V_\#;9Y%/K>]FYK;UT^,N@UU_\OON'9>OJ# 'KH6^SEQX MRZOJS(FK'UQS;KSYEM?-Z6DS[6X1^P 3/\=EN7EWUHV:?KE/G&X,E NR2$B4IQ0P3EBN<@$HN',>!73]?.]E7AU/[9' MQJS*QKC)+75G)';QX_)'\#/X][_\?U!+ P04 " ,;5];T00M$=;, "H M,P@ %0 '!R;&(M,C R-3 Y,S!?;&%B+GAM;-R]:7/D.)(H^'U^!;?WPU29 M"54\P*MM9IXIKQK9RTK),E75K[=L+0RGQ.X0J28I96I^_0(\(A@7"2! *FO- MNBLE!0D_$.YP^/D?_^O;P]IY9F65%?E__L7[R?V+PW)2T"R_^\^__';[ 21_ M^5__]6__]A__%P#_Y\WGC\Z[@CP]L+QVWI8,U8PZ7[/ZWJGOF?.WHOQG]HR< MFS6J>5$^ /!?S6MOB\>7,KN[KQW?]3FF,? 8X011 3CR HB@% M4> GDC__GU\_?B'W[ &!+*]JE!,)H,K^6C5__%@0 M5#=UZS_VWW)^/%E MUV6YLZK$,I58>I'$\O\^!>SG,]"WA&]]B*L%Y!IR/]G"<8RGGZRA>RLT!)L? MX0&8LU%NOU#O<[K4=W<#ZFS4Y\?8UM>BJ-%Z@:_%%LP Y;7\PT?Q4P=&+C2B M3!LXG>H>H,J^U2RGK-66.TL[&?W/OXB?5D\5N$/H&;W*A3Z_ MR_":7585JZM+(H[%I[5$]O*A*.OL?QK=ON)>#!GF/H#0"P%TL0L0AC$(8L^C MW(T"1/CJX,N_8CGX[4N/9X/,N9C\185):C)?LJIX*DE[6@KLI*70(OQ? ^#. M$/I__+RE9!8^KU^3;?UW2XM5+2Z@0<;98N.TZ%PXVJPLR [HM30OBG*?&P6Q MP(VM0%>"'0TK.*IPPX]N]9^EL?[I122:V MJ7OB9U((6^RQ!CL[QLOBP1:#ZL+6%Z_=3('X7YRBI*P4-OH1)AR(T)?L+L]X M1E!>"P#%4UX+@_ZF6&^2FC"4 >#(2.\CE(XU38V,P- M8YA&,?'@JE;72VI@=82JUE="GQF1%Y0M LY-6>3B9\+DS:724T:*G%130/;Y MHZ=T!O!W^--AX/PA<7 :)/Y?>XI&CVI+RD41Z*(*18\1^TI$\VT]Q5&5]>JS M^*JP7]D#9N6*!#X,48@ \^-$:(8H JD;A0!SGL1":[#0CU0TP]ZZ,XN^N#[6 M654+'JV=7QFJGLI&Y)T_WA4/*,M/?Z='>3$NVV=0J"F\IL0I"^P)4L8D4KPR MD$;QVU82]U=;1-1.D-#+TJF/S4[9=PS77QAY*K-:B.#E,\K$IVOVH2B_H#6[ ME3]O3X@PH6E,J0?\F,8 DHB#)(H0H!%W@P3Q(&!$YZS5 3ZWV)%[1I^$\5IP MY\N],&* N#L\."BGSLJ(ML1AP M15C_/2* %R60J(BSN>'=+">T"1RS5>?2EX M_165K'>^=R<7\].(HL@#S U2<8K'*4@YA2#"X@QW?<[$2BHZ9P3&W*JE ^H\ M=E#5-,884\85@R52-8_VGLH>H/-'"U+18ADCEW81F]91,C/9.\"4R;_*);3F M'>>1E;6P9N2UI"Z<:G_[?SI?Z2F0VNHV^6"CL-PT!:D\ M:NA70O/2VX>[FY+1 MNGS(Z8O74QFE2 MG3\D9 OJ8)*J(Q)>,?+37?'\LWBW$VY"MS)]>L5%Q'22H%[RIA\T,SP^H*S\ M':V?V)N7)GCR=HVJZO);5JTPC"-.< X21" GD] XB((& U#[L8A8R'7L2E. M0II; B4PIX'F_"'A*5X ICFD=LI;H5M3$M5)U@]Q3I%C*Y)Y$LZR 2YV>T&D0IBQT8Q2,''7BM5;$Q ]; MR3JZV"+"-$9&+S^CSYB=;9>49M(!@M8W**-7^5OTF-5HW3EQ?%<<8 2%(*$R M29:$/L )3,4AYT5>[/H!Q:[.^38*;>XS;@/;D<#!5>YTX/7.NG&.J9UWUOB@ M>>;ML2#;L&#:\:=]""K1:.D@'(>UZ&&H1/;^@:CVDHF#_AZ5[5WS;?'PR/*J M\79>EJ4,1DJ/Z9N7[2,WZ$7^J3&AW__K2:B9J[RJR\:S6EW7]ZR\O4?Y]:-< MHAK<9=_>R]7^QF2V/:.7SZQ$=^P7 :)^AVJV.>Q77DHA2C %U,<^@)Q1D*0! M D%,8\SC&$=NJ!X6^(XHFUES#1!R2(.1\X,075JLUZBLI.O:J22I/^IX[;\C M]BF%1KXC?&?T*DH2.L_AD$YG0*B#7YSA_XPV&?V*#YMOBFR MH.IK_RU W;?@KOD64/DMX/);\"S1VFH=1Z@B<3;FC#3?U+IPD/QP7V.5K$TJ M%I^S]BN:#;ZBQ?8K6K204XP0G%Q@9BNH@^M(P!=. UH]/'":ZND0@16"]>R (:VSQ R5 MZ#(*%)Q>=;%@P21APX#!],.&CA4BQ+YD=*0&XV.6LZN:/50KY+MABFD /)?( M8F2>@B1&&"34C;DO/DVXTLW(!/C,8KM?8R1+C%KD+IR=8J0_)$9.@Y)F]$&+ MU8H.FID8J*<&[/).WX-CP 1;#AT=T,OZ=PR85(#X)<6X_;P?- M>6S!Z>F2:7ZI*1"K7-#5&BU(YX<>^(_RCK;AR\T$7[3UA#*MEI3#-+Q%-8(R M^?MJ0/U%0Q-D+^][+RM\6P'Z2UE4U6^Y0&*=_0^C'\5O;YBXDK!;]&WE^2%E M<9("3@("(&98QE%3D$*&DIAYW'>102VY%>24A.CL\O(M<$="URT?L;,-BG;+ M8ER=J^!DMP2]0=/9VX +!S>HBDO@-XO6CDW6V3*#K."TK'UDDXT'AI/5Q0V< M)R62+:HNR_+-RU5.FPNCLM_DR+MSNTQ:D,/H@10>&1V@V7-&GU1CWR=I5_"> MG$FVIN-DFN+.GV++B3)"GIG_Y-B"R[E.1LC9\9J,/6=FK;Q'I2R_D=[0WH^: M":0\CT8AYB!(XA# ((P QH)G<4P@Q4G"$[T,E*-09A;#!L99(=MQ'JF9!F=3 MKB>)/3@9:6SCE1=. ]+>B3U*D:43^#B,14_443+W3\CQAPV*">@_;@L9\&BR M>56+"(8OS9[6]8^GJFXBX'6Q$S3_JT;UP Z5TX>:,8%Z,G2:-FLIRR>I,:L2 MV%EIN>J 8P3L5 4V*7FZ?NP.SD7K!K+IL#Y&@37O],[B"[NBCQ%V MZ'<^^M2Y5?E?V)TT53ZS1]E/,+\;M%=X\])]N#T3:$IX%$,/I,1+ $S"%"1$ MQKVC"$)*&4]Q8E:.KX7'S-*YTZ*H!>UL$',&F#5.BNX)TS)\O0U0$_8%V*JG M%8PXNE#=O1&+K!?PV_:1Z]AV0JN.RT:/2FL=F@CY#C\W#F$SI.&P>%A*94^@?=]<\F K# MYH@XFK6]\BE$+,8A\+U(7/GBA(+4BWW@0AZD?N"C &LE/1T',[=Q68O##."F M"H@,OVKLF_Q9,_/I!*<4S<2SZ=>T H\50&UC?A>R)Q-!U;WS?H(5^M;>**6V MC+GC0):UU48)/3#%QI\V*%V]#-[]]Q.NKG+RD_RWKT@/Q,TPD'U6>,H!=!D' MJ9^X('*3R"<^(6Z@WEKR*(B9A39XYTA8%XZ$ZOP@?]:IVSS.E7$AM4.KGH > M(].DN^1Q>C5J^U\4+ M8\T1V999];UID1^[<1P#-XUB %DBV\)$"0AYG*#03:B7*G68GX2TQ.'?U_-J M9A&<9([:86^%9,OG?8O&#&TL)HFUE6AP$LZRR093Y!XD'$R^8-CD/JL>BPJM M?RF+I\=/12VOR86V^Z!6IJ9 G&ZFF9'B.G04E>(FIGB)6S0>NB241V?I"H_>@(Q=-@ M!ZA SV)[_#,99*M5OBD:R[;-/Y-9!RWTSUW/O''KK_EC)L%I9Y6<7&!NM]ZP MJ^FOGVZN!BYF_1:NA^0K>/=L4*[IZALA>H:,D4D*SVKK>KCJXJU=3Q)VK+WK MZ8?-K(V;LB",T>J#0$T6%EQS\1?Z)%LS=P69*^B&W$>I"SPNZR1=Q &&S 41 MY@GW4\(H4O(\J(.<66I[!!RY'XY0=:R2UL)C6] L!%3W9U M!NR?X1IO&D87Y*7GOEB+-ZJVS8MLF9FD$:<@(BD&, @\@#AR08P03Y. ^&$< MK^K-9.%IS_H!""VU<&)2\F1"65.=T(']]ZYCDV8\X9 W2<1]@BD$V(T" !." M0<)\#\0D3B@)$^R%?/6X-Y%]9@[M@U/FTQMVE^7-P!B,UK)WS]GL\3V?8&G=KR.=ILE6H.D0P+)!II,$'@283C]IIKNO2=:6 MA'YF1/8?;V:<-M[43ZR^YK?HVW!W;XMV;U>8N21A00R"T$, ID)($^@RX#$_ MX2BA$8=:8X3,T)C9-&P[1LJ8LC@$6%Y)NR;+Q>_,^4'<<*H?^PKLB3#SH=B;5D#S;!GA_ZLR M7DT3S_^5UM/6UV^O-BT##E"Z< 12TH07:,VOT,]CC26E;XC$H@?#>8S:/SS. M7&VV,;TK<7) WZ<,^,23TWF9#Q#V T##F 1I(C2;#RU/YYWYZ%"?*:O9Y4V% MG8J!![M,THPQ6.#/'(-V;0<-%"!^;V-U3X8"-%X]>\+48,3ZAU+]%Y_->\8ZT*$0'"5LK>R?H;$E0 HGNRZ3]T4ZXP(BTR&>3XJ-GA67&4^X>J .WVGLAY\ M$V-M E94G"F5Y9;.FF0;Y1*HK+]85H$&LTW8(E14ZJGI'*8MB&/J^CJ88@36S>F@A.Y4$?>&@#=BF M=6*3D*!:*J7"-S6]8(D;>LJ@8\27EA$M7&<+V)X.4*#.DN"/05I4VA5(WA=Q ME5?,Y/J7HJ!?L_7Z,C\8 &'<7$)KS?F^PST:C5V[/\BDFKL'A1$3+'W5]6 O M^N4W8LN^.)@M8F@M-\N^?2IE/&XC"*G/4L)"#T#I (?(XR#AGCC\_#0.B3@. MTU0K%?N\M9'M H#"F,_#4 71] # E 2 @U M<3G#*8T($;=R_>DB,Z"JE_!C.FND WR.T3O'-JGIEM?B^FO-6MY,4QX@+D_'F:"MR%0ILZ25)L$MJF)4B=_7%\KOG9E[-$AGJ#[+=*\ZZ>ZJE%3 M ?:Y6*^%M2(_7,$@32'U(>!!Y '(@@BD",ET9T8C2B'&@7=^Q\5ST5PB &K6 MM&FF;5GF8G<^LU_O;C? W?E#8N]TZ-ML(3XK?[^3.]X))/]4U[QQ1MN^Z4U M,XPEH^I>_E\:C\]HW1X@55UFI!9XB@^$D;G[A\&35SE9/TE\=MKCB#>.ML>I M5B%"'J7AB+__D@"6,"8, H0,3%P.,L"!$),4*A;@G[][W; MVL7Q(WO-9)N5/\$N*Z9.?*?[IIF+(?"Z<)I-VZ(G;TD]XD[[A-S1O3_NO+ A MZ$1'.8M)':_ =UM9(DNBOFS:R2MLRD$>RVO@,(]'>IL*$$=I$E 7N*$; PBC M""3B$ )N(OX015$:1%K9;ZJ 9[XH[CMBY_=-:Z81S,$G&[[J61(,=(E=R'W] M.FD(NLS0=6>?F:Q 6;9Z6SRS@!1B!EQ".68PA4FD MU!#X8.79TV$%+)7O\P3]XP)]%E6:II0J0A+YD0(6\4XK?.*'K:TP^8':S[#3!D:[S+@F1=IE ;3AYO@(0BDJ! W.X(=P%,40(2DG# MO<@C 4DHC$TR=LY&;)G\G':*4S7HOR.,^*85)"+DZ>&I;<1='"E'78^-,)UI MKV*A[$@ .4AC7W:4$WN%HP !#&.?4"\@?L+[O?I^M^G_SSND9FTMPW4CI;Z/ M6LOJRZ;G4I_TV>*W;*X.-UB@!B4!UTB]2:$(,$1Y('K>Q[E6H55JI#GMBM/.2#U/8YJC%1W M%UIGC[ZOK^',GO=.9GAN,B14>ML;^>RTB+?H<%.#N[BW3(L=QUQ=>@OH:9.J MK%>_HF_9P]-#/U>*,NRFK@^0+SNYA0D!.(@(H&$8>-CSXHBZ*MKB8.69M4$' M2TWV#\D>E^VSB-&3W0Z,Q:2ED\B/R9YX:2!WXK>MS!VNMXA,G22CEYG3#[Q. M M'[;ZPD627/_+^Q[.Y>F.N7X@*,[ECW";LI,\)6&(M3F%-/>G.$Q%%Q)4V( MYX*$"1$D,>20: UZ6@COF>6Y0\9A6VPNG*\=/@"U"/6?,N=1HM34FM!BO49E M):./K;MYX;(3U6U7LR:^P\W4TV#[\+/3E.1T__*7,:BKZ?I";-+?A. MLIQ4L?Y3I3UI;H7M/"A=\(:)\%F>U>QC]LSVZYI_JQA_6G_,N+@4,I:$C'( MDT3\)R*R]#A*Q?'CT<"-(D:(DIFG W3F$Z,%Y$A(S4'PPL0QH*G\E7BGIKEM M V*;67%JX!<-BM>@PD'6?$Z[QH:M>Q.:J6F MG0]MBN\NJ?A7:*?;XF.1WS7 NR%6'B,XC+D':.(& ,(X!!A!"GSL!I'//(2# M4,LP58<]LZIH"^?8%I'*X47IH Z=2CIRUP(CL&[DQZ2W@0ZC%4W!>=BG:$K#SEGX[ZD]%?L.*3ZRX?+YK3&/IWKA\ MJ%7G=9]Z?^:C5H %-^^OG4_B_[T3L+7L=QV-32*-^OSND]P8EUQ;C-"35SL\ MT.J_/46D4=/MDXLNUFE[BJQA>^W)9PTOY^2>T2,KT+)7(0S4:>C ;\&5O M%Q7] J^Q-YI>@V6W1=^Q8)N%MMP.UO!:UBEAFYT'+@OK *PH;+R/Q[8*K:D/ MV:E+:_[RF[#HJDLYR#VK7QJ,;MFW^HU@YC]7*0P"E[L4X)@3 "GF /OB/] + M_"2!?ABX6BZ1.9%]);5^=,+ H'JU[5.R5]+:_E$2<^'TU)REX>UNNY'2?[7- M-$\&L+9WW7'@2/R=AH#Y3H99^#S/86$7U=<\/V9A^L21,@],_:OY)?W';;&Y M;DB$/N1;7:%X/Q]=9&Y_./W'4U4WDEX7SO"ZNF/\?2B*.B]JQ=$YTYR9OJM; M8XJF>UR/'T*YV51KRH0;7>+'5U[L)J]$X/ ZK_:"OO"*(^[WZH:5O"@?D$![ MFZ[]46/,F\(J\WU=!7#GN7(&X'=&7GRT/=Q-@UBCKZC*^HM]436('7Y==5XS MN]?\]N476:N;-Y>E.Y;+T-'N].@N;3XA,?,C[H,T(AA %/D I2$&<92D;D(" MU_.QSAU%%?#TWE1.-A62;UC.N#2@U:-.)FO/K#)X<^-47!^VCU,X=[S"ZT M@U1&C)VV->;FJ68P>BYV:IDDY_#$R$8Q KB8T7(..X96S%GK&,6X/XOKO>?B MT+LLR]OR(:_IAS6ZTPAR'U]@@2BW!.Q(R,#;J9NY9>5#ELM&$%KA[1.,4(IO MG\\#_0#W-/G.'Q(+2W>022I-(]PG5ETRQ#U.V%Z,>^)AL[O%=LRZ;)GPMFVY ME^5WVYY[;YBXV73CV(7\L^K]M[I$ H;8Z_*EN=\(Y&2S/D&X@'1WE0NY8E6] M2B%#,(QCX,8\!I"D'L">#'N+^X@?DQ@3JI5X-B.N,V>MM1@YN$'/R=K?:HF@ MWM5ESMU2N^U\)WN@I[4Z]O\@T?ZQ;26SQ7S;++7J-ZA[OL'^PMG%UNG1M7>- M6H"GEFY>P#2E /$4@9("GE$O"A.(JC:V?!P^9GMLQ:@TT!T.I#J+0Z/<&-<+9Y/HYXF MTR)/J^'A:2J,NAX>66ZQUH>G21GV/QQYRLR4NI;-WP9]2*6LMNVG5B0-W" - M* @B1 !,? (P#5+@!DF:>#"E(=9J^G0:U,SBU0!NB_'$VP_#:7=ZELP(L]0, M$3LLT).^EOH!T-8X:,':LP>F2;-TG(\ 6O0TGB9X_S!5>,,PAZP6%UAYG;WF M(]VL$XH2Y/$$A(%LXH;= "0AXL!'!$(<1#3Q]!)Z5:#.G=75X]"D=0VP^'>- M)MAG\%1-[*US2D\#6&&2?MJ3#M&V\I>48"Z;B*3#AH.,(JV7]93'8[G&*YEQ M))./!)BJ*^+MP[(\]8E0#0#'J0\@(1Y A 3 @X&'8\'X-(U5M,4XF+F#L U< MIP6L)O]3;'$Q9U3H3]>/(ED5$8+4"R-A(^'4CSD*PXBOGEF)B^48,P3WBJP9 MUX7VR-53?CMT.AW0Z;"R#N&T($_RU^9"O #=N"IVX'ME3V_)0#ZB=!$S$L!8DGL1I$7I5QOBN@(L"6MN*;A; /=ANUVR#=MD^TL M;IQAJ>DQXAS[["2%]LVR0U"O98V=)'K$"#O]SAG>EV,5_BGC01##!*38]0#D M(01I+*P./Z(<>0'C+*7:OI=S&Q^8>EZR;0\ U/4 R'4[(ISDE(;C9=$N""WI M<[<_F*++IL_EU5L>3!%[U-]BM\W!V^(+6S-9L-%-'==(-COV[LSRU_F(G1ZP MTT'6SA4[2O>XZ-D@64_D3*G5RNP8(\DHJ>/H@HOEYA4MM?*HCK\]LRRU=>.WV8.\0OWZZ>9*AN.K3-"KDSIU@O!I43J? M9CUA&B/7:JK4.&%F143'EURN>FB4I)VRH?$G#>>Z#$3LFY=7:B:X)?KU38(MX3LI5(XV>1CTWC],>M2GJ[R=C37Z&P&1.* M!A""./7%#=Z-/9#X3%SH$^IYL>Q@B/1:;RQ,P,S:N\%&6!*+C-NPO;>*+L3O M>,^]BPS_LSRM;2&/]0E%_0FFT+BF5Y\:^H[G[[6U;?9_EUSO[. M4+D9:KB*>!+)2AZ0$)F[&H3B)\PBX'LP#0(6NAY2DA8[Z,PL9.^>Y)W.D66N ME$"B.IQ[>N%TJ+Z()]>- MN,L1'SEUOF3YG;A ]A\[[\0G%XZDPA'46.Q<;X61MKK;GX?,LAWPK3#NH$N^ MG54-@\A]8L]'H7U9GU_\TDV17@70IV'J8L ")"MC< J2T ^ ^#NF41I2FB1: MH>11<',[_;HQZL4FF6DML3@CI7^<>6IJS1Y+]-36-J6K 7RQR?)_V0RVQO(E4S\'F]KJ[Y M:=6T2F,OC!)* ?;<&$ ,*4B\E /HBL43GT>0:6606<%J9@72X]@6U!*!C5,R MRAZZ4;'R#'_8H"Z]PP^H_"=KW<*FO9OL[)::*EI\#_0TUB[[MPA>. ,4N[GS M DFY 0JVF3TE9Y5]EG2A'9P659E6V;BO6>TN;J: WS'.A"*GF[KG85D7JU<^ MX4'DXABX/&$ )BX"B/L^0#[BF! ,@^$.9&UQ3W MU%2=19[HWA8[)FQ;+NS55]I,\5,DTY*RF8*VJ!I1)'U?0:B^IM]XX%U7>?$A MJX3IT+IU/XB_52MQD?)B-V0@C5@ 8!1'(,7(!5B66)(X\(BG- QY%,KIB+0LF"1MV+IA^ M^(PL0E;?%U2_I_GQUQ?-(VQ &Z0/[E$\'2VQ0*R>8!VAGM8R.G1;HKQ:MUD$F_$-7?TPA!YQ8\:!)ZZ' *90V(YI M"D$"<>I"+PZ](-(<7*T =F;!$S=NEMWE3MOAA+PX]185!VUPT8U2JG%445"M M\TE3@K?PG9Y=;WMV#89\',]-G:$UNAY#[,W&5@&Z])QL#48FW $4J$EH$0N(DXP'V/QS32Y"U2 MQJ7EVFQ75$4S,E-3*5GGXVS)#3-5JVN#_RX3&*:JVHW7.7?,Y9$!N'1%H>=R3'T2Z?1Y;Y?5TAOZ+=F;0?%=$PU-NZ6E6M$:T:9% MT\88)T#?8-C!UY89T"ZZ[.&^0\C!D;W[J=G7_T,FFU5]%/)%]UMC7#X499W] M3W-;>?]-5CVP3T+H;K^R]3/[M>C,?$R+[T2D)V9G=S@D/N@22**8 < MI2!-$ -IS###XD>7*-TH#E:>60EUL)P6F'HG[\@9E*X4^5-K9MAZ_RJBZ;4'[5--BZO4=Y5_3X.ZMJ M*>1'ZQU_$>O7LAYF6S24, ]Z'@I BB$',$TQ0!0&P/4A2S$F29)J!1:_&\IF M5@G]V/@F97F-'JNE"ND7^V8H^B:^%WSG4YK: M3?_"BKL2/=YG!*W?%0\HRUIA& R., 0>H"8?A&+!#G*Z5*$[%& MH;WHJSULVJV](/^\JJHG1M\]E<):;Z6_42'5<5VS8ICX*($0!$U0/N6! ML("Q!X+(0\CG7I2&>A:P/@XSB[ ]2#,E<8Y^".\6@^JZ0 MJK1I$"T_Z5[[FM7W]VQ-FY$%LO2DP.OLKFLB)"W?]CE=<]=@PQ0-TWFWP<"$ MK)P6G8O64JPNCEN,V[/OPD%<;+=,3.(LJY]*FX:>.7NL=:37QV#A1O7&+#KL M7V^^E''>8RF@#.R1TN,?( AP0"E)&&<<-?E6AWR ME*#.G874XC LC=MJ->U41P4F*@;T;+-&,][7<>7C'E<.1A-:3654I]A>)J," MS*43&=79<"2/4>-E@^ECLJ[TEI4/5X*6O,Z>V8WXV@BV^ET:;TQ#+$PB#%A* M8W&%"4.0))$',$^]F%-$/1\ISR"; #:S8FA*:"5X9P/?D0@X$@.-*513+!O7 M![89H:<&1GE@,I)KBAD:@[DL,L5L/)?9%T1O+I(+Y2:(.QYB??M3LVO&)U7) UTU9/&>4T308TY82K!6GTA]%&86WFV+,+0!K7"J MVJ5D7E[IB7PS:Z_'1,;3?I#(.%G^H[/E8(?0RX4\HM=/31K#NZP2HB$^EO>; M[M$BGZ4LPIQ?ENXW!@@L>MDQ9]#^S>>,E0Q]QZU/^C-[E E1^5T[NJQF#^WH MJE4808*)1P!,:0(@%1I+_, 38,$!HR)JY!6\=8$O)F54C^%E[4I7YH*:8I7 MBBY:>QS0=,=VQ&\@7W1^D/X#B<2%M9EEFO3:\J].0%O6EZI&^H'?5/$U,XF_ MRI_%XD7Y(D^0=2';9F]+<]R(0B_R.( ^%3(?I5 6)S 04_%[2#W*J9:XCP&; M6=8WH/6$?)0]:A)NBV@]\=Y =;9@+?<]T2'0DCR/@EI4F%6(WI=DI7?TVP]] M*O(;5GQBQ>7SG8R>"*O@":W7+S6F5D^!71P\_[:^23^W^=Y[2:: M=>@X$A_MP:%3/!H79HK9D=R MGU;+:!,R_2W/ZNKSE]\Z9W(4IBA.TQA0-X$ >HP#G")Q)J=A %G$>!(H!2.4 MH,TL]%O83@/<::#KG=#CW%([HJWQ0$^RCY/O_"! RV)BZWU5E,BT=%*/PUKT MJ%8B>_^L5GO)9'+WKKKXO4W:[";6:/<.5%QN_N2J4\?1<_53=Z_L<-(9]JW& MJNFS>P8N:?KU-!@T0W="3?H-YX>KP5API+@6T;M3QO5>/:<#P";[>GLIV#BP M$0]Y2#$'+B<>@)"[(&5N## )(8\(3WB@U7UD$N+,>N)#EJ.<9&C=UN)6?S5I M'C#&,+7CWBH;]!1!"WHXQ&GG?CY'%R-58JWV*QB#]PJM#!3(/][E0.7%)1H@ M-(.:Q)=JQ7R7H)1Y(':]%," N #!A(#(==,X%A<#C\7S-3[HT9A93X@O53IG MPX,--]7TQ?P\TE,B9S0XD(B]5H>#?<:\2F>##1+?<4>#?4:=U\G@8#73I*+W M#ZR\R_*[7\KB:WTO;224OZQB[E*$O!#X@4L =+D/$AQCV34V\K&':*!6/#T! M9YGDHAZTT\)V.N"ZZ47'.36N;"S2KZ=-#$DW2#0:)>R,9*/CZRZ<<#1*W&'2 MT?CCIB+:5CDU'HNVKN+ZJ:Z$AI Y(JN04L]E00@25PX#)8>3;(-+AE!+8KZVI0Z&N*G $6NI([RD!5 ;;%%B,Y-N:(@4"K$'J&7(\N MO[!XJY!Z*.5*;YW;R?1T"]6/66N"V#$8H ]R(#XJU $ M"87$TTHPU((^LRI0F,SG_"&1:5):=$1A7LX=0TJ!NKPTU,3L L#'(8>0B )D@1 Q!E U$T! M"6&:))SRE.+58ULY6J.R5E17MO'4$OW3/J)'Y_CMY/4^RU MUL-I$I!!BL%]?G>5?Y!QB\OJFO]>U?G=N_J:WY3EW\OW_ZI?+K^6M!)_IE?Y MV^>2_KWLDF54%>\EHVCAL$UU SNUOVP6JJ9&3+./'[C5#J9>L0 M[[K2-7M1#9K/O2V>F9RM*Q_22%DP9?VX!EZ*ZWI*=CZ&6\Q]LL$ZLWP(4Z#+ M)4BW'@ 3>*4P A@R#U*0814HMN)188V:.K%$L)[:V)J-4CM(N!=.1_\,V>\*)-K*2!F!M&S: MR33)![DE"J_H7TFO\BH33]Z6]*989R1CU4U9D$]%?4F+1SF?5#?O77G!F<6U MP\/IQTGTV#1]Y21*C#[) *S S.E04[]-JG-M^OHX"\/TQ-V 5S/DPFLSPNCV MIPYEL>N>-N'#^YW^RV:'_)NG*LN%P7!)_O6455GC1),_EHQU+;,]3N,DY!A@ MQF5./"( ^S0&R(V(AR'VTT0KDCT)<68-TL.7?FJX^K,4S,&K+)$ M3T>8<4/;%E"FT))%, UO4;M F?Q]ZT#]13/Q'TV_"A+HXR3Q0 @C!J ?)@!C MCP(OBKC+"(8LU)KY]XK9:WTW\C9):Q E-(\*CK(N1DFRF\>#;DX4C#ZC(1)VYS0C%X M/UYF3)>4#58_H0=V^2VK5CSQ&$SB # WQD*>8W&2I"X&/@\@XP$E<1SIG"3# MQ6<^.9I>O!*6\X>$IFDA[G!!33I-:=.31F6RM(7O&/Z6A&UGZ46%ZQA1^\)T M]!E]U\T-*_32 S8OS"T)[Z_572E;*J9=)48$:'[=WU];CG$?(&WDMMBNLIA; MX@#QH=OA\$,S[?\NJ]#=7W,KDV*T7+?7]!/$P IAC(HZ%0/S$ M, ()')[DB/-' M@X(S2\,\+:(MG55J,!<]Q+38L'^ZZ;ULWANSJIO)BF_7J*HRGLDFO'V\\PFM M?T6US*A_D7E.>]]_$KH\3E(,(BBK[9#G @Q]#GA"8@2Q2YBK-/?0!C(+ZIAM M")(3H>6R/PIG=6=M!=7[+T;J1"-4H[A2#5!UD9Y.MZQOK*>Z; M@6_'I&WG$/2?V4_5F"#8FJ_L.)2%W62CI!YZR,8?UY-?(EO%EB^KW[ZL8$(Q M=ED"8A8(<\43-@MFB (4,9:&(?=HI-16=+ODS%(I.S(VC3,%,Q1;A@[('1<\ M,R+T9.RW3U>W[]\Y7VXO;]]_.5]T#E$><0!T#[="TOVRE8_!4HN(PB'J_;?^ MR">FECPI&:K8.];^.YBA\18]9C5:;UK(A4'DQT$4 "_U90EC2 ".60@0"EPW M"5WJI5JIA.J@YS[&FG*-2M9:%-MI/$W7H$:]#V:%:O;ET^"NJN4]!\_TY/.2 M_N.I-:>&#R[_H#>QJ"G!]ZTGZ4^[%]M"-OEDZ M^ERU9IZG,5@HA6*V@>Y6AKB/;)":*IR5[7H:L>U1WN+B MM,@X+387?19W^TA?_;[!:?:1[=/LF'=@^PC\[V%<^S1[%(>U*RRD'V%\]TQI M=5V*ZTSYOLSOJAMZG6]*!C_5\N]?J\]\363QX&V]EA76'XK2I'39 JB9U=J[ M3)H2.:WDI,_VQOT>E3+'J6K[A0L5MUM"FQ=U^^!7J?4^,[YNNW\*NZ*M7-MI M@" 5G5EMLXUMF@Z^+KQ#NN&B93?'76<!_+]9BF;6P33X+/;4* MD.=SYLD<]M"3;;L#D,98=G*(XCA)XQ1Y6F/$%L!Y9GV^:9O_O(&Z4%\VC6U3 M5.??UV9H:OGS>[<-^A$-"!E,1MC2XDABOH-^;OJVOK7VB1L()@4D,<$)B 'U, &9Q#+P(NW&,?1Z$2JWAQ\', MK,![H)L[N6ZOGJ.L4=.XYQ.LIR0/:)UE7.083=9ZYAP%LG!;G#%"#SO?C#YM M6)Y4LD>4T\7%(JOC+535'5:/W_9(]O"\I6 M+@]#Z,(()(Q# +$' 4(QDN/A>!#PA&&L.8/I&)BY[U_M_)(.\H73PG8$<$=" MUYWDEW&!BRQAA9TQJ.;KLPA-:QD@[G,PR^K1^#%..BQ;6 MN33HWS'QY7_H>I?(5&O5X.38&K.;SAO0S@[LIGY /48XRH;IX)\M#NC:TD;$ M:X7>5"@SBJF-+KQ8L$R%O&$43.EYXU+/;E#K-1_>PC^SM8S/O!4"7S67<#RX MA%>:"8KG 5G&=[;QB0W<9G.D%=KAA;TRQW.06;K^T0+CCA1&VEC5.,^Z>&!? M>MG>2!5!,*:8";/4]0)AEF(*THA3X :$0)HR-_&X9E+U,3@SGY)=VN\&K(HX M:;%)3?E8(%Y/JYC0;9*=/$:5O53DHU"6SCL>(_5(DO'HX^>(ZBWZUEU7W["< M\:Q>17)@$Q5F!B.I;(*0,I"*/X @2:$7!0D/*-87U0,XLWN6BN>LZG.JLBY? M'WU3+16:XI*.I)Y%NY&D"H@;K]$/'=#3?;T,1?4D659%]1#**XCJ25*/B^KI MQXV=PYR5):.#SEAM;NZ*>B$//.*"% M!A=B- )(M$CT7\@@'(0JQUL%Z&M3\ MKN 6<-\4L,&BFE5?Y)?U']>69O*UJS;Y:1]Z=6RB%#FLR+S:U<)7SA97/&6&. MO$AH]-\Z1OBT0^A:TVZNJ:W;-8QBX"4P!#N(8P#3%( U]#&C@\1#[E(>!4O>)42CS MV[$2;A/[Z[^*>LW!QWDT+H+6*-<]!0V(5A8]):+&CC^QP.#H$[]MI7!\[45$ M48F\7A[5'CYS7L^;E\V/_YVQ4BQT_]+,%6FZD")AIG)..9#W2^D:"D :R=;4 M$8FQAX3\VI@9Q;;00+B!G;S=?YT^;M1XU9%9JI9MO99I"??YW#'?.R/ M$K&V)P"- WV=84!*C#@Y%TCM[?,BJ 6K/A7U9]9,%I"M%YY9^:(](TA]Q06C MJU1@TE0%EBTN3H^,69!U@E/3%O8\3-+3!SL!V**; /1YCS\SC +2I_WL$.T$ MF%<)V*J1?BI\J_BVF0UQ7=ZAO*NT>5OD5;'.:)M3G5-Q0:\$ EW_SP]9CG*2 MH?7&3ZX;T[4":SXA&:)WX>P@V W0VJ+8%-=9\V9#_C= M,J4.I[8CP'/U4U/%A/(7I\?.Z=#3F"NOP[_I0W\NUNEI-$.NS6 (F/##;"B\ M#J#E!L$;D+\S_-WD??T$Z+8?V<0$_AR)- 58C1BM-^1CF1HG).PLMEHI\ M#/UA\O'1S_7/TZ9H\/;A[K^+K[_FC]G;O**E_A#=\55FEH0&N'.;/63YW84C M4'!^_71SU1BVID78VO,?4JNUYMYZ4/@&H?C& ,4CD9+M&L>C"?(MIR!H4*3NGH,KS^B*X:6]W2?_Q(=>V4D^\/K/@[;9Q'&0$73@?BJ+."YVRN%,^5SGOU'/I3Y7?!Z!R/UV\^# MG'LD@_AHV+Y65K*AENWL&UD_-;"7,*:T1?R;<$&9YUQUC1A:K:R+AS,G)*1XB[/_D?\H9$3 ?ZI M;%ZIY$(O0.5\ MO6?YYO/^CT(Y"OB/@G8!76K>S?K;1"'!G2WMCT65-3RB-C M62!R_^-/YY]UMKXV[0$H5VO..#<-W.:<.WO]10X_6USH3T1KZRW<:;>])EWE M55TV EXUK9YN[U'>#<;X5#1N+$8_/36>%A*&(?80 LC'&$#N0I"XF(G#E7+7 M3S!SB;=JO_]?:E36:F[?Q?#747K[5"CKO3?L+LME3ST'HW6CI(RK_Y;;6,Y3 M#F/B@CB%#$ 849!X, $H"'B(8HJB*.PV]GU.__3;VM.@[E#(Z9]L1]5"$-_E M'NG9=A8Z+7?NH@$U78O"6M#3#X*Z<#8DB1\;HKZ#CLNF^_#:?9>U\?YS=%\V MW0YK/9B-$3 S/3ZQ6@Z/[&='OGF1@R.O\C;Z)5WP[=#(C&WSF",/QU$J"QHI M3P ,8P82W^7 BVG$>!!XS-9;^0:R@S:@]4X) ZZJJ?MY>:6GMT>& MCFXYN#-TM+LLRMY012X^EIT5NDF50MW/D15NSB]+^M4 @445I3F#]C7>&2N9 MJ:Y?6"Z^.NO+G%[2!W%WDXL*$*QK>K**:.C'KN^!F 3BKI,F(<#("X ?P00R M0OR0I3IZ:@+>S$JI@]XZ+W;@ZZFF*:ZIZ2&+O-!3.D,V[(*>G'*EK3P4B;2D M*::@+:H6%$G?UP&JKQFT+'E^;(8;*;8\R]!6R8ORH;E:;CL? M:O0EZ:F;#O&9$*8G8J,T=5/+;/4>V2/&K-](O\AR/4;VT-[I*[+_F56[?#/7 M>WN:KA)&$^YB"AC& 8"N1P"&%(,(,>IY% :/@-82K@T"RE]$ M.>.>2"/S<6!D%ILA]9:-\V.L/@;V*+BY[>M-M++U,,MNG0U\M&F\\;5%Z731$V;9JM")"- MWW+%,6=AQ"* F>L""+'T!T8I\'D(4Q0)19 DYBT_3X&=VYS?;__YB$KGN6D1 M)"-&M%BO45E)#=%&C\YJ!GJ2M6J:P3[#-*\)^TU"!0IR('V+1-=82:#1QFWF M:AHZ1?U7VQK-X+6]75ED(+Q=?EH>"6\)N5<9"F^7L:?&PEN&8I#5 M_?[+S4U7MD>A%Z]=6?6HQ*01B;P M@-YQS74&%7HJ1\*8KD 7RZ1]1#' MG;S4(Q^;66._?;DMFSXX+V\*V66W+Y?OOA1"8!'U708B[!$@+G$^2#!A ,<1 M=R&'/HFU\CK&PY& 1I%(K#&0MI]F$ M<(#3D.+4XU1K)$N_\$)N6#-7JZ93=7[WJ7T7Z4S.T-=Q>TXY.,](&&CS*(_8 MPN\RSEG)!)Y&70!T5IW;DFVSGH]=)ITM/F:= K28-RYU\_)-TW;69-DL309, M6&'8>T +U((M"4Q8L-NIP&@%@[PC5C2ETDUSR8=:.?UH][6YPQ;OKYVV\GZW M?J(IX-3(0MJC=5JLSR!3,]A@1*%>+M)Q6LQ2DO;66BXSZ3@1.PE*)QXQLS=_ M+7+VTC9A^_ D+EG=]2A.4A?AB O#,\$ !A2")/1C\1^&(C=@).5:GOKC8&86 MJP:H\]! =1Z>9&=9APOH>K;I"0ZI6:KGTZTG9RW)+4"G@3C#?7&<*$N&[0D@ MBYJYXX3N&[T33QN./SI9U%P-JYF[!-W/3$Y<$JO+#NRRA%X6.*^$Y&(ARQ $ M+(X ]-P$H!!& /M!G!#N^6Y$M68CG8_3S)+?PI3I M,:25)/2RG#\A)YO%LGN"G-X8NDS8-1$) 4Y0##SHIQ''44BX4E\B)6C+N ^V M,(U&PHWS2TV16>."D3- G0'Z47<5PFP%T4=A+1L35R'[(,2M])+^#?Y3D7]^ M6C//Q:%W69:7M'@4Y\Z'-;I3O?$2R.=XW0?P,SR>24;AK&J=F1;M*8+&'/6 M39)\@=?9'3)(MCM@D=H)>@[A>E*Y@62_WO84$98.R(/E%ST33Q&W?PR>?&[A MUF)=,IG (FM+PJJKO*TW6)$ QK'/(Q#AF )(0@Q0$G% 7 [].$X8#;Q5SNYD M-O&MABUL'U4E,4A;,3A 6-V.E(#%8;1\4ZF135*TO%^)YZ_5*&J3@3M W!'; MUJ+^';2#FN;K:S=^&L'PS]'B:9K%UIHY*8 RM*2>4;:6.;T?BO(+6K-W#-?; M3*+.52+1K6J!E+B(IU$2IB1B(."^L+1\)ALJ$P*2-.$(KI@E_6%#1DSH&I:+J.OA.E:4(G.X)T@S0U4B&.O#KSM:QM_3CL7]*!OM!. MB3A&][2WY$R2]>38/&2%FZ @9>^QUKF/73[5LG"X[ M=_R-97?WLBGU,RO1'7O_C94DJ]A-F1'VN5BOQ==!OKB*,4K

<1)X",.D5;(8G$29E87/1; Z?!P>D2?7N] MF^" K@NGI^S$5V&6'I6OMS'?R572@( _U4W3?(-L7T3/P$1_4/K[O)9CIBD5 M@EPUT;WKLNE9))B^2GA">(PA2-THELTYL3B5$@Y0[+HP=,.00:4$P2E <\?0 M&]!.!_NB;7XANV#T\-5GJX^R:US%VV2"GB(VIU]K'+L*<4;CV4<77FQ.#/5S+;S&62:OM=PH(%[ MX6P9U8.VFI$W3:&]7+L16$MGT4V3?20_3N$E,]'_F"&U)ZFA)+HGD$P*+R>)K ?2$<>5+?LWHEK/'GC#ZA=9,P MJ>A4W7UK]C27'MA?U3VG>W1-.TW-2=(3DRT<:^F>I]$WA[ ,,+ M"REB#'F!1[!6?M@DR)E%:8N \R@P %GND!8'S>CE-._4#BB['-&3Q $S)'"9 MA]&!OW!:!-J^:1;#DLK4V@I$3@-<-O2HS("#8*/ZFW-/HEHQYOH!)RY D$$ M$7,!QE$*&$ZHEQ OB2)LH>/]$= SFZN;CO=/;?-V\;_E1E%9'T$UG^:P/'KJ M->9-658T&H"_AV[W(PPQGRMUAA5^>7=7O[W/[V[R*O\=K:_R+T\/#V53A%+5 M^2U>?RC*R\R4C;C5BV8$_<7@!,W0A ZKH A10#0B+H\1AC(:$ZCLQ1 M:#.+XW:>7!L>1TU[#KW3H-1[HB>>6_"XVWD &!0<"=MO>QMXAJD2C MI9-T'-:BQZD2V?MGJMI+^KX!88'?%3G[S$CQS,J7]]\>Q?>AN5]=\ZN'1YD- MFI$V(OBBW5#6:/&9!;S#R>F1:JHE>[2DL;B/F/K]WHR7TW?\V=FHIR.T.3A# MG]FS6&)T5S>#N-A]_2R&#._LYRUD9EZ\YYS)FRJ[RDGQP&[1M\_B3ONV]64+ MG;?Q95M-DY;W @@BK3K/T7H.O:E;)/-S24S];1K5(. (+1Z+1**2@%,O\.:4SG>L6=,AOQ]1H[IC5ZS)KVN]MB@:;I;$B]03G; M.&EGE+.=6'CA-[LV2X7Q)-;]4O!:* .VUU2ZRR$)0\@A\CA@ M/$D C.( )#") /4"SBEFA(=:79V5H,XLQCULIV;D/B_6Q9VBFTZ/=6J78NL, MT1/J'KS3P[\XZ$@_PY@++:(MW8+58"YZ =9BP_[=5^]E,QTAJ$FW.85Z8JQ!G+:P'J?!DE3N+;ZH^!TG;%_.3CQEZ*M^>%P7+XQ]8>5S M1MAQ\_U3T23PLM9(KS8CJ?K/9>K6IZ+^.ZNES_(NEYW,6OO]0U%V?Y+/>2N. M!,,QGO-R@ MY)#A'9RU+8G^5S#HMM[AJ^Z]>Z0NAZ*C_;K?9W >V\91L[\87SH:&WH$B MD19_K<5>ULX6[XO.C])L^P!WB\&!5V&YK0##LL@O&Z1XE8TY"'2\#A:FSZ]&=IZFY,=.LC3C2 M1F#AN4>F##HH:4NK\T(/] M<=J_I46]1HC2#A?,HHV?V6-;75 ML]F=7*XM=1>'B^S@(=32DUA[4Q_ ?9[2-!9GJ;A? QB'PDB-$@I@DKJ4A5'B MN;Y6B_MIF'.[;5L,G T*FO=F!:8I7I3MLD+S9KS/!6<+WG+%A &]MBZU"A"7 MO<6JL^#@VJKQJG%_XE,#PMMIX+(CS&!2>'MO]E8N#@+792$@'A8J0F8B)QX4 M&B,-XB1@ 0TBI>2L,_&866TU\S+C,_>_P,H[CF#)?3=4LP%(] M]=,B!!J,#A)&JHL!0X=H67>[GYV3C;!8NJ?R.:PZTFWYK.4,51S*RJ89 M4 M)&%B#AK/=)")ZG7^6D[ZD:U \\*F0,=WVUV;4U\ZA6'O0CWW,1 MH+%TX 6(@M2C >!"^\4^C%C@AUJ*SR9V,ZM#B6O;5^FB$]KFNC1 N)^5165+ ME W.S5-#K)T&;>-*L%/'FC[ENJ5K?%QR*_:\Z9%L4W+[^PXJY$C_<9 M^4.+NM,AKA$+L[9Q"W.A5]D-/ M:>^P_\,.^V^/L?_-$?:+&WS3GE#E'C_GCFC$LEYE9\Q"7S9VR%(XS#K71J-G M]J M%VRSSJ&=V)S]U0U=N9W^ON:7Y%]/F3AT3U^PWKS\BOY1E&_7J*H:)%8H MH20-20 2AAF F'&0)+$+6$0)HGZ4TDBKA=99V"QXTO78.:/N"'G -3@Z#9*= M;M6\I9RW08H.Y:78KNEJGIWC^JYH&YRRY:0^"Y=EW=>KIE@G)IJL<<./4VRA>ML 3=51\3V#$(U$BWIAPE@BZH#-<+W MI5_Q+?V.J#))Z)+43VB]?I'3H'YORW":[/16MWRN<^U6J'JKSITQOE.(T6'5 MCBE[KGYRVKFB ]2 MIV8L[-5SA]4+?K3."L"3A""8 AY0"R)@G?@H3X/,H7G^Z,/2H_\@^ ,.9NX-LI6N^ MG]2THCZ,4HS%%[BBXF57A3E)>U]JB"15G M6T^NR>R*"1ZJZ39[G-%36#M,D8WH]],:+0[;52+1UJ#=<6#+#ME5(OQ@P*[: M6V9R_TX60I*VZ[?X>B#P= MZ5]P/5\^L MQ,5K,7$(7)F-[:6-+LQ,-4UJFT%Z^G0(_<+9P&_86J!')1 M%:O#A'U%J_7N&47+K>(>.L )#&0_,I"Z*1(JP4M $OH,N 1[A'DN#T*F-03L M&)29%6I;KKK>>+^-AG\=Y8Z:M)]-LYYXM^3V!1]S^+1'";)9#7L 8_E:UE-D M'JU$/?FP:=ONMV*14H[8I>S;_V8O*\A#-PJ$_%&9503C) 0XYC%PXYAZ21@+ M856J&CT)8691[%I5=T"=!JHCP.IVZ-[GR[@@6J%63PBU"35HQGV"F#.Z<.^O MN'#[[1,$'?;=/O6@?ECHAA6RAZAJO*=[?&8IN7E_W?2,58_,]&1,AUP,*-#[ MYD\BKQ4/V4/7*-#1K[%8!&,/Z6%H8O\C@]&.TBEW65WSF[+\>_D^I]?\_;_J ME\NO):U^*?.:7N7-)]6'-?V]JO.[MT5.JW>E^.&YI/U(=N59CU:@S2TO95:4 M[M'YI42Y+#;.%Y49=6F79SNQ+NROKJ^SKI[JJD?CZY7>7=W?U^[)I67/Y M4*MJX9,+S'USWL)U!."RZ=+E"/!%SHJG:J_UYT/QI#IK9YPKTVK-"D,TK]46 M>:&E2R9I-5(/IU==3.(G"1L*\?3#YM-V]II'?6+U-;]%WRYQ5B(^VM'N4\L<@1(1;G M\4Q!7'P:CR(+CLWB47U5_UR_+>EE60IKLHW]*![FNV_-G5 PZ,?=@U0_HO<( MG#Z7S6G3D]3;$K4'L0YY6J?N<4J,CMJ]I18[7X^3,#Q43SQQ;JGL?DNUJ[R9 M9BEAO'GI/FR3ZA+LI[X;$L!#0@ D40)00D)QT)(0AQ%C%&HE[QC@,+, #HLT M#WL##K"Z:/KE=T^<60JKO@%JI_+,;-63_7DX>D:IJS9/K!>XJF/P2F6MVBPZ M7DZS!JNBY=:S5][T(3 M]GK_K20W94:4,Q1VWYH[G:>;Y.0TP-3]"GND3?L5S*G2$^X&CJ-(EI8_X3@% M1OZ$O:46\R<<)V'H3SCQA&GVVX=LS@!Z@0?2 M1/9$YX&;NB%!""OUB#FQ_MRBTB:$-2"='J9NVMLN0\;%Q@*9>K*C1Z%!OMM1 M.L[(=MM=;^%S+N*XV,/[;XS*+4@',:>$X+4%V.#O@P+43G4*7HD#T(_3" )$ MW 1 YC* *'%!Z'H1QI"$FBT)+> TLY[H8#M5#]PI98J3G+SS*"Y$+*\UTT)L M;(.:DVAAYFH:QCUR?4J)@.A(D,XN@A>.3&/M-F&#Y/Y+%W)8#[%:SV61>Y;< M2S8P6M379)&%^XXGFTOKJ=.JK%?OG\KBD77YYF' W33T.?!BPH5.C$*0T, % M:1@F+J<1C.- 12?N+SSWW;L!I::[#F@>5T#G4**I11HH%O/43Z$^)L+BG8'X MBM^VHGNPW"+R=XJ(7HA.?GY&D?2U. V1##U?2K%LVN&\1=7]AW7Q=1/-6B41 M2CE#*8BXN%K#2)AP"?0384/X'#$6(HBU&E,H0YY9EJ[UPT/J3%,[[&=AA>YM MHI\9*],_>UW,FB31[KP6?Y<(.3=E\9Q11F4RR@^_54T!RX_.!GVGP__EH@L7 MR8D]EDNU=7AELWQ;">[R)=TZ[#A:YJVU@&'SF\V=Z)H/*PL^L[6,\[XMJKIJ M^AF^0>(K=8->FICY]B[.4H)2%(< )6D$(('R'I-R('Z#//3]$'&E84N6\)D[ M@T5VB 8-Z)TZ#,T&+V?R7$U[+_S.EG5LOI%6W59CNOM(%?K7@<8QQ& M$- 88:'E9&&.BRE@KI=@STV92UF?J7.KDXRGCH-!DLZMOH+;(E/)M%=A8#P4 MN5-)/!O_3-7@HNF>T6*UFG*SSCDS3=;P98!&DXW3(=)7_[:H7+1MG2VFYYBP MP%HNH ;HA5,#]9ERF"EHL(9AR]&VXVE?N@9)XLHK&_ PB@%$- (X\C'P412E M'DQBW].ZR^TN/W?TQZ1=Z"[]:K)O3I7FW:L=_C='L=UQ$FRU^]Q=?-GVGD<) M.VCG>?PI_=#I;SDMUR]WW0B'EU__63<)06_OA902Y:KW\55F%AL!G GH\J3H M$7#:X11M5ICS]EY:QNKQTPF>3 =/[;%#3]X4.6$Q+J%.K5'T=&+IQ4*G:B0. MXZ:*;Q@.,C@Y':X:MIGLTEQETY1;P7ZV"KP089JFP L361T?QP AUP4AA2Q, M$4\1TFH1:8C'S/I ?(,2S=$#AOQ4.VT7X)*>FA@=/'G1Y,43V;YGB-U%VWNG MPBY*P=P?TW MEMW="^U]^:5FSO4,TV,T)6 ?O_N'O7YL9Q)%WXKR#BG#C;$R%T\ +> M=C^YZ]);L55EOU7NV9CH#PH0%YLS,NDA)7=Y?OT+D)1$61()0 #MGMV8ZBJ; M1%Y )!*)S" /$Y)V$>)WJ5_&]"+-<95QTK8E>4 M03Q:K5:X;F2R51?0TXWGO0F5J48*WP2S\]RF'$*##:Y4)#[!J5L7*>=B"W\X M$+6_(EX+84$O[0(,Y%V K<2@%[E#3012Z &XHL5HYYN:1EMQU+ MU_8PKGVCL%;WAJW[3JI+\91L2PF:9^&]_ /"CF[0E62TW2OO)*W7Z7\W)O;9 MGG:C+UF/G_U:5TVSQ"EG"'DL.G)O)39U(+Q&$.KPO0L25+HN MPDWG7>SOB4,2X]1+((\S#Z+ 0S"C<0YSXM%0G(&1A[06^'E2KO/I]IV2F_\ MK"5MD%MR6DN*YT,KLNNM[H[.K/"NTV+:S TY36C^3)!1@4_F?8R_H7]#W>*\ MOU^WT/ OX>"O2@D#+XR'2<,,[8$=+^5M^X,7$8#S[15DJI1\J>NT8-;>0E^[ MT]??3A6K9RI#%&$(>AA(P- IC3,($!CY/< M0U[(,J4\&;MLN5[XN]KWHB^+PS]:6(&%_$$'I$B[A.S'EA\#N '+\S1N1UY/ M^YJ&YQSHP +L^01[1A?@%+!EGRLO^.WSY5]E1C2R'EYE9LS2):12=VO@)[K3 M>;\K/_2.IVTQZ8^%& MOV=/;%4]R@74)X8M:<8\DJ(8$I;*K3+W8!8+YQ?'*0IS%-& *('3*5%SO -N M:??K<4==+YXVKB^UD)HU+>CM1 <*&!#>0B7;"Z8I"6@IGC9.:]:0FI+8+Z-J M:B\9ED\1L1]NVFK1]KK]1!>F/NP38N;A+ LAQ0Q#E#,.LRP-8>@1&H5)1). M:E56J5)VO.@'?/0Y.X>]Q3YK7YVIZU3-&#C1E)YAN+I^]^ELK-U:6,Q88%ME M7\ITYZT(TU7'4;&8]@"VFC@(RO6&T<\%SHM5B[ZQQ5S? 7,,?K?T0Q0+,Q+! MC 1(V!CBPSS,8QAQXBHKV^#IJJ5S-%VF?P>Y?M'\RTY:P1A"8[K]P2PDQYT\TA#,JNK=^6%\"K&HC)H,4:K"H9>N^#)IINEY9F%5TO5_K2 M=+]ZDF!/NT]_G5G_O)O2G[Y&9Z,&65Z9%>U[/S$0M1]Z9T2 &]R-? M"G*/V>K;S__#RJ*IRKXSZR U^UT+5M.C=[3^XFW5)5]WM^3]);EZ^9YEDNY6 M6,\H^/8SZ%E=@!.=:V5$OL7SV>+6=.?&VZJO\7B936!02&A[EC0B\J\X6V9Q M>3>S9BE^[DB;HU%TVS3GBZ4[TM9!1-T5#4. VIUS*=W0K8?Y_%4HJ_=1,B_@ M),,,\I0)[R_E3")#9C!*6$YXFH59@+2 ::PA"S0W^2W7 M8,]V_U#+^&5H#]:FRP@OXC6F[6+$";O39QV_PK9.%1$PK)%]#0P-VSH[@\)A MG8QAJ]<34 HZ/5_G!Z_8)[[C%I5V#S6@V0E6&T3"DM":\;*V-ZPC/ 4%B\S@K^QNT(6#)7KK_B!+6.,_)2F&>0HBB%*2-PE%P4X MQU[*&(]SI95WCH#KC-HNHWQ/$TBBN@GT+W0ROMQL2*JWUC2%-$B6/RW)!7GR M+P:<.47^M#C'V?%GGM/?LKZO_W%3D^OZMJD_-.OBH77XFSK16\-JJC$0>=,':&-MD0E K/M MCSKB#C=+K?C2,0S_/&>9:330O9\GU[OSPN*J>&>M[,U0=R- ^ <>\6X.%V5"+6LZK M8SV;-.!M=[1ON3O*(WQ?K#9M^4N7\2[/)Q,-;FSGZ%A1H%UMD>GYE.YK9KB<9QPG$ :MWF/.8<.":(\]"/_31]&XB< MAXP[MM#;6W3SMCES3:":N7Z+TZ+I:,X&E=E))%,X)ZH9WQ .YNE9>/-(ER_8 M_C?!LCP]&?.A59ZA_]9VHAVN\EX6E][BS*;I3>^2^V_@3_51G5V+M[\7G7, M^;_)=G5V2F;'5S[!@MFFM0VP?&?U4T'8:<:_5OUM;9=@=UMUI[W=[V4/TZ_5 M^F]L+5MWWY7%OQA=1BF+&?<2B/PDA(A'%&8HB6'(@RAF.0H)TT)O=,;I+*'P MO.N;V1FN35GOJ,OFHWOCQR9JN&>>0[7]Z$W,C/GNR =/&9NJ?]^F,_]\&UVO9 M/?,;>ZSJ]9(% 0I\G$"&D@BBB/LP3S(*PY0E68Y1FF1*,=D1&HZ]@RU5L",+ M.KKJ&2CGE#.=A&)!9+W%JB^M5BK*A#Q&V2CGQIPM(65"J&%.RM2CAM70].^; M9MV>1FZK*TH+N:KQZ@87$JX5/Q9B;VJ=W$]-LQ$'$_&GK)246U2S#&(J!2:0 M<^Q#E/D$IBE.8>+%&*<1\OBL)D73XLX= M76EB"S57YJKCKS*IFX?4EDZBV_3N?$[,TTSU7 M\AY[SQ>0C+7XT1UKBSYAO>-N ;;\M9Z_Q- M,0U-:ML^XT3WG"7/:9*&80S#,*'"7B8YQ"1(H.>6#1-U%FE*-H?&Z)J&I>^3\W)!E463<:49+;LP5DZ\R[V*7&/ M5O+D"_H)N>_N93"(WC!6_UI7F\>/I78>[L@0CD\5/64@28.6MKP&J=9EI5-, M,J:"\25I47J]!3DFN(/D6@49C7)JQ\:=+9560;AA!JW*XP:E7/3OM]4-JV3P MRV )GGG=\?+;>Q:R-O+FP_7!#:?)4CRGANEE:$$#I@[WN/ .EN.$K&857V?& MG*_B:URH@XJOB4=GJ'D? G&XJW$_IN+N>S8OBCX$KIFA@OV$\AU6K%\V"7-7 MJ!],QBO5HY_7F-7Z\Q-DWFZ]^7F=7%1?/C+L6\ON.TQ"G.R:O8Q9D#%$.629 MQR%"/("8!2%DB'MQV_8DFS%3G5:K%:X;V:JCB[6^F:1 W:]!+3;R M9OC]=T@H?)GVO@!;L4$OMRM8@S<[G6\^)U%7KG^3C$7#Z7RM#'QU!O4C";HO-@CJT5IRBH$9+<&KLV=:DHI## M1:KZBN'QD]PSNEFQ:_ZQ*(LU^UP\R1J M?@2BGS%NANPV[;<>A<<#AB7/9]B M&& 6011[/LQC*@Z*01SFE&$4$*T,? ,>')N"+4!YSJTK-D]- BQT[L.7GA$I_;WD"5B/W%G1BZ_AAP,&\!P5S M%1VY]!<,I>]X2)A'X<=+3U#Z\U<_BD;5V3CQJF.K,J (WC.)A5V472A!,O"? MZE[%*:FG/8D+!=9;^^.R@M\E=4NW&,(Y8#%&>49CZ$8)^'N8Y M]5@:95P++$J5LN/E*=OGR$S:8L>/W+C8/S>%02-8=76J;>Q.E*2WI#\=Z*7% M\^^V\WX/7U<@;_/46D[$,Q:!FG2EMX7'I$QW7M@E774,WQFA?4H$PE^?KA6GW[?2G9]-9[@5!Z:W0@C\7>K",B&.VP M+\>:;7<](\1P9SWWB+,6RW+;:?WAI3A.9Q[Q$IBW'5##+!<;:X@AYE'F>QG* M Z2UL>H0=YVY-M%HN>,&_"3Y^4M_&E3,:#%2M=JFZTJ!>FO:KNY<-&0^4L)\ M/9GWI-]:6^8CI1AT9CX>PZD9^ER4[),X531+DF6(I8S".,LBB'! 81;A$"*: ML"R,4C]'V($IVC'PMLR19 NT?+FQ27N]6[5+1MIT:IM4%.G*0!UI8UXCM2?_ M%@W5D7(,C=7Q.(8&ZPD7*VGX/E;U=[QB[UF^_L[(INY:-.^9^;465'\K:X97 M$JOB5UR4OS!>U>P6_U@&+.0,^P$DA&<0L22".4\]B),T\L+4B])0JX>>%:X< MF[8]52#)ZI;S6M&[HA6;6YMZIDVR _;\+,".7RAH0\GQ @SM7\LF>*'_!;:CRRF%8'OR OJ>TBRA*3Y.N"<%>!D.M(%/6^4,PN;B(,B)5H#&!9.N3TYM=S5) M&?S>$=0\$CF9'X[75K7FTTM"T_43O"U0Q5\ZV"8MO*_WZ B5K9U)?0LND MOE,>$F_JBF[(KLLM\["?$HI@ZF<>1#Q+(([EP2QFA&",$F%&5Q6_;>IRN MZ]-CS\#/M@HYSTLU7IEYXKT92RW/1#ER5X!=6,EZL#[XP$S"3&3EC5_5[U32;AZY>^,./1T;6C+Z7@5M6TF]XS9;BK)KP M!"&84))"%' .0,($[I:?VWD"&5^WU9(TI;ZK2$] M:!,V*2+KMJ5K_J%N$UOV0*^?%3.S5(=Q9Q-V'DW%@:!?E:S:-*O^\/[23NPY MLYR3I:L'PP(M!0(S5FRIBWM8PJ7QGD$$_H:)#Z5E?2OK%F+?W^N_F#UY^*A6"\]DK=!>DK>CQ5NG(XT9A3^V;7'[?W;/CU2M ZTE?W=2L E"W'*NL X#58B_&DQR@> MP^(?-6/P63PIQ^55_= VO7AL\9@ 96(S:D_B8C>2[\ENA;A\_H_FX.FB^R4O M9%^-=BS)VST[-:1D1OZJ[84(:D:*QT)((T841ERP*/NDL+9'FM24K1L>6[,\ M>AUT,9'Y[HYLZ>/@HLG:H/J^X9?RL9 ;\VWQP.C'JMVHA3OZ<87O5,-[(T,X MWM6^?+WY-/3U6@[:GC\'WN XB*"62J:]9$O:T-MO=!0!?I>\6/*%%:0U[MIQY-ZB:#HK]*6 MRHOU%W97E*5TS'.\:MWKMPUKK?%E\#0+DBSS8,8HAXAY*2_CM_%UOQU"]^NK/:O]TGX?BFZ)4F>?;+)$5\\YVT_T[ YOI3^-HW M4S9%^G-<7CF8Q/F0S UX,W/?7HS?A5BN>%^L-NWEV]9S;Z\JMMW8 ME]B/,*>I#SGU$$0^HC"/ @Y]S'@6QGZ"B%;1M1VV'!_C.F[ 1AI'<;21T4S! M3-MUN>@@$';[I"+.H^594=OIYM>UWEYUM&UT',JH<#\#+Y.\2E*LBFX_^WW+ MG\4Z*KL*L[0S6&)J5MMN5Y$OK;/ET0VB5'=WZ_Z:]VNU_AM;;S%190]XW=Z3 M"F,Y-G>"A;KM8+]/-3CT'05C0' &]JQI!+E4=*40[+*L)LV@E[Z&7#2NU-"! M60Q,A5C[ M)J&>FV+-OK/ZJ2"L:QTEG0)@F%*/0"B+,<08IP2I%' MLC#72@IWS;!S0R",(VQY:X\]NPV._9!_5[SE8 MW2%"#:F9^'5_!]ZLP8!%BSA5,^G1%H25:W;G1;>:2?E'P%=ST76*A?J5K66R MT8]E%& :IDC8>Y0BB'#&(4[R#.91RO,D%?_)]$ $]>B[/LD- .PZ# 1R . I MCL&Z$(*:^E6TR.ZTIFE@=1!/%T P)!UDN^A_9KJ8%^]T1_TMPIV^5(TAVNG1 M, 9I^A_:E%3&6C_J1GQT]\(J2AR>:\Z%^2OO.B.X3"EG81)P&!&:0<0)AJF/ M0T@#88+R4"B+J(/G*!)U;'NVQ+89O/):^:$JU_>-XEVRE@+'[8PKM>@9ERT# MH.4 ;%D DH<%V.FK8\.!CC32VQWHRCR+O7KQ)=%-^Z\_[@MRWR=],W&&?\#/ MX'&KTZ95\?J^KC9W]VWF^)CV;>6+:ZIM-"U<=:SYLK\UI3M(\M9]US!'C:W$ M;^^N2OH%U_]@,D_\0W=072(?1X@&#(:AYT.$2 ISWR,PSP-&\@![OJ^443I- MRG7:]Y9<6Q/1X!73=.%&E*3FK=D17<]V]C1;F?<:^# 1A=#/))D4S59^QWE" M\V9=3 I\E LQ_8;9XKVM<=D(8]"(H;LCHABZ;32)2U+@U2"+0@(:-J=_U6.& M(LSB+/=]Z*-$=K'-)"XAX9"G7D@3X5JEOA:8JTWF'!N('>&#E"TS/%>KL@9WL(5N2_8$Z/O-_V19EO&W)UNFD&M>1@F MV$MP 'D2"0(L2V3S[T_D7;/6@_,_][[K5(A= MRO86G7N(>-^GI+3)4GJY["=5,;X6;6E!;R&J*\ R_O^4J,:IZ2<'G34=?4RL MERGHH\^:[9:[VL O#,MZEG8J=S_\[X+58LC[YS[>$;._=4P6*2G7+7=UYG*-(/7%VE+ M>W]:=W$@M+_=WLT',S,TVK?@]Z_[[J?Q4/@EZ55VP9AEG/@N] M*(.^1W.(_#R%>9(DD,54_(>'<9ZA9=GN0(KP&Z/TE%9'UJV.(57E13*@I6YG$2(1Q[:;A<5VN\!0E2ME9F8NL9I)Z&@8],0'7-OS>X,AI[9S!P+=6Q53CQC>!(IRF+- M/A=/C'XJUV+6BGPE,?V9[$SZ!?^]JM^M<--<_2B:91#X(?/]5'@&600131$4 MJTMF/?N(IU\LO@LK#YJ&/ MN^4TBZ@?Q="+Y1DD9AQB'WF0YT'*L@!Y?N*IF):CD1T;CIZ6FBTX%GM\I5\D MC-XZ[LE8#"">97YL!8J7!JM/_&N_\H['FV5=G15CNVK./W!Q':38W7\KQ;%A M5?Q++D4)-R:C!+_BHI1E3OTW1% 84QHF,,PQ@2A/(HAY&,(41YBF699R3RL_ M7I;75K?:YNQ2B9JW!]?O M/BW L#Q24MX50KYG^1I\WRE///F$BY6\08:\JN%WO&(+<(-K6:IN__K/5$WV M:R;5R+]6T:26S_YLF/K\J[K;P*VE$%/ M>ASH7%'N<5-A160]6V FK=:=X:A$1A>&IT><[;9P5*#A5>'X@X99-1U(B 1L M(/_<%#7;6>>/52UM\]YR2T.^)-R+>*L3EB&$N0EH8?U M0OF:'#@/[F\K$%M\JX>VCJG-D3/=_W4UK+;]N]":61)/SXA$/^U94=GR+2;X MF&G"5N*/)O5Y$X+,5'.4*&0XC*%%$A/#ZIK1-@VN V\*<.:)4T8$,TID-) 2 MF(9! /W<#^-$'.RI%VKE^!W3<.P&["AVY><+\'^]GSW/!X^X!D^2_@+@S?J^ MJMLSB.\M/*_]7P<=W/P7*)IFTW=>JP90M]L' &[M%:%L&9H3%.8U)N=%/#(8(X_JN_RW-;VJZ[V-N;J[:PW0U<-:U?$?&<+Q MNM^GUNV,IKK3/R;YM.MO26B]!7=;X]8N'8#.[7D )_0!KAZJ36GAUDY1:*,S MPMBXLYT4%(0;GA=4'C?;HW_[WL+ R@+6FVHE!B=X]7V3RR9>,GUT&\F*/=DN M.$8PCCF&R!-_9'&:0>Q[-,D("0.D=9VG1M;QBO[MY^\_@X=-69#B$:^,CP6* M*E3;4^TK1F_5__8== RT_L6.!3#DX>6IP$&P3T\-EC9F1:*S[M5ZBGBY?6N^ M;7P+(:U^(PX7M/OB0KO_EE]QY_0C/*UP(7R:@;_MZ+V!!>@)VDUA#\BDKU _2DB]H0#T(Z[%>/C[*+=H?,*OMG--^OOGU7+^51'LSQ,NSJZ(8,@(X# M\)/@015K4%TU:BO4JE;T%NN40AQLRC#(,L#B#!+84YB'\:R?0.B-/-#+="ZEP3JAJM?%O[#=SE8*\MNK M #I+:>Z*GRF13U3X3+YBMM+/=/3M&_@>-?9=>BS@+$,IC%+?AXA1#O.$(V$' M0DQS+^*(:Q4O:-)W;!%ZLFT'E6YGUXQJZJHS"+A'O22$?H0X1'&.(68\AHP3 MY%.62[Q@G3)HE^K4KY3>JA."/WJ^(.X;CO=^T]#)FDWI:I;9H2KUK+56L_8% MZ!ETWIM]2A%NF["?I?X6NJU/J4:QK?KD,/JQZJ]5^:N@V">\OV<-J8M'N:-K M=T^?'LFQK18,P%^OKFYV-1$#'M1CUPH*F8Y@V]6%GG484X.#3NCJHAI%M16& MGRVVK2[J,,*M\9:9Q_;+IBE*UC1M\GC3MO-L00@2/\LP#C+(N>]!A*( 8DX\ MR&(6$\1C'E(MX-8S=!ROZBU5V0TR%UYO]QD;X#><4Y/:YF]!>+UE;"*W]DX^ M(96E'?LT!_9RG-#?,W)?()D+_) M5VQ4VQV''G">^ 2C6!A_V1N310G$<1K B(28,Q)Z2:S5!'V"GN,=X:@*STHX M9TJ':@O=HF;T%OM1C=QQD,95H9SK6,P4M5]S(MI^=*T+ M^8T]5O5ZB7$>ICF.H)_&7*S\P(-I'""8I3S"TB($J5*Y[1@1UX'QGBS8TP4= M874'\*Q^IKU &U+KK6(#@;7\P2F)C)S"LX/.YAE.B35T#R>?-:R$&:VF_X+7 MV_(]><-Y7;+;KG/YQ^*)_8WA>@_IO4SCV$.4^9!$&,GDN1SF6< A#\6A+8ID M2$6K3-X:9ZX7^X;U][]5R<"S(+UK[\YELJS\B2YJE[5)4=O]7T75FA9&!NZ6\EK5?/=X-B:G7T@;,#.#:+@B03-.79 MYKMFE?*XW-,73%9$UC-/+4EP4F:K" .3HIE51YP==;[2B"G!#NHB)A\VV\ET_9I^GR \8@P$EOCB0$ )30F-(0HHR1BG.L595\$DJKJ/1 M+4VP(VK8>^BT@M2>'DDI_;4G"$(EC1@Y1[F4R[9["-,Y2Z.=)3!-*PPQGNC&" PIS!0@ZHN"# MS'@79/7# X=Z48\-&$MK&!A0%=0H+'!2F(MB HJ1=[Q OY-[1C==TW?)6-\"8M_W8<\<:+G3VTG$[."^T]EVY*^-5B/K%Z+DZL,Y:TKL+YG8$QS/]NJ MQU=3P7AM_L08,];IJTES6+.O^(Z)H<.UG,]&G)G:1(9?<",<%G%TZ@I'/MQ\ MWV7'Q0$A?A@SZ"/,(4I"!''&,QAPE,6$1]Q/E;+#->DZ-G^RUU#1)=>)S[M+ M-_I/G;6NKD 5$^A$+9K6L.=!AB>ZS*,%:/GH, CZ@CS!BDKZX44*T[&33A1G M9C*5%6C+0&K+/FXKU8>;T6QJRWAH0?5?MY9>O ]99*FPH3B.HIC;OQ(#LMOI2/A9R^!?!I]RLP"W>MT05+0T'96QK""]1:VJ&R>A64WIS=,8)L:?-Z%! M3=BCU ;%UPS.0&*TQZK!JU_K:O/XM5K+T:MR790;1GN\N:KME2A[)EZ7_UL7 M:_:^^J,4_L.O547_*%:K3P^/N*BEJRB?6Y(PY7$8$9C@U)/]63'$"%T!P"X;L@AV_"R Y 3])GO\B&^RV;$,J^ 97@VE;@#WO M[2NO.EL:I\)7G36SP^-KSI[>L=.9(=::Q@[.N.RH7%#2)5Y=^ MD.419N+0&]$8(H\1L2$F!#+*8LIXG@81UBYB$@//E982P32 MW!N49#$K0QHP?EGID1QH_G*C ?LG2XR&OS>$Q-RFOG\J'S?KYC-[8JNPOQ+R M..%!GF?"3Y1==@(_AAG/$HGPD)(@0"$C6OFT([0<+Y>6% @U43!'5*,6$[(D ML-YR&M;6='3%IMS)[Z!SAX*(MH N1RC-"W0Y+?(1T*7"*X:9\"^"R/L@1XR\ M-/-P M,T"<3JC6*(<1!![K$\2AEG$8VTLN'/49KA,NS3_C)L"[XL6=#,B3^K M*K75;$4!EUY[.8KM3LIF*TO^+)UY,^6GQ#W*EI]\03^>.RC/_\9(]<3JYT\E M_8H?E)!FQT=PO28%"?60[(B@TY%8.S+J+;L!3; E*C=3V=N0;L0Y>%1^K5#K MM'A&$=:186<+K$Z+-HRG*CRMM\2:>KV\J2NZ(>OK^CNKGPK"6J@\C^9YS&D* M*4D2B?"3[*KD>ZH:B$)GM7+^%JT(:W> M*C005'GI34DSMMV)=P=;G?C7?NF='7:6139-MV32B(&>$Y))Q[8L5A K,X)]!C89#[/D59JM1\99*2XZ47O@=; MNAK1YE'5*(3Y;0FLM_H&LH*?MD05>C]JRJ\1.+>E![,8^#?V*'[+9!-;F61Z M1CV/W;*RE6:J(O)H9'IT@/F"S"IR',2+E5XPZFFY]^+T>UD>O>LZ26*U&GB= M>JTKC^6<]K4O%5'/PKR0SGZ'RK.RF':F/!YPSHZ49\5YT8GR_',7AH@'J2>: M\*1C0\P1"3W,FG$ 4*HBH.TXZ"E2KQ,('1'Z;"1T[!VS[W0_XC471\@5;IJ" M%Z3=YKNRMGW$+XQ11$B6P2A!#"(24IB&.8+()V$8!BP(,ZUV@!JT7>\9@]Y6 MU\)3:2.FPG6Y9V4C4<[Z4.I/\A)5$\%41\%J=L&1VO3,Q"!QMN+@)1M]1:2C MN*N! BR9$1W*LUH5 Y6\-#(F0Q@"(^-G>91H;JL68K]F-[*3:;U^EI50ZZN2 M2IB51_G(,L7,SS#)8!S+VU3"&,R]F,,TR'-.>1JRU%^6[$ZN7#6CHTY<:?%D MW>(9LJ >J^D+P-I^H8\]&PO M@QTK4=;6WA;FL3GA>^&5MA1PA,>N/H'^0_2CD MJTIF>&]T^NTW=6=T1L#I,^SELFD>,CIZKN^)QL4R.M">&7*V(^VX2,-#[<23 M9EMW>X^;BSV+#@$PKNI:S"Z3R_.7Y_TC_:)ND_X__'@LNH3%#M1IF;.(97&2 MP2Q+DW;+D 6-)? #'*0]LBH053 MUCQ?V)L1MV\V>]V!= M@9:<"WM\S>I[6%?G2]?$/@%#+/O6]7^WJ>OV8.3GF9_3 *9$8CC04/R-DASZ M>4Q91E$8HT"G6?#!Z%HF4+\5\*U\!9".EM&1YE 7:H;+6$+- 'U+9@%Z0A;Q MU4_Q;PLC_6#L>7'.3XEUA%5^\B']U)9O1O8C_TXXAQBGA.(XC2#J9RV,KQQCV32W:S.Q MM-)6CL2X(%=E/]9L"2I'[ ^S4HY_:7AE593%FJTD].&G?RBG M_C(DE,5>%D*<D0=;RL]G3[O0C@GK)FZ8.* M_A2O_BQK1?-TWE+O04X'VNGQ3J^FM*-_$:@AKJT+0162\UX,:BCAZ()0YUW] MP-F[^_+N4_E1WD%>)(K';H3? MWS7>:<#M/1;.;LV&S?_:"+60DC5K56MSV7Q,AP)GF0H]>S3K+%C.J+E8G491 M2G.JLP4R+U;,,-9Y^6"&-YEU11BCS4FV6 A]C7O&DFV[7(^B1^4:V&7 M!3=;O++#0(*\X&C$8ZN-_!3;Z.#UH_Q%L_1BAJ*8!9 FB3CC9YDGO"X?0X]Y MV$=9BOU,Z?9B%FX=6^(M[T!^1:#HN9?+GG2U;6W7V>ZWK#,$CY)7W7:S+N=3 M\7;UK@XQ1\^,%J4C0VWWZ2Q D*Q*5FV: MRV#^7\@\[8.:BZL9J[U04KWXXMJJU,R^\WU'KE_.Z%;\ G>%DF\3?6YN[?5K?XQ_\6Z_O[:B5]-MG9 M^*1KM\0LR4@8^5#HWX<6ZK"@9$VM9QFU7A ;\ M(1EC*PIX58,U_@&J?%7-6'\0E.&18V#/HABCM88N', M)C!-.(IR&F=>IM1_X.3HKK,8)#G0TM.HAS]2P;C]N%@P7;]M)Y-)L?^1;-5VW].VM%Z_J.7YJOA/\?O0=W^V8=,>DJRNH6+ ME3$OL38_EMIM#D:&<'T6%90[M&30TUZ CU6U+BO5WM%3*I@./5F27M.G&!'< M<@VEHHR&?2;/CSMCL\E)X0X[3DX_;K!C?RKIAK#=.:C9[=N)1[D?P3"+Q;'# MBV*893F'/@TB\2\/\5 )7G*$AO-DJ2W1_J)=8YL[HQ2%G?QR4?46Y)&4)KOZ M&7$U]O;+Q39M%:DZR7J[][@\HWOXF5?GV\G'>3_8SR<>-0MU?,'U/X2+D*_8 M=T8V=;$NV"X!'J4)23)$(1-J@\@/Q7$@2Q(811[-J(?2E"MU*5&@Y?QP4-5K MV!9$/>R8 ,V."[W@Q)C.U.(/EC2A9WWV1,&>JH.* @7A+(4*QBC-&@U0$/GE M@5_E%7U'?7M)5N+5^EGYIUUT&Z+K+<@)J1VX MZ%,R&OGG9P>=S3F?$FOHF4\^:[:/MO ^!^@^';B/A/;YRM;7_!;_N!&;D+S@ M6*_K(M^T:_^VNL'MOA$'&4M8B&"09A0BZL4P#7T?8H\&E DO/D5$I_#N0GZT MUKM^J9[$D>\+]>!C6\6X!20YP$?J^R[_M-+'1[IT/M3V\1FUK&=:)M&F%D#. M0<7E?<,"]#R"(9,RU-:Q:<\UL*0O2^[#I=S,ZF)84MU+-\36L&96\W.!\V(U M]'UV8(;C&E PC!C+ BYSN'C/"G'ODU/#:SV#.B9 MLA$EJ5DI.Z+K&: !S=T1PPG:X[1PEJS%"*%9#<&TP"_7N,(;^C7/LKRV#4;\ MRJJ[&C_>RT+;MOHW#S*2MEX,8[GX(Y -W4(&_3@,J>>G.4FI:@WT62J.%^V0 MG'8A]'G5C*]7:P+K+54=6;6JHR=EN:!:^OS8LU5/3XHWK*:>?MCPW-$U;"SO M/OR0)TC6+'F4Y3$+$$QXE$)$B \S@@D,"$E0%O&443MS)"SQ=/&11I&TR:>M-<'U>^O.?TL MBPG-8>L(;)*']27K]CI@_J^6&V$U5WB.$_RC(;08[X\ M'<8,9GF4PPQG<B3C4^??FX\77Q%LSW5H9V M-:^*#]Z=ZYIXU>.QO*QGVS*C?6%\J(%IG_92X377G:K6$[NWQ2>%O.2F M^'# N6^)3XISXH;X]'.&(*N$R(KO1HS)BBVWJ59L23Q6![#($IDU042 M.V*0,AA&84C2@#+/UVH./D;,\0+=D@;UCO8"E-U%(UZMJC]: ]9'4:K3;[F MFQ7 VU?$(_\W6(1)VN(F_5]_D241P.W/OXN9;1V3__=__-C[K]!; /E==9T8 MW@M2@]_Y[>_00K#0/#(BH1A6BO9 :;;4MF9;B/]E1,7"G!K*J+=@=:537HIC8HQLW>*U;M6)O^P7V\G!9EE<8V)L%]/H,P8U M%E\*_E<6ZZ;$" MU>L1')%V]_WV#(-O/X.>Y07HF3[$X1J"18">]:[GWYBD@<:^^@"L4U+<,#UO6[ M3Z?RT[8I;-^JU>IC5 M]T2EKY*C Y;!$"9 &N2>TNUJ;:W][@<8C[*&Y@.]JAI-@_= MS]J(T[YT)4@R$C%"H!?%%*+4\V"6)+&P5RS,8L8H9TJ9L.Y9=6S>MKSO$&#[ M?F!\L\(UH =]O"6>R]-NTO!@TK;88?V7\-A_";C[!+J: MH+7\!+JC1]6]9@WV90YECV/(..5@1D":.31YB&XS"T4["1"[>@T4I#%+LA1F ME$5B*X\BF/MI#G$0!2A''HJ\])(,B)E*6J0_W-?F[3(?_O.RS ?-DA8;@FO> MP1[E/C@I9YD2S%'ZP^N4LDP).Y4 <6$9RW;8KY7\EA_9FEW=U:R-8>Q050(4 M9)F7PY3EOKPY2<2"C3+H<\Y3GE).8D]GP9XGY7K)5B7L*0.\):VW9$?4I+9H M[0BOMVSW-,&>J(.>Y:OKTK: M]6S: VMH[B[J [K[< <\+(#DHDUVZ)M1[1EQL@GIRV_IX]8@/.O'KJ^0EQ^_ MP0AFB^'7NFJ:F[KBQ7HI-JTH8ED&(X+%[L4Y@A@G*?19&"0\"VG$/)U2L,'8 M6MN5?A%82PD\MJ3T=JFA_&JKW5 JO>7<"70S+I#V0CW!NJ65.!QYUJ5V0J27 M:^G4(X:M0+I+JL<>RYR*9?F-K65?R_=B599W78?U-DM^R:(D]^0]$<>I= 51 M!K,LHM#C09*2C&+"Z1;;_5:CQ80J?2N$?M"'9?52K#V@)!ENP;*&PKHOI,O9" M'.$X@PS)4AO,*,QB#\,$T9QE*4N(IW3'/3?CCD_! WJ =/U>91E/U[Y"L79G M]KE4N1!ZFS.D:5@O[U+4'X\&\O372.T=PNX":?@9=%*]T:G7 NQ_DY^ E5X MN.V7-V@T4_<9A.L*8!F"?KFH![_ON[86@T]B<*W472AU/5W!3S(UGOW #X\R M;_Y1_'Y=/6QOGFJP*8MU^^3BQ<_PH^"6%-W'6A=W]X)&]]R0M36N[U@WP%_L M]2V8?=(G6B+,Q\^(8I\TY5GN&MNUYFT]EYW7]+Y/K M2?AD3ZS&=VS[^[;SUY)G49BDE,(48R2\G!3#/,\C2+B7XAWW' MOLZNT[&52N699U;Q//AFY\N^Y]-,N#X[YV8GD]CS=N?0K5R@%VSW5-?/T7+; MQMFGQ&8KQ_F8G[^]X^P3<[+EX_Q<&.+0%,*[8Y^+)T8_"0^VO"OR%;MJ&K9N MKAXD)NJ_6NY[:*F_,5S?_E$MXR!"N9>$,(I8 %$<,9@%+(,T\2G.DB1,B!Y" MC0D7CO<6L7(23> :(UVJ;0/.-:1GS3MV8,L/V#,$6HX6+=A;6TTSY&T!)%M M\&41!N<2M=@"R#'B85[HG$O4= 2J<]%@^@ >K6F\?;A[7S3D/8]=TNB)0=NBP<9&W^_RPUMP.^2.&BI6P*M&)7,"+7B](BSP5:,"C3$K1A_ MT/! M\NRE!?8I5#[,:)Z<5%6H>.9QH!C-T\HIG0Q OM7S\/5/%YK"VSH7J)*= MUZ/75,:1+Z[[_BO%A-HZ4;6P09XPGJ',@ZDP1A!%*(%IYH409T0F:P:^C[2@ M=&;DW;$AVU;4OXE8D,:,SA0(N3'@(4+X8>_,"Q/*9*1CS7[YX:5Y/E]]8"+[BW!W*>$0A:%$5&(, M\I!DQ$^PA^+0"(;X/$W'&\2 ,-A1!K]WM#4Q E0TJ!C:L:L7/8-LJ!)SO.)I M(6WC%H]0?!W\XFD5G,4Q5GC5L)SOX7%5/3/6HYDDGF4Q*%8OTG&*(T MS&#&PU08!B](D>\SG&B9@TF*CHW!%2'U1K@*9&"J->O[)G6F9@"L:D)O^6]) MPVTVR:F>5A8K_U0EM54".$EOWEI 5?&/B@*57[3;V?.WLF9X5?R+T?^N5A(" MZ5=A:22BYG4Y*.JHBT;\:IA'NL4>6<8\XM0//!CQM,U>2"'VO1SF81 D-,]P M$FN%S%PQZMC6R&+BS8Y%<">8:X X]13[BAEYC#%MUNUL^M3LUUN8%#VS=_WN M4U]P-NP2?O6$BY4,"T%>U? [EAER>QE +P204NPZC.9,/,O %?W[IIO(+1BM MX-]]3U%;&G;<;/1B-M]$%U);RE9M3VJ-GF'%.%OOVZ0N.2&>3](0LE"<"%&4 M(9CS0#B#*[Y.F=W!Z%K6UZP3,QRB#?HP2B A% M,$UR'X:>QR,_%?N<7E<>V\K?5)P6S5^Q^,/6^)_RFQ MCJKZ3SZDG\EP6].KNO[PX[&HV^/F>^',J[8B.?6N\^S:+3$@J:DW'#DIY_CZ ML2&BWA(Z 00,5"76RM88$\LH6>/D@+/E:HR),TS5&'W.H+10.#=$%MG<,>G= MR#J3KQL)K/$./TJ;=\U_8;(')J[+MKKQK^)@)?[]V^,CJS\7#X4,8$5IF" & M21X+%R8@".GNV6NQZ5H&%X!TS,D?Y:SM.]OR MUQ;W/G4<+L!&\@A6DDF-BK&+9V?./#&D9*8M#&SS"F7QW6,AI!$C"B,M6)2Q:];&!:6F;%7;V9KE MT1*ZBXG,5Q=G2Q\'Q6[6!G64K73NEKK]H^>FBS7X2\_S:88S"I,L;TL!Q(9* MN=A:HSC/4$CSS+.;CJ3!G.O$25DAVZ.ZXBXW96L]^C4L,Y'D,E>MNW62XL4)1"&H013[,P]$B@8V_' MB+D^I/2D6U>';>FVS13US.6HPGR<>3EB,40D#"'**(99&C#HQU$6TA0E/DV7 M3ZS.J[E5-B2J[N3*^#?X7)5W<-567W65-Q85IK9?V%*"YD&KI[H +=T=7F3_ MY7P=^7*T3;F*A)9,\RBI64VMBM O3:?2.X:N*KN3 WUCC[*PK+S[5+;')&F: M/^]*P6(O3@FC(0PRDD+DA1[,"?8@SC,29VE(DD3K9D:%J&O7LF,!['@ R;4 M*LK,]:GH,%K6DJ8C>+F"]'T[#8EM^6PJ).?UQ324<.1CZ;QKZCLQSNJZ[\'6 M>FS-U69]7]7R(GW)?2^/,,]@DJ-(> 19 '/$&4Q)G*1A0F*<:>4CC9-S[C_U MQ#NLI@7 .\KZD&^*"E1U#FRI1=<]V&KD>Z>1CC38T[;I'JC(:,U!&"4VLXN@ M(OBQDZ#TEN&J[\YCS<>JWF-<7O-!E\9EEL4T0KYP#2(/B97OIS#+0@9#1+&7 MY[GG\6P+;:NX]B>)ZF4U[$DK?^_6<&P5%*BX\NTHQ6SU][3;]N][ZE(SP]Z\ M%DV LK"VS, TP7E-@;("CLR!^INF>197M$,^U,^R&+[I> _?DC+*L#B0<'Q] M7BZFI_!/F=.?9TI:6AZY=E6CMY: M5-8+^-TJHH6NY$9+5HG ;(M81]SALM9ZS[2#$*F9V&3?L^Z_G\HK0B3F=^\I:D3*/H M:>KYQTK*4_.0K2G$L.521Q7\M*7_%YF5LE/0MVD%&;1:4I?86I,E!9(SMU=2 M5\)Q8R6-=_6L V7%\D.Y+M9;7)Q=<.[[&J\WS9('810%&$-/1M@1$K8ABXD' M8]^G48:3D#.E^\8I0HY]@X[T#L!I'S;NJ*M9@TEEC5L FRK06_6FTBLO=571 M1K9X,42WLL5?]@MZ-N%J_R\(1IB\VY5->RV^E(^%A(*KP6S4O74 MSX_@^JS;=;QN*4,>V4V]&#WD)454&/,&<3 M+W)44G/0R-/#SHL<.2K:$7SD^-.&!?2/3%8YR"NM7<$82W.6I$$&69Y&,C/2 MA[DO=L[ "_TL37#F^9%.R>0)&EH+5K]PLC\52HV#JJ->E;JUZ2&EO5URBV?[;PD#_&%17 MWU9=;?6NX7:09![/@P RPA%$>81AGF(*PSC@C/LDBC)D ^3&J12.357/.R ] M\V"]YQ?@'<.6@&_B^_+69U'306H;RAW(<^@J+B@8%L;:;N0+H# MQ!QY U')NLD?"] +>0;/P$DK^%>=*!.X/+-,DRIHSSS,F.V. _P@ M+*L,#_*V=TG;2Y:%G*<9AB$/(EEA$L TC"3*.$NCE*4\R7R#)N!JU VN@@SZ M?TL^P$\2ANTOLF"7%LUCU>"5-$*/)XM2]+8E146K[2,6]69D^ =P9U)7[UM= M%:V-%NK:U?!T]1@?)A6F;9WUY+=D3A6)SFK_]!3QTF!IOFW<30R7I,"K?3_. MJQ]%L_0"%C&>Y1"3.(0H) BF) I@S#WJ1PS%6:I5M':&CFL?=DMUT'Q9."2" ML"YV]!DUJ1D$"\+K60 3N4TZ>8U)9:]7UTDJQ'X04H0"G>I55"D0=+^(= M"W+WVG_96RY4#ACF^E1;X+:UI+?:+2A(O[)*0V);E54J).>MK-)0PE%EEQ="B0 D\?=!"\ O%T77_=_Q; MNEF_5'U&]^[&1&>[E;]4+<,[^XO'TC=W'WXPLED73^R=L*IW5?W<>N>*MNSD MRZZSV[8TP9;H?ZI;E]/23IN.BP75LPO',EH[@TQ*8[1,3X\XVQH<%6BXP,8? M-$#J-(;2Z5#0KOG-'@VO0]19>GD010E",,[\#*(PXA"C.(:QAU*.4$@3EBEC M=]KGS_'R[NBVT1CDA+*2J!93GB,RT/W=TNTBKH*R!63*JH?$E:TMN MO<5J)+)6N>243$:EDF<'G:U,>#'"0KT2DCH\XMS1 M$EXZ9^ G8Y![-].DY@2\#>7/'J :W*L-^%^ W91*$2PCXCO5LDU\?#>,SH^6 M[U3A)['SW5(T#J 4:W%L>V+T4[D6W!3YBG6 Z5_PWZOZW0HWS5?\P-Y7#[@H MQ;$KII&7R$A*2B%*0@]FH4>@Q+H@.*,Y(UKPL)KTW>0*2*?![QY9^=J.6TI4C,JY4J1VDL:Q%D^"-B2[LQ7.TJ,\=XC%1S8FH MC]$P!KD&VY2&3^7WS<-#_2Q-:+,N;_/5QZJ^>ESEJ[_5>ME4&D,ZMCA7=W=U M&RSJ$G;:T]-(7@^X>MBB4$FXE"Z_1XJ Z^=#;^=6'<)+5\GCYLBA?O7,D%O5 M6DZ3,M"86:^<-V'MD]/;]KJN-M[7%YW/MW7JD^_ M^U]6W-V+_UX]L1K?L?;3E5_NSA'\5JVD6'+499)3(@[6&8R3((1(NF19'&+( M<\2""*<,Z[4Z>F/R.;:]6U8@Z)DY8RAN6-V=%F=J4>?H8]$X\K\=KM]TG*#? M/@8R@ZX(?"VD!M?;L,%.\ 78BC[QQ3FI('B;$_O:K?L<2??GZ/[G=FJM-1!T MS.:%Y6$=FI[8:CW/)S'D<4 @\CB'F/@(8M_CU",AYS$Q*@2; W=P7]$TA:JG MH@K%C<980$T[KRR;>5'6%%+@1>57,^(%C@MVMJ3*"CZ@7-)B'5>'N&",7:;@CB#%7(RV/YBZN2'OY@\*0P_:N-+ Y^WT,__5I7FT?QA@2$ MKDJQ.VP8O=Y!'B]QDJ>S&4HTD-QGN(\B7F:Z#AHKR^2Z_R@ M5D!Y"\%Z$4$MPT#=WQN))$4$_VUM=OL7MI=$SU]\?54J^J2OSZB[O6T_W5OI M@!1/3K-D>='^"?:<+\!>IOX)^26\^.'!"SM9P5 XL)/.GE_]=B;*DN_^!@2: M]7SP!N0]=W \\Y'E(*X-J@I[C76Q+':SQ#]TJM"E-J6T:%N77L^@[T?OXA2 - M>MK@IYZZQ5B&HIR6#.(4M5FME:+H+TV)ZFMFZWR/3]O<5M^8%*58L5U30HDD M>5M)2W135T\%9?27Y]\:RLMTS).VL=,Y<_EOUJW^+'G7-[5[F.* M>,>V(LZ+TVE5LV2O/5EZYF_/K9R.';O#9JGBYZV3>C.8HI\DRT#""N\;RO1L M/SNY]W:I54O&U@F+LUIHETI^:=:=TC+;"P3Q4P1[H,&3)B%ED9_D%,,<Y]!WE@2W6,\4&6E4SM&YUI6=&1PSD7H-; M SE]QG=B0LWU9@L9I[N\D VSC5!N MNWT" );M+Z,X%)\-3R"*Q&Z%9<\ZB1N&" J8QSR=/6H_M./M0Q+2,_D#J=6L ML9DL!CZQO?JJ\ZQ;,B:#@6==Y\<"O5R")YZXH !3G+R;#S_(ZDZLMV^/M<27 M?EEP95B'J3RRZTOY PSU0:1!@C]L3UY=C<:P3-!*Y:6Z=L=7JGO%:MY\F^ET M?<]F++O4UM-EU9?JY.8OPM16Q5T]B+_W M"\4/@I"+_X.!W+Y1BD*8,?$W'"<5[)_JAR[,&I21C0 MAZIL(T7?6-L:_+;Z:UO]ML^ :7_[6UFL&_4E;INF.YL@.04=JPO0,SL,HBQ MQR]H60(]Q^"V AW/PRRZ[I&6;1-K8GVB-,S/:TZ8F;UR-'&6+)HK?8Z:0.M$ MY[.9KO1U8&2=$;$(./]5**L'3\=9BCU$&8P8CB%B.(%Y&,0P2?(<84)(&J&+ M,>?W]!P[G9^K\@Z*]QZ< L\/U*<6@[*H%+V-YSS\_)ZZ8P3Z8S%=@M /J+T^ M#OVQZ$I0]"=>,RQ1KN]P6?RKW?+>5653K0K:A;1+>M/YX>T_!QTF=R72C;RN M7U7-IF:W[,?Z%R'L/Y8\XB0GO@]CBGR(\B2'&<+"=M HBP.2Y@'62@6VS:!C MZ_(+;HJF:Y&^YTVS%-KVE*@9H-=4M*:K/.!4>E<#7MMZDB&WA^UL]PR#/3F":89#F/N^'R8\B=) Z]AEA2O')D#R"+=,@JK+F9#%Q"V/0,XW('A% M-JO=[MX^+7ZWS2D#VYRR-EM,^&*#GM RH:S[L686F9T95;- L\^3GKT:L@?V M_($/!Y,T8+&M#^Z9W.-.+GIL6HM%$3;U9JL*P@I/\Y8]V%3C49V#U<'UTSZN M5JLK^O?;2E+12^LX?M.U*5RMP(NZL6'J@'HRQ@F9QPW1Y>)J6I1Q22VG1YR7 MS"C]X<1PLZ4WG!=EF+XP\I1^P[,K,4543M/'%;Y; M$!BC%"=1%(1)I-2-]&ADUVMK2PM(8NK-S ZE'U]%%\FDN8#4Q-%J5':2=:/N M9(;$\9*3U ?NHG#_MHQ"7M50 MLCIL4K4XZ,'7LZU43&MY?A1]]CFTKF<49E.XOJ-^J;)L.>?&?,SKD%^JKB,G M_.(!#;)_A M/9+3TCEWS6US?L777/_T=?I2L7/-?6%L*>%^P)T;?"Q;*NZ/. MZLUOCX^L_EP\%.NE3WU"""<0Q3B!R$]\F(J_0AYY8>#QC$6A4LS3"7>.C>F> M77FX7K<,+P#IF)4_REE7I-SQ"VC+L*RAVT$G/G8L+\!&,@U6DFN-'"'KTSEN M9U]]DO1L[V!^KCGH> 4=LQ(4K9LF\9N68;#E&'0L'R!5&G@UL72ZFW&YQ("@7*0FO%MD8%,PIOG1YQ MM@C7J$##(-?X@ZX1<)8AYQ1Q1F >9$@XHRF':9;+/$D44X^&,??I,MN%GQ2U]6B3]6K"!.G4R:+:%N.U'?_:0U->P)6E:-G,33U GZ7[%BZ U,6V\AGF!Y] M-O]!6="A+Z'^DOZR_L*P3 B\^E$TJ@MX\(KCI=I34D07?2G.]&HSE$1O7?5$ MP.^2C*7UV-7""^>'7?NK7!O'=+P6YQVSU[>?_8671Z'3I.?VF MPP^DHP>^_0QZBB9%DF?DU8B/72ZW693K6'Y+D:EQ@4;C2V=>G2]*-,[[0:QG MXE%#R$)R+_9[&2DZC3#5EOSU&%+;8T0+'K(O\_ SGB:(9C"B,8:(Q;+RQO,@ MP]@/<)3&>:37./MBEAQO5UL&Y87'27RY81%NQ^AB=P;31!&\?'K4SK+S*EW/ M<&KKN.]."IS4U]C3E"WXO!1!#P411!1QF":>\-XBXD4_MGJA1;I=6ZY.>MM394 MSE'QM>DX9G;K!1YH=X?86]'F>E_((HF2)<8YCKV40!*'"43\+ZO;HJAUQH*A,>PV[;+)'24[F:X7>F1CVK?P1#W3&R.W"L.9[M:++*,J2 MB*4AC#)/'-TS[,,\"3-AA3(_3FE *=4#9SY+RK'9EH3ELJC9$RM'D-EU%:1F M+NR(K6<;MA+?=$B$[>U-3QE(RA:AGB>ELP7]?)[0O%#0DP(?04-/OW%I>.YE M26)K&=J^FVT9\HN@#X\9#7B$(,I3)CR+)(1IG/LPH8CZG+ $H\PL)J?%QXS' MRV'AKTR5;%T/N2AZQH:]U';%P*;!.+W)T(W .5.Q9MAMH-U3==3'*IXG[&:D M'NNQ-CTN7BG 9J2J\U$UL^%>IY?2AQ^L)D4C6>J\JV5 TX@Q'$(>!QPBG&

.K65'%K ]6?-#E_W94322KZES\UN+2SL4#=A> M](? M]-\Z*Q.WTA[H6/^_E0-A,ZJUW:+H/.$#"WX)F_8/S>"RH93G)#+UJ=XCLR\G^*$L$>?XM3SAL"WZWM62P-=LWMAHXLG MUAU*SQ='[R%JQ!%6EGG]Z,JVQ'NU!.=]S[K_[CYJGK$LR4,.\]2/A*,K<;.# M-(4A\ST69!SY1"LAQSW+CCU?>?3?E(+BJ@4[O,-%VQ;M^]VD!E+ C?A73!WZ2KSF??FV![;IG>%[XW=DFX B0=S[*QLT4BC7[+!@3%-9B916"J2Y[X.-FO6DQ M[,0^UD$*?_@ASP>#'2./0I)& ?3]*(;(RR*81=2'7I1X04AXFL14L].",3.. M]X*.-=CR!O;,]5DU"QDF;B$B=^R!GC_+R$ 7S9?:=C#7+.@9^E>8 )-N$1=K MSEXK"7-6YNXS<;'23C2AN'Q,_6JIFZ?'%W23#=^ODS_N/J8:VZLG3'=>U&=.R M+3^ ;I@$D-VQ)&]-)5.@YPH(MB:QIR_7YO2"=:E(34_ B0ZUUKFI,HS,@#:Q MV:R$J1J&1L1XC)GOAX>IU9N'[NKC6]'\XV/-Q)E.F +6K+])/)_8\WF8H@S& M),EE^SG9ZSB@T"<1)EZ6>BG1JLUPSK%CDR=)0BYH@J(G"FIEV*3YILWQ1;*+ MR9C]8GE?3@(&8BR % 1(2M35@? M6OY#N6[K ']\HH)JP0O2,M?GI= T1E& <^C3F$'$&8-Y[!/( Y*C',[57C! _OA4T@UA.TO1?,'U/]CZ75720A+H@3&\D"68Y!A&) Z%%Q?X$'NA M#ZG'F4=YPG.DU"I"G:3CA;SGH=O-Q;;=L0%V?"C>7VIH<7Q5N]&-WO)64(L) MW(J:>C305ZRKR0R,14%=EM!9M 0>!6M1&VD^[!8MR0Z@7/3>?)T$ZD$5VHMJ MM3Y1D-W4!6'+@+(P##T.A2,D'*2$B6-RDA/HAX'//#\.Q6EYV:&^?U_C>NWX ML*S'ORF#9N+U0;GK N3LKBAE-CW(\:J-9KC%/H$<\G8O"_@;_FG\H>57W'M)E=X1GAGREZ\&>F[:D=7+OPGAI^[]IEZ?^43SN2C9IS5[:)8HXTF6Y!1& MS$OEG5X,,4L)9"'R\@ '/&9:O1K- MPLQ.I=H$S.>K3,&UQ?U]_76/A_ M[37A5][U0DZ(O/"G0<].D$T] J!OA#RA); M R*:IC@S(I&R"HZAB=1?O=A:=/AEGYIFP^C2CQ"E211#+^4A1%F>0LS3&(8) MHU[&"$:95O[4&3JS6H6B)6F.FW%.5]IKWU0#EZSWCN8"=%2=+/!38ME?U =4 M7FLAGQ)U9/&>?-QLP7:5:[?X!VO$J8T53S+W>TFB)$YX'D#*L@"BB!"8H32' M.<(1\D*6)KD6/,Y)*L[OQEM\K[4D"NH=5;TU>EH]:BOT8J%U+[U;>5MZ8$]P M =YMZIK9B(XH"69IA9ZF,>OZ'!7SY>HL>0>TY*':?EM[2Z1PC-NL2G!7ZYSA7>,$A?>\\> MQ0Y5=&?[D@X+&7]Y_I55=S5^O"_(-W8G?O*B+"\.XA E20)9V%Z_\QBF:G^^B4EV9:OXBBD[!9%ZZ829[ZAR1F2'V="%$L=_-,L5!2#=M5A MXGU/P)TR38#?I-PZS! $FY&!UK6;;/W9##:/[ICKP%"]3# Z1DW^<'1S- M>D#ADTYHXPRS/U>-;,5=(>#^_'?_\KI8_I*R/4G47\AG_<0W_74T1XGM)+J] MH;NW?$OS-"$J+A#)B@CAC M$, E1FNE92Q0JE!@66?K3=<(=C3/1S1I >_(6 MK"$$!L--L$'1O[S__KK"KGK;,F"]CCX$!J[>NF_RDL6.;>VQEK$K32]>Y-BQ MR6VJ'[L6":?Y?Z^HN42@(^S;?^:U+9-_]RW/DW(GK+_ZM#R%.@+P_.SW/FRP MR>H(K."'$>DH1]YQ'*-X\7M-349]/PZASVX_\<1HXL5.ZM]/Y2WGU9O);;DY M2=8CMN$;Y#2-E6X%12;G% ZICIY8FB']\R+.PB(KA%7>D1&R)R1I@)D9UO:S MBT(\604V4-=*!/]:J_%OLY^U0^[HE'!*Z( B=T?SL)8\-?D#:I(CE!!P$R-\ MZG)%%XV3?UXN]"N/JQ)P2^[XV[Y]K!$:]*0&CW+U5I7@FV\GL%NXW7?#!KK? MD8AA/O@LJ'&^^'B3T_GDLY!V?//Y)]U4K>KM8L@\RE*B$"51KCURF*%"*H8$ MRXI,I"F+):RFZBE)OO<@]LI< 7<.3MK';+H% MXIUFPVBH3T(TV;@HF MO;/#[":@RW<#;/9JC\%V%%XO#=9%D-:=M-8[Z"G>%D3J==I6]Z;6AMG*U/K[ M+Y+DQKZ>"R.]4\FK*(;DQM"V!9 <28,O@CYI)?23VPV:!\M;X^=?]KG,;V0& M1_;E:L>7O.T@CEH>G&EVLB7",+3^,L'B:7C2X(X+_NO^'_YL>O$+?9&S-,&* ML)@A&F4<85((O590%*59J&2>)+E,E6VNX&,"?"\,.I'!6F9@A-HG!CYJD_-C MT052X&( !A*4_/<7WI, M?'_CR[)L%;[_[YMVN3JV757-1:1^QL9'/3]K/.;YF="_,A:;/#U$((SC&!48 MFXP]I""L(#@N8+O64VGNV:/UJPBV-*V_RSF473Q=-SKR8)?H'/>N:\!S:3"H M11.T<((>GIW4O,$/@RGH0%U#=K6Q'7'IJR1@O:_+2[GN#F?73D8K,,XO/=+!?@32_G \]LC$@9RY MP6%X(!^U_FWYCR:N_*J4CCW+IP^FE*'($QV@90D27$9(1VH%*E23;5&/3942 M)7@X2>QFH:SG<&VM06#Z.WAI2]6\&B6:'8E7'9IK9:>ZKFO3>9XC-L==,GF0 MMMNA7>VA!H*.T#H0P8?K*#X)L/6EXS ;57^/T M@=&?1%D0F_,3R6UF;(]#Z M6U7]]9/?U:NN>I@E;_/$Z][7R66]2QNHS3 U>5]E]=/,OW?+&L#?/&6$X3-; M!_AALYP=].&JW0HR,I8CI T)- ^=15)MAF MB0L)UF)5B%13$:"@#+$\THL>DA5)'@E.8AC+ZY0DS^-T(S>0G6 @)^NDA>P" M&2>X8>-S"WDMTTN&O$%DKCA))^5,2RL:@GO #!I\ >XJ/Z^JQ7=9O=1?U?=* M:,^]I1E;>LO3+7@>B)]UD%#-Z2)HI#?TND/"C[V_/&.)89?IQ@BP46F%WS$# MVP[K*-]YIMG)W.;2^N]R MR6H=()E+3I_*U[>5*0U4\OEBWF5&:UZ_6]"Z_K!\H?-R%N<\)AQG"&>AR0]! M$T3C*$$%5X2G-$RC3$!\L"]%/<\Q.)J MW_)0P+2[C2J.5M4O[70;ESP+55ID*N=(A85"&.<9 M*J*"(9$SEK$X#?7* E1[RD:JY_%JA#>W^;CY(+=J $M061G0SC5*=]-C>;U!5*J6_2LY0+@.OH+N))P M0*/=]/860%<#,-A"N )ZAKV=+\W.L-#T]R!GV)O<'1/67N2[ZYAVG 29X93F M(48%3E.$PX(CPG.*2!KS1.C_(3GH4N"!!-\18Z]\Y^@ZI5;\#"<(@<%?#YQ# M#L8@$O?E2*=D8PS".U."U D38_3X/R3 FXP4WY]I1Y"O_R/KE4FTUU[>FBG% M.LY;O/14Y<*X@XO0'5U-58:SO:.;XMH>[WW"J*Z MD;UPZ1 /JO;O$>^-[ QGP=]8^>-\U.UZ6?MQ6?U%%[W"GQ\D6VW_-4M2'!*6 MZ[ P%-=4>@ 7( MK>T64AY& L,2!2(=!LVI\L+1H ;#]+&N0U. /ER[+\(IW;?%99'+!$R M0X31PFS]441$&B-%&)>JM:BHY0LON#WI/M M'M!A*1Z^>!/--;4V3>FC5OU>*MO0S-SRT";O8?WO_8/^].OR*W]G6UTNZCI;M'@EO7_SRXM9N/R2ILM? MGL^36Z;XRY_CY>=?EI_3+W^?S?\Q_N9^>3=QRSR;?P'XM^[/GL^^_IB//WU> M_L((DU>_=O73^3]3;Z-V+$$.+H+(@8)3RH+BS"B2/6?!_#^?_CD[HZ++%()P M"H3A$8Q3&6C*GA$>LM"Y>^AD//W'/Y=-%]^:]_^;Q_?9?UK_^_=[O_\F[WZ;6VE^[GU[_ZF+\T"_B M8^FO_^.W-Q_"Y_3%P7BZ6+II*"]8C/]YT7WSS2RX92?U1^GZ9>MOE*_@ZM>@ M? LH T[_^GT1__)O__3++RMQS&>3]#[E7\J_?[Q_?>N57^>SY6SB_.*O8?;E MU_(;OSZ?(2*0UNYOES^^IG_]RV+\Y>LD77WO\SSE?_W+U_G$0U$JL9R4-_[? MJS_\]>;%7^=I@6CI&'V#WUC_?7G+$42D[\LTC6G%V=4K)K-PZY M(-&=&A8I_/73[-NO^.!?BQS*)YU .F'<>]U*,,?1?;7N/N+OCI17#M>)!VUP MW0B1.#BI!.3L#0^"F1S%261OONTVU9L*O9B'7V;SF.9H.*Y>Y^;AGG)O0W;] M&[]^=7-\$(3/XTF\^NL\GWVIH:OEK(+D5FI!XIN55K8RUW&V M1'.:NM^LH?'_]]+-\8F3'^_3U]E\.3+:91YL D\S!\%8 *,]@#6>I-\OO_@T'S$29$Y9 M 75!@] \H5@H!V-=\L0F;YP]"0UWW[@7"F2[*#A)@DUH_WWZ-"Y"F"Y_=U_2 MB%H2B> ,<#]#^@D)X!G:-)6TH2REK)FN@(#;;]T+!:IU%)P@R2:0\!I#^3F: ML$[P'U#^Z?GLM$ M(Y6,60J*1H.B0;0[ZPT$876TF4C)3\MT;W_W?O!H..%92:P#@Z-8O8MYCDW>?9 M]"H#XPTE5J-'+*Q5Z (A<(WT :Q7*!GA?6+F)+7??>-^JF\XE7F2" =6_X<4 M+N<(7I_^X;]U-_PSG, MDT0XL/H_SEVI/OGPXXN?34;&DF1<]! ]QCPBY 0N(8R9))K0'"1+IRW]6Z_; M3_$-IRV/%UXCB_[E]_#933^E+M]J E->1=RD%$74!B; "2/0AJGLLHB>&%IE MX6^^=3\,-)R2/%F4380#SR_G15RK$[@":=3!Y6)4TN^9.P)4&_1<2T+5BQ0@ M$$V@8,/7]QD\NQR M,9ZF!5HZ0CU1D>)F*-'2E6HO+SV*(C)*T2\VA->P$+=>NA\.FL\V'B_()G#P M\DN:?\(M[V_SV9_+S\]G7[ZZZ8^1U.@+JZB!&E+I@F\#'A\]I,KFFWK!(,(:"*#)ZRC$)\"&B@%+PQB<1":MQ M.K'YSOW0T'#.\40Q-@$")/Q+*>.8A7]\^(QR6[R]7);[&R6R'C&#+_4%R%25 MHS=TE7WT BP-N/7%&+1-%4"QBX;]0-)P=K*RF-L #4IN[B:OIS%]_^_IQZA4 MADH7&#K(&EUE[QEXYV.YN1081EE)V=,25P^^=C]H-)RY/%V80Y]7K4*E5^-% M<)/_3&Y^55INJ^SE6N.R_>#Q0-9SEK M"+0I3*PNHJR8X!I=)>HRI$@0V"Y%,%H*T$P3KT7*+-:YXW7OU?OAHN$49QVA M#HR,"^0@=EQ,W*=1EC9()P30R"SN?AA >2XD.!.+F:3<2PW[I^Y2;E*CB%66BYN4[[O)>UM#ZMU M<7LO8D^\S'VY@$_.?1UU=6]%VV_SJ_$47S;&53];7=^ZAA+3%!>_IL!BZ3$@ ME0*3:8+,E>.,IRC2KH1?=@O?:7S]TM4R2I/EXNH[-^OI$+J.-1%7[[A8+%"L MUUQZIG@RR4/.HEQ4<@2\U@S*]:4HB3).[*J3.(;+VQ0,&9:";2KG3&\9BY0\BPT#E%LP^" MY!0Q-X"5YV[Q^6(:RS\O_^MR_,U-D)G%Q?*YF\]_C*>?_L--+M-(!IHMX1:X M=NAJ$^G <8.?&40,T_BB/SC5DGP# M(+H(H=RS7+Q/(>&Z0)9^3\LK7IR33C(,]:B(&#]0:?D.J9_,?R,(H1VISPKC3,4Y!1$9*MP<+3@41 M;>:.)U\9-YOO'Z:+1G\X.5JV3> "H]KTT7U/&S ?&9N93DR5CD$2]U=EP%LJ M(7A;.+[]_3=-%0K?M[?)SFM\2 MU@@WV,R]0%>-6EP%PDATU20#J5C(C"3G[:ZD_S$ VH.L85IV] >GVIIH %RW MB;?$A"2< 901"D<*!H9S H0ZEYCQA.X\.SHY=A^F=T>/'LW1TCT>&K.EFU2R M.[.O:;[\\6[B4!S36"+%KR4;5K9=%I'<% AD$BW"'#TQRP6%F+QF-%&N=IXG M'6=PMM/30D15)=E33>@-V):_S6;QS_%D,C(J$4M#!&FI Y%*-$BB <9=%DP* MX8BK#):K=[<0(U4!QE'"; $W1;Y&F4^_31&YVLED0)FDJ(R3'6]1\IA'(9V MEG(&D:4D)?6*N5UGD,> 8ALM+01(54!21=@-@.:AA-+OLVE8;Z22,V3'>9 L MH8^E0^E)82(N@>RSYEK3G5.2[FH<<@Z =Y+00 M/%7!3RV1-X">C03!AAE-WL:@7 (F$T,_'KTW9Y4 +;0(EC#A6'7+\Q AP_0_ M[,OO.4G,#6!E1?^((LW,.0V!>5.:JPBP23"@.C)#!:,8_/62@QFFX6%O!1,' M";*!=,N;L?/C2>=Q8=S?76+Y/)N@T!0 M23K#:& VUB[*VI>V8=,PO9=K]:*B!BS/!E]WLY]*.8V6$]>AI^CQ>XH>?_F M(:3ET5NJ3&T79SLUPY;A]*/][1 [114-@.KJ-/^=^U'BR>MZD(Q;<*;H]'N, M(P6U&CQ%TRR-HL%S3_/.TO-3:BAN4](,F$[2\Y82BA.$W@!T7G[Y.IG]2.E] MFI22[_NR&LF@W&+DZQ]WXUH@8Y:TI?2=H:3- $@53NNPKIJB03$M*:V<8]R)LV.., M_HQ6994T@+/;2; K1JXZ98V$#]13A^Z!D?@A6927]AQ]46U]%"7(J7[ZL9.B M8<] >D)6124T *G-O-@]7C1C5#-T-:.2HC1@3J6H" M84]$>H)3-04T *8'=G+&<L.> M@O0$G!.%W4!V:HLEW2I)8@U64@Y<>97+'3BY MLTWT,1A[A*1FW//^,%93*0U@[&X N[%:N#(A"RTA^8"AK&.NG$Q%,")RF8+A M3-3.+FRGIAE/O<<]LHXJ&@#59D+$18XT.MP[#&.U\B6.%J^T\G'ACW M5K-T%A154D4#QN?=U7L[EE8] J+&9<&*IQ=RJ0C-"7P0 J-:9[*)CH2T:Q#C MD1?/[I(Q=)N8.AJ^?]OL)'$W@)B-AJPK^K7E@>FNAT37=C-GL(0R4$YQYDPR MT;#*<+E+P] U*KU@Y21!-P"4BQB[,ATW>>?&& $\=U_'N!=NL#5BTN2HHT+H MBV[H& 6GHT89<=Q^/7%NYV3/HX[D'J5JV-"_)S!55D8#\'J?EFX\3?&EFT_' MTT^+BQ NOUQV)]H8=8[#>#EB1! J?01.B0)!DP?'*+)E4XB$$<]<[3MJCU,U M;-3?$[PJ*Z,!>&UPT(6:I4_]/'U.T\7X6UJE,][,%B6)\39_=-]'G AA4B80 MJ$#I$4O >I? T9 4JH[C_6&S93T!.63A1V RF"QX+?D4S,$^\,Y&PYB$1#,<(& MK%%!).6R2;5WQ,=H&O;"RKF33J>KI1K,SM9^^%VGB<]I.0YN8O9I=^F2\G]YO'755:&(/^(I&B=.TO!Y0JX6>*URUH.(G#H MY%5E'-WSNGI35@,^U^T<':[ZM_-.H+'+PKQ+\VX.T8A3*SBN>6"N9&,TXV!U M*9GV7,7(I*6RML._'V5#)\-ZQEX/ZFD.=*M)5Q>7R\^S^?A_I3B*4H3H#<'5 MTS6((0Z\RPR8U]8SB>*L?L-F-T5#)\G."K*3U-$HN%XO%I?("?JNHNMJYW6I MP!<,0V&O(P8X-D?'DLRZ?L^O;=0,G1H; %1'J*%10&W.Y0O1<9\DVET52T<' M7"0^!87AC31>!L]RZ'=O/&X:8H_)KP&@=:Q"&L#7QK'$U@T^)1^H]@X8;NAE M$'U EIC'79Y9(ZD.@=:.@_8@:^C$6,\XJZV8MK!V;Y^7/ M7I@8&(UP92FO! MAQR 2"=LM,1YV^/1]E$^5V^%->?$UDF*:!%3ZVV>)!D2E1C_EDI7D3*R(;,$ MIXC7)%BMJE_HVD+*L%G7\V/I" 6TB*/-/3USEW2T')+Q H3S!FRIH@X\>>=9 M8+C+]PVF0SVLWEH-G1]1QZKB28P/O!;G8I8?.%(]-8G_V./K9_(/8JA2.G_U MZ.LW7\/04JYS1@M*:@H!2;("9D/*)CO#?GY^N5BBK.8HLLEE,:.EQQO^+Y8Z#4MUTM)3,%DR$(QKM*A2 M ^G<,G^;?QB$M/LPF M<60YQ948&4B&[H$@R)-+C ,E49B<%%>V=E'-=FJ&/<"IBJI*(F\ /'^;SQ:+ M=_-9'B]'+FA#2HZ6"8]^)"T5^QZ-N>?4..\R28971LO&ZX<]>JD*CV.%VD"I MU?4=_?7DH!N!)(PFA%09O(BD3) O?;!U*K4]U$M%,C):&1U;B1G6E/3A#-61 M>P,&Y4.:3,I^.HVK!OTW+(V$\")Y#"<)R:R4@^'B(W($1 M+H+CE#M'M12I=MG 3H*&-4?]8*F>!AJ T]_2%&4T05XNXI?Q=%SDLQQ_2]?L M9$Z>TN]X^0-*PWU ^D:FJA!5"Y\;1 FZ6U^=KD83S&(+*?2.@BTM291B_&C"N 93V4*EJ#$"Y%M[>M_VV@9MO2D M)QC5D/OA^+$K_$S3IY)X_5B_^^:5D$8ZRZRC]1@RZ #"&@I6XE[MC,T6>8P^ MU$X2W2-BV,*2?H!SFJ1;"LYN;H"-'//4Y\PQRJ!H-&.9L6>2 Q:TYBPZHDCM MH/T!,H;=KGH-R(Z4=0MP*3<'?Y]-9[=9N=IN,PG$J4PAVU*UCFL'\!,-B2?' M)2V+J785R&Z*AMVL>@%1/0TTX/#HE,K9?*;+IXEO)LGC9&F;_\ MCD)$S8VG;O[C-4JV:VA5$O&S+E1]/47RT@+MNM.&<^2=EVNK0G53UJ( C@*F M1&E#JL])[)&=87?//I#RI%AP-1LM M(/) !6/("*^]$V\A9=AJS?[@=YK,&["@OZ?EACMAA,HV1X-BD$B\<@RI"084];ZNCX$> <+O &4?-B/+EQUXX@$:?$(Y7!E[1;)47!I0L*6-M2RE/'J;!>K:W$^<$'6F1 ,Q>4O19FFJ3C88!E$S4.65BI#:U=* M'$CBL/M[NWBMHM(&$/O K92KKH4W>U8F3F21D1N&+ E3"JYY1F?*>HU[%O); MNS/W'F3M9TG)4]K@:RNC;7R-%//995ZFO':'Q8RQ!C '9$IR&Z@?I.\@9 M=F>NKOK]H760'I[@#NZ4_*8O36( M&6X( H=0@5$V+=?E%26)Y<1U[=AP+\).[W^[?LG'TE!NE,M2(X2BTY ULAD9 M>!,,9.%TBMFEP&I[:;[2\&]CBKJE?2:18VMFTK-:+[^/% M*(J )&L+*1A7QD*EPE:I\4&8+)E%,N:&[8E347D05"I&;H 4KDPB@)3N#2,()D%1,+1M3OPO$0)<-6.]<'3P5Y M-X":/6:FK!DS*3F9B0"7=:D:TP&,EKZ4X3K*F9>Z^D74O8D;M@BZ!\/4BU8: M@-NUU_@&ETYW'#!R(AE+2W:+$EE&'C)PP4:(+EL2G-%H>?L*Q:ZI:*1/>L7X MZS@!-P 1A/>\C*%_D5;_OI[>SV^\GTTFKV;S/]T\CK2)*2J52HH4V?/E5FT( M92*+%(H'Z_&_^A7$AY#82*!V)"+N%Q7WIIX&T+>SM9\37+IH.&BN%0C+4(+< M). J2>*]1GM?.^5X$0QHN'J*5HQ'V-5N_T<=P$KCZ;Q)P-4R=JH"TDK5K:OKB< MXX)XMWI!MTZNBFQ3+"XD^H^=*D>.LM)\6X%QI?DISW'5H]3JXD\RB;M [5S4 M$60.?C_VO%CL48<-;*P7\7]>+I;=>>G'V9;$RX88RLU\^3W-PWA12M09,YY:#5$RBC$Z1]E&ZV(@%1R.3&%L:@X(W+ #: Z9,DZT5]+3VHB#+&"YQ(W<&X!XNVO_2 )UY'ZE+U&4:'-V/H\S;AV9!UO-P;V&.WG6$6 M7J[JW5=+XZY(KPM9*57&.)(!980"#%W7)ZF!Q9P-R<0P5CLY>CK5PU^&.1L^ MSZSBQD&-$DWC3]/5T//PX^/^ MF[0L1^DTV%B $:D%$[4!FI@32B8IJK<1VT5/A>1D>>:[^>S;&"7W[,VLK1+.)J8]<%:NPDJMP%/#P',;@Z8\$%I[)SP\6]X;C/K6 M]LZ$^2&B/^&PI4Y%YZTC^G*^/@WC2;K%T,?9H;+D)#A?.B!I&@P(7::V* S3 MLPK92.JC#[6+D/K@8]ATR9DQ/#@0&C"A+Q*^.8P[%>/GD[1.E%Y\F/3,>E9E _#<4IS- M!,VZ=.NBGNO2;ZX<[HL$V;&_-7C8'P0KJ:@!T+]:OW3;@ MPZ0HXF?YO/+K_^/EN6%MBKZ6_(S=7P MMR+OI=>=$#DKLZQK@^V1@%Y4)(P0-E*2-_ M(8"AV8 ,P0;AM4JZ=KR^-W'#7I]H#K']*+4!RWJ_2.":R_6]O&OY$:9MT$RB MP#P!P6.9JU-@E8C#)GERAYE'L:?^N: MF>'&X&A2"5@HS?D.AS^:X9$?.:&USXN"%B^6\K:1RI0%JG3&>:VE"[9*6G02UUE#I3$ [ M5B6-(NS=/'UUXWB5MUTGT2ZFJ_:I*;!2L)==[N7&XD!;OW(^UK0_HNR@%SA!=&IRA1XPL M@B8J*BD"3ZYVYXX#R&NM;=+Y]N0*ZFK:'[QB*/E$"6$)<)65 <#"@.&9@M:: MFIA,XJ1Z;OXQHEKK?'1F3_ 8U;2*M;*,WHR='T]6X=O:LE]+=.-GHYAM[/HM M>(++2J@H)?B'>X<5EC U1:,R3*:ZJTY#J>RD0;_9[I"44M=#=A']$^NFM6% M_[HJR9L3O0&PKI):M(,7W]QX4D*W5[-Y8?&F,<:+Y)&>[Y[4#9ON/#-2>U):NW'Z MJ_'436Y>FC?)T--9@.JH7&'OS L-%I8)VL?Z7WJQKM^ MG'UTW_\^7G[^O&IT6/RD;?.>K-&\W%&-R:/Y"0)LP%W*1(=^$[4$]ZR> KI# M:6TRU= ;NL^AT#9"O#6GR-)-CWO<*6]ZV(V"E99DE2&9,HXX.EZ:@3JPG!BM M9*"I^KWWQZEJ,M'0-QPK*:D)X*UDE=Z4\^!W\S&*[6N96+-BM!SDY>"-@,2I M &%MF=J8.2B.HBKG:]S5SG3M)*C)7$!?<*NGFB:0MK_T1B1Q:X1R$&*,A3<4 M&/$*$HU4I9@Y#;535?M3UV24WQ<&>U): U'^RYQ3P&#TY7VT M,%O^7P[1OKG)ROE .8X#+H/R@V[LS.8W-G[SVHF^=6$5_^+!"ZN+44[>Y* S M,(Z^"8:XZ&AGZH$&1[B0,IE4V[H.S_6P)KRW+,3P@CT(3@U$:R?)YN'&^=<2 MV]3"2C,C(Q))VCOTS PKS:\B6.L#1@A:V4 )$;)ZK_>S(0@M?>KYG:FWFJ VUQ ?4+DQ';H M*+!YG::P9Y40)>@E,VZ!,HT28KA?.Q\L*"*-5\IQ'G[Z1=1;#Y"?8Q$= I&F M9PH\-]4'-=8@_.1>,Z<0 M4=;89+:XG*>/J,QGDY*E]522V'6#,M*"(,& HR2#D<0Y[7AVL78L4)N'@4< MGAW/]UK5#(F):M%S;8-;>D],E^O[AV5TVWPVQ4_#BNUC;.\C3ZQCA@\ANY)% MWG@90B=LYDM-,%8%PD$*'T'P9,&662ILR 69M0&\]1#"6,_1 <$VDR+55M3/N^U$V<)_W.BBYURJ[ MOE*:-4G7[:&^=N,HRTEI.;,_QA9M>U0=([07H96LSTLWGZ+*2WZJ>\DUJE)P MB6;MP). ,0I3JK0EH&"YHSDI3G3U/B?;:#GY@.7.?29=4S,8:17LC57+T7'^.[[;OS@FR0)H0+18" Y@MN:5+8D M\'*9;$@IY3%*67MM'D3@R3UV]WG9QHKQPC%* @1?"LFD2N!,Z:\5%>>X-SL6 M:Q?''D;AL/:K/VS=:Z;;G]Z:M72OW'C^'VYRF7Y+KK!W=!#W\(/JV+0]B*QD MR*[?=*/P&W>>W&3J8RL<%!5+XX MTEF!*XW;24I,,J:=%K4O#.Q/W>G]OZ[>= /V; FQTE+(BJBR81.PV5-0+))H MJ->^^JGE V0,W5FX%WS<[])UFOB;M357?6M_'&-@;OZXCE790DQ%4](]_0$O M.')&0ID][[IY.ZST@_8)/Y#L8KFP36G][GA;R:EA+.X\^@:VE,M28APAA-)I M0? (7M, FB6C''/4I_H]*;?3,[SYJ(&)A^Q%%0TT:SBZJS7W;\(=846V/*F. M2=F'S$KVY4;5W?6CZY>M+\H]GRV6BR[WYPLY5W=&KN&6DS0\\7)9)#(0QB?P M@ELPGFC%C)2JN@DZC>(*0\/V>_NSS;=O[+_,2F=18,YU,](T!>LH 9^C9E99 M;A092F /DSRLK3LC/A\8%G8V53=K,2]"N/QRV3'<)9J+(.;I,\IB_"W=3&LY MQH3N^^@Z-O4H1BH9V??IT_K-UZ5YUPC5RLI0,@J*.%\Z[&3P3C&$J2$(SJ # M"94-P@YR:IK']RE,W&+1'4]WYN)+.9_>J),ASDCF')C2&$!8$4LSEQ+?6*(B M989'W:,I?(2\8+<3LLFDU]=.L_=IHV']ML7DJKC@H5 M[SZC4I"XD[1*UN3N2VZ&[04?I-0,>+D%+@CWX#3+Y3XXC]((QU7M];6-EI,+ M&^\\]R$P2\:)H-I 4%+AGLL#6*DRD,AI)(ARD7//[#9G5:I@XUY!8V5EM&M9 M+OTB_=C./,:'0R=2GL".AN6J\$ M[D;:6*:B=J+V>?0V6DXV*W>>NW'>JR+CU',@IO10SV5Z&3&ER8]@FFHBA:AN M.[<1,[ )J8&#>R:DBN";-1Q;JHL_EG/MHV*JQN^7@KMN>3SU-^W:-=.ZQ0%O>[P$T20+TM16NY*Y25H+-A5!@FE7O21=@W MB^G5>#I>IC?C;^G>:^\L)".-P?@!UY"1&H1P#*Q5!A(71G/T+*RLO0$<0>93 M*L<^!&7;S6$_&FR@/]45B[-=++ZZ7!:1?BEA[^HR\GKT\1W>*579E*L\,C+T M7)V28!)*G;$LND#Z6QX;L+AZ!GZ]V%/E35 MK+5ZZ*[ \<9JQ]/ZN]K0HZDZH( ]&^^TUQZ<4.BK,=RV/.YG8#GU7C'-C*CM M;9_O@D-Y_,93[\S1NK.+QY0=R$*B,DJ7YD=@A]0Q]1 M]X*H>_4O?2FL@3!C0X3/UX4]I<_V\]FTD]NEFZSGP/UXX9;W7$RFC28>-X>< M,P@>''CC Z3,@_)$8;A5^^#E%'J'#2/.!-:S*;397?CZ1L+Q6^_=1U2^]-/S M)KOUF@?UTG'!(!%C4;O.@?5& N,V!B6XYKZ/6W0]7?VYR0%=O^0YNI;EXMIM M4&=A$_$4+7*0J30SP75E*$I!2\L+J)FOW41A7]J&WSYK8&5[=JZB9IHU-P_? MNSG>]NQ\7I]7A7JT2B=>R+#4:^T0@H2L<)+ !)% "N.ERM2IZIV_A[TP=+." M'IXPMCDF;ST#Y<>=M>4CE4S$,H3!X%:.GX,KE_"LC8HIJIDSM0.#Q$,=KD5[\Z>9QD^.225JA8+&X_++ZWMV#;F1:*8?2#I*" M"#&#DYH B2$R]*(#ZN,,<#^>@V&#D\:@?R8@M+<,_-V%?]/5O9/#K3[OW7?^ MF(Z76TV"(28QCM: E ['R7 P6J.[Y;7T*7"&/^QW453E9]AIC^TLD>% TM2" M^7W6I3I0UFF>9_,O95IA9SUV<4L(LRY2 5'Z $*0")[0#-E@O$%1%)GU5\=Q M#,7##BQK O2]*WI 6)?X[\'UO;D%=A\67='8Q\]N>N".:'4B-)3V8T&7S)X5 M8 T/X AGE'@45'@T*.V?S&'GAPV \\8TWY1I?]@3?/GEZV3V(Z5."N_6 Y#+ M_/@]1!%T))H+ 8I*S,E6>!-#*"BFX#[%WU/.&5Y^$G]W++OT3!MO4\=)1>^ZW$NK2ZC,/$SRA3X9(G $,CC MA]KKLJ^[]C>;_ITWO)YV\6!1T;,?ZQ_>0#Z);(B3!DB2#$/ ',O-4 ]*FBBH M25Q6[Q5T)*F-WLD_!$,[/+7>E-9 S/)F-OW4E>FO"EV?_?A;FGV:NZ^?Q^&B M3'N^8X4%NI;&10.2*P)",5J",0F*.:=\$-:XVN5\AU$X[#%$+TCL445#)XZZ MFQ]Q7"Z$+%[-YA<1/^\BF]D.IM$CN3KMWT@5T."Y]09$8!R7'=-@98PH8'1& MF&8!G82]DD352!HVVU\5B0/J:FB$ODCXVC"^FHVY>6WI43ZE,M1Q:\#0,N*@ MY @,%Q2XUCDZ34F,9B],GD#$L.GW^B@\ESX:V)I?C!?NTZ=Y^K2>Q/H^?4O3 MR[LEK\$Z)6.9H4A5P!C,EM[VZ'ZXH+,6V5J?>NBM^SAAP^;#>]F(ZRNDV4!U M2^N2W]V\Y "^I1=IZ<:3FIU7[CVZUQXLNQGINQL+B4XI;1 3W3P*(B78R"R$ M1$WVVEOM:P=V?75CN9@NQ[&T[D!9WMP$>/D]3"Y1@*]P89;TSN75-.E[9'3M M5T<,O5+% @6KD@-AN0'/T4&(R4>J,S=&5)\97(/P1CNU'(*ONT;N_ I]:D;P MYI;[+4ETC6S<=2.;ZS^^DDQ]DWDB(;T:V)I"ZML<2RZU93F"2;2,4RQ991DD M1&N-H3*UZ^=N M$="H>3Q$WW?-X_$";B"B^'L:?_J,R^[B6YJ[3^GWRR\^S=='T8NWE\O%$I?F M^FY[&*DDM>2: 4FEWQ=/ @56F*,THO1,$'?#UY/1D%7?PHZ&GU( MB9]5BVCO^A774C.)929%!A49.@R$2# Y$AF$Y[2'$3';J!DV==<+LBJ) MO@$CAN9WU9;&33;\C<7%I3 6;DF M;"2:;48XD$B3M#11ZVNWDSJ=ZJ'O%M7!S_UF^N=49@/PW6+BUP[Q/4L_2IDE M7X95:N6SVO)O M$$1K&8V(]2Q&(U#;@H+0QH(7-H -WEJ'T77] 7%;2!DFRAP22,?HH-D<[F-- MJVN<:!W\CO/TXS[+&==AS66=$E&E;!%#J_Y,N(TRQ)4K5<3!*6)4[8:> W7F MO@C_=3G&1;"]$>ZS'[^Y_SF;=TVNNB-D=#)"CBY2")2RTF!?E@9: CT-3XWG MG K57Z.?(PA^2MVZ#T'>]E+0OK4ZX(Z\F"]''U![751]4TCC)A??QXN19LP; M$@)$KCD(*2-*#GV+5.I9LPQ4[5>-C6_9@"5^=0/)G00,7&!\/@#,:FMC:$BM M"G$V67@Q^^+&TQ&7(EGI%*!CD4!X+\$*(H%;+I74N"+%7J=NCT%J&P'#0*JB M8F>UI3PP5%Y>SF=?TV^IY%I&03OJ2GEH)-J7655(-XD)4L#X1@;!I-[KZ/(1 M=&R^:.L@>E>&$# /WI8I\I*5P:I$ MFYW32A8I_/73[-NOZR>N +#^XD;_-^\;)L:KK_DC)=A 'N#9Y6(\38M%M[\N MNL+RSB!R)3@/C(%G"MTV;3D8[C/P2&+!K41(5W:)MY R\,62LWL@-373*,!6 MDDSK!>=#%LRGLF)(6C6^QKT8%UQ42GO+DG&U:Q ?)6I8M[>*ZO> T_%Z&/IV MR 5_\>^7?O%Z&OY:_EWOM\DP&;2(H*)7)1FGP7@I09* TG&2<+G?7:0'']\> M)D[0WZRJ,!NP,X^;Y\4;%.!K# 6HTR2;#AO YU76[%V:CV>Q*[]PB_0BK?X=4:>)D+AXC?,HML04 M&*%#:7!#@Y*<)5Z[%'8W1<-:N_Z0,.M-+0V ;"6NR4/BNI(H';G,<+/#D(18 M1T%DE%DIY0'I+3?(*SH3M3M:[4/7L'[^V0!7744-P&Y7;Z57LWD:?YJN^OB' M'Q_G;KIP87V+M/MJLE)R_)^7J_$CSU*>E6'=WTV)EV!W];.!N 0B'KP>[6@_3/:+'^HPCJ#A/!<>IXAFDQH-YJI+6! -VC-H%8Q2,2@0D$]IX:VABM5L$ M/:$:#_36M9-.X#H.I:A*4?#)$W T<)08V MRTP2):CCP-$S< %]T@]YO4+GW*YU3&._?'2;@$B5]MN M##P:=!^C%1*1[1WXH"P$903-2F;-]TIN[ .2H6MVCU36774?(;F!%?X;KH0O MEU?&S%,6@A$93!8)F2<6O&(6D'-*@U3)^KV&ASRB\ELO'5CIQZAL5D-^0RO> M?=\@'.-$!+E!2GWI^B%9*CT&'7!+33">1B%J; BW7CIV+.F";L:'I"M6T'H6'_Q.#AJFD;:AN# MWC:/]T$T8]Z"$*(.R\#.KC8"8))'24'*OD4Z?X-M"Y1.J?.L)CC74UT[= MSPY&?T_+D>%9F8#.B]79E5LA8>^S?;HJ>4'%:3_@[5"T# MMA)[G)L_%BE?3MZ, ^"LI\B?H#SR8CUWYK9CTHWD6O39NNI "LY=%GFX6 8IB8PV MF-:+N-GPI5!$TMC[?WOK"61.Q;QJ\LR,.X![=P(AYHD%/K5 M4AM9VLP1,,EY<$0:IP6E3)ZQP.Q1>I]20>0AN#O ,-?5:=O>Q -'\=]QG_SX9YI\2[_-ILO/BU'041.7)=ANUD0T'+R2%+A)7(08,K'G M"^'VH;C9JJ26D'V2FI\JPV;6GA-Z#%?LD\?MJ=CD?16,(=:6"4J2$J]13_"QJX(P;Y9T)T0QO>@NE MPZ;?GA!Z#U;KT"7/VUDL7(4[N:2+C*^]YM,D):@0"NRJ&955X!B/9:"XU%)Z MHN].BMQ2%WT"$7LA4_TTR#RKSMHVK-WQ(#'*VD! 4X4K34Y3+\E5_**W0VK$PX;=CZOSM'! M_B17.@BX?N%-^O5F,I[T.>/_!*) 6A ! 6!)4*"#"HD%&GSU84B[Z#G9-%T] M>^T03..;L?/C23<.<"WP^';ZOHP(G)=SNVG\?3:=7WU9QM=<53':P%+.%G#U M$1"*H[^ \5OQ%R)EGAJBJ]>>U")^X)1I+;S=,VB#*+>%#?>*\6<_.M9O;D-+ M(QA&9"A$7FHBA"AWOD0H[4RUB1D]WOH54MN(:01UYP7'-HB>I*F6(+>^=7A? M@)W$_IC._"+-OQ7!O9Y^O5SBCV?3@&+O%+\IA?5516HU%8ESB/@O^KI.@"'H M@! 9O\7].-4T *K?9M/TXSC@).47?#H&;':%7\/4S+P@62+8*N@L@: M[%77'_Z M[^,T1Z(^_WB3OJ75;"7LC&&,!/Z"P9W4M84,(=W M+6OIL"5D;F9#[O.W7LDF$!XR"V"8*-5BWH,5!E>RH(2%[(3@O84[^Q#8R&Y= M$2';0%A=72UAL=M6%IW$Z-6,C^25L2H ]:P4D*/!+^0#8=D0*ZR7U1MH[2"G M$9S5!\$VN)VHD4;!Q=:LD.B4BT(4#Y:!T,&"341 =-(9[[.BH3>S=I^<1C;; M0_BI$B,S1&#]E8!\)K">B%E*LODBF5*3-VK[FX)X*+-]%7:U!P M':.1EL#U[,>&V%[-TW]=EO$$JWEK*4:7!?+ +"N.K083#0$MB;?$*6U#CY'# M-K(: 5LK84,5[;4$R(<86J]=(63VR4LP*B2TX@D-N#,1B")9,Y>X(K4[4>Y! M5B-^6RTH[!$J0S:F&+ $RWE.QA094H OY^-$M+&U-N1 MQ@ZZ&@%;+3#L$XF>HIF6T';"CO'F^LZS-%Q3)0W(Z-#-L"*"\]Y"YHDERB6G MN<4*AC<']<#JKSJ[K=W[[(AH8#FLB^3NEY-<5Y.$P'E,U@*:CE(>1R5X;QQ@ M[.^I"LP&7;MIT:-$-6)VSP^8NZWQ WL76U4TT&P%_ZJVHJR=FV5RTSWGP^?9?/DQS;\X=&1FTT_ETX?^ MXH22_[H$U+DCT*-0*ETJ>#W]EE:S9SL3A[MNV7&7/V[>?@U^&P/B,W.0/I4# M%8;Q#S<&N!,F.F,\QD:5#<7^U)UJ'V_;][O[P#H %-2;TD#=NJR+J4]H_H, MJEGPW'HNJO?UW8.L81W!GO!SUWC65D\#ON"K\=1-P]A-7D]10)=%A%WF5F6T M^T%3D-GA'N.3 A=BQ"W!\>REE5;U<&_Y(5*&159UE=^_5G>R_!N 43=''-]< M4@0?TOS;.[H'W>-N\1$?N7CX1^M$KD_)1)(M9"8S\DXY./P/@G&9TFA, MK)YJK$G_X"VF3@?4K!'M-H#L/S[\;88AT+03Y*>$3-T-PZXKB))5(A$P%+<3 MP8("0S@I(PN\Y5+SH&H?6N]+V["(' X]LS.HL@&(/I_-O\[F;ID>9,9Y8KPB M'*S5R$R6!)S/ 6+2S$6MF3?5TX>["!HV<],,&.LIK0$$_O'A ZHP%:&^FY73 M@> F'RY]''\;+U"Q5UQI+]'A9AFB*//*L_;@LZ/ $I712H)+KG89Q7Z4#9OQ M:0:3/:BQ"7!^G'='53^>S8J [RPU8H.(@2=(Q*/ F/7@$F$0+?>!.\N=JCV[ M:3=%PYY4-P3&:FIK (0;0["V9O=O3DJ]502Y\X/'(P6%5W#82_FV%5W1BU/Z:X M/TP*PW_#O>99RK,Y+O[O(Y>M]%0H(,@?".+0BR8L092*"I-X3J)VY^8JA#@Y?;-[E:FW^!7-TPKDIE*U %G95?C@8&/3@%7R=@H S.B]ME/%<*; M&4#:*+2/UW([T_?VKEJAPL8<+(?$O0 1A07TUB4XKD2VWCB:1,\@/JFJJ+?0 M:SB<5M%5LU.G=M<_[%ZS_L?SV;0[.;YTD]_I)#D'68&3Y1<0TZO=OXN[EF<-W84]@0 M1(B0#4WELK0 [S"$=3QSY-@S):I?Q3B6V(%KX'O%T)& /4VA3PBY?Q\O/X^G M;Z>KR0!77(]".:?+R0)1VH/(I3#;< G6Z.B#R8I4[^]R&L5/ \,GPNI(,%?0 M\1-"=#=+ )G]^'D^N_ST^=7X6\?WC>Q'D6:%X6@ QLK(K#)?T3EK01HG2!G< M8GGM0I=JQ ]\;:1IG-?5?/.0WXAR4_(L4IV "6I1NER 8S[B#IFS54$'QIJ^ MY]3?790& 7NDWIJ]LE)BC2D"^92LPKUGU,D&[":M8A2_>LG]FTX80T5FLH>L M308AA4:#@UNN#)GHI'64LG8E\ YR3K5'UX_NLK^CA "-&D/%Z#*B%U<%.!D# M*$N=XU8;1&E?S'44#!]CU]#[7>MQ@I0;V+.NJ2_FM-/%^U3Z$Z.UB\&(%$VY M5IQ+ITUFP'J,WB+33CDJE+9]Y+ >IF981ZIW[)PF_78.9:X9*C.:J! &@WP) MVC$!Y;H3>"TL1,VTC2;(:&N[.9OO']:5Z1TRATJX68?DPW(6_O',+4HAR93F&C4HNS0W$WN;-E[]/W>%OJ<]9?/B,L/6% MO'?N1Y=IOH8CE2P(+G/I'Z'*H/4 1@L.BBONN1$RTMH%+*=17*\XLGO'/:5= MH,ZFGU9-N9[]N/F=-1T7?[IY7)7]$<8T=8;A1D]IZ;3*P 3.(%$3368A$5/; MQ%4C?N"+CN?#[/9ZRW.JOP%G[]W$H4'ZDKH+>AC#HC,J&5BI=6GF@<&L3K$4 ML"IK;<2]J39T-]_?2@WE62$PJZ2/AK!T57D?K9?*:^"!HKL:A ?DP?)17#6 MI^!)[ MA8"\F A.)0=9*>2."RG)?K.='WE1&T@X1H&SGJ39@+E864S\Y6Z%)!Z#8PGC M%EH"($$>YL<$KY:L?MV\2T$KI\Y";S_$::0!.QPONANUIO+-6:<@Y M9)2!MZP,95,4HVE+($>/7/(H.:^-RC[X&/AL_7A8W773A];QT!OJRP_OWJVM MO1',ZAPYACL!Y9ARD2,U@(Z&CKB/$*[]7GOGS3,'=L '5^[L=$DW8 A??ODZ MF?U(JW"$>(K6[.MQ R\W[:" MM;I*:P!][]-B.1^'98H=*W],Q\O%^P]_K)F)6CL28P9&RZ@V00(87T[G"4W" M2B8\K8W G00-?"NH-1364UX#2'R7YGE6>DJ&U GQZMI^YM8*)C58X]!#]LJ" MQ]@+I#:49B84=[5]NBVD#'S7IS7TU5#8@+A;S)>C]T5VJYGE@GB9H@(N2FUF M2NCA$O0AF/3)&:J(W.^" SYU V'XU0VZ;KVPE?N-0\2OQTN^!;A<[?-6!2<< MHCQ&7;@O1?&4 \&/5@LIO=KKR&T?P SI[I^@K+OJ/D)R RO\M_%T_.7RRU6+ M+8K! V4.N"3(O#1(.*,$9>&2YC(G&_=J1O6(RF^]=&"E'Z.R60WY#:UX]WV# M<,*I92DRH(X&$%R5](#:S1/C.<,1J/;+5@Y.Z)H,:VVRG*K5?2UAYZ>3G4K=]F'S*F?6?=/ M&>V_7Y;%_39?Q#@N?^(FJS#@XG+Y>38O32I&DNHDC39 O#*X\), 0P(!QB5C M$A<_H;6O#??(3N/YULK(K+4P*L.DE17C'Q>%ORN*E]^_CN?=+V/L/)[%D4AH MF'SF8!W5I<6V1TNE0G&0.,L!@W-9O6M?+>(;SPB?836<'0*M8/\8N9=JP=EE MF<$Z6P^+>3E [H;>I8RFY8R9U;L$&GK(0,DM=N M/-TG/XUGJQO=+VH#9? SX,VCHG>7\_ 9.2YIV"N.UH; >AFR9@HH*U<3L_3@ MHI2@!(;,:"*2(7U&V%XS5 M3PKC'I37 "2/%FKWX3_28GF]>=%1%,E'YC&28%Z"4(: #YI!2"I2&YVTK'8] M?TWZ]X*W_DGA/1@0GO(B6)5A+?Z&O[AND-$ZF9H/,X%O=:2N;_+*6SPZF!U78= M"W6#6]+#TOI]UG6W3"OSLOA8KI-O_KQ<]?Q]MOS/M'R?PNS3M$OJ*I,Y83R4 MLT*%>Z_K1HUSR(8QS2BED=2>S]T;,WNM(/N3KJ V(/(SKY65;7DUFZ^_57Z/ MCHQ53E!/(-O(0%#'4'L^@>34F8R[MTVUSY#/R^%^YVGD_RRKJXEV)PC,%M<7DZ$%W)V#^^?KUB MEB-+6O($,9D$0BA+I9M&7)OO9Y,).D+EAV@6F%?)!Y 87&!@3M$B&,O $C0) M5&MC1>V[;/UP\J2[/AV"YMJIG K :" *K2B%U?8VRMRH;*T#G9@L TD<6&$" MG,D40*T1-'"QP26,PY**\XUM^6_QM;+ VP\T?K-=E?,J5!I86\IKO+KQ>(R MQ1>7-Y50JX+MC5X'BY??,58:HQQ&7!@;B'2@)$<.M4S@#4;I,7*+[);T+JN] M& ZF\HE68O:(]7X5W4X[ZU-EC\+.:;Q$=_=Z98^B44*P',!F$]&'31DE(1ED M0;3)@@LNF[GV5EE.9M1 DU]$+0LH5(/1. MN:'@%>V:#EFK?"8\M;96[C$Q;$3^A!.[I\&AA;B[GE&X4Z%X%;]UUS:*#W(Y;-S_A%=4SX#ZWV?)C33N MS-D&!2(0%(OA"2V14F D#UX[866J?7Q[)M9^FB.77A ^S((\"&Y/YY!F:\.? M?8KT;PN(,)U(:8B:(KK,PKK2TPJ[XV.BN>)^/^D$9WC4E(')$MUUF0*&L&4R2G2:&Z*$#F>_@U65PY_F .I) MK,O^P/<:>":&?JT7$\_C3G M;D]B@?8)P*>P0"O%X@)MDR-.H-TB:+<4"^"\BN!8YI%Q:J/MI6M2(ZF?IW"J MU\1R' !N/]\YX$[1>*:IUX2!Y-VH3=])Q8,.&OU]&:.DK57L[LG:L)[K$S[A MZ ,Z3^Q.WQV^+Q:+RR\KX52_W_?XJ_J\ZW<@HVW<^]-<4Z,E Q;+T 0K))C, M!.2LL^-$!S3S/]>]OVH# %P0 ;W.,FA$<%RS)9EC)&[9S"JGM9=)5Z])KT7\ MD[[==PAF[QGT0=3?0#AR>]XN9_A@ M[?Y.=8&B$8X4N,\*5BCE!*G+/M MG)H^C<':!\'J'(.U#]%Q SC?/H(7@X?@O&&02U6LX#:C9+4 (3F/P7!"55MS MDY_6C.Z#<++WW.1#E-8 ^K8-/R7:,HTK&S N+"WMD@9C7 2F<($GG@TCO#+V M3IE6^[0F=I^"O!H*:V'\:+=WH!@LD9Y!LN6&C$._QI0-!&DRD6L2M:PQB?*P M:;7]86E0I_!XR;< ES7*O;5<^N)LJ$A!*$W!B8C<,Y^#-0J_2+4 T\3@TL.5 MM65:[2&2&WIHZ:UIJP&W4$V5 :(Y^I>493"^VU5)F<"-YHWG"BIO<%KM02K; M.JWV$/D-K?A;TU:S0&,FB05A#/I/S%LP*7A0*5/-(['9_/_M?5ESW#:7]OWW M7S #@B"6FZ]*ENV,:Q)+)9X#X&PX"/),<7JOU0XF?C!^*6BB:QUIN>,Q2@G+<@N@\.G?N<5 0*Y] M&4*=D2*C@H3V?#[O_[V\:C_&>328CX1D::UO:VF-](^F:"BU3[S*@92( P-A M)@WWOPT=-DW)7S.7YP:@F"!I334(IE$ M9%)90_(P(+(+(/Z5/[6JX7.375E(LX)37Y34NOF+3 "&G 4(A[_<07 NK6(Y IE Q&F:_KD$ M2RG('18\N$SPV D@-N]U)7TL[TIM*KT$Q)= E66+W\ZV7,Q6UN?,H/\ M\'322!K'1<&T01)D1>X?O-8*,&@A*) E[KN<"Q/:G?)>DL8ILY*S7 $)N048 M([=5\ P!3C'!PB(N2:<0^<^D\0EE=KJD\3[T)Z#/O,PEI4Q;QG+B#C* $^D7=N'4 M&YTY]2:3#&8%SH5Y\_O/1YXTWDNLWB)IO _'"!9*8@<%,J?+5^!*2O/DXAUH(H(406VO^^=T")^\XGEY=Z*O(2D,1= M^Y[4PHUF M)+,%4(3ZY'>W<)ATLT FDP7+H<$F=&FOWNEB1Y!6/D9M',Q'0K+TF!:C$,XP M B:C#@8)G7(B+ =.+4&:9H7;B:=*/DQ!4QO.Y*%TL>ZPQDX7^U+IA3*/R^-A MCY08VARC ECE\YHTA8!AFP&+,:52&Z/$QJ&V(TML>_MI\#Z$KCHL=LG1+YH_ M37M:5[I\=M7/2.%/1@NR7"& ,W_E"FH#C+*%P529#,IATK"MNSC"$8S1O1(R M&M[4!.:9DK4Y+2J18(62P. < O<_!!P*#7+,D*(J,\0G8\Y(U]:TPAUJ"4XJ:%Z^V'*59=QINLC78/(Q ^F3&*E%@&">:V*0.HLLQAI!F0BAC .=&<.>M"*?9R M&>YPK;WAH(\T-?U-UE?2 O2NS[?UTT;/MIY"9]QBQH%_,MXIX(@ QIG#AT-5 M*&DQWPQ])7S$O9K>D;[+\TY.N7'2%O^@>WMS&&*I-'&:-V7,X5-0AP\R"@AN MB"("*VBSHUF-0QPOZ3W*\T[6XAA)._;7>+J#L_$2Q]),_N@VD\R= XRS%1S*;S:L\T$!RI$R=RG"(!<7S72FYW^*XR;C T M6@)H$':&@1,";J4 >>[+J*G,0G.$Y^W!>1]I#"2%A9/@)M!+BO]Q093#\.4. M(%KX6_?688@S10$W!08*8:FI$(+ X]D$>D[^2$_P?]1.,*4\OVM%X*67_3!P M!%F<08D DX+XS$+K(#0&H)QC(0LKLNQXPJT])W^D\:!_U$8PI3S'SK1^PW# M8>"LM8(0DOMB//XA%RR!0(0"30LL.4*95!L;0?R 4Y@5GEY$*J$5GAREO03U M71_UZU##PDGU8=24U065;C?,!18 9#*9U.&@,S_2<%A" M6T!:?/:2Y'>]_GMX2PJ#'T]25V"?7WKA MMW_4VI](BB/'[Y9JDU-NE!>X:W-F+T5S;=I5(/)4W/IK5F?V@RFKZQ,G1N;. MZ(^+QGWW3"%:F3SS7^N_3/-K>5.V5XXEH;2;LB1':DAF8R #^0XMH /SZ!98G1F7R'A'52T4$Y]5=DJ8LLQ1/+./;!W:D]D!, 0_ <&SI[G:"?1)-Y8R/2ON(@_O^N4K& M":-0,F S__";Q@HP;ADH"H.Q5IDF!@742G:/I)/\TOOJKPR6[ M@A9I+# !F1+^I4U!W6*% @C"H)2",I$G$ZS8,OY.4L_?F=1'%X1D7V,Y46IQ MLUB^N[!T?GI<&O/#05/>F2^5^YSYM9[/1[S(TK.',*^RC)E6H)=9+LSU>@!N MVUS.X>D)"YT;JXDR0-G, LQ](HA6&%CE9(-;21@*_7;(GN&,?ENB&]BK\ET% MRX36_G$E:3* <5X KIA;PT9GF%NHW'^!I]YG?'$SL4/)S*NW)J9B*(7#W=&S MW+M7T1P_M;KRP9QE75U!:"XRF0&&F$_%]G5UF=(@PYEPAF&.& O^1.Z^ 45^ M'&(R.=@\:(.1DH"$;^D7Z4!78[=P.//^"&G*(%<@ M21 %TND21#F;)D.A'UKJ-K+D3\Y#DP$!JF+>9:!7^"KN<8X][%>G-I M#,];6G*Y3^-]CWKFV)JO=.XKIBG1 MR.D?3MMV2@@4N4.JT""7J" 9Y9E&P1\Z>#6*R-(U%>&O/":CT$^FC,"N)>@P M,N5U=;IP(ZO4_5+U%6K)8K5=$7Y ^+QNEK_80L*C.GP];*1QM_TC$,'-13.] M/"0@]9N3^^R8.ZE5N2*D7<7F]TX8668UR[ [5;4S271F?6% !!3+F="2&TE" MZS2C!QUWVS^^M?"V4I).8=1=3)WI#_HB3 M(8PU/OX@Q)"PHC#,'83^=4^#"C=3K8&5DL/<,BBI_*DN'9'8OZU(C-6-)E6+ MO%NX@TIZY:R@C!HB 6?$%RMA_[.9C.5>S>KYHGDY<3%7.,81 MYUQ[K8\"63@E$!:08LH$D39T*=(]PQF[DSPV_>EO?PO&?#"5L65[Q2"Q&LH< M%,L"E9P3MR'J B!!"$09RQ4.'6;>,92XEDLH2=C<0T+@GH#9_,E:H]K'X]9O MLDY7.ZVKMJP6977]='OARME#Q&AL ;7+-#;)@-26 9K9C)+"9AR&?I.C^^CB MV@E3"=E$[,2^>-Q]6IMFTZKNR^6/A_H A68HP]0 +*@[MD6NG *8%2#/!!,0 M*T99MQO(P884U_\86A CTI7LYNBL[KI2Y:Q=M]_9DQ1NB0;L)8J:,G&,B, MW1S'HV@BFF4*,P9@KI=5OW+ *,' P#RC!8&0AG]<:\=81KO"UMB>VOE3+ M:E">OP_WZU^NH.;/I0"(&EYCC'#.@]]ZVG ,"-?YPPA M.Z\\9Q.3E<")^7@-]L-B7E9F/G]8Z,MKL+) N23.KK)R66Z/%T 0ZHL\*8>K M-2+?+'D4[A+ZM@%%EK&IQ6'77?31W*0@:*NQKR_!6DUSR7*W#+51_HX-6I6; MI[ PDA(N& N>G_]\ (G^7?]UXB\P#'^N)>@9&0&B%G M/%N'!Z/262.< ^%V]HQB 147AY2K_5TD<70-X:P.#F!L,?BT:.I;\W+\N;&4 M\T(#Q3+HC%"K@%1:@)Q(7SI+Y,5F%'N7V^MUXY&?+0Q#_5C0$C@>3NO&G:5. M=D^JU66XAVD4,C?>*G5;GP]\&NTW0P0,1QX;PPT,775IQU B5^,?+2DAD4Y M8/:H8+\^7IB42C*&!0:9=9L>-H0!Z9/?$!)$"P79L[?I)S(JA?$I:#XRX"W-_RG;'Z>+>5O?F.9+I68+[B]DO3;VX_5JW/I"P"HT^J_WHTQA]]96SZG\:9Y1\K/_R%ZM^ MJ6O]5SF;?;FY%67C$?&?N\+"4NS6$:!8$V>=Y!*PW.>W:>%45(VU$=V>2 T^ MM"0TOO!BF0"/">R2ZTEZ7!\R;Z]T84E!,PPTM;F/VC/ M=-W&,X)P=)*&+SF MYI9A1'X5:>K=<"SPP?*9WRY.^&M=7?]:WAGMM8IV+N]_,?5U(VY_E.K$9XY, M$C7LVNG4,<1!DY\ZHJ@AD98: _+<"S!S9J^D3NJN$1S63#&80Z$CQ.IZ(8B_.ND44^P X6 SN3"/KJ6**A!&8*XM!8?P- M.(Q]M(,Q0&RF,VP-,QU?GTL\ICB8_+&@1:6]ES%KD+%8V P0[2'"RA=DEP8H MQ5'&!(B:D\J[2_?WJZ+)5Q)2:$Q MO@@UX0Q@C: OXTJ=42$@U\BM,!7ZQN*^\21Q8 5DOYZ(BH#;VMOYGY:7-G79 M+EQ7G^OF1+NO_06FRWK#.3.)(ZIW[U-[I,;!,;5KBA;<Y420A@80W EOHWD+&;/B/:$DM,88)')]^-:ZJ/ M[ 1Q3?4@*^*!/&_:)POYR?TL9DOKV)T;*J/:Z;(20@\: AP[C1EC0W.+,LHV M;]5NESC7RS-I<]\]2=K> 1RA"ZH/[75H#F(+T@J)YU-8VUJ$680XR0$J,@J< MJD+<=-SJ@U8ZZYA8*C8CV<,$:=< X@A20&+KT"A'%!7E4SN:^ZOOWZX,M2PO M<@.L=98WIM1X;PD"D%&<9*,I_XBBD$8 MTNI1"$;>'E9^D[7#!$.&E102&$3V!&>]QG' M;1">_5%8)F#\=S-I!<74:@P*ZJ3969[^F31WI*),4.U4N<+JT,\IOU/7TP"- M9#*FTI&^9Y;N@Y7[RLB]0AE6A5(0(,6(K_&0 LE5ID*7B7D_OJ<^LA/"]]2'K!1.Y+T9&H@+PB$4SK;Q%_JLQ4YUH1I0 MDA748DRR+/C">U]I4;W$H5=:5!]N4A"T%_%_DIF,FDP 9#*W*I%UBG$N"2BR MG&:$N:6ZU_?PKM.B>A&[-RVJ#\KIID6Y'5QGAAN/AYL%9$Z_%#D!B$F:&R18 MGK'WDQ;5B[-N:5%] (PM!MOR>PJM-!5, BO],R&Y.\)9806PR)G/,I-:"-I) M !)/BAI,_5C0$C@>=EW_9Y 5/"\HH$)X3# "_AE7 +76E%%$8/"P\Q$46A@B M*2&13D!@.KE ,.52".]P@WGN=CYD@,RA4\8<1,IR1#G_66AAF;6KS0^=Y5<&5$0+74&-,W\!6IW^$I!(8XR"/PW;95Q):#L! MI:&>F)JCS*W[6,[%]77C'WURG?B2J M*&_ 08, %\P"@PHB()$Y>7PNFWFK%@^>-BT,M+APY[8MC"_E3@!#B "3 M4P6U@()(W4DV=O<1+WMN K$(!&5LB;AT7)J/YTWIRU.YB53&?>PA*Y!9PJ5% M.2@L1, 7.@:".82* AJ6.W14T2UFL:^7.![)B:0B&)RQY>+;#V.C J6 M0V&IFQCTX6$$@422 :.US DO6*%#1\;>9]7G7K(2H.IS'^)2B%R\N"MFE%YU M<.*?C[\L;]SDGM[\.QR5V'H!S3>Z$C^EGZ1N>P\]8Q&#!S\RSN"ZNEKUE7JQK.XTA:J.IN$;9?LSK0P#$ M7DJSV=.X'GS[HQ;1M@:C,;0#\[H; EX5E?KWWWXP*(9X@Y]V79<8[G3*MH+ M2@)D??OA)OM!S(WV.I"IYFO\&E%=+V];SC_S^^MO1BV:LBW-_.2F M'<_;UE8[;>TP/FO[($F!LD]_-^J\*56 ]?745"=R$HA(OII\"HS\XDZ ]J-H MS6=1-K^+V2( -5O:[,11 G'(W7!$)NOERK[_[<]V*4JG/ZKKG'SM:Z^FCH$*2];BA=HW(=U?6#B"9TK MQC5Y4U:KRCCNA\$.F%<-1]O4AFH&76"*O>5=7[?K28WV-KUL*EH"Z%"VMD,1 MF9^' 55B=C\OYV%RFW8V&BT9=*3NO1.>R.Q]:_\\;]19#YL;-T]^:54O5>NQFVZ>?:,'N0 QW 3%!VG\OZ]D2YC/[7_6-.5T]EOBK M^&L*[O=V%B]P'E("NN"9H!BX&?][(6:E+=5Z])?B[P^F,K9L1R=+#.HP7J@^ MI#ATQ34MD7#;V$Q4ZP%_N;GUA0[WHS68[D9B4K^LP1@E%!6HS=W;AA?GWHFP>]Y4P MFW*/;CJ1G)3KJS^&J68!G=]-E0'TLN4@V3][!AL@\^=R T-]&+=KRSIRZ;>*Z;NY'IXYL M;S$>39MXUQTG']N1/)MM#J\T@9)(=C<<+_MJ+Q5U/UPB4W=NZ@ \/;42,Z?D M,-;UGHG'3_)Q0_H:A([-MN+=A>Y)R@X0?N8JON5)\S,_\6=^8C]N]+\NZZ4] M/G9YO&PI6AK5OM6Q=;*Q"9C-'H<59FEL-A?O6-\*=]UE[K%)N;YNE[>6JGGU MNW"+]]OBYF;EMYJWU:6?'VT/3 M-C:/1@=Y,;%/?ZO9M=.@+FZ;5K^>0N@5VJV[>)W+>&\'(U/_1?*KT9U_N MXLP^3N*7IO(#/[UK]!^-CZ7KZOJDTM^KNWFK PC X$[36/K]^*W#@1U95KQY M]:5:CW]SI)OS<"O]^MQ<;7R?9WHYM].ZTO./C?LBE.0$&D*TBZ5AY"@L$9&EZN.=UO.S MYJS]T7QR(YR?Z[/J<39?6__SO^87=J;\M"[;F0?(/^P12J1"]!_M0I( M0>Q'<8SP>7&C0YG/VXEVZ.P+9&Z9:&Q'[WJT87*E7[<6+]MB7/IE:M=.3NMO M9F94:_1:AD;?.-G>8KSX_S"^]N(2.[W,#44_YF*=65LJU^[G*LQ:.]QZO"UP M&)>=\8J]9QK3_-+4B]LO\_DB(*/[VHVF^P[=1P]C%'M'_>%K]^O'@89B<5^[ MT33.H;OK88RBK\7ZLF[%+,3UO7(GNT0(4G-0@V^H.UN.5QAD MS+YZ"*CH>3Z+LKWW3YNLH'3FS/I76#,6ZVH=CMV56\.B$#Z1X&96RS M<6.;^7V^/$26C[_]J&<.Y8LVE"79KZMX)48&^^Z&0)D<_U]-^Z52]4T@'WJG M#N)5&@G&]6[8DF/XE9-Y*J;W=-2)\:1\1P-@C,S\ENW'SWSM_ I#>M<^.O&= MDO>I)WC)+?*S]H=I)E[?V_OH1'5*CJN>X,5>U4(N9J+YM9RW 4/=NUOM1&=* M[JR# ,4F\/7.,M83LJ/)3MD**3FS]D,3W?/_L/F')_!0VYV83,F5U1&LZ,?F MA@HWEL>M#78B+R5/QCY88ISGU$@PK:UUXFOE#P/>T!)P5<_"'&[ M'MA',U=-N?3G!TIX/-Q\)Q)3LJ2[0Q;]7-*E'Y>888CNGF87*HYYJ/5.S*9D M5'<&+/:Q5LVK#Y5M_5V48(FL.]KLE%R>DGE] )SHH>BG:T3A8L[;V^Q$74KV M] %P4BUC_Z6:EP[,RT8LGS!L&I^ Z\OS;UP8&EG3?D\W00K<=YU&@&KWK[IZ M)18#J\;N;':,*_.QN0_^293Q=>ZW-ABQI.HA+EXX+_> $=OE_#BTT9<2-YJ* MQLU>M+>RDM UQ9/9;,M>$J;NZNZ&$^!J3PG6@X!$Y.RVFE>V;R='AOF,6CWT+ M>>J,?D2Y.IN9ZXM[(>O[_FNDAP@%Z"9FS0G%).# MG4:[]CVYT'3%^XA$Z'MU%T.(.G0;[<;YY&+4'?,X@K2RI-_=^S==#="?;^'\ M? MGG*$P0L^/3<1>F/>IYREL7!N[\:#S*P$[J1L!N^89[\SXK6UFEZ:YF9_9 MRT:[?39,2&A/L]%8ZN=H/@Q,='>S'U6(=^1?MA3-?NP;"-@R_50HN2S;T3&: M%TU%L\\&DO("@,BL7"QF)H.RR+QK7->W3G?_/!/7H^C9U68T Z@?3P<@B9\3 M-@5G>YJ-5F.K'VV'@4EB UR.RU_)=Z9S@$WP17/1ZFL-V0BW 9'09GC9W%1M MV+WP69/1*FL-WPI? Y+63AB(L-VM1BNJ-6H?3(ZV!X.AN2DK$7 GW&PQ7AVM M(;OA#CR2X.K3W[=E$Y*JC0;C5?UK%1N N=-K5Z. M/&A.\8MN)L@IWCV-X#G%S[MZ)2,!DHNWMS\J>+AN7C]O.I3M?;CU1/*/]_+V M,N+8$:_(^_/V<7ZMV_50P_C[N_>2B/M_),][\)M^1U__PO\AQ=S\___W?U!+ M P04 " ,;5];+X@[I$$Q #I3 $ & '!R;&(M,C R-3 Y,S!X97AX M,3 Q+FAT;>U]Z7/;2)+O]_=7X'7']HH1%$>4)9\]'2'+ZAE']/5LS_3NIXDB M4"1K# )<')*Y?_W+JPI5 $A);5N$U)J(<=LD6*@C*\]?9GZ_K%;I#]\OM4I^ M^#_?_]_#P^A-'M?'17"K^OC)5JG^PXWS_%_[W]W^AEWP_RY/-#]\GYC(RR5^_,?.3^>E\ M_F1^?#Q3)_'ST]G3Y.EL=OQ,GSY/9O'Q\W]-OX&?PN/\F[+:I/JOWZQ,=KC4 M^/Z7SX[7U:LKDU3+E].CH__X)GQ.%0MXM,K7+Z?X7*4_58GI[G ML%9Y/,[3O'CY[1'][Q5^Y2N5_>>XU(69\S.E M^5_-X],_KV1B,$1J,FTG.CW&V5U\6IJ9J:+IT63Z_5_P>;N\[B*W3SZ&C=7% M7<^>9Y#H."]49?+L99TENL"GOOGA_<4_+]Z=_7)^$9W][=W%Q<\7OWP(E]== MV"ROJGS%K]ZQUG_7967F&_[(P!NSZN63I^NO>G8GO6?W86G*R*[JCNGFO;[4 MA/H;19/QONZ;BKZV629+O-*13YS>8YZMU7AK2+0N=*MRN5Z@3'IY,<)6@ M E4F5JEHAC-5:M8^IUMUS8[2?*=Z9#\IO-,QDDWY^9,&6K-G!.RGUD!#+CQ,+7 =[JL"L-ZX'E^J3.55>6^M)[! M[,I0# O@VU6EXB53E'4CG"'!5VB7NGG>+\Y]O"\"B^X]VWQ] [:)/"S@E86. M\B):J0W85W&^TL0V#>#9E2H2;\Y[O_172Q,O0=3DH*YI3[9UW6(!QQ8]L$T[YQ;F./CXZ/HY_R;''X M01WQQ&+B+]/S4> M*QS56F"0MGBXE6R!D'!#_ M]6= L1#W7IF(@5_&IHCK55GA+,HOKIQ-I[?3IW?9FL.AT3=;:?1'$&^X[856 M)8J^4E<1J!UP&&J66\[E4X5GCB%A$RV23;[GW.*E%CFXK*V]7-9GTL35G/V MX0+^\N15-#A_UA%[W&&ZS#7V$]8\"DVY.DMU6?9H/)Y: 0>#IV0R=AVB$S+2 MJD@-R"MT)R)#5'&<%PDI-:2%O,=SRC.6CR?$J_+YA(]\#9/.FUCJEH.EC\/= MPID []=%P;8!\U#D?4,\ZK=@YQK@_GC']G3.$SGH*/)V6#E%M;V]=)\46&1E M'8->6.+3>::C#9PV?)G!OXM2%1OW^_#4#NBW*AO<29QY4Q_$K:LLXV,V![)= MU2"S%+DCR75?L=E=@\*>TN-E/2O!4*9H0&LY=N,'M^_OP**YVN\-O1S2SB71:FMN=?1FD>DRS. MZPK-$"1;A\<9.^,$J(X/'6D7;/U*'Y9K'9NYB:-5GN!_%?MJV?4.LO5_:H.R M%=Y6:%:^D/QP8Q+1P;+#N ;YBZ'(]1K8 #EE:' 2'SBS-$K55=DU6^_)X7_Y MZ,_=';YUCRDY$F(<:U3>*A>KUL3BR%%;T?8T]NDX A.!52Q4N\E?YL+6&'8^ M]WX5!J4Y$!B9RH\$OM[NN_"1TMUSVH:=MNRI^8F: 9.JJ^Y/MCH^_#^7A1UY MK1;Z<%9H]?%0S8&/OE3I%;#V;VX%\;[FG;>U5>_4QT6+(-T=V84ONH$LS#!5 M[$&HUF\]AS'T'!'06@,]%^LQQ86K: ;0$1 MA![J*F7SCL16UU>>%XVKG!W<+;W*!J::WU)>A:_\H<"C\&.C@),!*\XVJTNQ M8Q[D:6)84&I@J[/4E,ONR78B9-MYWWUQ5!T/QU%U5D6_&SBI"^>6\,)>^R+@ M/F=))P;34!A^"7\-O+Q]0X@V5F<&I"%0,)H"G@,&Z$X;TNL8748.F0V3WCQG M;8\C$6.T&O\-MD)(TZ PB'NFC$YH.J==#YR8$=J9^.3IZ0V.V;F)*WS79MB@ MG)K/36I@Q/)^^70^>$O=HR?!"I][SV&>#(?#]"(-@_NP;W8#,NICEE^!=%QH M2>AAC+3<[FM6@'=*-<*L_R[ONKS 6QIG!=Q1_2E>*A#>Z>)^(33Z;^K) M<&ZJQX2_I(Z%%MW=[^O9(/;U9/+DI+6UQ!\&H6W%>DW,2P"'Y.!H%)C)Z\DX M.H?_OYFP:@5_)7\X:T?(2>LH7&"OJ1*^!\R$GP MLX,GH1^XZU/&4>CW[GW$PWB.GQI_,V[[54Y5S6H,XAU;< Y M#8,!_O)F,F+-HZ%ITJ2 '.J4Z#K1"H'/1?3&E/8.[1CP?#(B1+3Q;_M-IXW7 MT;O=N]YS 1,_$%.QK!%H>\GT1Q"EP9'5_ZOAP?D&)^==Y[W':O'H/3.Z5T-= M ^]L0Q_ZC&H:S.G5U^B0PKC;[K*6D^PZ,*DB\&Q#T+S.L6EO]Y$;Y"'#,#([.,YCO!\&% 0J:[7@M 25NAQ-G$DM5,/ MJKS"0*'3.1 7W? H]\;4@/7'E'XGBL1V+Q>O[#9Z!4JC0%;>?VOE?!!WQEHK M>&V%>CI:7I(7MZ9*B4@E]24 M)X=4">K(&ATN-)316Q(9=OAWQA*<:OS'G' 14_I5PLHU!93;< $A]P8/D*HK M]*NL5*);89(Q_IM'[Y^@2=,,#2RG/Z^7FQ*Y#*4(PKSA;P:&,@4S@Z*166/4 MJ(B)-#MJLSU*L6-0.T?'65&OD:T(%!%F@CBW)2P$UT/Z^!4,#VK<]-@:=P?# M4YD:ZM^_&G[F;6:S_XZ1R]8%VV]#J(+-PFUGP)L?3ZWJ@K,)&_J_RHN/?)[V M?'/@ZR"(<.]*H@YL@X>X;Y;[J69\*I1ADDL;L,5E9\[;M#_FQM6+%W><,'3]"3V[*2EHQ_98TD0RKMA99 M+L'LQ2\10<"0VEYB7%.Y#$WF$$8N**J)?(+,'^0I:.$\)+_RFT%I:@AA(T?+ M?K4T3_MAA@,*T]*L;^"2LX5'T9W,!,K"(S2#*+R]6ND$0]N^VY:5O4+'VJRK ML" +08Z=H]CCW'.[9QYH*(\9?(9!R(1! MF#71.5C4T-0:6O5^-1K:?9\A1)'-\E27N>%,%W3]Y?6L&@Q-XB,14G7:1,XX?71EU7-'Y/83CNQS(Z;48 M-PCFA5H('(A@B3$=R;J OZ F1EXNDUWF*29<(.X'V'2*I@58T7"T&YN0C$'] MD&7#,'!!X:Y6!4EI11K!O$YM? 7=%?AJ& PX $:=YZ)8[*YG@@'# #G)MQP^ M?@@W?1"4E2;45X'A8ML;Q3H^KKP;Z%":WFJF*D_YFVA?^^M-: MQQ+E6"KT]X)N6#@B6=>5;J4BCEGWG[=(8FP9"]..*:(8SCA? 0&/7?H/R0U@ M20F(D <0QKL8A*%+83PO+C^D2)X%$FVHKN["@W?M#$_TI5;T&(]9CSV_3)B@<]+B_:UGQJ2@+]LRE_,!UY3$8 <9TLYI!7N,-] MG:.T(7,!U4W4( =9(X/FN>]\CP*,%=+4_=WE'V#) MG+'D+*[;0BPEK-1<<+F[-/L%A;$0,@_3"7"9G9($&$Y!.M-<_%"@J[BI<+]A MW%N7=AJHLC<(H\[Y*F#,"L7B?.*S!5$-8\'PK.EB8$JY M1/#8GPP'I*MV&"\(#RIO"FR$E,[&(.16D6,)58/F2+IA,5Q6+IJO0&W,57+( M"?O!:F@R[2O3/R,_]K)%E ")FB K_<&8K,.@3>MU\F@S,<"JZ^W$J6K@2P7% MF\5&(1]3:*(\G&,:Q#DYQY"*)!5*:G=2C0:O-& CV&-!^I"[#I6U*V3S885/ MOKXHYIJ!2#4D'C$WSQ"-C E]1&R<5-CB15S(#)4 M\#L%$<0Z07:%SQQ,3P,+HFVS]<7^^*D[= M*4@WDL66/OKC"Q.DAQ;0);X&D)H6^K=]F@)C/ M]ZT9O^<9[]M?PNY"EWQT].)L4)T:9.N:V>U[OT3IPM9/!<:6WJ'/H$;&QZ' MZ8OG3\>1UX%AD*XZG.W>,[2V\(>(/#IC)X? ;MX:^PF5D8:E M&?%GV'?=KKR4>T7_ JR/\G/>\X?4^#!1V7L/=G"AF':^*-0J4DF^KCK$!/OU M2UXA;6 OB,2"VHFZ2J*$;L$,H0VDG(+ Z7TQ(MP/VR HJ'A"Y5U><^8X>*(-H?6M>NPC3/%Q M]".&U03N/ZYZ6/4Z?K/F\S& M6$?D4&FJ-+;7W_,+OA\V]\RW1G::-2A&J)D(GJQM)T1#>(&#FZ7^@.BG+"8R MQKTL(N+"F$<45/1H7'[MO=R>[2XHUHW=8L\EU9;'-N*)^A1P\O72.:U"&=I* MP[+2(GAK%835KM$,'L-C7Y;%L+?R-1+C>XYBG2,M-GZ#O38.:5&/:I6MP6#: M*@=C'PNP," ;018(H*AH'CT1E"S#J_J_4O':A>ZV7I?H("_&04RY2:GSD#:F M[%3M +V4,CO\:V"=PA2-3NI8]Y6)[(3QQI^W+#];949ME9@%=4.BP.8H7)W8 M#TI7S0*[J^']="#VF6"@X50HBDC)_3-4,2M>()^)R>"C-.6;W--$I"_RR*AI M+,>T ?Z=.LPFK.92>/;T^' %1+1TJ 1OC2$(IWV@'/2PMM4X6N97^M(:5WA& MP8SITZ8BGD/VV54[>(:.GAX=@KUY_81\X4&E"%S^;*)3M9'<9/\%DD'NIN6% MC?FA/.O=1\NC>1?I7>%4GA[!X#CIL&2QOUW]U@,7VJ/.9SVV G] /0MDKH0" MX:M*LJHIRL1S)#A$9@MI!=;>V028)=8AU#KAA'@D4M+!=ZHX2(%^VJ"B$SCQX^W:T^Y(& ML^,@G2L5P(]%A52I0*['RC( M*VI6]5<&$&E-J.M'G)'J/O+'S M\Z;$;_,.^YT+SOIWU*DOSHW3YVD0\B:5S+ZAJ\U]Q?M-.J3!$(V49?%Q8571PC T,GK]X-8J(^Y:[&,=#T-*&H:99I,AO11Z]4Y6*7I.!((;A ML%4T)'_D96J+D<-" 3A4C(E2K%>LZK0RZ]09(L(16P,\1K*Q9.MC)/O&Q0>( MX#RO&>ER9%.+[\S72]J\MI\&>4QR:_;+X1L)6U6"I G*=H23PW83,#G7;Z)3 MS*KW=XW6*MX"E)0[5B$I[RC]<.HW7SE6>P89J&+G\XBR>H4UH3DJXI"3\LV, ME3<*SG@S5]L[:GA^GS^PO7:[N&^.#7)L+:)"NZJSG+YIK>#)T]//,Y%4HUF( M6ERJE92G0&N-7*XNPM"D\WPF8=*IAEN'/=A9TZ D(OJ!#JC@MF_ZD_4XZ=_7 ML56HD&Y9H\*Z0XU2];,JX#?34VMTM AZJ]EX>\+_HHE?#QH%>KT.YE"@KZU' M]IP-G+"4S)VK8$$DE%AHAL: U &-%L#YUM%2JQ1=)<@-#O805.N?O)XL]K5O MXPAO&=RH,7+Z"O^+^9(4#J5M&D6$JV#Q'L#3/8DGEMTG M>JWIMI7LZ4,G&K>!] UJYCGH"0.U+A ,&?5R)"WZUU5F9L"77]<)HO_?:?AY M3#@$:NL65X(_.8T.7-_()F!+?>6H)-,\*@WL/7 <]H@,KU+U^:^OW^T;Z=-3 M?YT"I&(.B6M ZE3%JBB,+C"Y"_D(&$Y-0N :E#U3KTJJ,#?WJ65;2Z$N[3A- ME-T#U95.D?2FQ\YHM\EI+2*BG20:Y0I]G(@F3:"MAA),Z+MO3YZ]NBE-D\;1 M- )S3U 9&WJUG<_H0?@.[@"0?B.YQ2&>?^J2TAHQ)3BH5[O/8EU_,HTQV/C& MW[= LL^_(]-5OX!S5;\&/RWOM&VTI:>I(1GT,G<8']SGNK8_9,"3.K\.SP+V1/ MXYQDHL+O/>>69.S9M Y&"0#92)J>HM839;P$JU'26VDX<>QF<&!]S=<7!8)U MQ+$KU@8/1>*%AM@1NJ2:GKOG*/4O4# %4PW&=QYLPD(@_BX3DX21D.V%ELX) M(*:^YZ"7DVY!&>EUM,OXP_[3:)ZQ\_+[,_!J[%(OA=O96@:)YJA;OW^1""DMG:?VFV.0R^SW\L%]C;11K+O ME&9ZWG\=!?2\5N1#SV"/YB^9O]/QT8O38*\L+U=()%H?N^9 MNP.@+U -!XN-N$T4,<62WABQ%-)$O/TELL7N5!Y 7:,!M2<)4:8!&_9 EUVD MZ/Z HKU(U^TXT:[2MRU>8-N<" "#.%4?IC;P_DR?"R"I1[#W0%))BKC?,$$S M;QV:?Z5SYGOWM?SYD+B/H6Y,JWT,==_TKCPBMQ^1V\.&!3TBMQ^1V_<.N=VA ML$?D]B[D]NM'Y/:?'KG]\ #;KQ\!VP-6SH:AG5G -FED]PBLW=7*"*$(MRJ? M.,#@]L27/$1]/D(^APXZ//'&NCQ+(Z!K-E,[Z! ]\=*^VJ2 2M8 MU(I#I6U 7PMGV'5>]6 ./2BA8!1@X854KX,/2\(7UAD5R6(8E]=Q3]/;VQ@' MX.Q8<5U"=H_1.8G./7V,SMV4]EV%R!V18<:76I1FFXH;=*8O'K>/-VDC-F^* ME1-4FA>C9DBAQU(L L[9(SQ>COJ0M4V7"SN3L M.[RX9@.XTRN\R10P-SJY_]7GS@JB)P$ M@S(8"_LNO+"-D-8[RNK](2!*J-'YO9^"CI*[NS[U8XK(F4]SV?;J0FJXPC7* MQ)]-\HPE*X;_8K,.>UIT%[W%M?_Y &L0!N@<\A_<07Q?@_YH>\0+#X'\X[J]*N9RE^/;5R+6B M[W 7ZP;MGXC5S,G=V/+/$<-X=$[NUSE)E((![MF.,Q8!Z1#A_CO"]]_JM3T$ MT&I ^/3H6O'V(+P#P^"]-CJY-27TGG%@]K2!30_2.XXN55IKF^/F#*?/,OJ7 M.B7N>1-0KV JL.$)\(2YI@+ZNRP]TL"(=;37P$T"_/BFM:PJ3FX1-R(HJ;$P M-#&Q9O5&%TZLM)E9G*]6"*VA?>A1![X9EQMJK M4'HCNN.[=N8B1$A^6.=FC]PJ_1V$+Q8(])LKG%%@D")Z"(CJDRFKL@7" 0*I M5ZOK%&/$'BF2 )@ 2%*9V/XG7<08=N6]R Z0\]+&*GMQ?F<3Y!?-TE-S:INKFL%>,!0 GKPPR3(P91&%3,71U%.*1F9.#=.S*( \F3-S(INY: M%=EVB29L(UD)+!!46N9>?[/([T":7V6Z*)=FC0Q0N[:>L57EYZ3NMWN6>K_" M!#H/]NU7!R#05%EJ[& S#[-!)&B(<%N_T];]YT07@^!$I]RTK]E8IK%S*]@P M4=Q\.OP90[K1&P2=[T]91T'JG')](G28[%0V36(G4^8(V!GJ4]Z MM19T,OH3. F0[I\H%BL7ZT_T7!/O" #IW0Y]8P_?9FLQH%8RKZL:9K"H#:=T M<',SS-Z0O#$,(ZX+33I6.""CSVP^A7M0TA]4 LH=-BPG-RKEC, 0*;:ABOYN MB]F80+]WF3I-(8*Q($]C1'HCAP,F5=%6P)OR4:/32Z('\7%+C <"?&^Q-/O] MR.>I0IZ]VVFE2;BKC^%>F,ZSQW#O36\\]U.4(493[<)JB7Y%QA39XY'!Z]'F,4?(XW$K= MJ;&5:3P-3-E#>_>#-EY/T8T,"O6TN83*_J( M<[Z]N3--$4O/E?$'CD_*/+C]3RRT8W!W[HV0T-O,D#$@^T!G/(3;%YSR+LV MV^DZ-6(DM^3@;-37FZ )2&U->PG)HETIJJ]0D\L>\?,R=FVPU8;0NXFD1%]8 M;*@\UYZ(S<"3JE \>"?CH/%F74SH1@/7=Z_!L:UK::92Y?$J]YHM:;]^P2B; M;B>U[3KE @.+@/).I5X7#80,T[XYR>M9-48OK"D]U1BW' .LY%SU$_8ZDRW] ML+U<,1>]9YDZ;SE60FZ+J45(+@V/917<9<8N@#%5>)6%^\,XI7'J*NOOI#Z[ M#$/9*JN'!NRAE6@(7W] QE>#,'GG5/%H.L&'#Z<'L]'!R>CPX*F40/$_?S$B M;LI?'#P9A1M#N 87ZV'8K0,=DY/A3M=YW2)A,9'K,H,L_5Y/8@;6-O;T![XW% A" MS<&LD 51G"!TIKUX\4(BYER:7O:R*X(:.,,C>$42TZQAC2O4\ZO0%[? M?*-*Y_N4+'RYVM+/EZ;?3T9F\]?;Y#6FI]'HJXR!;B54N M%CDY;4DH8S!*?<1_@TC(21QQW"P00W.=8*OVL=0NQ]FE>4Q5++ [.'W ]A7G MEJM/NG28EAN?"^^/0TB0I%]706AN3%&NC'7F0QQRIH#YCILBG\)91>6 CYL^ MS5D+$\^5+5*J-E;B,MIGXO9>G-6WVGR.A87Q.!? ZHV)_3AQ\;"52LBK?%48 M$BP8^\WLZ> 'OK4BJ^JX(=BYT[T Z,=HF*MPML[(FLF[@JWO\@_F96\ M 9>D"X[V-'RAN>@X9('V.U&Y'77L6Y3.E=D=LD?%\>]3R=( W\,WRT>RA+X? M9N3S&L8MEU8R^&L7+ B%NQUDV$:ERD@B6^W=\BQFW&O*#?! EQYHT4-V^YX M%X8S(]@<_"7.R^K:"9#SHP\"@@,&9('A*F3+JMI"&AQF<&6.<% ?"&QST1P? MW$EGLI@ L=B$V&FO1*BBHH!8OW7'V6(SMCG/CO/'X4-V#L1@\65PQQ>8["B; MSRXYJ^3XHS+,0YPT*4N%GIH@$B7TS#-1G JS6.B"92ZZ&1J&;Z\Y+9 F&KR7 MHPVR$HXPD=[2E];QF0E3[-;/P+)H4-:H0V#.+!V>W4\IBITTLI6WE#?1(D/$ MQ\25LAWF\K/ 70=FHH4#>6LFG0]HG61\5@%1TSO=&UHE;P.J& FH"S6Q0X;. MR..RJ,06\U)$VY\Q>0PB!>N)#L!U^YLAZCQIRRI$TJF?0LT"B5$/"'G!9'# *_ MS6\EIA&CNC:6; PJ )>HE5K ZV967EB@)D:)>%;XK\<0&TSG^6.([:84[;JA M=+%2K,3F#0R3- !BJ$+!!/ED^Y((F]JC2$D7>SW8N2R6!RF?\<E@*;1 M*JVKG@LE 0C?',K[2L4V3B-RJDG&H-8?RQ:I.^.Q[TTY_<2Q![I#Z#$C!B 0 M>+@JRJ34W(GN=^/Q\R2P%:2^76P/=X[94LXAG^7987M,<;?QD]9EI"OKG1%. M@0E2,U-QL2Y1QRLJ-^N Y5+7"[Z7460CI Z."\+( =ISX8P$.'AQ&7"\PIN3 M6W,K%91\1LRTF=_P;RQ$$Y7A+YOZO1^6\7Q +*/$$LG$B??8(2[4*HDXK%BE M^;$+AQ+14 0RO2*ICY&FQ57.UPGE&+("I&9T6H+(YP7F^47$N5*]H,O CMP6,LW3I%\U '1:3I0UZ>Q1+#B]0:?:ELZ8ISA],F!9H(SP@RL8GP!XD@KB=;LU&$ M]J9 .&^Z3OQM3_K@U^(;$?>QEV;4%R-F'P,?4?#B/K4E8L6Q.='Q]4?*$S09 M+EL<@N+08H/(6T+@J<4',8.UQ'0C7"MVIK/X2V+?3%,.LU)HD A(K&0OE0') MTI-N6+?[..)\3IUC[!(KDM.DZDZEZ^6)R$3R6!5.<4(U 8O$[;%*1 M GY @?!+R&SL3:>D4UZ>FXG,K3,C<5_B0Z1%TU.65-QS3#U>"SN9GWLE;O]& MXKPT*EN=/;Q*BF5412VH;W>2F$8I;[C!3C:3H(S9C +!BH@JD@VQ02BN>]O; M^Y2_LL'OB%5RFA77@F\XJ%4>Z/,F+'FKF6*X8<-F=Z?7QKWE==.C03"[*:[] MEYQ:1NR/KYTQI5#-_@;G@+BY.I/[ZD6:N/6D,"J^L N0C1D1L-24\,P:&S / MQ'HK,8Q1?35&'6@DN%$-DL-*)/A1]1XF!0J&7YC:_AC)RQF+*A&%6HUCN8JIE[PFA6_E2GM=G)T?1 M;T"7&A$O!3I=WA1 V0.>\L]JG5(2JLG&T<^_1*>G3TY?#'B^9V@ZJ.K>#QYNN^[>'SD[J+G]NN[B5OC(X,ZEP]+:9^*D0G7[QSQ M!7.3=GLV;;_%?Z8@VXL!!=EN0F;#TR?[]Y5U.#2\6(,AH3YN2DMQ)9*L]10V M\ #M9=QQUO#7G*,JV16YQ>_4F&K@BE4U^4I AZAHW>2EN_2@/.P&JV)$(3;/ MD8?G^C?<4)L:BRZ5%XW3QKYJVU1:VMC8(L1H-NPA'W='>P FRW0X)LN/2(1 M,!MR?Z?+[4M-$@("H09<'Q.AB>SG\U5M@A +3[#@7SPZKY9HD)5O70DIA MV0Q!52/4&]!EG4T5W3^^>E\GKL09RN!\Z9@ MPP1T6(I766P)PD#M&MV(+12^VXP (MC*<61L+Q?3[8'T[HJ8=W1.]M]B431. M"RYDM]Q^\ [XI>S"PC/A%I3A'H!U&J382[XV5NO'!#C;=L)+J7132E.9"4%R MMR&7@\:N3=8&,)K5#,Y*D#JRZ2XHYS#$?MEGVD\O6A\N>00CO3G*8 M!4J*1:T(X*H=PLC$U,JUE>?,6TYI0NU>"*HI",/I(>$14ATZU[50"H@$&.WI ML?6,R\[M<*$''F@"1A )!9N)TD/*4N,_%T5>EH?UVA5&[*1PYRW7?6GK*(5U M;L8=<=G.E,"(9)8WI,>N=WJO(NV._?C!RX-4-=YBRJ,)9172PEH7#K$2SF1+ MB]S>SJX[MDX 0^+%8@*C="M$5OXU=BE -Z\@=E0 M2<=6NFJAO?556XJ1]U4-;0K92^H5OHCT'.ZIG&>5!]3O>:VL9O+=M].G1Z_H M&M&/4E=0D$)+G$0^/?T/5_FA85K!J T;ULM*:A[_'!8G0PQ:HD8>?>K653E90KO&8./,#!<(-H8E&GMFPPR<2F^7PK MX\S.!<<.$+LL+KD%<.\\)P&:F6',3@@DIERC31>DN_5OGP7RB'<%;C- MB!R$3_^NX8UKJGT(#&0S]K;*;K>$_X,%X'>72#$)\.YGA=9A;J1 MCU(:Q+UDW,([R8!"X7(.]S.CG,+60]P#S'W8)&]3]4[,(U1"E)H72V+&ZRZ6 M,-F+\EA=:=$_:[0*;D_#@=3H )\+/4%PK[#1NJ#?ESA&A+'DJBN/GF?6!HW(!*! MNWKX""R/H+!*$D*B5Q:791T>CS$_PCH-*.@W\,PZ0LO3C6*/&FI_@MNV('KY M.@#8"5$KVT87:56>DUK7062":#NQ.>+LWP NG7%30RL$Y1<]U\O>EQ#H%U3. MEK?G7KNV< S70)>QG.B(*IWG%35W7\=6K= *3^ !**W#2)0F7DX6A"Z0J>TQ MH-8R)&VZ$X?!Q%7G]AGZW._OR;OCWS;7/8RYZ M\V+ZBO*!Z.XBZVY*H;YX\L<0/7\JD3C=+A)QIB;YZS=F?C(_G<^?S(^/9^HD M?GXZ>YH\G..-\]2SNV-I*7N(%:I^-G[;1SY_OBPC1<] :+>%KQ?ZW,0[C?Z>0$+Y'P M>#JZET^.CR8G=WL.QT^.D:/__2(Z__7GW\Y^^6]&,-YX!7<_UVN1MW=./*\W M>Z%:UHT2'4O.XTLRG_$IY/X8C^G^N?5< V5C^I5+@W[UU82ZY;-)LY[;0 G] MW]TA4[SXKXOS?WQX^\^+V[37O7Z-]_$\KU_/W7WW0'6@6ZJ5C?ONO:M]ZF3C M=H7I+[,\V'_ U!+ P04 " ,;5];O=:!HO8' "N* %P M '!R;&(M,C R-3DS,'AE>'@S,3$N:'1M[5IM4^,X$OY^OT('=;-0E80X+P,$ MAJH,9&ZIFP(6,K5[GZYD6R8J;,LKR0FY7W]/2PY)".R$N[G99&NI(HFM5JO5 M_>CIENS3DKV2 M.E?%5,O[D66M9JO+?E;Z08ZY;[?2IN)LIN?TP%^?'KA!3D,53\].8SEF,OZP M(YO)\7$2=M]WCJ*@T^YV>:>;M(ZBYB$7W28/6_\*=M 5XKZ/L=-4?-C)9%X? M"1J_U^D6]F0B8SOJ!QZHFKN^AS*JB%[2@R8I' M6^>IO,][;GX[7M5,/%*ITKW=IOL[H99ZPC.93GL_#&4F#+L2$W:K,I[_4#-" MR\3+&/EO ?.@WUU.O.F'4)'*7,RF$K3(_L'C2(;2LG;0"):-7\_L"$X7^OO; M?3ZX'5Y^NCSO#R^OK]C-E]N[+_VK(1M>L]LOGP';Q MZ=4Y;L"PG 7'[4YMD^WOW['^ MQ?7-<'"Q%!!,R06IW6QM0P#ZMQ_[5X.[^O4OGP?_G/F^U6RVUET>_T^[.R_: M?5EC=Z469L3^H:49Y;S&(J&M3*;,CKA]M]L].GG;XI9YC!CT6H>_QW2"QLS8 M[SKP2<'C&-FGGHH$=QI=FOLE&_&Q8%J,I9@@/]F1-.RGDFL -)VR6U$H;9G* MV2>E,Q8TZS\QE; ;K:QBGWEH:NPRCQJ(P/$V1:"U01'XR W\#@]G4_:0JTDJ MXGM1\X'0WOVQPN"Y0A6! ;C,&<^GK,RM+@5L1UWA2@S$A;,,5UKRE"4\PBW- M5(;LAV YN16!7$3"&*ZG))+Q!X%Q%W0:W(MA#(9,77V",4@@DAKU",1R=(%"-=!$VA$F: H1.0-);P'35(QICM$M M9N%TT0W;!K+V-H!,L$3F"",A8AZV&A &<33KA7:9)R !;B7TR#Q*RQ@Z 8V% M&-4 *TG$42"R!$H":YK.45<%W#P;&L".)2FND4290@!04\"#&\XX>R*.#)"D M:F)F.-3B7AJK.0;B=-/;#2MK"W R,V-6K-TV1'4V"%'#)?>_VSUJ!8'XO6!^\3X'+"0H][ZM>ED*Q7'S&2SK MOP\N^?XFX/*XT>K0["^$09&-&+E<]'4 U2A-1KPTZW>A?!4*@*$:R6= 56HH M .F,I7%4!BF1.SU4ILY)<)%(M4BY0U>5 N<(J54D2XT2A A;C$IE[,X13!D: M&4NN)4U ^D3MJ#TG3:6AY.D6HW&9UA&?,@(&61 M=2I0Y,FH3#GQ-:;EC)@G M8?3P*7VQ$L&O4) @*!7]1?PV"MU(](8;@=ZCQOO#5?2N34XK(%Z?UM;&,O _ MEC%!E!N5<^)O;@!OJ@()MUS',PP!U9*',I5V2KGZI6%I13FX.23YQ; DNE!% MNC3Q6$VH*'4!)!M76T21TK$SP-63]R)'R9 "T&@1!:T4$D&M[$&+%24+,/4? M +;11L!V1KJ#,4]+QTP44Y$D*/+D&-$P+Q1K3]7"&DSK+U^NWQQ*T1$L:7R5 M&*K2OF[!.KF /TD+*H&3K^]+6#@KKMW"$]X3L,>!C ;8;J#%&P&T)W[T,5S% M NV)JX+,M;P(N#>P(F5L%46EIH@OI,<7M&;*6-RG8SWH,A$4_>J/4-C>*UT2 M0!=\]4RZ,AP;'>&V\[33S\LGN_:]52-NGFH)8CH'=1&[%.#\4='S%)OV!Y%6 M>_MG\K7_V47;MGOJ;OWNR1W5Q;,%4)L3#_'@(@CG'$0P>D,1L5*$/IG&48A: MI(&K>(R.1CQ1U:N0K I,= &N4 ?6?"8W2..FS( * M>,E-IDH1+QYE_4&R]&;M8OI(QHD&1=00;.%8#7!Q)\ 5KFH^E\E\K-*QH(26 M\_OJ(%M71"BR(E53@=;)2'GVXTNH!S)W'G.=3BIEH;)693UZU#XFJD<%4#T8=#CRS?.G\(VF?Q)O M-?[CV&? WZ;@^8>=]LZL0P7(7JMX9,'RPWS"Z'.7>V\OONCP'1?M!1:#2VWL M&GDQ%/K=;O"^>=(.:NY-D&=O6U2.^89S_L[3_3A=SN-;/Z%WNQWPC/M\]H1Z M:8YK(K9)4]U9RR]KB%;4Y)BK@%/HZ)"1-TZVQ+F;YM M<=L-O":I$G&5S_E( MBH0-'D54TFD(N_8;BC^]N:8W]V[\F2&JA14G[J]Z\< E^A?JB,7WZPIEW+/. MGC_['XN5-^[F:]A5"LUY%QYB(9=VM'@S,3(N:'1M M[5IM;]LX$OY^OX*7X+H)8#NV;#>-DP9P$_[^^E B:.(B"2J)&7' M]^MOAI3?8J=U;KNMO=@"=2R1',[+PV>&-,\2FZ7G9PEPQ*HGK>Q1F5=%K!2BIX$*@O?448MMK=1H=?&?AT=9Y*N_SGK-YSXN?BHA4 MJG1OO^G^G5)+/>:93">]GX8R \.N8/8V_. M,8I(90Y3\UH!V31X3&0H+6NW&L&R05\P94'M" ,!^OOK?3&X'5Z]O[KH#Z]N MKMG'3[=WG_K70S:\8;>?/@Q8J\WKKL+O! MQ:?;J^'5X(X-?KOXN7_][P'K7PQ1<]8Z:7=JVZQ__X[U+V\^#@>72P%!DUR0 MVLU@%P+0OWW7OQ[K[H-F<+8\_3:G.6J78ILORS_37>M6N:NR2 MYQ)2=A:ZP MJ,$)N,P9SR>LS*TN 77',L=5/!@7SC)\TI*G+.81OM),99AX,5BNWTJ''"(P MANL)=C)@(T&R8PDP*U$.3*/TE*@3(3&0HQJ""M)Q%%@9 F4 M!-8TG:.N"KAY,C4"6T@27*,>98H=$&H*\>"F,TZ?B)N$Q:D:FRD.-=Q+8S7' MB3B]]'JCEK4%.)FI,BO:[AJB.EN$J.&2^U_MOPE:QZ>FPDR5G6F9JSB6^.@" M<\6X!@BP46D4@ M\+5A!QAZ 8@E']_!8Y3P_!Y8'WGEMDRQARO4NP=PZ(:Z2IV>_*.D,C#W&"3Y MC,AG 9H>*J3+QA/%2Q/%.!'9^12PV(-R[\NJEZ50G#2?P++^8W#)#[- MH$/67X+!^AYCY'+1UP%4HS09\=)L/H3R50@(AFHFGP%5J5$ DLY(&D=EV MR M)X?*U#D)+A*IAI0[=%4I<(Z06D6RU"B1$%$7HU(IW+&&*4,CA>1:D@'2)VI' M[3E)*@TE3[<8C^1K.<$O,DC"-\2E^L1/!; M"-01*17'@W@9A6XE>L.M0.^;QNOC5?1N3$XK(-Z5 42;KD64PPAJB4/92KMA'+UNFEI13FX.23YQ;#4=:&*=&GBL3*H*'6! M2#:NMH@BI853P-63]Y!CR9 BH+$%"EHIU 5K90]:7%&R0*;^"\ VV@K83DEW M,.)IZ9B)8@IQC$6>'&$TS)IB;58M;,"T_G%]_>90B@.1)8VO$D-5VN0'T_LG_6M_V$6[ MMGOJ[OSNR1W5B>D"J,V)AWAP$81S#B(8O:"(6"E"9ZIQ+$2MTF:6M]T+%)EE MTEJ +[!\J+ RH'8A43\GY "ABJ1JB+3Q+Y7#T_4%GTN)ZKNU5.:1V_X?_KU) M^L;YNI]B@84%GT1\T6Z4]K61! 1$E7-GFY4Q\ =*HK[@<,56*6'N4 M]1?)TMNUB^EC,HXU4D0-@PV.U1 N[@2XPE7-YS*9CU0Z DIH.;^O#K)U1820 M%:F: +:.$^79CR^A%E'V3;)]XP4_?UFW\:F:0T0=Z#JZ.>6%@=[TRRFR=)'R M24_FSF-NT&DE+%36JJQ'O_R/B.JQ JA^DW0X\LWS2P&-IK\88#7^%].9J^:& M:SJR8K6MVVJT@\ZSS=$ %R%Y0/++6\CT"PNB*RU6Q>.GB.Z[82UP)+J^Q&TR*(>A7^ZW7 MS=-VJ^9NI3RY^5%YY5L9_)UM?3=9SN"[;Y[<;O'/YVWB;.._CH M3P;1;RL>/%QUX9%+YVNJA<5+?84R[A?-GC_A'\'*-;_Y>G7U0',^A(>X:$N[ M.N0K-P.K3W])\&5X>#,R,2YH=&WM66UOXC@0_GZ_8H[JNKL2"4D@?0FT M$@M!BZZ"+M#;O4\GDSB-M4F<=9RVW*^_L0-]H]UK5W<55>D'7CR>Q_/,V)F' MNA/+-#GNQ)2$Q[]T?C4,Z/.@3&DF(1"42!I"6;#L'+Z$M/@&AK&/Y0K#S M6()C.2Y\X>(;NR"573*9T.,53J=1?>\T]"*=.0\7QYV070 +CVK,.:![KC,G M[CQT6RV'S(-]>FCAFTN^UW%RV+UDH M8\^VK-]J>MYQ)^*9Q,4$.E$JR=_6" M"A95 W^G99'K6'VJGSS[Y,.U./G9'_M08?SWQ_X1N;Z8LCF4Y3SW$_R>- MUH,TAG68EH(6,?PN6!%GI X!%9)%BSKDI2A*@N%(#K?V% TDXUFUIX 40$*> MJ\YQ>_IJDLH.CT#&%*9$S$E&"V-\E= %= .I+"H[=;03J2=]+HG (N-">$2L"DL#W"@!H%F)(4XJ1I7,J M=G?L/:O=Q(!U XO*!)<(>)HG#--XR62L003]7C)!52,KU-(W7-^3#X KV>[[ M\,,U(QJ4@DF%X%\%,$Z% MCJ1X*+?/V*B2S!.Z,L^Y"*DP<,,F)"^HM_K0#EF1)V3AL4SO/>W47H+-N90\ M]51'OU![#NNW/-3Z?%?FFV9O6E7#E]CE9;A:>6DVM:DAPW6;VS1;+?=1LV7: MC]I^!+MG6L[CGC^+VMPWG6;K2; -G8@J&9CO(B?94:U96SDLI8WGY%=@W]4' M2NVLI9SGM\74"SZ"^KB5=W?<@S:, \EO#JM='=9[BFZ9E?^*\ MS_;C03*\Y MO6XVNSNM_7:A7^]UD3L$G[A1+<6S]NJ3,B(I?6J1EX]-_53-,4B>L!!4=.U[ M3$&][V\HXVWIEXF8J9^^/WG -[K"IUA@%JI_$R@UT8L9C5#RH/R1[(+".(H8 MBL;UPC=TN]]0V=LG&:,)3(.X3$D04[%5OEOENU6^6^6[5;Y;Y?L@?RO%.[C6&,]7O+>OKW)>:('B"9H0I:#7+K1NCHC6"=:-"^H5 MGI1RW>5?[L"6K]5U7$-? _X#4$L! A0#% @ #&U?6Q;538<\!P$ I782 M !$ ( ! '!R;&(M,C R-3 Y,S N:'1M4$L! A0#% M @ #&U?6PP&M5:K# E(( !$ ( !:P'-D4$L! A0#% @ #&U?6W9EL;$H&@ ]?< !4 M ( !110! '!R;&(M,C R-3 Y,S!?8V%L+GAM;%!+ 0(4 Q0 ( QM M7UMWX\7#23, -& @ 5 " : N 0!P&UL4$L! A0#% @ #&U? M6Y_:VYWR<@ 7H<% !4 ( !)2\" '!R;&(M,C R-3 Y,S!? M<')E+GAM;%!+ 0(4 Q0 ( QM7ULOB#ND03$ .E, 0 8 M " 4JB @!P&5X>#$P,2YH=&U02P$"% ,4 " , M;5];O=:!HO8' "N* %P @ '!TP( <')L8BTR,#(U.3,P M>&5X>#,Q,2YH=&U02P$"% ,4 " ,;5];)I]6PO@' C*0 %P M @ 'LVP( <')L8BTR,#(U.3,P>&5X>#,Q,BYH=&U02P$"% ,4 M" ,;5];7+=V]F $ -' %P @ $9Y ( <')L8BTR,#(U D.3,P>&5X>#,R,2YH=&U02P4& H "@"? @ KN@" end XML 67 prlb-20250930_htm.xml IDEA: XBRL DOCUMENT 0001443669 2025-01-01 2025-09-30 0001443669 2025-10-28 0001443669 2025-09-30 0001443669 2024-12-31 0001443669 2025-07-01 2025-09-30 0001443669 2024-07-01 2024-09-30 0001443669 2024-01-01 2024-09-30 0001443669 us-gaap:CommonStockMember 2024-12-31 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-12-31 0001443669 us-gaap:RetainedEarningsMember 2024-12-31 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-12-31 0001443669 us-gaap:CommonStockMember 2025-01-01 2025-03-31 0001443669 us-gaap:AdditionalPaidInCapitalMember 2025-01-01 2025-03-31 0001443669 2025-01-01 2025-03-31 0001443669 us-gaap:RetainedEarningsMember 2025-01-01 2025-03-31 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-01-01 2025-03-31 0001443669 us-gaap:CommonStockMember 2025-03-31 0001443669 us-gaap:AdditionalPaidInCapitalMember 2025-03-31 0001443669 us-gaap:RetainedEarningsMember 2025-03-31 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-03-31 0001443669 2025-03-31 0001443669 us-gaap:CommonStockMember 2025-04-01 2025-06-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2025-04-01 2025-06-30 0001443669 2025-04-01 2025-06-30 0001443669 us-gaap:RetainedEarningsMember 2025-04-01 2025-06-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-04-01 2025-06-30 0001443669 us-gaap:CommonStockMember 2025-06-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2025-06-30 0001443669 us-gaap:RetainedEarningsMember 2025-06-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-06-30 0001443669 2025-06-30 0001443669 us-gaap:CommonStockMember 2025-07-01 2025-09-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2025-07-01 2025-09-30 0001443669 us-gaap:RetainedEarningsMember 2025-07-01 2025-09-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-07-01 2025-09-30 0001443669 us-gaap:CommonStockMember 2025-09-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2025-09-30 0001443669 us-gaap:RetainedEarningsMember 2025-09-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-09-30 0001443669 us-gaap:CommonStockMember 2023-12-31 0001443669 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001443669 us-gaap:RetainedEarningsMember 2023-12-31 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001443669 2023-12-31 0001443669 us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001443669 2024-01-01 2024-03-31 0001443669 us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001443669 us-gaap:CommonStockMember 2024-03-31 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-03-31 0001443669 us-gaap:RetainedEarningsMember 2024-03-31 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-31 0001443669 2024-03-31 0001443669 us-gaap:CommonStockMember 2024-04-01 2024-06-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-04-01 2024-06-30 0001443669 2024-04-01 2024-06-30 0001443669 us-gaap:RetainedEarningsMember 2024-04-01 2024-06-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-04-01 2024-06-30 0001443669 us-gaap:CommonStockMember 2024-06-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-06-30 0001443669 us-gaap:RetainedEarningsMember 2024-06-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-06-30 0001443669 2024-06-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-07-01 2024-09-30 0001443669 us-gaap:CommonStockMember 2024-07-01 2024-09-30 0001443669 us-gaap:RetainedEarningsMember 2024-07-01 2024-09-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-07-01 2024-09-30 0001443669 us-gaap:CommonStockMember 2024-09-30 0001443669 us-gaap:AdditionalPaidInCapitalMember 2024-09-30 0001443669 us-gaap:RetainedEarningsMember 2024-09-30 0001443669 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-09-30 0001443669 2024-09-30 0001443669 us-gaap:NoncompeteAgreementsMember 2025-09-30 0001443669 us-gaap:NoncompeteAgreementsMember 2024-12-31 0001443669 srt:MinimumMember us-gaap:NoncompeteAgreementsMember 2025-09-30 0001443669 srt:MaximumMember us-gaap:NoncompeteAgreementsMember 2025-09-30 0001443669 us-gaap:ComputerSoftwareIntangibleAssetMember 2025-09-30 0001443669 us-gaap:ComputerSoftwareIntangibleAssetMember 2024-12-31 0001443669 prlb:SoftwarePlatformMember 2025-09-30 0001443669 prlb:SoftwarePlatformMember 2024-12-31 0001443669 srt:EuropeMember prlb:A3DHubsInc.HubsMember 2021-01-22 2021-01-22 0001443669 country:US prlb:A3DHubsInc.HubsMember 2021-01-22 2021-01-22 0001443669 2024-01-01 2024-12-31 0001443669 us-gaap:CashMember us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:CashMember us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:CashMember us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:CashMember us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:CashMember us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:CashMember us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2025-09-30 0001443669 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2024-12-31 0001443669 us-gaap:USGovernmentAgenciesDebtSecuritiesMember 2025-09-30 0001443669 us-gaap:CorporateDebtSecuritiesMember 2025-09-30 0001443669 us-gaap:USStatesAndPoliticalSubdivisionsMember 2025-09-30 0001443669 us-gaap:USTreasuryBondSecuritiesMember 2025-09-30 0001443669 us-gaap:USGovernmentAgenciesDebtSecuritiesMember 2024-12-31 0001443669 us-gaap:CorporateDebtSecuritiesMember 2024-12-31 0001443669 us-gaap:USStatesAndPoliticalSubdivisionsMember 2024-12-31 0001443669 us-gaap:USTreasuryBondSecuritiesMember 2024-12-31 0001443669 prlb:LongTermIncentivePlan2022Member 2024-05-23 2024-05-23 0001443669 prlb:LongTermIncentivePlan2022Member 2025-01-01 2025-09-30 0001443669 prlb:LongTermIncentivePlan2022Member 2025-05-20 2025-05-20 0001443669 prlb:ESPPMember 2025-01-01 2025-09-30 0001443669 us-gaap:EmployeeStockOptionMember 2025-01-01 2025-09-30 0001443669 srt:MinimumMember us-gaap:EmployeeStockOptionMember 2025-01-01 2025-09-30 0001443669 srt:MaximumMember us-gaap:EmployeeStockOptionMember 2025-01-01 2025-09-30 0001443669 srt:MinimumMember us-gaap:EmployeeStockOptionMember 2024-01-01 2024-09-30 0001443669 srt:MaximumMember us-gaap:EmployeeStockOptionMember 2024-01-01 2024-09-30 0001443669 us-gaap:EmployeeStockOptionMember 2024-01-01 2024-09-30 0001443669 us-gaap:EmployeeStockOptionMember 2025-09-30 0001443669 srt:MinimumMember us-gaap:RestrictedStockUnitsRSUMember 2025-01-01 2025-09-30 0001443669 srt:MaximumMember us-gaap:RestrictedStockUnitsRSUMember 2025-01-01 2025-09-30 0001443669 us-gaap:RestrictedStockUnitsRSUMember 2024-12-31 0001443669 us-gaap:RestrictedStockUnitsRSUMember 2025-01-01 2025-09-30 0001443669 us-gaap:RestrictedStockUnitsRSUMember 2025-09-30 0001443669 us-gaap:PerformanceSharesMember 2025-09-30 0001443669 us-gaap:PerformanceSharesMember 2025-01-01 2025-09-30 0001443669 us-gaap:PerformanceSharesMember 2024-12-31 0001443669 us-gaap:PerformanceSharesMember prlb:InducementAwardsMember 2025-05-23 2025-05-23 0001443669 us-gaap:PerformanceSharesMember prlb:InducementAwardsMarketConditionMember 2025-05-23 2025-05-23 0001443669 us-gaap:PerformanceSharesMember prlb:InducementAwardsPerformanceConditionMember 2025-05-23 2025-05-23 0001443669 us-gaap:PerformanceSharesMember prlb:InducementAwardsPerformanceConditionMember 2025-05-23 0001443669 srt:MinimumMember us-gaap:PerformanceSharesMember 2025-01-01 2025-09-30 0001443669 srt:MaximumMember us-gaap:PerformanceSharesMember 2025-01-01 2025-09-30 0001443669 us-gaap:PerformanceSharesMember 2024-01-01 2024-09-30 0001443669 srt:MinimumMember prlb:EmployeeStockPurchasePlanMember 2025-01-01 2025-09-30 0001443669 srt:MaximumMember prlb:EmployeeStockPurchasePlanMember 2025-01-01 2025-09-30 0001443669 srt:MinimumMember prlb:EmployeeStockPurchasePlanMember 2024-01-01 2024-09-30 0001443669 srt:MaximumMember prlb:EmployeeStockPurchasePlanMember 2024-01-01 2024-09-30 0001443669 prlb:EmployeeStockPurchasePlanMember 2025-01-01 2025-09-30 0001443669 prlb:EmployeeStockPurchasePlanMember 2024-01-01 2024-09-30 0001443669 us-gaap:AccumulatedTranslationAdjustmentMember 2025-07-01 2025-09-30 0001443669 us-gaap:AccumulatedTranslationAdjustmentMember 2024-07-01 2024-09-30 0001443669 us-gaap:AccumulatedTranslationAdjustmentMember 2025-01-01 2025-09-30 0001443669 us-gaap:AccumulatedTranslationAdjustmentMember 2024-01-01 2024-09-30 0001443669 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2025-07-01 2025-09-30 0001443669 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2024-07-01 2024-09-30 0001443669 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2025-01-01 2025-09-30 0001443669 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2024-01-01 2024-09-30 0001443669 prlb:UnitedStatesSegmentMember 2025-07-01 2025-09-30 0001443669 prlb:EuropeSegmentMember 2025-07-01 2025-09-30 0001443669 us-gaap:CorporateAndOtherMember 2025-07-01 2025-09-30 0001443669 prlb:UnitedStatesSegmentMember 2024-07-01 2024-09-30 0001443669 prlb:EuropeSegmentMember 2024-07-01 2024-09-30 0001443669 us-gaap:CorporateAndOtherMember 2024-07-01 2024-09-30 0001443669 prlb:UnitedStatesSegmentMember 2025-01-01 2025-09-30 0001443669 prlb:EuropeSegmentMember 2025-01-01 2025-09-30 0001443669 us-gaap:CorporateAndOtherMember 2025-01-01 2025-09-30 0001443669 prlb:UnitedStatesSegmentMember 2024-01-01 2024-09-30 0001443669 prlb:EuropeSegmentMember 2024-01-01 2024-09-30 0001443669 us-gaap:CorporateAndOtherMember 2024-01-01 2024-09-30 0001443669 prlb:UnitedStatesSegmentMember 2025-09-30 0001443669 prlb:UnitedStatesSegmentMember 2024-12-31 0001443669 prlb:EuropeSegmentMember 2025-09-30 0001443669 prlb:EuropeSegmentMember 2024-12-31 0001443669 country:US 2025-07-01 2025-09-30 0001443669 country:US 2024-07-01 2024-09-30 0001443669 country:US 2025-01-01 2025-09-30 0001443669 country:US 2024-01-01 2024-09-30 0001443669 srt:EuropeMember 2025-07-01 2025-09-30 0001443669 srt:EuropeMember 2024-07-01 2024-09-30 0001443669 srt:EuropeMember 2025-01-01 2025-09-30 0001443669 srt:EuropeMember 2024-01-01 2024-09-30 0001443669 prlb:InjectionMoldingProtomoldMember 2025-07-01 2025-09-30 0001443669 prlb:InjectionMoldingProtomoldMember 2024-07-01 2024-09-30 0001443669 prlb:InjectionMoldingProtomoldMember 2025-01-01 2025-09-30 0001443669 prlb:InjectionMoldingProtomoldMember 2024-01-01 2024-09-30 0001443669 prlb:CNCMachiningFirstcutMember 2025-07-01 2025-09-30 0001443669 prlb:CNCMachiningFirstcutMember 2024-07-01 2024-09-30 0001443669 prlb:CNCMachiningFirstcutMember 2025-01-01 2025-09-30 0001443669 prlb:CNCMachiningFirstcutMember 2024-01-01 2024-09-30 0001443669 prlb:ThreeDPrintingFinelineMember 2025-07-01 2025-09-30 0001443669 prlb:ThreeDPrintingFinelineMember 2024-07-01 2024-09-30 0001443669 prlb:ThreeDPrintingFinelineMember 2025-01-01 2025-09-30 0001443669 prlb:ThreeDPrintingFinelineMember 2024-01-01 2024-09-30 0001443669 prlb:SheetMetalMember 2025-07-01 2025-09-30 0001443669 prlb:SheetMetalMember 2024-07-01 2024-09-30 0001443669 prlb:SheetMetalMember 2025-01-01 2025-09-30 0001443669 prlb:SheetMetalMember 2024-01-01 2024-09-30 0001443669 prlb:OtherProductsMember 2025-07-01 2025-09-30 0001443669 prlb:OtherProductsMember 2024-07-01 2024-09-30 0001443669 prlb:OtherProductsMember 2025-01-01 2025-09-30 0001443669 prlb:OtherProductsMember 2024-01-01 2024-09-30 0001443669 prlb:MichaelR.KenisonMember 2025-07-01 2025-09-30 0001443669 prlb:MichaelR.KenisonMember prlb:MichaelR.KenisonTradingArrangementCommonStockRelatedToOptionAwardsGrantedMember 2025-09-30 0001443669 prlb:MichaelR.KenisonMember prlb:MichaelR.KenisonTradingArrangementCommonStockRelatedToRestrictedStockUnitsGrantedMember 2025-09-30 0001443669 prlb:OlegRyaboyMember 2025-07-01 2025-09-30 0001443669 prlb:OlegRyaboyMember prlb:OlegRyaboyTradingArrangementCommonStockRelatedToOptionAwardsMember 2025-09-30 0001443669 prlb:OlegRyaboyMember prlb:OlegRyaboyTradingArrangementCommonStockRelatedToVestedRestrictedStockUnitsMember 2025-09-30 0001443669 prlb:OlegRyaboyMember prlb:OlegRyaboyTradingArrangementCommonStockRelatedToUnvestedRestrictedStockUnitsMember 2025-09-30 shares iso4217:USD iso4217:USD shares iso4217:EUR pure prlb:performancePeriod 0001443669 --12-31 2025 Q3 false P3Y P6M P3Y P210D P250D 10-Q true 2025-09-30 false 001-35435 Proto Labs, Inc. MN 41-1939628 5540 Pioneer Creek Drive Maple Plain MN 55359 763 479-3680 Common Stock, Par Value $0.001 Per Share PRLB NYSE Yes Yes Large Accelerated Filer false false false 23678745 104422000 89071000 14817000 14019000 2378000 1975000 77790000 66504000 14073000 12305000 4681000 2906000 10009000 10049000 225792000 194854000 211325000 227263000 273991000 273991000 19539000 21422000 19149000 17773000 2015000 2993000 491000 692000 4553000 4524000 756855000 743512000 17388000 15504000 23268000 16550000 27831000 19621000 890000 1287000 365000 309000 69742000 53271000 1188000 1633000 0 287000 16038000 13565000 5168000 4605000 92136000 73361000 0.001 0.001 10000000 10000000 0 0 0 0 0 0 0.001 0.001 150000000 150000000 23677746 23677746 24226088 24226088 23000 24000 450852000 453705000 238568000 244406000 -24724000 -27984000 664719000 670151000 756855000 743512000 135366000 125619000 396634000 379140000 74073000 68389000 219869000 207897000 61293000 57230000 176765000 171243000 24574000 22619000 73054000 69070000 10705000 9772000 32487000 31600000 17163000 16259000 52763000 49167000 -41000 0 -151000 0 52483000 48650000 158455000 149837000 8810000 8580000 18310000 21406000 1441000 1288000 4600000 3548000 10251000 9868000 22910000 24954000 3035000 2679000 7668000 7957000 7216000 7189000 15242000 16997000 0.30 0.29 0.64 0.67 0.30 0.29 0.63 0.67 23889157 24980536 23974054 25304985 24191039 25022485 24249669 25382280 7055000 9769000 18502000 18158000 24226088 24000 453705000 244406000 -27984000 670151000 58291 961000 961000 3992000 3992000 513739 1000 9621000 11451000 21073000 3599000 3599000 1003000 1003000 90000 90000 4692000 23770640 23000 447115000 236554000 -26891000 656801000 179393 58000 58000 4259000 4259000 75432 1413000 1637000 3050000 4427000 4427000 2300000 2300000 28000 28000 6755000 23874601 23000 449903000 239344000 -24563000 664707000 61599 2112000 2112000 3677000 3677000 258454 4840000 7992000 12832000 7216000 7216000 -227000 -227000 66000 66000 7055000 23677746 23000 450852000 238568000 -24724000 664719000 25721957 26000 466884000 256398000 -28013000 695295000 29974 533000 533000 4276000 4276000 435861 7912000 8252000 16164000 5268000 5268000 -925000 -925000 93000 93000 4436000 25316070 26000 462715000 253414000 -28845000 687310000 176780 707000 707000 4244000 4244000 345234 6266000 4712000 10978000 4540000 4540000 -678000 -678000 91000 91000 3953000 25147616 26000 461400000 253242000 -29432000 685236000 4196000 4196000 637540 1000 11571000 7636000 19208000 7189000 7189000 2430000 2430000 150000 150000 9769000 24510076 25000 454025000 252795000 -26852000 679993000 15242000 16997000 25693000 26984000 11928000 12716000 2355000 -6140000 16000 26000 0 256000 448000 0 -16000 24000 -179000 103000 11265000 -4581000 2017000 -1321000 -366000 312000 -1709000 2583000 1252000 -2709000 15907000 4153000 58053000 60535000 6792000 8339000 811000 34000 13553000 18087000 11730000 15709000 -7804000 -10683000 4195000 2094000 3119000 1920000 36732000 45958000 231000 220000 -35887000 -46004000 989000 235000 15351000 4083000 89071000 83790000 104422000 87873000 Basis of Presentation<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The unaudited interim Consolidated Financial Statements of Proto Labs, Inc. (Protolabs, the Company, we, us or our) have been prepared in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP) for interim financial information and with the instructions to Form 10-Q and Article 10 of Regulation S-X</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">.</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%"> In the opinion of management, the accompanying financial statements reflect all adjustments necessary for a fair presentation of the Company’s statements of financial position, results of operations and cash flows for the periods presented. Except as otherwise disclosed herein, these adjustments consist of normal, recurring items. Operating results for interim periods are not necessarily indicative of results that may</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">be expected for the fiscal year as a whole.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of the financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues, expenses, and the related disclosures at the date of the financial statements and during the reporting period. Actual results could materially differ from these estimates. For further information, refer to the audited Consolidated Financial Statements and Notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, as filed with the Securities and Exchange Commission (SEC) on February 21, 2025</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying Consolidated Balance Sheet as of December 31, 2024 was derived from the audited Consolidated Financial Statements but does not include all disclosures required by U.S. GAAP for a full set of financial statements. This Quarterly Report on Form 10-Q should be read in conjunction with the Company’s Consolidated Financial Statements and Notes included in the Company's Annual Report on Form 10-K filed on February 21, 2025</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">as referenced above.</span></div> Recent Accounting Pronouncements<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company did not recently adopt any accounting pronouncements that had a material impact on the Company's Consolidated Financial Statements. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2023-09, </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">, that enhances the transparency of income tax disclosures by expanding annual disclosure requirements related to the rate reconciliation and income taxes paid. The Company is required to adopt this guidance for its annual year ending December 31, 2025. Early adoption is permitted. The Company is currently evaluating the impact of this guidance on its disclosures and believes the adoption will not have a material impact on its consolidated financial statements. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the FASB issued ASU No. 2024-03, </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">, which is intended to improve disclosures about a public business entity's expenses, primarily through additional disaggregation of income statement expenses. ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods beginning after December 15, 2027, with early adoption permitted. The Company is currently evaluating ASU 2024-03 to determine the impact on the Company's disclosures.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">In July 2025, the FASB issued ASU No. 2025-05, </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivables and Contract Assets</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">, which introduces a practical expedient for the application of the current expected credit loss model to current accounts receivables and contract assets. ASU 2025-05 is effective for annual and interim periods beginning after December 15, 2025, with early adoption permitted. The Company is currently evaluating ASU 2025-05 to determine the impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">In September 2025, the FASB issued ASU No. 2025-06, </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Intangibles - Goodwill and Other - Internal-Use Software (Subtopic 350-40): Targeted Improvements to the Accounting for Internal-Use Software</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">, which updates the cost capitalization threshold for internal-use software development costs by removing all references to software project development stages and provides new guidance on how to evaluate whether the probable-to-complete recognition threshold has been met. ASU 2025-06 is effective for annual and interim periods beginning after December 15, 2027, with early adoption permitted. The Company is currently evaluating ASU 2025-06 to determine the impact on the Company's financial statements and disclosures.</span></div> Net Income per Common Share<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed based on the weighted-average number of common shares outstanding. Diluted net income per share is computed based on the weighted-average number of common shares outstanding, increased by the number of additional shares that would have been outstanding had potentially dilutive common shares been issued and reduced by the number of shares the Company could have repurchased from the proceeds from issuance of the potentially dilutive shares. Potentially dilutive shares of common stock include stock options and other stock-based awards granted under stock-based compensation plans and shares committed to be purchased under the employee stock purchase plan. Performance stock units are excluded from the calculation of dilutive potential common shares until the performance conditions have been satisfied. Anti-dilutive options were excluded from the calculation of diluted weighted average shares outstanding and were 214,801 and 466,127 for the three months ended September 30, 2025</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">and 2024</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">respectively, and 380,740 and 450,275 for the nine months ended September 30, 2025 and 2024, respectively. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The table below sets forth the computation of basic and diluted net income per share:</span></div><div style="margin-top:10pt"><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><td style="width:44.203%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:114%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:114%">Nine Months Ended<br/>September 30,</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',serif;font-size:10pt;font-weight:400;line-height:114%">(in thousands, except share and per share amounts)</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',serif;font-size:10pt;font-weight:700;line-height:114%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:114%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:114%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:114%">2024</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',serif;font-size:10pt;font-weight:400;line-height:114%">Net 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',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',serif;font-size:10pt;font-weight:400;line-height:114%">7,216 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',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',serif;font-size:10pt;font-weight:400;line-height:114%">7,189 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',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',serif;font-size:10pt;font-weight:400;line-height:114%">15,242 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',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',serif;font-size:10pt;font-weight:400;line-height:114%">16,997 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">Basic - weighted-average shares outstanding:</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',serif;font-size:10pt;font-weight:400;line-height:114%">23,889,157</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">24,980,536</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">23,974,054</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">25,304,985</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',serif;font-size:10pt;font-weight:400;line-height:114%">Effect of dilutive securities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></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',serif;font-size:10pt;font-weight:400;line-height:114%">Employee stock options and other</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',serif;font-size:10pt;font-weight:400;line-height:114%">301,882</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">41,949</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">275,615</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">77,295</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',serif;font-size:10pt;font-weight:400;line-height:114%">Diluted - weighted-average shares outstanding:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">24,191,039</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">25,022,485</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">24,249,669</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">25,382,280</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',serif;font-size:10pt;font-weight:400;line-height:114%">Net income per share:</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 13.67pt 0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></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',serif;font-size:10pt;font-weight:400;line-height:114%">Basic</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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.30 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.29 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.64 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.67 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></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',serif;font-size:10pt;font-weight:400;line-height:114%">Diluted</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.30 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.29 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.63 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.67 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td></tr></table></div> 214801 466127 380740 450275 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The table below sets forth the computation of basic and diluted net income per share:</span></div><div style="margin-top:10pt"><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><td style="width:44.203%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.557%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:114%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:114%">Nine Months Ended<br/>September 30,</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',serif;font-size:10pt;font-weight:400;line-height:114%">(in thousands, except share and per share amounts)</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',serif;font-size:10pt;font-weight:700;line-height:114%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:114%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:114%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:114%">2024</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',serif;font-size:10pt;font-weight:400;line-height:114%">Net 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',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',serif;font-size:10pt;font-weight:400;line-height:114%">7,216 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',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',serif;font-size:10pt;font-weight:400;line-height:114%">7,189 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',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',serif;font-size:10pt;font-weight:400;line-height:114%">15,242 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',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',serif;font-size:10pt;font-weight:400;line-height:114%">16,997 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">Basic - weighted-average shares outstanding:</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',serif;font-size:10pt;font-weight:400;line-height:114%">23,889,157</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">24,980,536</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">23,974,054</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">25,304,985</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',serif;font-size:10pt;font-weight:400;line-height:114%">Effect of dilutive securities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></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',serif;font-size:10pt;font-weight:400;line-height:114%">Employee stock options and other</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',serif;font-size:10pt;font-weight:400;line-height:114%">301,882</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">41,949</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">275,615</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">77,295</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',serif;font-size:10pt;font-weight:400;line-height:114%">Diluted - weighted-average shares outstanding:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">24,191,039</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">25,022,485</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">24,249,669</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">25,382,280</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',serif;font-size:10pt;font-weight:400;line-height:114%">Net income per share:</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 13.67pt 0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></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',serif;font-size:10pt;font-weight:400;line-height:114%">Basic</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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.30 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.29 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.64 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">$</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',serif;font-size:10pt;font-weight:400;line-height:114%">0.67 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></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',serif;font-size:10pt;font-weight:400;line-height:114%">Diluted</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.30 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.29 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.63 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">0.67 </span></td><td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td></tr></table></div> 7216000 7189000 15242000 16997000 23889157 24980536 23974054 25304985 301882 41949 275615 77295 24191039 25022485 24249669 25382280 0.30 0.29 0.64 0.67 0.30 0.29 0.63 0.67 Goodwill and Other Intangible Assets<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">There were no changes in the carrying amount of goodwill during the three and nine months ended September 30, 2025.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets other than goodwill at September 30, 2025 and December 31, 2024 were as follows:</span></div><div style="margin-top:10pt"><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><td style="width:17.081%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.021%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.021%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.964%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr style="height:30pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">September 30, 2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Useful<br/>Life (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Weighted Average<br/>Useful Life Remaining<br/>(in years)</span></td></tr><tr style="height:24pt"><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',serif;font-size:9pt;font-weight:400;line-height:114%">(in thousands)</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Gross</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:115%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Gross</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:115%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">Intangible assets with finite lives:</span></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">Non-compete agreement</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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">850 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">(814)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">36 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">819 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">(703)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">116 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">2.0 - 5.0</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:9pt;font-weight:400;line-height:114%">0.2</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',serif;font-size:9pt;font-weight:400;line-height:114%">Software technology</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',serif;font-size:9pt;font-weight:400;line-height:114%">13,229 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(10,150)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">3,079 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">13,229 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(9,123)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">4,106 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">10.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">2.3</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',serif;font-size:9pt;font-weight:400;line-height:114%">Software platform</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',serif;font-size:9pt;font-weight:400;line-height:114%">27,094 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(10,670)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">16,424 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">25,657 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(8,457)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">17,200 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:9pt;font-weight:400;line-height:114%">12.0</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:9pt;font-weight:400;line-height:114%">7.3</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">Total intangible assets</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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">41,173 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">(21,634)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">19,539 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">39,705 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">(18,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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">21,422 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets allocated to the Protolabs Network entities consisted of intangible assets of €11.6 million in Europe and $16.6 million in the United States as of the date of the acquisition. The Euro denominated intangible assets are translated at the end of each period using the current exchange rates resulting in a foreign currency translation adjustment that is recorded as a component of Other Comprehensive Income. Foreign currency unrealized losses related to intangible assets </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">were $0.5 million and $2.2 million as of September 30, 2025 and December 31, 2024, respectively. Amortization expense for intangible assets was $0.9 million for each of the three months ended September 30, 2025 and 2024, and $2.8 million for each of the nine months ended September 30, 2025 and 2024.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Estimated aggregated amortization expense based on the current carrying value of the amortizable intangible assets and current exchange rates is as follows:</span></div><div style="margin-top:10pt"><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><td style="width:85.718%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.082%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">(in thousands)</span></td><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',serif;font-size:10pt;font-weight:700;line-height:120%">Estimated Amortization Expense</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',serif;font-size:10pt;font-weight:400;line-height:114%">Remaining 2025</span></td><td style="background-color:#cceeff;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',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td colspan="2" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:2px 2.96pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">929</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',serif;font-size:10pt;font-weight:400;line-height:114%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">3,618</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',serif;font-size:10pt;font-weight:400;line-height:114%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">3,609</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',serif;font-size:10pt;font-weight:400;line-height:114%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">2,240</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',serif;font-size:10pt;font-weight:400;line-height:114%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">2,240</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',serif;font-size:10pt;font-weight:400;line-height:114%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">6,903</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',serif;font-size:10pt;font-weight:400;line-height:114%">Total estimated amortization expense</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 2.96pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">19,539</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 0 0 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets other than goodwill at September 30, 2025 and December 31, 2024 were as follows:</span></div><div style="margin-top:10pt"><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><td style="width:17.081%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.021%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.021%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.930%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.964%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr style="height:30pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">September 30, 2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Useful<br/>Life (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Weighted Average<br/>Useful Life Remaining<br/>(in years)</span></td></tr><tr style="height:24pt"><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',serif;font-size:9pt;font-weight:400;line-height:114%">(in thousands)</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Gross</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:115%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Gross</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:115%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:0.75pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:114%">Net</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">Intangible assets with finite lives:</span></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">Non-compete agreement</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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">850 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">(814)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">36 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">819 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">(703)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">$</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',serif;font-size:9pt;font-weight:400;line-height:114%">116 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">2.0 - 5.0</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:9pt;font-weight:400;line-height:114%">0.2</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',serif;font-size:9pt;font-weight:400;line-height:114%">Software technology</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',serif;font-size:9pt;font-weight:400;line-height:114%">13,229 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(10,150)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">3,079 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">13,229 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(9,123)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">4,106 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">10.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">2.3</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',serif;font-size:9pt;font-weight:400;line-height:114%">Software platform</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',serif;font-size:9pt;font-weight:400;line-height:114%">27,094 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(10,670)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">16,424 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">25,657 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">(8,457)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:9pt;font-weight:400;line-height:114%">17,200 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:9pt;font-weight:400;line-height:114%">12.0</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:9pt;font-weight:400;line-height:114%">7.3</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:114%">Total intangible assets</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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">41,173 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">(21,634)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">19,539 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">39,705 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">(18,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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:9pt;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',serif;font-size:9pt;font-weight:400;line-height:114%">21,422 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div> 850000 814000 36000 819000 703000 116000 P2Y P5Y P0Y2M12D 13229000 10150000 3079000 13229000 9123000 4106000 P10Y P2Y3M18D 27094000 10670000 16424000 25657000 8457000 17200000 P12Y P7Y3M18D 41173000 21634000 19539000 39705000 18283000 21422000 11600000 16600000 -500000 -2200000 900000 900000 2800000 2800000 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Estimated aggregated amortization expense based on the current carrying value of the amortizable intangible assets and current exchange rates is as follows:</span></div><div style="margin-top:10pt"><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><td style="width:85.718%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.082%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:114%">(in thousands)</span></td><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',serif;font-size:10pt;font-weight:700;line-height:120%">Estimated Amortization Expense</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',serif;font-size:10pt;font-weight:400;line-height:114%">Remaining 2025</span></td><td style="background-color:#cceeff;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',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td colspan="2" style="background-color:#cceeff;border-top:0.75pt solid #000000;padding:2px 2.96pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">929</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',serif;font-size:10pt;font-weight:400;line-height:114%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">3,618</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',serif;font-size:10pt;font-weight:400;line-height:114%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">3,609</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',serif;font-size:10pt;font-weight:400;line-height:114%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">2,240</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',serif;font-size:10pt;font-weight:400;line-height:114%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">2,240</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',serif;font-size:10pt;font-weight:400;line-height:114%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 2.96pt 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">6,903</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',serif;font-size:10pt;font-weight:400;line-height:114%">Total estimated amortization expense</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">$</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 2.96pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:114%">19,539</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 929000 3618000 3609000 2240000 2240000 6903000 19539000 Fair Value Measurements<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Accounting Standards Codification, </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Fair Value Measuremen</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">t (ASC 820), defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. ASC 820 also establishes a fair value hierarchy that requires classification based on observable and unobservable inputs when measuring fair value. There are three levels of inputs that may</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">be used to measure fair value:</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Level </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">1</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">—</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Quoted prices in active markets for identical assets or liabilities.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Level </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">2</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">—</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Observable inputs other than Level 1 prices such as quoted prices for similar assets or liabilities; quoted prices in markets that are </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">not</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%"> active; or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Level </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">3</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">—</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company's assets and liabilities that are required to be measured or disclosed at fair value on a recurring basis include cash and cash equivalents and marketable securities. The Company’s cash consists of bank deposits and cash equivalents consist primarily of money market mutual funds. The Company determines the fair value of these investments using Level 1 inputs. The Company's marketable securities consist of short-term and long-term agency, municipal, corporate and other debt securities. Fair value for the corporate debt securities is primarily determined based on quoted market prices (Level 1). Fair values for the U.S. municipal securities, U.S. government agency securities, certificates of deposit and U.S. treasury securities are primarily determined using dealer quotes or quoted market prices for similar securities (Level 2).</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes financial assets as of September 30, 2025 and December 31, 2024 measured at fair value on a recurring basis: </span></div><div style="margin-top:10pt"><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><td style="width:29.506%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.964%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">September 30, 2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 3</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 3</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',serif;font-size:10pt;font-weight:700;line-height:120%">Financial Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Cash</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">100,710 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">86,366 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Money market mutual fund</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',serif;font-size:10pt;font-weight:400;line-height:120%">3,712 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,705 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Marketable 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',serif;font-size:10pt;font-weight:400;line-height:120%">17,318 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">16,648 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">17,261 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">14,531 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">121,740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">16,648 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">106,332 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,531 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes financial assets as of September 30, 2025 and December 31, 2024 measured at fair value on a recurring basis: </span></div><div style="margin-top:10pt"><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><td style="width:29.506%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.964%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">September 30, 2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 3</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 1</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 2</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Level 3</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',serif;font-size:10pt;font-weight:700;line-height:120%">Financial Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Cash</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">100,710 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">86,366 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Money market mutual fund</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',serif;font-size:10pt;font-weight:400;line-height:120%">3,712 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,705 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Marketable 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',serif;font-size:10pt;font-weight:400;line-height:120%">17,318 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">16,648 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">17,261 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">14,531 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">121,740 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">16,648 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">106,332 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,531 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 100710000 0 0 86366000 0 0 3712000 0 0 2705000 0 0 17318000 16648000 0 17261000 14531000 0 121740000 16648000 0 106332000 14531000 0 Marketable Securities<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company invests in short-term and long-term agency, municipal, corporate and other debt securities. The securities are categorized as available-for-sale and are recorded at fair value. The following table summarizes information regarding the Company’s short-term and long-term marketable securities as of September 30, 2025 and December 31, 2024:</span></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">September 30, 2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Fair Value</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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. government agency securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,000 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">9 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(4)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,005 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Corporate debt 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',serif;font-size:10pt;font-weight:400;line-height:120%">15,947 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">10 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(14)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">15,943 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. municipal 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',serif;font-size:10pt;font-weight:400;line-height:120%">8,980 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">34 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">9,014 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. treasury bonds</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">4 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">1,004 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total marketable securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">33,927 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">57 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(18)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">33,966 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Fair Value</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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. government agency securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,323 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(22)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,301 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Corporate debt 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',serif;font-size:10pt;font-weight:400;line-height:120%">15,852 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(82)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">15,770 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. municipal 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',serif;font-size:10pt;font-weight:400;line-height:120%">6,762 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(38)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">6,724 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. treasury bonds</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">997 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total marketable securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">31,937 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(145)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">31,792 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Fair values for the corporate debt securities are primarily determined based on quoted market prices (Level 1). Fair values for the U.S. municipal securities, U.S. government agency securities, certificates of deposit and U.S. treasury securities are primarily determined using dealer quotes or quoted market prices for similar securities (Level 2).</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Classification of marketable securities as current or non-current is based upon the security’s maturity date as of the date of these financial statements.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The September 30, 2025 balance of available-for-sale debt securities by contractual maturity is shown in the following table at fair value. Actual maturities may</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">differ from contractual maturities because the issuers of the securities may</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">have the right to prepay obligations without prepayment penalties.</span></div><div style="margin-top:10pt"><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><td style="width:81.324%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.476%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">Due in one year or less</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,817 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Due after one year through five years</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',serif;font-size:10pt;font-weight:400;line-height:120%">19,149 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total marketable securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">33,966 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> The following table summarizes information regarding the Company’s short-term and long-term marketable securities as of September 30, 2025 and December 31, 2024:<div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">September 30, 2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Fair Value</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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. government agency securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,000 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">9 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(4)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,005 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Corporate debt 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',serif;font-size:10pt;font-weight:400;line-height:120%">15,947 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">10 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(14)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">15,943 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. municipal 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',serif;font-size:10pt;font-weight:400;line-height:120%">8,980 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">34 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">9,014 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. treasury bonds</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">4 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">1,004 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total marketable securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">33,927 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">57 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(18)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">33,966 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">Fair Value</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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. government agency securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,323 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(22)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,301 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Corporate debt 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',serif;font-size:10pt;font-weight:400;line-height:120%">15,852 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(82)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">15,770 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. municipal 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',serif;font-size:10pt;font-weight:400;line-height:120%">6,762 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(38)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">6,724 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">U.S. treasury bonds</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,000 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">997 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total marketable securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">31,937 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(145)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">31,792 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 8000000 9000 4000 8005000 15947000 10000 14000 15943000 8980000 34000 0 9014000 1000000 4000 0 1004000 33927000 57000 18000 33966000 8323000 0 22000 8301000 15852000 0 82000 15770000 6762000 0 38000 6724000 1000000 0 3000 997000 31937000 0 145000 31792000 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The September 30, 2025 balance of available-for-sale debt securities by contractual maturity is shown in the following table at fair value. Actual maturities may</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">differ from contractual maturities because the issuers of the securities may</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">have the right to prepay obligations without prepayment penalties.</span></div><div style="margin-top:10pt"><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><td style="width:81.324%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.476%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">Due in one year or less</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,817 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Due after one year through five years</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',serif;font-size:10pt;font-weight:400;line-height:120%">19,149 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total marketable securities</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">33,966 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 14817000 19149000 33966000 Inventory <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Inventory consists primarily of raw materials, which are recorded at the lower of cost and net realizable value using the standard cost method, which approximates first-in, first-out (FIFO) cost. The Company periodically reviews its inventory for slow-moving, damaged and discontinued items and provides allowances to reduce such items identified to their recoverable amounts.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company’s inventory consisted of the following as of the dates indicated:</span></div><div style="margin-top:10pt"><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><td style="width:69.051%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Total inventory</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,755 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">12,989 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Allowance for obsolescence</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',serif;font-size:10pt;font-weight:400;line-height:120%">(682)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(684)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Inventory, net of allowance</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,073 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">12,305 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company’s inventory consisted of the following as of the dates indicated:</span></div><div style="margin-top:10pt"><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><td style="width:69.051%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.960%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Total inventory</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,755 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">12,989 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Allowance for obsolescence</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',serif;font-size:10pt;font-weight:400;line-height:120%">(682)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(684)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Inventory, net of allowance</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">14,073 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">12,305 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 14755000 12989000 682000 684000 14073000 12305000 Stock-Based Compensation<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">On July 8, 2022, the board of directors approved the Proto Labs, Inc. 2022 Long-Term Incentive Plan, which was approved by the Company's shareholders at a Special Meeting of Shareholders on August 29, 2022, and subsequently amended and restated by the Company's shareholders at the Annual Meeting of Shareholders on May 23, 2024 (as amended and restated, and subsequently further amended, the 2022 Plan) to increase the number of shares available for issuance pursuant to awards under the 2022 Plan by an additional 430,000 shares, add a minimum vesting requirement, and extend the expiration date so that the term of the 2022 Plan runs for ten years from the date of the shareholder approval. On May 20, 2025, the Company's shareholders approved an amendment to the 2022 Plan to increase the number of shares available for issuance pursuant to awards under the 2022 Plan by an additional 296,000 shares. Under the 2022 Plan, the Company has the ability to grant stock options, stock appreciation rights (SARs), restricted stock, restricted stock units, other stock-based awards and cash incentive awards. Awards under the 2022 Plan have a maximum term of ten years from the date of grant. The compensation and talent committee may provide that the vesting or payment of any award will be subject to the attainment of specified performance measures in addition to the satisfaction of any continued service requirements and the compensation and talent committee will determine whether such measures have been achieved. The per-share exercise price of stock options and SARs granted under the 2022 Plan generally may not be less than the fair market value of a share of our common stock on the date of the grant.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company also has outstanding awards under the 2012 Long-Term Incentive Plan, as amended (the 2012 Plan), although the plan expired in February 2022 and no additional awards have since been or will be made under the 2012 Plan. The 2012 Plan provided the Company the ability to grant stock options, SARs, restricted stock, restricted stock units, other stock-based awards and cash incentive awards. Awards under the 2012 Plan that subsequently expired, were forfeited or cancelled, or settled in cash after August 29, 2022 became available for awards under the 2022 Plan.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">On May 23, 2025, the Company granted one-time inducement awards (the Inducement Awards) within the meaning of the New York Stock Exchange Listed Company Manual Section 303A.08 to the Company's incoming Chief Executive Officer. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Inducement Awards were not granted under the 2022 Plan, but have the same terms and conditions as equity awards granted under the 2022 Plan, except as otherwise provided in the award agreements.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company’s 2012 Employee Stock Purchase Plan (ESPP) allows eligible employees to purchase a variable number of shares of the Company’s common stock each offering period at a discount through payroll deductions of up to 15 percent of their eligible compensation, subject to plan limitations. The ESPP provides for six-month offering periods with a single purchase period ending May 15 and November 15, respectively. At the end of each offering period, employees are able to purchase shares at 85 percent of the lower of the fair market value of the Company’s common stock on the first trading day of the offering period or on the last trading day of the offering period.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Stock-Based Compensation Expense</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense was $3.7 million and $4.2 million for the three months ended September 30, 2025 and 2024, respectively, and $11.9 million and $12.7 million for the nine months ended September 30, 2025 and 2024, respectively.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Stock Options</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes stock option activity during the nine months ended September 30, 2025:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Stock Options</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Weighted-<br/>Average<br/>Exercise Price</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',serif;font-size:10pt;font-weight:400;line-height:120%">Options outstanding at December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">445,136</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">51.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></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',serif;font-size:10pt;font-weight:400;line-height:120%">Granted</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',serif;font-size:10pt;font-weight:400;line-height:120%">139,872</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">39.32 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exercised</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',serif;font-size:10pt;font-weight:400;line-height:120%">(70,307)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">34.27 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Forfeited</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',serif;font-size:10pt;font-weight:400;line-height:120%">(103,013)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">37.68 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expired</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',serif;font-size:10pt;font-weight:400;line-height:120%">(16,354)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">87.74 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Options outstanding at September 30, 2025</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">395,334</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">52.18 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exercisable at September 30, 2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">191,882</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">68.62 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The outstanding options generally have a term of ten years. For employees, options granted become exercisable ratably over the vesting period, which is generally a period of four years, beginning on the first anniversary of the grant date, subject to the employee’s continuing service to the Company.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average grant date fair value of options that were granted during the nine months ended September 30, 2025 was $21.81.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides the assumptions used in the Black-Scholes pricing model valuation of options during the nine months ended September 30, 2025 and 2024:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4.13% - 4.17%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4.28% - 4.30%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected life (years)</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">6.25</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">6.25</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected volatility</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">52.12% - 52.99%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">50.62% - 50.72%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected dividend yield</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2025, there was $3.3 million of unrecognized compensation expense related to unvested stock options, which is expected to be recognized over a weighted-average period of 2.9 years.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Restricted Stock Units </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Restricted stock unit (RSU) awards are share-settled awards and restrictions lapse ratably over the vesting period, which is generally a period from <span style="-sec-ix-hidden:f-597">three</span> to four years, beginning on the first anniversary of the grant date, subject to the employee's continuing service to the Company. For the board of directors, restrictions generally lapse in full on the first anniversary of the grant date. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes restricted stock units activity during the nine months ended September 30, 2025:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Restricted<br/>Stock Units</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Weighted-<br/>Average<br/>Grant Date<br/>Fair Value<br/>Per Share</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',serif;font-size:10pt;font-weight:400;line-height:120%">Restricted stock units at December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">763,261</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">38.25 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Granted</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',serif;font-size:10pt;font-weight:400;line-height:120%">278,500</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">39.95 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Restrictions lapsed</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',serif;font-size:10pt;font-weight:400;line-height:120%">(212,526)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">40.55 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Forfeited</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',serif;font-size:10pt;font-weight:400;line-height:120%">(103,268)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">36.40 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Restricted stock units at September 30, 2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">725,967</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">38.49 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2025, there was $18.8 million of unrecognized compensation expense related to non-vested restricted stock units, which is expected to be recognized over a weighted-average period of 2.7 years. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Performance Stock Units</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Performance stock units (PSUs) are expressed in terms of a target number of PSUs, with anywhere between 0 percent and 200 percent of that target number capable of being earned and vesting at the end of a three-year performance period depending on the Company’s three-year cumulative total shareholder return performance relative to an index and the award recipient’s continued employment. The Company’s PSUs are based on market conditions and the related compensation cost is based on the fair value at grant date calculated using a Monte Carlo pricing model.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes performance stock units activity during the nine months ended September 30, 2025:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Performance<br/>Stock Units</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Weighted-<br/>Average<br/>Grant Date<br/>Fair Value<br/>Per Share</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',serif;font-size:10pt;font-weight:400;line-height:120%">Performance stock units at December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">180,173</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">60.75 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Granted</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">153,503</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">59.71 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Restrictions lapsed</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',serif;font-size:10pt;font-weight:400;line-height:120%">(32,977)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">96.41</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',serif;font-size:10pt;font-weight:400;line-height:120%">Performance change</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',serif;font-size:10pt;font-weight:400;line-height:120%">—</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Forfeited</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',serif;font-size:10pt;font-weight:400;line-height:120%">(68,887)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">57</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',serif;font-size:10pt;font-weight:400;line-height:120%">Performance stock units at September 30, 2025</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">231,812</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">56.17 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">1 Includes a target number of 54,320 PSUs granted as part of the May 23, 2025, Inducement Awards, 27,160 of which have the same market condition as the PSUs granted under the 2022 Plan as described above, and 27,160 of which also include a performance condition with anywhere between 0 percent and 100 percent of the target number capable of being achieved during two <span style="-sec-ix-hidden:f-634">six</span>-month performance periods depending on revenue and then anywhere between 0 percent and 200 percent of such achieved PSUs capable of being earned and vesting during a <span style="-sec-ix-hidden:f-637">three</span>-year performance period depending on the Company's three-year cumulative total shareholder return performance relative to an index and the award recipient's continued employment.</span></div></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides the assumptions used in the Monte Carlo pricing model valuation of PSUs during the nine months ended September 30, 2025 and 2024: </span></div><div style="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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">3.98% - 4.08%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">4.37%</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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected life (years)</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">2.61 - 2.85</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">2.88</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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected volatility</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">52.40% - 53.20%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">51.40%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected dividend yield</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">As of September 30, 2025, there was $7.5 million of unrecognized compensation expense related to non-vested performance stock units, which is expected to be recognized over a weighted-average period of 2.1 years.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the assumptions used to estimate the fair value of the ESPP during the nine months ended September 30, 2025 and 2024: </span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4.09% - 4.29%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">5.07% - 5.16%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected life (months)</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">6.00</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">6.00</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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected volatility</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">41.89% - 65.60%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">30.97% - 47.92%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected dividend yield</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div> 430000 P10Y 296000 P10Y 0.15 P6M 0.85 3700000 4200000 11900000 12700000 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes stock option activity during the nine months ended September 30, 2025:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Stock Options</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Weighted-<br/>Average<br/>Exercise Price</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',serif;font-size:10pt;font-weight:400;line-height:120%">Options outstanding at December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">445,136</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">51.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></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',serif;font-size:10pt;font-weight:400;line-height:120%">Granted</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',serif;font-size:10pt;font-weight:400;line-height:120%">139,872</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">39.32 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exercised</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',serif;font-size:10pt;font-weight:400;line-height:120%">(70,307)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">34.27 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Forfeited</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',serif;font-size:10pt;font-weight:400;line-height:120%">(103,013)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">37.68 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expired</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',serif;font-size:10pt;font-weight:400;line-height:120%">(16,354)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">87.74 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Options outstanding at September 30, 2025</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">395,334</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">52.18 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exercisable at September 30, 2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">191,882</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">68.62 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div> 445136 51.34 139872 39.32 70307 34.27 103013 37.68 16354 87.74 395334 52.18 191882 68.62 P10Y P4Y 21.81 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides the assumptions used in the Black-Scholes pricing model valuation of options during the nine months ended September 30, 2025 and 2024:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4.13% - 4.17%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4.28% - 4.30%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected life (years)</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">6.25</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">6.25</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected volatility</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">52.12% - 52.99%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">50.62% - 50.72%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected dividend yield</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div> 0.0413 0.0417 0.0428 0.0430 P6Y3M P6Y3M 0.5212 0.5299 0.5062 0.5072 0 0 3300000 P2Y10M24D P4Y <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes restricted stock units activity during the nine months ended September 30, 2025:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Restricted<br/>Stock Units</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Weighted-<br/>Average<br/>Grant Date<br/>Fair Value<br/>Per Share</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',serif;font-size:10pt;font-weight:400;line-height:120%">Restricted stock units at December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">763,261</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">38.25 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Granted</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',serif;font-size:10pt;font-weight:400;line-height:120%">278,500</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">39.95 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Restrictions lapsed</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',serif;font-size:10pt;font-weight:400;line-height:120%">(212,526)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">40.55 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Forfeited</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',serif;font-size:10pt;font-weight:400;line-height:120%">(103,268)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">36.40 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Restricted stock units at September 30, 2025</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',serif;font-size:10pt;font-weight:400;line-height:120%">725,967</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">38.49 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div> 763261 38.25 278500 39.95 212526 40.55 103268 36.40 725967 38.49 18800000 P2Y8M12D 0 2 P3Y <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes performance stock units activity during the nine months ended September 30, 2025:</span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Performance<br/>Stock Units</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Weighted-<br/>Average<br/>Grant Date<br/>Fair Value<br/>Per Share</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',serif;font-size:10pt;font-weight:400;line-height:120%">Performance stock units at December 31, 2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">180,173</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">60.75 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Granted</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">153,503</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">59.71 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Restrictions lapsed</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',serif;font-size:10pt;font-weight:400;line-height:120%">(32,977)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">96.41</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',serif;font-size:10pt;font-weight:400;line-height:120%">Performance change</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',serif;font-size:10pt;font-weight:400;line-height:120%">—</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Forfeited</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',serif;font-size:10pt;font-weight:400;line-height:120%">(68,887)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">57</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',serif;font-size:10pt;font-weight:400;line-height:120%">Performance stock units at September 30, 2025</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">231,812</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">56.17 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">1 Includes a target number of 54,320 PSUs granted as part of the May 23, 2025, Inducement Awards, 27,160 of which have the same market condition as the PSUs granted under the 2022 Plan as described above, and 27,160 of which also include a performance condition with anywhere between 0 percent and 100 percent of the target number capable of being achieved during two <span style="-sec-ix-hidden:f-634">six</span>-month performance periods depending on revenue and then anywhere between 0 percent and 200 percent of such achieved PSUs capable of being earned and vesting during a <span style="-sec-ix-hidden:f-637">three</span>-year performance period depending on the Company's three-year cumulative total shareholder return performance relative to an index and the award recipient's continued employment.</span></div></td></tr></table></div> 180173 60.75 153503 59.71 32977 96.41 0 0 68887 57 231812 56.17 54320 27160 27160 0 1 2 0 2 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides the assumptions used in the Monte Carlo pricing model valuation of PSUs during the nine months ended September 30, 2025 and 2024: </span></div><div style="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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">3.98% - 4.08%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">4.37%</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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected life (years)</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">2.61 - 2.85</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">2.88</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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected volatility</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">52.40% - 53.20%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">51.40%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected dividend yield</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr></table></div> 0.0398 0.0408 0.0437 P2Y7M9D P2Y10M6D P2Y10M17D 0.5240 0.5320 0.5140 0 0 7500000 P2Y1M6D <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the assumptions used to estimate the fair value of the ESPP during the nine months ended September 30, 2025 and 2024: </span></div><div style="margin-top:10pt"><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><td style="width:71.930%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.083%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended<br/>September 30,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:400;line-height:120%">Risk-free interest rate</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4.09% - 4.29%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">5.07% - 5.16%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected life (months)</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">6.00</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">6.00</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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected volatility</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">41.89% - 65.60%</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">30.97% - 47.92%</span></div></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',serif;font-size:10pt;font-weight:400;line-height:120%">Expected dividend yield</span></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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',serif;font-size:10pt;font-weight:400;line-height:120%">0%</span></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div> 0.0409 0.0429 0.0507 0.0516 P6Y P6Y 0.4189 0.6560 0.3097 0.4792 0 0 Accumulated Other Comprehensive Income (Loss)<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Other comprehensive income (loss) is comprised of foreign currency translation adjustments and net unrealized gains (losses) on investments in securities. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the changes in accumulated other comprehensive income (loss) balances during the three and nine months ended September 30, 2025 and 2024:</span></div><div style="margin-top:10pt"><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><td style="width:40.415%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.054%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Balance at beginning of period</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(24,563)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(29,432)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(27,984)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(28,013)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Foreign currency translation adjustments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Other comprehensive income (loss) before reclassifications</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',serif;font-size:10pt;font-weight:400;line-height:120%">(227)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,430 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3,076 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">827 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Amounts reclassified from accumulated other comprehensive loss</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Net current-period other comprehensive income (loss)</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',serif;font-size:10pt;font-weight:400;line-height:120%">(227)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3,076 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">827 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Net unrealized gains on investments in securities</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Other comprehensive income before reclassifications</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',serif;font-size:10pt;font-weight:400;line-height:120%">66 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">150 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">184 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">334 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Amounts reclassified from accumulated other comprehensive loss</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Net current-period other comprehensive income</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',serif;font-size:10pt;font-weight:400;line-height:120%">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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">150 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">184 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">334 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Balance at end of period</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(24,724)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(26,852)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(24,724)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(26,852)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the changes in accumulated other comprehensive income (loss) balances during the three and nine months ended September 30, 2025 and 2024:</span></div><div style="margin-top:10pt"><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><td style="width:40.415%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.054%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Balance at beginning of period</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(24,563)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(29,432)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(27,984)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(28,013)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Foreign currency translation adjustments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Other comprehensive income (loss) before reclassifications</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',serif;font-size:10pt;font-weight:400;line-height:120%">(227)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,430 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3,076 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">827 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Amounts reclassified from accumulated other comprehensive loss</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Net current-period other comprehensive income (loss)</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',serif;font-size:10pt;font-weight:400;line-height:120%">(227)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3,076 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">827 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Net unrealized gains on investments in securities</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Other comprehensive income before reclassifications</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',serif;font-size:10pt;font-weight:400;line-height:120%">66 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">150 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">184 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">334 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 28pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Amounts reclassified from accumulated other comprehensive loss</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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Net current-period other comprehensive income</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',serif;font-size:10pt;font-weight:400;line-height:120%">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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">150 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">184 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">334 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Balance at end of period</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(24,724)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(26,852)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(24,724)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(26,852)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> -24563000 -29432000 -27984000 -28013000 -227000 2430000 3076000 827000 0 0 0 0 -227000 2430000 3076000 827000 66000 150000 184000 334000 0 0 0 0 66000 150000 184000 334000 -24724000 -26852000 -24724000 -26852000 Income Taxes<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company is subject to income tax in multiple jurisdictions and the use of estimates is required to determine the provision for income taxes. For the three months ended September 30, 2025 and 2024, the Company recorded an income tax provision of $3.0 million and $2.7 million, respectively. For the nine months ended September 30, 2025 and 2024, the </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Company recorded an income tax provision of $7.7 million and $8.0 million, respectively. The income tax provision is based on the estimated annual effective tax rate for the year applied to pre-tax income. The effective income tax rate for the three months ended September 30, 2025 was 29.6 percent compared to 27.1 percent in the same period of the prior year. The effective tax rate increased by 2.5 percent for the three months ended September 30, 2025 when compared to the same period in 2024, primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances. The effective income tax rate for the nine months ended September 30, 2025 was 33.5 percent compared to 31.9 percent in the same period of the prior year. The effective tax rate increased by 1.6 percent for the nine months ended September 30, 2025 when compared to the same period in 2024, primarily due to an increase in losses in jurisdictions that are not eligible for tax benefits due to valuation allowances.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The effective income tax rate for the three and nine months ended September 30, 2025 differs from the U.S. federal statutory rate of 21.0 percent due to various factors, including operating in multiple state and foreign jurisdictions partially offset by tax credits for which the Company qualifies.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company had unrecognized tax benefits totaling $3.7 million as of September 30, 2025 and $3.4 million as of December 31, 2024, respectively, that if recognized would result in a reduction of the Company’s effective tax rate. The liabilities are classified as other long-term liabilities in the accompanying consolidated balance sheets. The Company recognizes interest and penalties related to income tax matters in income tax expense and reports the liability in current or long-term income taxes payable as appropriate. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">On July 4, 2025, the U.S. enacted H.R. 1 "A bill to provide for reconciliation pursuant to Title II of H. Con. Res. 14", commonly referred to as the One Big Beautiful Bill Act (OBBBA). As a result of the enactment of H.R. 1, the impact to the deferred tax liability and the income tax payable related to the provisions for 100% bonus depreciation for assets placed in service after January 19, 2025 and full expensing of domestic research and experimental expenditures was recorded in the period ended September 30, 2025. We do not expect any material change to our ongoing tax rate as a result of this legislation. We continue to evaluate the impacts the new legislation may have on the Company's financial statements.</span></div> 3000000.0 2700000 7700000 8000000.0 0.296 0.271 0.025 0.335 0.319 0.016 0.210 0.210 3700000 3400000 Segment Reporting<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The Company’s reportable segments are based on the internal reporting used by the Company’s Chief Executive Officer, who is the chief operating decision maker (CODM), to assess operating performance and make decisions about the allocation of resources. The Company’s reportable segments are based upon geographic region, consisting of the United States and Europe. The Corporate Unallocated category includes non-reportable segments, as well as research and development and general and administrative costs that the Company does not allocate directly to its operating segments.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Intercompany transactions primarily relate to intercontinental activity and have been eliminated and are excluded from the reported amounts. The difference between income from operations and pre-tax income relates to foreign currency-related gains and losses and interest income on cash balances and investments, which are not allocated to business segments. </span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes selected financial information by reportable segments:</span></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended September 30, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">109,361 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">26,005 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">135,366 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">81,028 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">28,696 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">16,683 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">126,407 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">149 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">149 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">28,333 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(2,840)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(16,683)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,810 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended September 30, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">99,571 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">26,048 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">125,619 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">73,884 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">28,446 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">14,709 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">117,039 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">25,687 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(2,398)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(14,709)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,580 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended September 30, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">320,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">76,294 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">396,634 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">238,823 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">87,815 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">51,576 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">378,214 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">110 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">110 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">81,517 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(11,631)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(51,576)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">18,310 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended September 30, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">299,593 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">79,547 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">379,140 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">223,333 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">86,121 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">48,280 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">357,734 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">76,260 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(6,574)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(48,280)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">21,406 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt;padding-left:36pt;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1 </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses consist primarily of raw materials, equipment depreciation, employee compensation including benefits, commissions and stock-based compensation, facilities costs and overhead allocations associated with the manufacturing process for molds and custom parts, marketing programs such as electronic, print and pay-per-click advertising and trade shows and other related costs for our United States and Europe reportable segments. Segment expenses for our Corporate Unallocated reportable segment consist primarily of personnel and outside service costs related to the development of new processes and product lines, enhancements of existing product </span></div><div style="margin-top:10pt;padding-left:36pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">lines, software developed for internal use, maintenance of internally developed software, quality assurance and testing, employee compensation including benefits and stock-based compensation, severance, professional service fees related to accounting, tax and legal, and other related overhead costs.</span></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Total long-lived assets, expenditures for additions to long-lived assets, and depreciation and amortization expense were as follows:</span></div><div style="margin-top:10pt"><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><td style="width:71.324%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.384%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.386%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Total long-lived assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">United States</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">168,988 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">181,291 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Europe</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',serif;font-size:10pt;font-weight:400;line-height:120%">42,337 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">45,972 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total Long-lived Assets</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">211,325 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">227,263 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Expenditures for additions to long-lived assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">United States</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">3,636 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,368 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">5,929 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">5,734 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Europe</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',serif;font-size:10pt;font-weight:400;line-height:120%">426 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">187 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">863 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,605 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total expenditures for additions to long-lived assets</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4,062 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">1,555 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">6,792 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">8,339 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Depreciation and Amortization:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">United States</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">6,904 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">7,156 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">20,916 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">21,667 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Europe</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,470 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">1,718 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">4,560 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">5,194 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Corporate Unallocated</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',serif;font-size:10pt;font-weight:400;line-height:120%">55 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">35 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">217 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">123 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total depreciation and amortization</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,429 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,909 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">25,693 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">26,984 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue by product line the three and nine months ended September 30, 2025 and 2024 were as follows:</span></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(dollars 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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Revenue:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Injection Molding</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">47,770 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">46,831 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">143,908 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">148,574 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">CNC Machining</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',serif;font-size:10pt;font-weight:400;line-height:120%">63,043 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">53,327 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">177,831 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">154,498 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3D Printing</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',serif;font-size:10pt;font-weight:400;line-height:120%">20,082 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">21,437 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">61,491 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">64,300 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Sheet Metal</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',serif;font-size:10pt;font-weight:400;line-height:120%">4,262 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3,743 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">12,776 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">11,218 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Other 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',serif;font-size:10pt;font-weight:400;line-height:120%">209 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">281 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">628 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">550 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total Revenue</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">135,366 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">125,619 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">396,634 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">379,140 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes selected financial information by reportable segments:</span></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended September 30, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">109,361 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">26,005 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">135,366 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">81,028 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">28,696 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">16,683 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">126,407 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">149 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">149 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">28,333 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(2,840)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(16,683)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,810 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended September 30, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">99,571 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">26,048 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">125,619 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">73,884 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">28,446 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">14,709 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">117,039 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">25,687 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(2,398)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(14,709)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,580 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended September 30, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">320,340 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">76,294 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">396,634 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">238,823 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">87,815 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">51,576 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">378,214 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">110 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">110 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">81,517 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(11,631)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(51,576)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">18,310 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt"><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><td style="width:26.778%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.900%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.051%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.053%"></td><td style="width:0.1%"></td></tr><tr><td colspan="24" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Nine Months Ended September 30, 2024</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands)</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">United States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Corporate Unallocated</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:120%">Total</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',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">299,593 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">79,547 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">379,140 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses</span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">223,333 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">86,121 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">48,280 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">357,734 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Exit, Disposal and Goodwill impairment 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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">— </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Income (Loss) from Operations</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">76,260 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(6,574)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">(48,280)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">21,406 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:10pt;padding-left:36pt;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1 </span><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Segment expenses consist primarily of raw materials, equipment depreciation, employee compensation including benefits, commissions and stock-based compensation, facilities costs and overhead allocations associated with the manufacturing process for molds and custom parts, marketing programs such as electronic, print and pay-per-click advertising and trade shows and other related costs for our United States and Europe reportable segments. Segment expenses for our Corporate Unallocated reportable segment consist primarily of personnel and outside service costs related to the development of new processes and product lines, enhancements of existing product </span></div><div style="margin-top:10pt;padding-left:36pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">lines, software developed for internal use, maintenance of internally developed software, quality assurance and testing, employee compensation including benefits and stock-based compensation, severance, professional service fees related to accounting, tax and legal, and other related overhead costs.</span></div> 109361000 26005000 0 135366000 81028000 28696000 16683000 126407000 0 149000 0 149000 28333000 -2840000 -16683000 8810000 99571000 26048000 0 125619000 73884000 28446000 14709000 117039000 0 0 0 0 25687000 -2398000 -14709000 8580000 320340000 76294000 0 396634000 238823000 87815000 51576000 378214000 0 110000 0 110000 81517000 -11631000 -51576000 18310000 299593000 79547000 0 379140000 223333000 86121000 48280000 357734000 0 0 0 0 76260000 -6574000 -48280000 21406000 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Total long-lived assets, expenditures for additions to long-lived assets, and depreciation and amortization expense were as follows:</span></div><div style="margin-top:10pt"><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><td style="width:71.324%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.384%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.386%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">September 30,<br/>2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">December 31,<br/>2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Total long-lived assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">United States</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">168,988 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">181,291 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Europe</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',serif;font-size:10pt;font-weight:400;line-height:120%">42,337 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">45,972 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total Long-lived Assets</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">211,325 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">227,263 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr></table></div> 168988000 181291000 42337000 45972000 211325000 227263000 <div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Expenditures for additions to long-lived assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">United States</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">3,636 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,368 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">5,929 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">5,734 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Europe</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',serif;font-size:10pt;font-weight:400;line-height:120%">426 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">187 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">863 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">2,605 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total expenditures for additions to long-lived assets</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">4,062 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">1,555 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">6,792 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">8,339 </span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 3636000 1368000 5929000 5734000 426000 187000 863000 2605000 4062000 1555000 6792000 8339000 <div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Depreciation and Amortization:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">United States</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">6,904 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">7,156 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">20,916 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">21,667 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Europe</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',serif;font-size:10pt;font-weight:400;line-height:120%">1,470 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">1,718 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">4,560 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">5,194 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Corporate Unallocated</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',serif;font-size:10pt;font-weight:400;line-height:120%">55 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">35 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">217 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">123 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total depreciation and amortization</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,429 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">8,909 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">25,693 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">26,984 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 6904000 7156000 20916000 21667000 1470000 1718000 4560000 5194000 55000 35000 217000 123000 8429000 8909000 25693000 26984000 <div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">Revenue by product line the three and nine months ended September 30, 2025 and 2024 were as follows:</span></div><div style="margin-top:10pt"><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><td style="width:44.354%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.406%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.085%"></td><td style="width:0.1%"></td></tr><tr style="height:9pt"><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">Three Months Ended<br/>September 30,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:700;line-height:120%">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',serif;font-size:10pt;font-weight:400;line-height:120%">(dollars 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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</span></td><td colspan="3" style="padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2025</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:700;line-height:120%">2024</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',serif;font-size:10pt;font-weight:700;line-height:120%">Revenue:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Injection Molding</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">47,770 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">46,831 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">143,908 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">148,574 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">CNC Machining</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',serif;font-size:10pt;font-weight:400;line-height:120%">63,043 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">53,327 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">177,831 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">154,498 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3D Printing</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',serif;font-size:10pt;font-weight:400;line-height:120%">20,082 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">21,437 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">61,491 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">64,300 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Sheet Metal</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',serif;font-size:10pt;font-weight:400;line-height:120%">4,262 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">3,743 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">12,776 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">11,218 </span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Other 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',serif;font-size:10pt;font-weight:400;line-height:120%">209 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">281 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">628 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">550 </span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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',serif;font-size:10pt;font-weight:400;line-height:120%">Total Revenue</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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">135,366 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">125,619 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">396,634 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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',serif;font-size:10pt;font-weight:400;line-height:120%">$</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',serif;font-size:10pt;font-weight:400;line-height:120%">379,140 </span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div> 47770000 46831000 143908000 148574000 63043000 53327000 177831000 154498000 20082000 21437000 61491000 64300000 4262000 3743000 12776000 11218000 209000 281000 628000 550000 135366000 125619000 396634000 379140000 Subsequent Event<div style="margin-top:10pt"><span style="color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%">On October 3, 2025 (the Notice Date), the Company announced that Oleg Ryaboy, Chief Technology Officer, will depart the Company and cease to be an employee, effective November 2, 2025. As of the Notice Date, Mr. Ryaboy is no longer the Company’s Chief Technology Officer or an executive officer of the Company. Marc Kermisch has been appointed to serve as the Company’s new Chief Technology &amp; AI Officer, effective October 13, 2025.</span></div> On August 15, 2025, Michael R. Kenison, Chief Operations Officer of the Company, entered into a 10b5-1 sales plan intended to satisfy the affirmative defense of Rule 10b5-1(c) under the Exchange Act. This 10b5-1 sales plan provides for (1) the sale of up to 10,681 shares of common stock related to the exercise of option awards granted to Mr. Kenison and (2) the sale of up to 7,500 shares of common stock related to vested restricted stock units granted to Mr. Kenison. This 10b5-1 sales plan will become effective on November 14, 2025 and will expire on June 12, 2026, or earlier completion of all authorized transactions under the plan. August 15, 2025 Michael R. Kenison Chief Operations Officer true 10681 7500 June 12, 2026 On September 8, 2025, Oleg Ryaboy, Chief Technology Officer of the Company until October 3, 2025, entered into a 10b5-1 sales plan intended to satisfy the affirmative defense of Rule 10b5-1(c) under the Exchange Act. This 10b5-1 sales plan provides for (1) the sale of up to 3,048 shares of common stock related to the exercise of option awards granted to Mr. Ryaboy, (2) the sale of up to 4,200 shares of common stock related to vested restricted stock units granted to Mr. Ryaboy and (3) the sale of shares of common stock related to the future vesting of up to 5,658 restricted stock units held by Mr. Ryaboy. The exact number of shares of common stock that will be sold under this 10b5-1 sales plan related to vesting of restricted stock units is not yet determinable because an unknown number of shares will be sold to satisfy tax withholding obligations in connection with the vesting of the restricted stock units covered by the plan. This 10b5-1 sales plan will become effective on December 8, 2025 and will expire on August 15, 2026, or earlier completion of all authorized transactions under the plan. September 8, 2025 Oleg Ryaboy Chief Technology Officer true 3048 4200 5658 August 15, 2026 false false false